apiVersion: apps/v1 kind: Deployment metadata: labels: app.kubernetes.io/name: geo-service name: geo-service annotations: kubernetes.io/change-cause: "${TIMESTAMP} Deployed commit id: ${COMMIT}" spec: replicas: 1 selector: matchLabels: app.kubernetes.io/name: geo-service strategy: rollingUpdate: maxSurge: 1 maxUnavailable: 1 type: RollingUpdate template: metadata: labels: app.kubernetes.io/name: geo-service spec: imagePullSecrets: - name: oci-registry securityContext: runAsNonRoot: true runAsUser: 65534 seccompProfile: type: RuntimeDefault affinity: podAntiAffinity: preferredDuringSchedulingIgnoredDuringExecution: - weight: 100 podAffinityTerm: labelSelector: matchExpressions: - key: "app.kubernetes.io/name" operator: In values: - geo-service topologyKey: kubernetes.io/hostname containers: - name: geo-service securityContext: allowPrivilegeEscalation: false capabilities: drop: ["ALL"] resources: limits: memory: "100Mi" requests: memory: "100Mi" imagePullPolicy: Always image: ${IMAGE} ports: - containerPort: 8080 name: http env: - name: PORT value: "8080" envFrom: - secretRef: name: geo-service restartPolicy: Always --- apiVersion: v1 kind: Service metadata: name: geo-service spec: ports: - port: 80 name: http protocol: TCP targetPort: 8080 selector: app.kubernetes.io/name: geo-service type: ClusterIP