--- apiVersion: apps/v1 kind: Deployment metadata: name: deploy-api-dynamodb namespace: ack-demo spec: selector: matchLabels: app.kubernetes.io/name: api-dynamodb replicas: 1 template: metadata: labels: app.kubernetes.io/name: api-dynamodb spec: serviceAccountName: ack-demo automountServiceAccountToken: false securityContext: seccompProfile: type: RuntimeDefault containers: # https://github.com/season1946/ack-microservices/tree/main/sample-app-code - image: victorgucanada/new-dynamo-nodejs@sha256:457d364897719c6136b21685ee950c19fa0df0ad45aa20fa4790bc4304a940c1 imagePullPolicy: Always name: api-dynamodb ports: - containerPort: 3000 # match with expose port in dockerfile securityContext: allowPrivilegeEscalation: false readOnlyRootFilesystem: true runAsNonRoot: true runAsUser: 10001 capabilities: drop: - NET_RAW - ALL env: - name: tableName # match with your dynamodb table setting value: ack-demo-table - name: aws_region value: '' resources: requests: memory: '64Mi' cpu: '250m' limits: memory: '128Mi' cpu: '500m' livenessProbe: httpGet: path: / port: 3000 readinessProbe: httpGet: path: / port: 3000 initialDelaySeconds: 5 periodSeconds: 10 --- apiVersion: v1 kind: Service metadata: name: service-api-dynamodb namespace: ack-demo spec: ports: - port: 80 targetPort: 3000 protocol: TCP type: NodePort selector: app.kubernetes.io/name: api-dynamodb --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: ingress-api-dynamodb namespace: ack-demo annotations: alb.ingress.kubernetes.io/scheme: internal alb.ingress.kubernetes.io/target-type: ip spec: ingressClassName: alb rules: - http: paths: - path: / pathType: Prefix backend: service: name: service-api-dynamodb port: number: 80