Rename back to catalogue-agent; stop owning the shared namespace
catalog-agent was one rename too aggressive: 'catalogue' is accepted, and the Keycloak client, its audience scope and the Vault key that names it were never renamed to match — leaving an inconsistency between what Kubernetes and Keycloak call the same agent. Keycloak carries more weight to move, so this side moves back. k8s/namespace.yaml is out of this Kustomization's inventory. It was in 2026-08-31 when renaming the Kustomization pruned the old one — which owned the namespace three agents share — and took all three down. A namespace shared across repos should not be owned by any one of them. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -129,7 +129,7 @@ running library:
|
|||||||
conversation history lives in the process, and so does a pending write waiting
|
conversation history lives in the process, and so does a pending write waiting
|
||||||
for approval. Moving either out is what would allow a second replica.
|
for approval. Moving either out is what would allow a second replica.
|
||||||
- The Keycloak client is still named `classic-models-agent-catalogue` while the
|
- The Keycloak client is still named `classic-models-agent-catalogue` while the
|
||||||
Kubernetes objects say `catalog-agent`. Either is fine — pick one.
|
Kubernetes objects say `catalogue-agent`. Either is fine — pick one.
|
||||||
|
|
||||||
Everything this section used to list is done: the Keycloak client exists, writes
|
Everything this section used to list is done: the Keycloak client exists, writes
|
||||||
and the A2A call to the supply agent work, and `k8s/` deploys through Flux.
|
and the A2A call to the supply agent work, and `k8s/` deploys through Flux.
|
||||||
|
|||||||
@@ -22,12 +22,12 @@
|
|||||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
||||||
kind: Kustomization
|
kind: Kustomization
|
||||||
metadata:
|
metadata:
|
||||||
name: catalog-agent-bootstrap
|
name: catalogue-agent-bootstrap
|
||||||
namespace: agents
|
namespace: agents
|
||||||
spec:
|
spec:
|
||||||
interval: 10m
|
interval: 10m
|
||||||
sourceRef:
|
sourceRef:
|
||||||
kind: GitRepository
|
kind: GitRepository
|
||||||
name: catalog-agent
|
name: catalogue-agent
|
||||||
path: ./dev
|
path: ./dev
|
||||||
prune: true
|
prune: true
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
||||||
kind: Kustomization
|
kind: Kustomization
|
||||||
metadata:
|
metadata:
|
||||||
name: catalog-agent
|
name: catalogue-agent
|
||||||
namespace: agents
|
namespace: agents
|
||||||
spec:
|
spec:
|
||||||
interval: 10m
|
interval: 10m
|
||||||
sourceRef:
|
sourceRef:
|
||||||
kind: GitRepository
|
kind: GitRepository
|
||||||
name: catalog-agent
|
name: catalogue-agent
|
||||||
path: ./k8s
|
path: ./k8s
|
||||||
prune: true
|
prune: true
|
||||||
wait: true
|
wait: true
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
apiVersion: source.toolkit.fluxcd.io/v1
|
apiVersion: source.toolkit.fluxcd.io/v1
|
||||||
kind: GitRepository
|
kind: GitRepository
|
||||||
metadata:
|
metadata:
|
||||||
name: catalog-agent
|
name: catalogue-agent
|
||||||
namespace: agents
|
namespace: agents
|
||||||
spec:
|
spec:
|
||||||
interval: 5m
|
interval: 5m
|
||||||
|
|||||||
+3
-3
@@ -1,10 +1,10 @@
|
|||||||
# Everything here is an endpoint or a public identifier. The one secret the
|
# Everything here is an endpoint or a public identifier. The one secret the
|
||||||
# agent holds arrives through catalog-agent-secrets; nothing in this file is
|
# agent holds arrives through catalogue-agent-secrets; nothing in this file is
|
||||||
# sensitive, which is the point of keeping the split visible.
|
# sensitive, which is the point of keeping the split visible.
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: ConfigMap
|
kind: ConfigMap
|
||||||
metadata:
|
metadata:
|
||||||
name: catalog-agent-config
|
name: catalogue-agent-config
|
||||||
namespace: agents
|
namespace: agents
|
||||||
data:
|
data:
|
||||||
CATALOGUE_KEYCLOAK_REALM_URL: https://keycloak.sttlab.local/realms/classic-models
|
CATALOGUE_KEYCLOAK_REALM_URL: https://keycloak.sttlab.local/realms/classic-models
|
||||||
@@ -23,7 +23,7 @@ data:
|
|||||||
# What other agents dial, so it is the Service DNS name and not the bind
|
# What other agents dial, so it is the Service DNS name and not the bind
|
||||||
# address. It is advertised in the Agent Card; get it wrong and A2A callers
|
# address. It is advertised in the Agent Card; get it wrong and A2A callers
|
||||||
# are pointed at nothing.
|
# are pointed at nothing.
|
||||||
CATALOGUE_PUBLIC_URL: http://catalog-agent.agents.svc.cluster.local:8080/
|
CATALOGUE_PUBLIC_URL: http://catalogue-agent.agents.svc.cluster.local:8080/
|
||||||
# The peer's Service name, overriding the default in config.py — set here so
|
# The peer's Service name, overriding the default in config.py — set here so
|
||||||
# the rename took effect without rebuilding an image.
|
# the rename took effect without rebuilding an image.
|
||||||
CATALOGUE_SUPPLY_URL: http://supply-agent.agents.svc.cluster.local:8080/
|
CATALOGUE_SUPPLY_URL: http://supply-agent.agents.svc.cluster.local:8080/
|
||||||
|
|||||||
+5
-5
@@ -1,7 +1,7 @@
|
|||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
kind: Deployment
|
kind: Deployment
|
||||||
metadata:
|
metadata:
|
||||||
name: catalog-agent
|
name: catalogue-agent
|
||||||
namespace: agents
|
namespace: agents
|
||||||
spec:
|
spec:
|
||||||
# One replica, and that is a constraint rather than a default. Conversation
|
# One replica, and that is a constraint rather than a default. Conversation
|
||||||
@@ -12,11 +12,11 @@ spec:
|
|||||||
replicas: 1
|
replicas: 1
|
||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
app: catalog-agent
|
app: catalogue-agent
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
labels:
|
labels:
|
||||||
app: catalog-agent
|
app: catalogue-agent
|
||||||
spec:
|
spec:
|
||||||
securityContext:
|
securityContext:
|
||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
@@ -36,9 +36,9 @@ spec:
|
|||||||
containerPort: 8080
|
containerPort: 8080
|
||||||
envFrom:
|
envFrom:
|
||||||
- configMapRef:
|
- configMapRef:
|
||||||
name: catalog-agent-config
|
name: catalogue-agent-config
|
||||||
- secretRef:
|
- secretRef:
|
||||||
name: catalog-agent-secrets
|
name: catalogue-agent-secrets
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
- name: sttlab-ca
|
- name: sttlab-ca
|
||||||
mountPath: /etc/sttlab-ca
|
mountPath: /etc/sttlab-ca
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
apiVersion: external-secrets.io/v1
|
apiVersion: external-secrets.io/v1
|
||||||
kind: ExternalSecret
|
kind: ExternalSecret
|
||||||
metadata:
|
metadata:
|
||||||
name: catalog-agent-secrets
|
name: catalogue-agent-secrets
|
||||||
namespace: agents
|
namespace: agents
|
||||||
spec:
|
spec:
|
||||||
refreshInterval: 1h
|
refreshInterval: 1h
|
||||||
@@ -16,7 +16,7 @@ spec:
|
|||||||
kind: ClusterSecretStore
|
kind: ClusterSecretStore
|
||||||
name: vault-keycloak
|
name: vault-keycloak
|
||||||
target:
|
target:
|
||||||
name: catalog-agent-secrets
|
name: catalogue-agent-secrets
|
||||||
data:
|
data:
|
||||||
- secretKey: CATALOGUE_CLIENT_SECRET
|
- secretKey: CATALOGUE_CLIENT_SECRET
|
||||||
remoteRef:
|
remoteRef:
|
||||||
|
|||||||
+8
-8
@@ -27,12 +27,12 @@
|
|||||||
apiVersion: cert-manager.io/v1
|
apiVersion: cert-manager.io/v1
|
||||||
kind: Certificate
|
kind: Certificate
|
||||||
metadata:
|
metadata:
|
||||||
name: catalog-agent-tls
|
name: catalogue-agent-tls
|
||||||
namespace: agents
|
namespace: agents
|
||||||
spec:
|
spec:
|
||||||
secretName: catalog-agent-tls
|
secretName: catalogue-agent-tls
|
||||||
dnsNames:
|
dnsNames:
|
||||||
- catalog-agent.sttlab.local
|
- catalogue-agent.sttlab.local
|
||||||
issuerRef:
|
issuerRef:
|
||||||
name: sttlab-local-ca
|
name: sttlab-local-ca
|
||||||
kind: ClusterIssuer
|
kind: ClusterIssuer
|
||||||
@@ -40,7 +40,7 @@ spec:
|
|||||||
apiVersion: networking.k8s.io/v1
|
apiVersion: networking.k8s.io/v1
|
||||||
kind: Ingress
|
kind: Ingress
|
||||||
metadata:
|
metadata:
|
||||||
name: catalog-agent
|
name: catalogue-agent
|
||||||
namespace: agents
|
namespace: agents
|
||||||
annotations:
|
annotations:
|
||||||
nginx.ingress.kubernetes.io/auth-url: http://keycloak.keycloak.svc.cluster.local:8080/realms/classic-models/protocol/openid-connect/userinfo
|
nginx.ingress.kubernetes.io/auth-url: http://keycloak.keycloak.svc.cluster.local:8080/realms/classic-models/protocol/openid-connect/userinfo
|
||||||
@@ -55,16 +55,16 @@ spec:
|
|||||||
ingressClassName: nginx
|
ingressClassName: nginx
|
||||||
tls:
|
tls:
|
||||||
- hosts:
|
- hosts:
|
||||||
- catalog-agent.sttlab.local
|
- catalogue-agent.sttlab.local
|
||||||
secretName: catalog-agent-tls
|
secretName: catalogue-agent-tls
|
||||||
rules:
|
rules:
|
||||||
- host: catalog-agent.sttlab.local
|
- host: catalogue-agent.sttlab.local
|
||||||
http:
|
http:
|
||||||
paths:
|
paths:
|
||||||
- path: /
|
- path: /
|
||||||
pathType: Prefix
|
pathType: Prefix
|
||||||
backend:
|
backend:
|
||||||
service:
|
service:
|
||||||
name: catalog-agent
|
name: catalogue-agent
|
||||||
port:
|
port:
|
||||||
number: 8080
|
number: 8080
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
kind: Kustomization
|
kind: Kustomization
|
||||||
resources:
|
resources:
|
||||||
- namespace.yaml
|
|
||||||
- ca-configmap.yaml
|
- ca-configmap.yaml
|
||||||
- externalsecret.yaml
|
- externalsecret.yaml
|
||||||
- configmap.yaml
|
- configmap.yaml
|
||||||
|
|||||||
@@ -1,3 +1,11 @@
|
|||||||
|
# The `agents` namespace is shared by three agents from three repos.
|
||||||
|
# Applied once, by hand, and deliberately NOT in this repo's Kustomization
|
||||||
|
# inventory: a namespace owned by one repo's self-managing Kustomization gets
|
||||||
|
# deleted — and every other agent in it with it — the moment that repo renames
|
||||||
|
# its Kustomization or GitRepository, which prunes the old one. Learned the hard
|
||||||
|
# way on 2026-08-31.
|
||||||
|
#
|
||||||
|
# kubectl apply -f k8s/namespace.yaml # once, before anything else
|
||||||
# One namespace for the whole agent estate rather than one per agent. The agents
|
# One namespace for the whole agent estate rather than one per agent. The agents
|
||||||
# share nothing but a trust boundary — no data, no storage, no service mesh
|
# share nothing but a trust boundary — no data, no storage, no service mesh
|
||||||
# policy — and splitting them would multiply the CA ConfigMap and the
|
# policy — and splitting them would multiply the CA ConfigMap and the
|
||||||
|
|||||||
+2
-2
@@ -1,11 +1,11 @@
|
|||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Service
|
kind: Service
|
||||||
metadata:
|
metadata:
|
||||||
name: catalog-agent
|
name: catalogue-agent
|
||||||
namespace: agents
|
namespace: agents
|
||||||
spec:
|
spec:
|
||||||
selector:
|
selector:
|
||||||
app: catalog-agent
|
app: catalogue-agent
|
||||||
ports:
|
ports:
|
||||||
- name: http
|
- name: http
|
||||||
port: 8080
|
port: 8080
|
||||||
|
|||||||
Reference in New Issue
Block a user