hermes: deploy verified release and roll broker code by content

This commit is contained in:
jenkins 2026-09-13 18:44:33 -05:00
parent 6cfeff74d6
commit d66af9dbd4
8 changed files with 20 additions and 39 deletions

View File

@ -1,19 +0,0 @@
# clusters/atlas/flux-system/applications/hermes-scm-broker-code/kustomization.yaml
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: hermes-scm-broker-code
namespace: flux-system
spec:
interval: 10m
path: ./services/hermes/scm-common
targetNamespace: hermes-scm
prune: true
sourceRef:
kind: GitRepository
name: flux-system
namespace: flux-system
wait: true
timeout: 5m
dependsOn:
- name: hermes-scm-namespace

View File

@ -24,4 +24,3 @@ spec:
- name: vault - name: vault
- name: gitea - name: gitea
- name: hermes-scm-namespace - name: hermes-scm-namespace
- name: hermes-scm-broker-code

View File

@ -29,7 +29,6 @@ resources:
- ai-llm/kustomization.yaml - ai-llm/kustomization.yaml
- openclaw/kustomization.yaml - openclaw/kustomization.yaml
- hermes-scm-namespace/kustomization.yaml - hermes-scm-namespace/kustomization.yaml
- hermes-scm-broker-code/kustomization.yaml
- hermes/kustomization.yaml - hermes/kustomization.yaml
- hermes/image-automation.yaml - hermes/image-automation.yaml
- hermes-observer-rbac/kustomization.yaml - hermes-observer-rbac/kustomization.yaml

View File

@ -5,9 +5,10 @@ namespace: hermes-scm
resources: resources:
- task-branch-adoptions-configmap.yaml - task-branch-adoptions-configmap.yaml
- task-ledger-pvc.yaml - task-ledger-pvc.yaml
- ../hermes/scm-common
- service.yaml - service.yaml
- deployment.yaml - deployment.yaml
- networkpolicy.yaml - networkpolicy.yaml
images: images:
- name: registry.bstein.dev/bstein/hermes-agent - name: registry.bstein.dev/bstein/hermes-agent
digest: sha256:37ebf720c783ae908a602916ffccf88d43d205a157957f5dc4b487867aee45e7 digest: sha256:f998627ec39492e5686fb375c661004699374d847deb878e7f06e1c7e0f45946

View File

@ -2,16 +2,9 @@
apiVersion: kustomize.config.k8s.io/v1beta1 apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization kind: Kustomization
namespace: hermes namespace: hermes
metadata:
annotations:
hermes.bstein.dev/agent-image-release-hold: "true"
hermes.bstein.dev/agent-image-release-hold-digest: "sha256:bebfe9c24cdd877ed2c16335027ccf393892161642756f54e8d12984eefdd903"
hermes.bstein.dev/agent-image-release-hold-minimum-source: "106ee8ce14aa67c3825fca6fb537a557b44ecd86"
hermes.bstein.dev/agent-image-release-hold-reason: "Hold the verified SQLite 3.51.3 runtime until the normal Hermes release includes it."
images: images:
- name: registry.bstein.dev/bstein/hermes-agent - name: registry.bstein.dev/bstein/hermes-agent
# Hold this verified SQLite fix until the normal image release includes it. digest: sha256:f998627ec39492e5686fb375c661004699374d847deb878e7f06e1c7e0f45946 # {"$imagepolicy": "hermes:hermes-agent-release:digest"}
digest: sha256:bebfe9c24cdd877ed2c16335027ccf393892161642756f54e8d12984eefdd903
resources: resources:
- namespace.yaml - namespace.yaml
- image.yaml - image.yaml

View File

@ -16,5 +16,3 @@ configMapGenerator:
- scm_task_grants.py=scripts/scm_task_grants.py - scm_task_grants.py=scripts/scm_task_grants.py
- scm_task_drafts.py=scripts/scm_task_drafts.py - scm_task_drafts.py=scripts/scm_task_drafts.py
- scm_task_adoptions.py=scripts/scm_task_adoptions.py - scm_task_adoptions.py=scripts/scm_task_adoptions.py
options:
disableNameSuffixHash: true

View File

@ -190,9 +190,11 @@ def test_chat_reasoning_uses_switchyard_without_owner_credentials():
"atlas/auto/balanced", "atlas/auto/balanced",
"atlas/auto/deep", "atlas/auto/deep",
"atlas/auto/maximum", "atlas/auto/maximum",
"atlas/manual/codex/auto",
"atlas/manual/codex/luna", "atlas/manual/codex/luna",
"atlas/manual/codex/terra", "atlas/manual/codex/terra",
"atlas/manual/codex/sol", "atlas/manual/codex/sol",
"atlas/manual/claude/auto",
"atlas/manual/claude/haiku", "atlas/manual/claude/haiku",
"atlas/manual/claude/fable", "atlas/manual/claude/fable",
"atlas/manual/claude/sonnet", "atlas/manual/claude/sonnet",
@ -234,7 +236,7 @@ def test_chat_reasoning_uses_switchyard_without_owner_credentials():
statefulset["spec"]["template"]["metadata"]["annotations"][ statefulset["spec"]["template"]["metadata"]["annotations"][
"ai.bstein.dev/config-rev" "ai.bstein.dev/config-rev"
] ]
== "20260816-telegram-topics" == "20260913-provider-model-catalog-v2"
) )
pod_spec = statefulset["spec"]["template"]["spec"] pod_spec = statefulset["spec"]["template"]["spec"]
patch_init = next( patch_init = next(

View File

@ -169,16 +169,24 @@ def test_flux_bootstrap_has_no_agent_namespace_dependency_cycle():
ROOT / "clusters/atlas/flux-system/applications/kustomization.yaml" ROOT / "clusters/atlas/flux-system/applications/kustomization.yaml"
).read_text(encoding="utf-8") ).read_text(encoding="utf-8")
assert "hermes-scm-agent-code" not in applications assert "hermes-scm-agent-code" not in applications
assert "hermes-scm-broker-code" not in applications
broker_code = yaml.safe_load( broker_flux = yaml.safe_load(
( (
ROOT ROOT
/ "clusters/atlas/flux-system/applications/hermes-scm-broker-code/kustomization.yaml" / "clusters/atlas/flux-system/applications/hermes-scm-broker/kustomization.yaml"
).read_text(encoding="utf-8") ).read_text(encoding="utf-8")
) )
assert broker_code["spec"]["path"] == "./services/hermes/scm-common" assert {item["name"] for item in broker_flux["spec"]["dependsOn"]} == {
assert broker_code["spec"]["targetNamespace"] == "hermes-scm" "vault", "gitea", "hermes-scm-namespace"
assert broker_code["spec"]["dependsOn"] == [{"name": "hermes-scm-namespace"}] }
broker_kustomization = yaml.safe_load(
(ROOT / "services/hermes-scm-broker/kustomization.yaml").read_text(encoding="utf-8")
)
assert "../hermes/scm-common" in broker_kustomization["resources"]
scm_common = yaml.safe_load(
(ROOT / "services/hermes/scm-common/kustomization.yaml").read_text(encoding="utf-8")
)
assert "options" not in scm_common["configMapGenerator"][0]
def test_gitea_bootstrap_enforces_human_review_without_overwriting_drift(): def test_gitea_bootstrap_enforces_human_review_without_overwriting_drift():