apiVersion: v1 kind: Namespace metadata: name: job-info labels: name: job-info --- apiVersion: v1 kind: ConfigMap metadata: name: backend-config namespace: job-info data: oauth-redirect-uri: "https://job-info.example.com/#/callback" cors-origin: "https://job-info.example.com" log-level: "info" api-port: "3005" --- apiVersion: v1 kind: ConfigMap metadata: name: frontend-config namespace: job-info data: api-url: "https://job-info.example.com/api" oauth-redirect-uri: "https://job-info.example.com/#/callback" environment: "production" --- apiVersion: v1 kind: Secret metadata: name: oauth-credentials namespace: job-info type: Opaque data: # Base64 encoded - replace with actual credentials # echo -n "your-client-id" | base64 client-id: eW91ci1jbGllbnQtaWQK # echo -n "your-client-secret" | base64 client-secret: eW91ci1jbGllbnQtc2VjcmV0Cg== --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: job-info-ingress namespace: job-info annotations: nginx.ingress.kubernetes.io/rewrite-target: / cert-manager.io/cluster-issuer: "letsencrypt-prod" spec: ingressClassName: nginx tls: - hosts: - job-info.example.com secretName: job-info-tls rules: - host: job-info.example.com http: paths: - path: /api pathType: Prefix backend: service: name: job-info-backend port: number: 3005 - path: / pathType: Prefix backend: service: name: job-info-frontend port: number: 5173 --- apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: name: job-info namespace: job-info labels: app: job-info spec: selector: matchLabels: app: job-info endpoints: - port: http interval: 30s path: /metrics