Skip to content

Comments

🤖 feat: ship generated install bundle and CI freshness checks#89

Open
ThomasK33 wants to merge 4 commits intomainfrom
feat/install-bundle-manifest
Open

🤖 feat: ship generated install bundle and CI freshness checks#89
ThomasK33 wants to merge 4 commits intomainfrom
feat/install-bundle-manifest

Conversation

@ThomasK33
Copy link
Member

Summary

This PR adds a generated, single-file installer manifest (dist/install.yaml) so users can install the operator stack with one kubectl apply -f instead of manually applying multiple CRD/RBAC/deployment manifests.

Background

Installation docs currently require applying many manifests one by one. That is error-prone and cumbersome compared with common operator distribution patterns that publish a single install bundle.

Implementation

  • Added kustomize installer composition under config/default/:
    • config/default/kustomization.yaml
    • config/default/namespace-coder-system.yaml
    • config/default/namespace-coder.yaml
  • Added generated leaf kustomizations:
    • config/crd/bases/kustomization.yaml
    • config/rbac/kustomization.yaml
  • Extended hack/update-manifests.sh to auto-regenerate the CRD/RBAC kustomization.yaml files after controller-gen runs.
  • Added Makefile targets:
    • real file target: dist/install.yaml
    • DX alias: build-installer
    • bundle generation uses vendored go tool: go tool kustomize build ...
  • Added kustomize tool pinning in go.mod tool block and updated vendored dependencies.
  • Updated tutorial docs (docs/tutorials/getting-started.md) to install/cleanup with the bundled installer manifest.
  • Added CI job in .github/workflows/ci.yaml to verify generated installer artifacts are up-to-date and wired it into publish-main gating.

Validation

  • make manifests
  • make build-installer
  • make docs-check
  • make build
  • make test
  • make lint
  • make verify-vendor
  • go tool actionlint

Risks

  • Installer ordering/content drift: mitigated by CI freshness check that regenerates and diffs dist/install.yaml plus generated kustomization files.
  • Tooling dependency churn: introducing vendored kustomize increases vendor surface area, but versions are pinned and validated via existing vendor checks.

Generated with mux • Model: openai:gpt-5.3-codex • Thinking: xhigh • Cost: $0.82

- add a kustomize-based installer composition under config/default
- generate dist/install.yaml from a real Makefile file target with a phony alias
- auto-regenerate CRD/RBAC kustomization.yaml files in hack/update-manifests.sh
- update getting-started docs to use the bundled installer manifest
- add CI verification that installer outputs are up to date

---

_Generated with `mux` • Model: `openai:gpt-5.3-codex` • Thinking: `xhigh` • Cost: `$0.82`_

<!-- mux-attribution: model=openai:gpt-5.3-codex thinking=xhigh costs=0.82 -->
@ThomasK33
Copy link
Member Author

@codex review

Please review the installer bundle generation and CI freshness check changes.

Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: d749540f83

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Codex review identified that the freshness check only diffed the installer bundle and
kustomization files, which could miss stale generated CRD/RBAC source manifests.
This update now diffs `config/crd/bases/` and `config/rbac/` directories directly.

---

_Generated with `mux` • Model: `openai:gpt-5.3-codex` • Thinking: `xhigh` • Cost: `$0.82`_

<!-- mux-attribution: model=openai:gpt-5.3-codex thinking=xhigh costs=0.82 -->
@ThomasK33
Copy link
Member Author

@codex review

Addressed your feedback by diffing full generated CRD and RBAC directories in the freshness check.
Please take another look.

@chatgpt-codex-connector
Copy link

Codex Review: Didn't find any major issues. 🎉

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

- split installer generation into two outputs:
  - dist/minimal-installer.yaml
  - dist/quickstart-installer.yaml
- keep dist/install.yaml as a compatibility alias to the minimal installer
- move default installer composition to a coder-system-only minimal stack
- add quickstart kustomize resources to seed a namespace, template, and workspace
- update CI freshness checks to validate both generated installer outputs
- refresh getting-started docs to use the minimal installer and optional quickstart seeding

---

_Generated with `mux` • Model: `openai:gpt-5.3-codex` • Thinking: `xhigh` • Cost: `$0.82`_

<!-- mux-attribution: model=openai:gpt-5.3-codex thinking=xhigh costs=0.82 -->
@ThomasK33
Copy link
Member Author

@codex review

Follow-up change: split generated installer output into minimal and quickstart manifests,
with quickstart seeding a template/workspace and CI freshness checks updated accordingly.
Please take another look.

Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 988d23cd03

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Extend installer freshness validation to fail when generated artifacts are present
but untracked, not just when tracked files differ.

---

_Generated with `mux` • Model: `openai:gpt-5.3-codex` • Thinking: `xhigh` • Cost: `$0.82`_

<!-- mux-attribution: model=openai:gpt-5.3-codex thinking=xhigh costs=0.82 -->
@ThomasK33
Copy link
Member Author

@codex review

Addressed the review comment by making the installer freshness job fail on untracked generated files too.
Please take another look.

@chatgpt-codex-connector
Copy link

Codex Review: Didn't find any major issues. Delightful!

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant