Skip to content

Commit 988d23c

Browse files
committed
🤖 feat: add minimal and quickstart installer manifests
- 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 -->
1 parent 3145d57 commit 988d23c

11 files changed

Lines changed: 5639 additions & 14 deletions

File tree

‎.github/workflows/ci.yaml‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,10 +80,15 @@ jobs:
8080
- 'config/crd/bases/**'
8181
- 'config/rbac/**'
8282
- 'config/default/**'
83+
- 'config/quickstart/**'
8384
- 'deploy/deployment.yaml'
85+
- 'deploy/apiserver-service.yaml'
86+
- 'deploy/apiserver-apiservice.yaml'
8487
- 'hack/update-manifests.sh'
8588
- 'Makefile'
8689
- 'dist/install.yaml'
90+
- 'dist/minimal-installer.yaml'
91+
- 'dist/quickstart-installer.yaml'
8792
8893
lint:
8994
needs: changes
@@ -149,6 +154,8 @@ jobs:
149154
make build-installer
150155
git diff --exit-code -- \
151156
dist/install.yaml \
157+
dist/minimal-installer.yaml \
158+
dist/quickstart-installer.yaml \
152159
config/crd/bases/ \
153160
config/rbac/
154161

‎Makefile‎

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,12 @@ VENDOR_STAMP := vendor/modules.txt
33
MODULE_FILES := go.mod $(wildcard go.sum)
44
ENVTEST_K8S_VERSION ?= 1.35.x
55
ENVTEST_ASSETS_DIR := $(shell pwd)/bin/envtest
6+
MINIMAL_INSTALLER_MANIFEST := dist/minimal-installer.yaml
7+
QUICKSTART_INSTALLER_MANIFEST := dist/quickstart-installer.yaml
68
INSTALLER_MANIFEST := dist/install.yaml
79
INSTALLER_RESOURCES := $(wildcard config/crd/bases/*.yaml) $(wildcard config/rbac/*.yaml)
10+
MINIMAL_INSTALLER_SOURCES := config/default/kustomization.yaml config/default/namespace-coder-system.yaml deploy/deployment.yaml deploy/apiserver-service.yaml deploy/apiserver-apiservice.yaml
11+
QUICKSTART_INSTALLER_SOURCES := $(wildcard config/quickstart/*.yaml)
812

913
.PHONY: vendor test test-integration setup-envtest build lint vuln verify-vendor codegen manifests build-installer docs-reference docs-reference-check docs-serve docs-build docs-check update-coder-docs-skill kind-dev-up kind-dev-ctx kind-dev-load-image kind-dev-status kind-dev-k9s kind-dev-down
1014

@@ -44,11 +48,18 @@ verify-vendor:
4448
manifests: $(VENDOR_STAMP)
4549
bash ./hack/update-manifests.sh
4650

47-
$(INSTALLER_MANIFEST): $(VENDOR_STAMP) config/default/kustomization.yaml config/default/namespace-coder-system.yaml config/default/namespace-coder.yaml deploy/deployment.yaml hack/update-manifests.sh $(INSTALLER_RESOURCES) manifests
51+
$(MINIMAL_INSTALLER_MANIFEST): $(VENDOR_STAMP) hack/update-manifests.sh $(INSTALLER_RESOURCES) $(MINIMAL_INSTALLER_SOURCES) manifests
4852
@mkdir -p $(dir $@)
4953
GOFLAGS=$(GOFLAGS) go tool kustomize build --load-restrictor=LoadRestrictionsNone config/default > $@
5054

51-
build-installer: $(INSTALLER_MANIFEST)
55+
$(QUICKSTART_INSTALLER_MANIFEST): $(VENDOR_STAMP) $(QUICKSTART_INSTALLER_SOURCES)
56+
@mkdir -p $(dir $@)
57+
GOFLAGS=$(GOFLAGS) go tool kustomize build --load-restrictor=LoadRestrictionsNone config/quickstart > $@
58+
59+
$(INSTALLER_MANIFEST): $(MINIMAL_INSTALLER_MANIFEST)
60+
cp $(MINIMAL_INSTALLER_MANIFEST) $(INSTALLER_MANIFEST)
61+
62+
build-installer: $(MINIMAL_INSTALLER_MANIFEST) $(QUICKSTART_INSTALLER_MANIFEST) $(INSTALLER_MANIFEST)
5263

5364
codegen: $(VENDOR_STAMP)
5465
bash ./hack/update-codegen.sh

‎config/default/kustomization.yaml‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@ apiVersion: kustomize.config.k8s.io/v1beta1
22
kind: Kustomization
33
resources:
44
- namespace-coder-system.yaml
5-
- namespace-coder.yaml
65
- ../crd/bases
76
- ../rbac
87
- ../../deploy/deployment.yaml
8+
- ../../deploy/apiserver-service.yaml
9+
- ../../deploy/apiserver-apiservice.yaml
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
apiVersion: aggregation.coder.com/v1alpha1
2+
kind: CoderTemplate
3+
metadata:
4+
name: default.quickstart-template
5+
namespace: coder
6+
spec:
7+
organization: default
8+
displayName: "Quickstart Template"
9+
description: "Template applied by coder-k8s quickstart installer"
10+
files:
11+
main.tf: |
12+
terraform {
13+
required_version = ">= 1.0"
14+
}
15+
16+
resource "null_resource" "quickstart" {}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
apiVersion: aggregation.coder.com/v1alpha1
2+
kind: CoderWorkspace
3+
metadata:
4+
name: default.me.quickstart-workspace
5+
namespace: coder
6+
spec:
7+
organization: default
8+
templateName: quickstart-template
9+
running: false
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
apiVersion: kustomize.config.k8s.io/v1beta1
2+
kind: Kustomization
3+
resources:
4+
- namespace-coder.yaml
5+
- codertemplate.yaml
6+
- coderworkspace.yaml

‎dist/install.yaml‎

Lines changed: 28 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,5 @@
11
apiVersion: v1
22
kind: Namespace
3-
metadata:
4-
name: coder
5-
---
6-
apiVersion: v1
7-
kind: Namespace
83
metadata:
94
name: coder-system
105
---
@@ -5442,6 +5437,20 @@ subjects:
54425437
name: coder-k8s
54435438
namespace: coder-system
54445439
---
5440+
apiVersion: v1
5441+
kind: Service
5442+
metadata:
5443+
name: coder-k8s-apiserver
5444+
namespace: coder-system
5445+
spec:
5446+
ports:
5447+
- name: https
5448+
port: 443
5449+
protocol: TCP
5450+
targetPort: 6443
5451+
selector:
5452+
app: coder-k8s
5453+
---
54455454
apiVersion: apps/v1
54465455
kind: Deployment
54475456
metadata:
@@ -5476,3 +5485,17 @@ spec:
54765485
path: /readyz
54775486
port: health
54785487
serviceAccountName: coder-k8s
5488+
---
5489+
apiVersion: apiregistration.k8s.io/v1
5490+
kind: APIService
5491+
metadata:
5492+
name: v1alpha1.aggregation.coder.com
5493+
spec:
5494+
group: aggregation.coder.com
5495+
groupPriorityMinimum: 1000
5496+
insecureSkipTLSVerify: true
5497+
service:
5498+
name: coder-k8s-apiserver
5499+
namespace: coder-system
5500+
version: v1alpha1
5501+
versionPriority: 100

0 commit comments

Comments
 (0)