feat(gitlab): add GitLab platform example with Replicated SDK and CMX validation#136
feat(gitlab): add GitLab platform example with Replicated SDK and CMX validation#136kriscoleman wants to merge 13 commits intomainfrom
Conversation
|
GasTown prompt used to build this with a couple feedback loops, this helped me iterate both on the agent instructions and the GitLab platform example: Mayor Mission: Automate Replicated Onboarding for GitLab Helm ChartsObjectiveWe are building a new platform example for GitLab (https://docs.gitlab.com/charts/) in the
Environment
Phase 1: Implement GitLab Platform Example via Onboarding AgentsWork in the Step 1: Understand the existing patterns
Step 2: Use the onboarding agents to onboard GitLab
Step 3: Validate success
Phase 2: Refine the Onboarding Agent InstructionsWork in the Step 1: Triage gaps from Phase 1
Step 2: Implement fixes and validate with linting
Step 3: Reinstall and verify the plugin locally
Step 4: Re-run onboarding with refined instructions (if needed)
Orchestration Notes for the MayorConvoy structureCreate a convoy for each phase. Within each convoy, create beads for the major work units. Suggested breakdown: Convoy 1: "GitLab Platform Example"
Convoy 2: "Refine Onboarding Plugin"
Cross-rig coordination
Agent spawning guidance
Success criteria
BeginStart with Phase 1. Create the convoys, research the existing patterns and GitLab chart structure, then use the onboarding agents to implement the GitLab platform example. Track everything — every gap you find is fuel for Phase 2. |
Adds a complete applications/gitlab/ example following existing repo conventions (gitea, n8n pattern). Includes: - Wrapper Helm chart with upstream gitlab 9.0.2 + Replicated SDK 1.18.0 - KOTS manifests: kots-app, kots-config (PostgreSQL/Redis/MinIO/SMTP), HelmChart with optionalValues, EC extensions, Secrets for passwords - GitHub Actions CI: lint/template on PR, create-release to Unstable on PR, promote to Stable on main merge - Makefile targets: add-helm-repositories, update-dependencies, lint, package - tests/helm/ci-values.yaml for fast CI lint/template checks - ONBOARDING-GAPS.md documenting 8 friction points from the onboarding run CMX validation skipped: no credits on REPL_GITLAB_SA_TOKEN account. Release 1 created and promoted to Unstable on gitlab-pika app. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Switch from bundled Bitnami PostgreSQL/Redis (deprecated, removed from Docker Hub) to external services (official postgres:16 + redis:7 images) - Update values.yaml and ci-values.yaml to disable bundled deps - Add kots-preflight.yaml with resource checks (4+ vCPU, 12+ GB RAM) - Add kots-support-bundle.yaml with GitLab component log collectors Note: Bitnami images (e.g. bitnami/postgresql:16.6.0) were removed from Docker Hub. GitLab chart 9.0.2 references these missing tags. Using external postgresql/redis resolves CMX validation. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…rt values The upstream gitlab/gitlab chart requires certmanager-issuer.email to be set at template time. Running helm template without values overrides fails with: "You must provide an email to associate with your TLS certificates" Use ci-values.yaml (which disables cert-manager and sets required fields) for the template step, matching how the chart is actually deployed. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
helm package requires valid semver. Changed PR version from 'pr-136-abc1234' (invalid) to '0.1.0-pr.136.abc1234' (valid semver prerelease format). Promote-stable format was already valid semver. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ction Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Actions don't respect working-directory, so path must be relative to repo root. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…motion Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
47d8466 to
2bf7b00
Compare
|
I noticed the release is helm-cli only when using 'make release', there are no EC or KOTS manifests When you use --chart the Replicated CLI creates a Helm CLI-only release. The KOTS manifests in kots/ are never included. To make it a KOTS-enabled release, you need to change chart to --yaml-dir pointing to your KOTS manifests: replicated release create The other gotcha is that it expects the gitlab-0.1.0.tgz chart from the previous cmd 'make package' to be in the /kots dir also, so maybe change the target for the 'make package' command? I would include the promote flag in the release target also just to save a manual step: |
- Makefile: remove hardcoded APP_SLUG; use REPLICATED_APP env var instead - README: replace hardcoded gitlab-pika slug with REPLICATED_APP references - values.yaml: remove unnecessary global.replicated stub (SDK populates at runtime) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…mote Unstable Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…OCI registry - Add Section 4 documenting the customer Helm CLI install path (helm registry login + oci://registry.replicated.com) - Add cmx-deploy-values.yaml with external PostgreSQL/Redis config (bundled Bitnami images removed from Docker Hub) - Update ci-values.yaml header to clarify it is lint-only - Update Known Limitations: CMX validation passed on k3s 1.32 - Renumber Embedded Cluster section to 5 Validated: OCI pull from registry.replicated.com/gitlab-pika/unstable/gitlab:0.1.0 Cluster: k3s 1.32, r1.xlarge. All pods healthy. Replicated SDK running. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Promoting a Helm-CLI-only release (--chart) to a channel with KOTS-enabled customers returns a 400 error. Switch both create-release and promote-stable jobs to package the chart into kots/ and use yaml-dir: applications/gitlab/kots so KOTS manifests are always included. Also add applications/gitlab/kots/** to path triggers so CI reruns when KOTS manifests change. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
I have made some updates but got pulled into a support issue today and couldn't finish UAT |



I paired on this with @mikhailswift
Summary
gitlab/gitlabHelm chart (v9.0.2) wrapped as a Helm dependencyKey design decisions
applications/gitlab/charts/gitlab/) that depends on upstreamgitlab/gitlabrather than vendoring it, keeping the chart maintainablepostgres:16andredis:7as external StatefulSet/Deployment servicesreplicated.enabledcondition allows disabling the SDK for raw Helm CMX validation (no license required)Test plan
helm dependency updateinapplications/gitlab/charts/gitlab/succeedshelm templatewithtests/helm/ci-values.yamlrenders without errors🤖 Generated with Claude Code