|
| 1 | +# WG-Easy Taskfile Dependency Graph |
| 2 | + |
| 3 | +## Visual Dependency Flow |
| 4 | + |
| 5 | +```mermaid |
| 6 | +graph TD |
| 7 | + %% Infrastructure Setup Chain |
| 8 | + CC[cluster-create] --> SK[setup-kubeconfig] |
| 9 | + SK --> CPE[cluster-ports-expose] |
| 10 | + CPE --> HI[helm-install] |
| 11 | + VK[verify-kubeconfig] --> SK |
| 12 | + |
| 13 | + %% Chart Development Chain |
| 14 | + HRA[helm-repo-add] --> DU[dependencies-update] |
| 15 | + DU --> CLA[chart-lint-all] |
| 16 | + DU --> CTA[chart-template-all] |
| 17 | + CLA --> CV[chart-validate] |
| 18 | + CTA --> CV |
| 19 | + |
| 20 | + %% Release Chain |
| 21 | + DU --> RP[release-prepare] |
| 22 | + RP --> RC[release-create] |
| 23 | + |
| 24 | + %% Test Workflows |
| 25 | + CC --> FTC[full-test-cycle] |
| 26 | + SK --> FTC |
| 27 | + CPE --> FTC |
| 28 | + DU --> FTC |
| 29 | + HI --> FTC |
| 30 | + T[test] --> FTC |
| 31 | + CD[cluster-delete] --> FTC |
| 32 | + |
| 33 | + %% Customer Workflow |
| 34 | + CC --> CFTC[customer-full-test-cycle] |
| 35 | + SK --> CFTC |
| 36 | + CPE --> CFTC |
| 37 | + DU --> CFTC |
| 38 | + CCR[customer-create] --> CFTC |
| 39 | + CHI[customer-helm-install] --> CFTC |
| 40 | + T --> CFTC |
| 41 | + |
| 42 | + %% PR Validation Workflow |
| 43 | + CV --> PVC[pr-validation-cycle] |
| 44 | + CCR --> PVC |
| 45 | + CC --> PVC |
| 46 | + SK --> PVC |
| 47 | + CPE --> PVC |
| 48 | + CHI --> PVC |
| 49 | + T --> PVC |
| 50 | + |
| 51 | + %% Cleanup |
| 52 | + CD --> CPR[cleanup-pr-resources] |
| 53 | + CUST_DEL[customer-delete] --> CPR |
| 54 | + CH_DEL[channel-delete] --> CPR |
| 55 | + |
| 56 | + %% Utility Dependencies |
| 57 | + CC -.-> UWC[utils:wait-for-cluster] |
| 58 | + SK -.-> UGK[utils:get-kubeconfig] |
| 59 | + CPE -.-> UPO[utils:port-operations] |
| 60 | + |
| 61 | + %% Container Workflows |
| 62 | + DS[dev:start] --> DSH[dev:shell] |
| 63 | + DS --> DR[dev:restart] |
| 64 | + DST[dev:stop] --> DR |
| 65 | +``` |
| 66 | + |
| 67 | +## Task Complexity Levels |
| 68 | + |
| 69 | +### Simple Tasks (No Dependencies) |
| 70 | +- `default`, `test`, `cluster-list` |
| 71 | +- `customer-create`, `customer-ls`, `customer-delete` |
| 72 | +- `channel-create`, `channel-delete` |
| 73 | +- `clean`, `airgap-build` |
| 74 | +- All `dev:*` base tasks |
| 75 | +- All `utils:*` tasks |
| 76 | + |
| 77 | +### Moderate Tasks (1-2 Dependencies) |
| 78 | +- `dependencies-update` → `helm-repo-add` |
| 79 | +- `chart-lint-all` → `dependencies-update` |
| 80 | +- `chart-template-all` → `dependencies-update` |
| 81 | +- `setup-kubeconfig` → `cluster-create`, `verify-kubeconfig` |
| 82 | +- `cluster-ports-expose` → `cluster-create` |
| 83 | + |
| 84 | +### Complex Tasks (3+ Dependencies) |
| 85 | +- `helm-install` → `setup-kubeconfig`, `cluster-ports-expose` |
| 86 | +- `chart-validate` → `chart-lint-all`, `chart-template-all` |
| 87 | +- `release-create` → `release-prepare` → `dependencies-update` |
| 88 | + |
| 89 | +### Workflow Orchestrators (High Complexity) |
| 90 | +- **full-test-cycle**: 8 task calls |
| 91 | +- **customer-full-test-cycle**: 7 task calls |
| 92 | +- **pr-validation-cycle**: 9 task calls |
| 93 | +- **cleanup-pr-resources**: 3 cleanup task calls |
| 94 | + |
| 95 | +## Critical Path Analysis |
| 96 | + |
| 97 | +### For Development (Chart Testing) |
| 98 | +``` |
| 99 | +helm-repo-add → dependencies-update → chart-lint-all/chart-template-all → chart-validate |
| 100 | +``` |
| 101 | + |
| 102 | +### For Deployment Testing |
| 103 | +``` |
| 104 | +cluster-create → setup-kubeconfig → cluster-ports-expose → helm-install → test |
| 105 | +``` |
| 106 | + |
| 107 | +### For Release Management |
| 108 | +``` |
| 109 | +helm-repo-add → dependencies-update → release-prepare → release-create |
| 110 | +``` |
| 111 | + |
| 112 | +### For PR Validation (Complete Flow) |
| 113 | +``` |
| 114 | +chart-validate → customer-create → cluster-create → setup-kubeconfig → |
| 115 | +cluster-ports-expose → customer-helm-install → test |
| 116 | +``` |
| 117 | + |
| 118 | +## Dependency Characteristics |
| 119 | + |
| 120 | +- **Linear Dependencies**: Most tasks follow clear sequential patterns |
| 121 | +- **Parallel Opportunities**: Chart validation tasks can run in parallel |
| 122 | +- **Resource Dependencies**: Infrastructure tasks must run in order |
| 123 | +- **Cleanup Isolation**: Cleanup tasks are independent of build/deploy chains |
| 124 | +- **Utility Abstraction**: Common operations abstracted to utils namespace |
| 125 | + |
| 126 | +## Task Reference |
| 127 | + |
| 128 | +### Infrastructure Tasks |
| 129 | +| Task | Dependencies | Purpose | |
| 130 | +|------|-------------|---------| |
| 131 | +| `cluster-create` | None | Create test cluster using Replicated CMX | |
| 132 | +| `setup-kubeconfig` | `cluster-create`, `verify-kubeconfig` | Configure kubectl access | |
| 133 | +| `cluster-ports-expose` | `cluster-create` | Expose cluster ports for access | |
| 134 | +| `cluster-delete` | None | Clean up test clusters | |
| 135 | + |
| 136 | +### Chart Development Tasks |
| 137 | +| Task | Dependencies | Purpose | |
| 138 | +|------|-------------|---------| |
| 139 | +| `helm-repo-add` | None | Add required Helm repositories | |
| 140 | +| `dependencies-update` | `helm-repo-add` | Update all chart dependencies | |
| 141 | +| `chart-lint-all` | `dependencies-update` | Lint all Helm charts | |
| 142 | +| `chart-template-all` | `dependencies-update` | Template charts for validation | |
| 143 | +| `chart-validate` | `chart-lint-all`, `chart-template-all` | Complete chart validation | |
| 144 | +| `chart-package-all` | `dependencies-update` | Package charts for distribution | |
| 145 | + |
| 146 | +### Deployment Tasks |
| 147 | +| Task | Dependencies | Purpose | |
| 148 | +|------|-------------|---------| |
| 149 | +| `helm-install` | `setup-kubeconfig`, `cluster-ports-expose` | Deploy charts using helmfile | |
| 150 | +| `customer-helm-install` | Same as `helm-install` | Deploy using customer license | |
| 151 | +| `helm-uninstall` | `setup-kubeconfig` | Remove deployed charts | |
| 152 | + |
| 153 | +### Release Tasks |
| 154 | +| Task | Dependencies | Purpose | |
| 155 | +|------|-------------|---------| |
| 156 | +| `release-prepare` | `dependencies-update` | Prepare release artifacts | |
| 157 | +| `release-create` | `release-prepare` | Create and promote Replicated release | |
| 158 | + |
| 159 | +### Workflow Tasks |
| 160 | +| Task | Dependencies | Purpose | |
| 161 | +|------|-------------|---------| |
| 162 | +| `full-test-cycle` | 8 tasks | Complete testing workflow | |
| 163 | +| `customer-full-test-cycle` | 7 tasks | Customer-focused testing workflow | |
| 164 | +| `pr-validation-cycle` | 9 tasks | PR validation workflow | |
| 165 | +| `cleanup-pr-resources` | 3 cleanup tasks | Clean up PR test resources | |
| 166 | + |
| 167 | +### Development Container Tasks |
| 168 | +| Task | Dependencies | Purpose | |
| 169 | +|------|-------------|---------| |
| 170 | +| `dev:start` | None | Start development container | |
| 171 | +| `dev:shell` | `dev:start` | Attach to container shell | |
| 172 | +| `dev:restart` | `dev:stop`, `dev:start` | Restart development container | |
| 173 | +| `dev:stop` | None | Stop development container | |
0 commit comments