Name the Kubernetes objects in English

catalogue-agent and approvisionnement-agent named a Deployment, a Service, an
Ingress and a Certificate in French, in an estate where nothing else is.

The peer URLs move with them, set through the existing per-environment override
so the rename takes effect without rebuilding an image; the defaults in the code
carry the same values for the next build.

The Keycloak client ids, the image names and the repository names are still
French. They are a separate, heavier move.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Stéphane Tailland
2026-08-31 09:12:46 +02:00
parent fe74189f2a
commit 58325b470a
9 changed files with 27 additions and 24 deletions
+2 -2
View File
@@ -22,12 +22,12 @@
apiVersion: kustomize.toolkit.fluxcd.io/v1 apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization kind: Kustomization
metadata: metadata:
name: catalogue-agent-bootstrap name: catalog-agent-bootstrap
namespace: agents namespace: agents
spec: spec:
interval: 10m interval: 10m
sourceRef: sourceRef:
kind: GitRepository kind: GitRepository
name: catalogue-agent name: catalog-agent
path: ./dev path: ./dev
prune: true prune: true
+2 -2
View File
@@ -1,13 +1,13 @@
apiVersion: kustomize.toolkit.fluxcd.io/v1 apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization kind: Kustomization
metadata: metadata:
name: catalogue-agent name: catalog-agent
namespace: agents namespace: agents
spec: spec:
interval: 10m interval: 10m
sourceRef: sourceRef:
kind: GitRepository kind: GitRepository
name: catalogue-agent name: catalog-agent
path: ./k8s path: ./k8s
prune: true prune: true
wait: true wait: true
+1 -1
View File
@@ -9,7 +9,7 @@
apiVersion: source.toolkit.fluxcd.io/v1 apiVersion: source.toolkit.fluxcd.io/v1
kind: GitRepository kind: GitRepository
metadata: metadata:
name: catalogue-agent name: catalog-agent
namespace: agents namespace: agents
spec: spec:
interval: 5m interval: 5m
+6 -3
View File
@@ -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 catalogue-agent-secrets; nothing in this file is # agent holds arrives through catalog-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: catalogue-agent-config name: catalog-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,4 +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://catalogue-agent.agents.svc.cluster.local:8080/ CATALOGUE_PUBLIC_URL: http://catalog-agent.agents.svc.cluster.local:8080/
# The peer's Service name, overriding the default in config.py — set here so
# the rename took effect without rebuilding an image.
CATALOGUE_APPROVISIONNEMENT_URL: http://supply-agent.agents.svc.cluster.local:8080/
+5 -5
View File
@@ -1,7 +1,7 @@
apiVersion: apps/v1 apiVersion: apps/v1
kind: Deployment kind: Deployment
metadata: metadata:
name: catalogue-agent name: catalog-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: catalogue-agent app: catalog-agent
template: template:
metadata: metadata:
labels: labels:
app: catalogue-agent app: catalog-agent
spec: spec:
securityContext: securityContext:
runAsNonRoot: true runAsNonRoot: true
@@ -36,9 +36,9 @@ spec:
containerPort: 8080 containerPort: 8080
envFrom: envFrom:
- configMapRef: - configMapRef:
name: catalogue-agent-config name: catalog-agent-config
- secretRef: - secretRef:
name: catalogue-agent-secrets name: catalog-agent-secrets
volumeMounts: volumeMounts:
- name: sttlab-ca - name: sttlab-ca
mountPath: /etc/sttlab-ca mountPath: /etc/sttlab-ca
+2 -2
View File
@@ -8,7 +8,7 @@
apiVersion: external-secrets.io/v1 apiVersion: external-secrets.io/v1
kind: ExternalSecret kind: ExternalSecret
metadata: metadata:
name: catalogue-agent-secrets name: catalog-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: catalogue-agent-secrets name: catalog-agent-secrets
data: data:
- secretKey: CATALOGUE_CLIENT_SECRET - secretKey: CATALOGUE_CLIENT_SECRET
remoteRef: remoteRef:
+6 -6
View File
@@ -4,7 +4,7 @@
# every conversation with it went through `kubectl run curl`. An orchestrator # every conversation with it went through `kubectl run curl`. An orchestrator
# nobody can talk to is not finished. # nobody can talk to is not finished.
# #
# Peer traffic does **not** come through here — catalogue calls, and is called by, # Peer traffic does **not** come through here — this agent calls, and is called by,
# other agents on their in-cluster Service names. This is the human door. # other agents on their in-cluster Service names. This is the human door.
# #
# ## It is not an open door # ## It is not an open door
@@ -27,10 +27,10 @@
apiVersion: cert-manager.io/v1 apiVersion: cert-manager.io/v1
kind: Certificate kind: Certificate
metadata: metadata:
name: catalogue-agent-tls name: catalog-agent-tls
namespace: agents namespace: agents
spec: spec:
secretName: catalogue-agent-tls secretName: catalog-agent-tls
dnsNames: dnsNames:
- catalog-agent.sttlab.local - catalog-agent.sttlab.local
issuerRef: issuerRef:
@@ -40,7 +40,7 @@ spec:
apiVersion: networking.k8s.io/v1 apiVersion: networking.k8s.io/v1
kind: Ingress kind: Ingress
metadata: metadata:
name: catalogue-agent name: catalog-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
@@ -56,7 +56,7 @@ spec:
tls: tls:
- hosts: - hosts:
- catalog-agent.sttlab.local - catalog-agent.sttlab.local
secretName: catalogue-agent-tls secretName: catalog-agent-tls
rules: rules:
- host: catalog-agent.sttlab.local - host: catalog-agent.sttlab.local
http: http:
@@ -65,6 +65,6 @@ spec:
pathType: Prefix pathType: Prefix
backend: backend:
service: service:
name: catalogue-agent name: catalog-agent
port: port:
number: 8080 number: 8080
+2 -2
View File
@@ -1,11 +1,11 @@
apiVersion: v1 apiVersion: v1
kind: Service kind: Service
metadata: metadata:
name: catalogue-agent name: catalog-agent
namespace: agents namespace: agents
spec: spec:
selector: selector:
app: catalogue-agent app: catalog-agent
ports: ports:
- name: http - name: http
port: 8080 port: 8080
+1 -1
View File
@@ -39,7 +39,7 @@ class Settings(BaseSettings):
# An A2A call returns an answer, not data. Consulting this one is how the # An A2A call returns an answer, not data. Consulting this one is how the
# agent learns whether a reference is about to be reordered before it # agent learns whether a reference is about to be reordered before it
# recommends dropping it — without gaining any sight of the supply domain. # recommends dropping it — without gaining any sight of the supply domain.
approvisionnement_url: str = "http://approvisionnement-agent.agents.svc.cluster.local:8080/" approvisionnement_url: str = "http://supply-agent.agents.svc.cluster.local:8080/"
approvisionnement_scope: str = "classic-models-agent-approvisionnement-audience" approvisionnement_scope: str = "classic-models-agent-approvisionnement-audience"
mcp_sales_scope: str = "mcp-sales-audience token-exchange-broker-audience" mcp_sales_scope: str = "mcp-sales-audience token-exchange-broker-audience"