A values file named a repository and a tag, and a tag is mutable. Under pullPolicy: Always that means the fleet pulls whatever the name points at on the morning it restarts; under IfNotPresent it means a node that pulled `:latest` once keeps those bytes forever while its neighbour gets a newer build. Both spellings of the same fault: the file does not say what runs. 41 of 50 image blocks now carry a digest beside the tag, resolved from the registry, with pullPolicy: IfNotPresent throughout. The chart renders repo:tag@digest and the reference resolves BY DIGEST -- the tag stays as the name a human reads. 20 of those were floating (`latest`, `main`, `main-amd64`) and now name specific bytes. Four floating tags had a release naming the same digest, so they say it: consul 1.20 -> 1.20.6, traefik v3.3 -> v3.3.7, zooai/docs latest -> 0.1.4. Each was verified to be the same manifest, so this renames what is running and moves nothing. gatus stays on `latest`: no v-tag names its bytes, so a version there would have been a silent upgrade rather than a rename. This is also what chart 0.1.13 requires. Its claimed list covers ghcr.io/hanzoai/cloud:v*, and it refuses to RENDER one of those without a digest -- so hanzo/cloud-api would have failed the render, which stops the sync and leaves the running pods alone. Better than the alternative, but the pin is the point. Eight files name an image the registry does not have and are left alone rather than guessed at; deploy/README.md lists them with what the registry does have. Co-authored-by: Hanzo Dev <[email protected]>
41 lines
1.3 KiB
YAML
41 lines
1.3 KiB
YAML
# Generated from the live zoo-devnet/status Deployment on do-sfo3-zoo-k8s
|
|
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
|
# manifests has unknown currency, the running fleet does not.
|
|
replicas: 1
|
|
selectorLabels:
|
|
app: status
|
|
image:
|
|
# ghcr.io/hanzoai/status is the one status binary this estate runs, pinned to a
|
|
# release. This ran an upstream build on a floating `latest` instead, so what
|
|
# shipped changed whenever someone else cut a release, and it carried no Zoo
|
|
# mark — the BRAND env that sat below was read by nothing.
|
|
repository: ghcr.io/hanzoai/status
|
|
tag: v1.1.17
|
|
digest: sha256:99148611743671c3bd2e13c4861c63149ec8b48aaacc947fdb62ee5ccb2951cb
|
|
pullPolicy: IfNotPresent
|
|
env:
|
|
# The mount is absolute; the binary's default is the relative config/config.yaml,
|
|
# so name the path rather than depend on the working directory.
|
|
- name: GATUS_CONFIG_PATH
|
|
value: /config/config.yaml
|
|
resources: {}
|
|
volumeMounts:
|
|
- mountPath: /config/config.yaml
|
|
name: config
|
|
subPath: config.yaml
|
|
ports:
|
|
- containerPort: 8080
|
|
volumes:
|
|
- configMap:
|
|
name: status-config
|
|
name: config
|
|
rollingUpdate:
|
|
maxSurge: 25%
|
|
maxUnavailable: 25%
|
|
topologySpread:
|
|
enabled: false
|
|
lifecycle: null
|
|
terminationGracePeriodSeconds: 30
|
|
defaultReadinessProbe: false
|
|
imagePullSecrets: []
|