bifroest/services/db-mcp/deploy/openshift-oracle.yaml
2026-10-27 08:34:17 +01:00

79 lines
2.5 KiB
YAML

# Beispiel für OpenShift (Namespace, Registry und Hosts anpassen). Braucht keine Cluster-Admin-Rechte.
apiVersion: v1
kind: Secret
metadata:
name: db-mcp-oracle
type: Opaque
stringData:
# name:geheimnis, kommagetrennt; Bifröst bekommt einen eigenen Schlüssel
DBMCP_API_KEYS: "bifroest:BITTE-ERSETZEN-mindestens-16-zeichen"
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: db-mcp-oracle
spec:
replicas: 2
selector:
matchLabels: {app: db-mcp-oracle}
template:
metadata:
labels: {app: db-mcp-oracle}
spec:
automountServiceAccountToken: false
containers:
- name: dienst
image: registry.intern/db-mcp-oracle:0.1.0
ports: [{containerPort: 8080}]
env:
- {name: DBMCP_ALLOWED_HOSTS, value: "pg1.db.intern,.analytics.db.intern"}
- {name: DBMCP_HTTP_HOSTS, value: "db-mcp-oracle,db-mcp-oracle:8080"}
- {name: DBMCP_MAX_ROWS, value: "500"}
envFrom: [{secretRef: {name: db-mcp-oracle}}]
readinessProbe: {httpGet: {path: /ready, port: 8080}}
livenessProbe: {httpGet: {path: /live, port: 8080}}
resources:
requests: {cpu: 100m, memory: 128Mi}
limits: {cpu: "1", memory: 512Mi}
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
runAsNonRoot: true
capabilities: {drop: [ALL]}
seccompProfile: {type: RuntimeDefault}
---
apiVersion: v1
kind: Service
metadata:
name: db-mcp-oracle
spec:
selector: {app: db-mcp-oracle}
ports: [{port: 8080, targetPort: 8080}]
---
# Nur Bifröst (bzw. freigegebene Clients) darf den Dienst aufrufen
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: db-mcp-oracle-ingress
spec:
podSelector: {matchLabels: {app: db-mcp-oracle}}
policyTypes: [Ingress]
ingress:
- from:
- podSelector: {matchLabels: {app: bifrost-web}}
- podSelector: {matchLabels: {app: bifrost-worker}}
ports: [{port: 8080}]
---
# Der Dienst darf nur zu den Oracle-Servern (und DNS)
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: db-mcp-oracle-egress
spec:
podSelector: {matchLabels: {app: db-mcp-oracle}}
policyTypes: [Egress]
egress:
- to: [{ipBlock: {cidr: 10.20.40.0/24}}] # Netz der Oracle-Server
ports: [{port: 1521}]
- to: [{namespaceSelector: {}, podSelector: {matchLabels: {dns.operator.openshift.io/daemonset-dns: default}}}]
ports: [{port: 5353, protocol: UDP}, {port: 5353, protocol: TCP}]