|
| 1 | +# GitLab Onboarding Gaps & Friction Log |
| 2 | + |
| 3 | +This document captures gaps, friction points, and unclear instructions |
| 4 | +encountered while running the `replicated-onboarding` plugin on the GitLab |
| 5 | +Helm chart example. This feeds Phase 2 improvements to the plugin. |
| 6 | + |
| 7 | +--- |
| 8 | + |
| 9 | +## Gap 1: `helm` not installed in polecat environment |
| 10 | + |
| 11 | +**Skill**: `assess-repo`, `install-sdk` |
| 12 | +**Severity**: Blocker (self-resolved) |
| 13 | +**Description**: The `helm` binary was not in `PATH` on the polecat worker. |
| 14 | +The `assess-repo` skill calls `helm lint` and `install-sdk` calls |
| 15 | +`helm dependency update`, both of which failed with `command not found: helm`. |
| 16 | +**Resolution**: Installed via `brew install helm`. Took ~60s. |
| 17 | +**Recommendation**: The skill should detect missing `helm` and provide a |
| 18 | +one-line install command rather than failing silently. Or the polecat |
| 19 | +environment should have `helm` pre-installed. |
| 20 | + |
| 21 | +--- |
| 22 | + |
| 23 | +## Gap 2: `replicated whoami` command does not exist |
| 24 | + |
| 25 | +**Skill**: `create-release` (auth step references `@skills/shared/auth.md`) |
| 26 | +**Severity**: Minor friction |
| 27 | +**Description**: The skill doc references `replicated whoami` for auth |
| 28 | +verification, but `replicated` CLI v0.124.3 does not have a `whoami` command. |
| 29 | +The available command is `replicated login` or checking `replicated app ls`. |
| 30 | +**Resolution**: Used `replicated app ls` as an auth check. |
| 31 | +**Recommendation**: Update `@skills/shared/auth.md` to use `replicated app ls` |
| 32 | +or add a note about the CLI version difference. |
| 33 | + |
| 34 | +--- |
| 35 | + |
| 36 | +## Gap 3: Replicated API token not clearly documented for automation |
| 37 | + |
| 38 | +**Skill**: `create-release` |
| 39 | +**Severity**: Blocker (required Mayor escalation) |
| 40 | +**Description**: The task description said "auth via REPL_GITLAB_SA_TOKEN" but |
| 41 | +the `create-release` skill only references `@skills/shared/auth.md` which |
| 42 | +talks about a `REPLICATED_API_TOKEN` env var. The polecat did not know that |
| 43 | +`REPL_GITLAB_SA_TOKEN` was the Replicated API token — it looked like a GitLab |
| 44 | +token. Required escalation to Mayor to clarify. |
| 45 | +**Resolution**: `REPLICATED_API_TOKEN=$REPL_GITLAB_SA_TOKEN` prefix on commands. |
| 46 | +**Recommendation**: Task descriptions for onboarding should explicitly state |
| 47 | +which env var maps to `REPLICATED_API_TOKEN`. Or the skill should list which |
| 48 | +env vars it checks (e.g., `REPLICATED_API_TOKEN`, `REPL_*_SA_TOKEN`). |
| 49 | + |
| 50 | +--- |
| 51 | + |
| 52 | +## Gap 4: `replicated release promote` requires `--app` flag (not positional) |
| 53 | + |
| 54 | +**Skill**: `create-release` |
| 55 | +**Severity**: Minor friction |
| 56 | +**Description**: The skill doc shows: |
| 57 | +```bash |
| 58 | +replicated release promote <sequence> <app_slug>/Unstable --version <version> |
| 59 | +``` |
| 60 | +But the actual CLI syntax is: |
| 61 | +```bash |
| 62 | +replicated release promote <sequence> Unstable --app <app_slug> --version <version> |
| 63 | +``` |
| 64 | +The `<app_slug>/Unstable` format is not valid for this CLI version. |
| 65 | +**Resolution**: Used `--app gitlab-pika` flag separately. |
| 66 | +**Recommendation**: Update the skill doc to use the `--app` flag form, or |
| 67 | +document both syntaxes. |
| 68 | + |
| 69 | +--- |
| 70 | + |
| 71 | +## Gap 5: CMX validation blocked — no credits on service account |
| 72 | + |
| 73 | +**Skill**: `validate-cmx` |
| 74 | +**Severity**: Blocker (not self-resolvable) |
| 75 | +**Description**: Every `replicated cluster create` attempt — from `r1.small` |
| 76 | +to `r1.2xlarge` — failed with: |
| 77 | +``` |
| 78 | +Error: Request exceeds available credits. Contact Replicated to buy more credits. |
| 79 | +``` |
| 80 | +The REPL_GITLAB_SA_TOKEN service account has zero CMX credits. |
| 81 | +**Resolution**: Skipped CMX validation entirely per Mayor instruction. |
| 82 | +**CMX validation will need to run after credits are added to the account.** |
| 83 | +**Recommendation**: The `validate-cmx` skill has no guidance for the |
| 84 | +"zero credits" failure mode. It should detect this specific error message |
| 85 | +and instruct the agent to: |
| 86 | +1. Skip CMX validation |
| 87 | +2. Document the gap in ONBOARDING-GAPS.md |
| 88 | +3. Continue with the rest of the onboarding checklist |
| 89 | +Currently, an agent would retry all instance sizes (wasting time) before |
| 90 | +escalating. The skill should short-circuit on this error. |
| 91 | + |
| 92 | +--- |
| 93 | + |
| 94 | +## Gap 6: GitLab chart resource requirements far exceed other examples |
| 95 | + |
| 96 | +**Skill**: n/a (architecture gap) |
| 97 | +**Severity**: Informational |
| 98 | +**Description**: GitLab's minimum eval cluster (12 GB RAM, 4 vCPU) is |
| 99 | +significantly larger than other examples in this repo (gitea, n8n). The CMX |
| 100 | +`r1.medium` instance type is insufficient; `r1.large` or `r1.xlarge` is needed. |
| 101 | +**Recommendation**: Document minimum cluster requirements prominently in |
| 102 | +README. Consider adding a `ci-values.yaml` that uses heavily reduced resource |
| 103 | +requests for lint/template CI checks (which don't actually install the chart). |
| 104 | + |
| 105 | +--- |
| 106 | + |
| 107 | +## Gap 7: `validate-cmx` skill uses `--version latest` which is invalid for k3s |
| 108 | + |
| 109 | +**Skill**: `validate-cmx` |
| 110 | +**Severity**: Minor friction |
| 111 | +**Description**: The skill doc's example uses `--version latest` in the |
| 112 | +`replicated cluster create` command. But `k3s` does not support `latest` as |
| 113 | +a version string — it requires a specific version like `1.32`. |
| 114 | +**Resolution**: Used `--version 1.32` explicitly. |
| 115 | +**Recommendation**: Update skill example to use a specific version, or use |
| 116 | +`replicated cluster versions` output to select the latest available. |
| 117 | + |
| 118 | +--- |
| 119 | + |
| 120 | +## Gap 8: HelmChart `optionalValues` pattern not validated during onboarding |
| 121 | + |
| 122 | +**Skill**: n/a (plugin scope gap) |
| 123 | +**Severity**: Informational |
| 124 | +**Description**: The `configure-values` and `install-sdk` skills don't |
| 125 | +validate that the generated `HelmChart` kind's `optionalValues` are |
| 126 | +syntactically correct KOTS YAML. Errors only surface at deploy time. |
| 127 | +**Recommendation**: Add a linting step to `create-release` or a new |
| 128 | +`validate-kots-manifests` skill that runs `kots` CLI or schema validation |
| 129 | +against the generated manifests. |
| 130 | + |
| 131 | +--- |
| 132 | + |
| 133 | +## Summary |
| 134 | + |
| 135 | +| # | Gap | Severity | Skill | |
| 136 | +|---|-----|----------|-------| |
| 137 | +| 1 | `helm` not in PATH | Blocker (self-resolved) | assess-repo, install-sdk | |
| 138 | +| 2 | `replicated whoami` doesn't exist | Minor | create-release (auth) | |
| 139 | +| 3 | API token identity unclear | Blocker (escalated) | create-release | |
| 140 | +| 4 | `release promote` flag syntax wrong | Minor | create-release | |
| 141 | +| 5 | CMX: zero credits, no skip guidance | **Blocker (pending)** | validate-cmx | |
| 142 | +| 6 | GitLab resource requirements undocumented | Info | n/a | |
| 143 | +| 7 | `--version latest` invalid for k3s | Minor | validate-cmx | |
| 144 | +| 8 | KOTS manifests not linted | Info | n/a | |
0 commit comments