apiVersion: v1 kind: ServiceAccount metadata: name: schemas --- apiVersion: apps/v1 kind: Deployment metadata: labels: app.kubernetes.io/name: schemas name: schemas annotations: kubernetes.io/change-cause: "${TIMESTAMP} Deployed commit id: ${COMMIT}" spec: replicas: 1 selector: matchLabels: app.kubernetes.io/name: schemas strategy: rollingUpdate: maxSurge: 1 maxUnavailable: 1 type: RollingUpdate template: metadata: labels: app.kubernetes.io/name: schemas spec: affinity: podAntiAffinity: preferredDuringSchedulingIgnoredDuringExecution: - weight: 100 podAffinityTerm: labelSelector: matchExpressions: - key: "app.kubernetes.io/name" operator: In values: - schemas topologyKey: kubernetes.io/hostname containers: - name: schemas resources: requests: cpu: "20m" memory: "20Mi" livenessProbe: httpGet: path: /health/live port: 8080 initialDelaySeconds: 10 periodSeconds: 10 timeoutSeconds: 5 failureThreshold: 3 readinessProbe: httpGet: path: /health/ready port: 8080 initialDelaySeconds: 5 periodSeconds: 5 timeoutSeconds: 5 failureThreshold: 3 imagePullPolicy: IfNotPresent image: registry.gitlab.com/unboundsoftware/schemas:${COMMIT} ports: - name: api containerPort: 8080 env: - name: OTEL_EXPORTER_OTLP_ENDPOINT value: http://k8s-monitoring-alloy-receiver.monitoring.svc.cluster.local:4318 envFrom: - configMapRef: name: schemas - secretRef: name: schemas restartPolicy: Always serviceAccountName: schemas --- apiVersion: v1 kind: Service metadata: name: schemas spec: ports: - port: 80 name: api protocol: TCP targetPort: 8080 selector: app.kubernetes.io/name: schemas type: NodePort