Pin the pushed server image; drop the pull secret

mg4-server:2.0.0 is on git.stinnesbeck.com and pulls anonymously, so
the Deployment no longer references a registry pull secret. The image
is pinned by digest (sha256:6feea777…) so a re-pushed tag cannot
change what the cluster runs. README and secrets template updated.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QLJfZQZeAKAwSqViTmLzki
This commit is contained in:
2026-10-17 16:14:53 +02:00
co-authored by Claude Opus 5.5
parent e874578e54
commit 4fe29189c0
5 changed files with 8 additions and 14 deletions
+4 -4
View File
@@ -22,9 +22,8 @@ is applied automatically. Apply them yourself.
2. **Create the Secrets.** Copy `secrets.example.yaml` outside the repository, replace every
`CHANGE-ME` (`openssl rand -hex 32`), then apply the copy: `influxdb-auth`, `mg4-server`
(ingest token, your ABRP API key and user token) and `grafana-admin`.
3. **Registry access.** If the `mg4-server` package on git.stinnesbeck.com is private, create the
`git-stinnesbeck-registry` pull secret (command in `secrets.example.yaml`); if it is public,
delete `imagePullSecrets` from `server.yaml`.
3. **Registry access.** The `mg4-server` package on git.stinnesbeck.com is public, so no pull
secret is needed. If you make it private, add an `imagePullSecrets` entry to `server.yaml`.
## Apply
@@ -42,4 +41,5 @@ kubectl apply -k k8s/
for Grafana, read/write for the server) can replace it later.
- The dashboards are read-only in Grafana's UI. Change the JSON in `grafana/dashboards/`; the
ConfigMap name changes with its content, which rolls Grafana.
- To upgrade the server, push a new image tag and change `newTag` in `kustomization.yaml`.
- The server image is pinned by digest in `kustomization.yaml`. To upgrade, push a new tag and
put its digest there (`skopeo inspect docker://git.stinnesbeck.com/nils/mg4-server:<tag>`).
+2 -1
View File
@@ -10,7 +10,8 @@ resources:
- ingress.yaml
images:
- name: git.stinnesbeck.com/nils/mg4-server
newTag: "2.0.0"
# 2.0.0, pinned by digest so a re-pushed tag cannot change what runs.
digest: sha256:6feea777c514b9488ffb0b49fad7c15423ee06f0e0e8d609cf31eb85755da815
generatorOptions:
labels:
app.kubernetes.io/part-of: mg4
-5
View File
@@ -37,8 +37,3 @@ stringData:
# Grafana's admin login (user "admin"). Only read on first start: change it in Grafana
# afterwards, or reset it with grafana cli.
admin-password: CHANGE-ME
---
# Pull secret for a private image on git.stinnesbeck.com. Easier to create with:
# kubectl -n mg4 create secret docker-registry git-stinnesbeck-registry \
# --docker-server=git.stinnesbeck.com --docker-username=<user> --docker-password=<token>
# If the package is public, remove imagePullSecrets from server.yaml instead.
-3
View File
@@ -21,9 +21,6 @@ spec:
app.kubernetes.io/name: mg4-server
app.kubernetes.io/part-of: mg4
spec:
# Needed only if the image is private on git.stinnesbeck.com; see secrets.example.yaml.
imagePullSecrets:
- name: git-stinnesbeck-registry
securityContext:
runAsNonRoot: true
runAsUser: 65532