11# Release Guide
22
3- This project publishes binaries through GitHub Releases and container images
4- through GitHub Container Registry (GHCR).
3+ This project publishes binaries and a packaged Helm chart through GitHub
4+ Releases, plus container images through GitHub Container Registry (GHCR).
55
66Docker Hub is optional. The default open-source release path does not require a
77Docker Hub account, namespace, access token, or repository secret.
@@ -51,26 +51,40 @@ Docker Hub account, namespace, access token, or repository secret.
5151
5252## Publish A Version
5353
54+ Before tagging, run local validation from a disposable kind cluster and an
55+ explicit kubeconfig. Do not let release checks fall back to an ambient
56+ developer kubeconfig:
57+
58+ ``` bash
59+ export KO_KIND_KUBECONFIG=/private/tmp/kubernetes-ontology-kind-kubeconfig
60+ kind export kubeconfig --name kind --kubeconfig " ${KO_KIND_KUBECONFIG} "
61+ KUBECONFIG=" ${KO_KIND_KUBECONFIG} " make ci
62+ kubectl --kubeconfig " ${KO_KIND_KUBECONFIG} " get nodes
63+ ```
64+
65+ Then run the live diagnostic smoke tests against that same kubeconfig.
66+
5467Use semantic version tags:
5568
5669``` bash
57- git tag v0.1.4
58- git push origin v0.1.4
70+ git tag v0.1.5
71+ git push origin v0.1.5
5972```
6073
61- Replace ` v0.1.4 ` with the release tag you are publishing.
74+ Replace ` v0.1.5 ` with the release tag you are publishing.
6275
6376Pushing the tag starts both workflows:
6477
6578- ` .github/workflows/release.yml ` creates a GitHub Release and uploads
6679 per-platform archives containing ` kubernetes-ontology ` (CLI),
6780 ` kubernetes-ontologyd ` (server), ` kubernetes-ontology-viewer ` , README files,
68- ` QUICKSTART.md ` , ` AI_CONTRACT.md ` , and the local config example.
81+ ` QUICKSTART.md ` , ` CHANGELOG.md ` , ` AI_CONTRACT.md ` , the local config example,
82+ and a packaged Helm chart archive.
6983- ` .github/workflows/docker.yml ` builds and pushes a multi-architecture image:
7084
7185 ``` text
72- ghcr.io/colvin-y/kubernetes-ontology:v0.1.4
73- ghcr.io/colvin-y/kubernetes-ontology:0.1.4
86+ ghcr.io/colvin-y/kubernetes-ontology:v0.1.5
87+ ghcr.io/colvin-y/kubernetes-ontology:0.1.5
7488 ghcr.io/colvin-y/kubernetes-ontology:latest
7589 ```
7690
@@ -89,20 +103,23 @@ gh run list --workflow Docker --limit 5
89103Check the release assets:
90104
91105``` bash
92- gh release view v0.1.4
106+ gh release view v0.1.5
93107```
94108
95- Inspect one archive when release packaging changes:
109+ Inspect one binary archive and the Helm chart archive when release packaging
110+ changes:
96111
97112``` bash
98- gh release download v0.1.4 --pattern ' kubernetes-ontology_v0.1.4_linux_amd64.tar.gz' --clobber
99- tar -tzf kubernetes-ontology_v0.1.4_linux_amd64.tar.gz | grep -E ' kubernetes-ontologyd$|kubernetes-ontology$|QUICKSTART.md|local/kubernetes-ontology.yaml.example'
113+ gh release download v0.1.5 --pattern ' kubernetes-ontology_v0.1.5_linux_amd64.tar.gz' --clobber
114+ tar -tzf kubernetes-ontology_v0.1.5_linux_amd64.tar.gz | grep -E ' kubernetes-ontologyd$|kubernetes-ontology$|QUICKSTART.md|local/kubernetes-ontology.yaml.example'
115+ gh release download v0.1.5 --pattern ' kubernetes-ontology-0.1.5.tgz' --clobber
116+ helm show chart kubernetes-ontology-0.1.5.tgz
100117```
101118
102119Pull the image:
103120
104121``` bash
105- docker pull ghcr.io/colvin-y/kubernetes-ontology:v0.1.4
122+ docker pull ghcr.io/colvin-y/kubernetes-ontology:v0.1.5
106123```
107124
108125Deploy through Helm:
@@ -112,7 +129,7 @@ helm upgrade --install kubernetes-ontology ./charts/kubernetes-ontology \
112129 --namespace kubernetes-ontology \
113130 --create-namespace \
114131 --set image.repository=ghcr.io/colvin-y/kubernetes-ontology \
115- --set image.tag=v0.1.4 \
132+ --set image.tag=v0.1.5 \
116133 --set cluster=your-logical-cluster \
117134 --set contextNamespaces=' {default,kube-system}'
118135```
0 commit comments