KubeHarbor · Back to portfolio · Case study

helm / dev

19 objects, grouped by kind. Source file: rendered/helm/dev.yaml.

Namespace ledgerlite-dev

---
# Source: ledgerlite/templates/namespace.yaml
apiVersion: v1
kind: Namespace
metadata:
  name: ledgerlite-dev
  labels:
    app.kubernetes.io/name: ledgerlite
    app.kubernetes.io/instance: ledgerlite
    app.kubernetes.io/component: namespace
    app.kubernetes.io/part-of: ledgerlite
    pod-security.kubernetes.io/enforce: restricted
    pod-security.kubernetes.io/audit: restricted
    pod-security.kubernetes.io/warn: restricted

NetworkPolicy ledgerlite-default-deny

# Source: ledgerlite/templates/networkpolicy.yaml
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: ledgerlite-default-deny
  namespace: ledgerlite-dev
  labels:
    app.kubernetes.io/name: ledgerlite
    app.kubernetes.io/instance: ledgerlite
    app.kubernetes.io/component: network
    app.kubernetes.io/part-of: ledgerlite
spec:
  podSelector: {}
  policyTypes:
    - Ingress
    - Egress
  ingress: []
  egress: []

NetworkPolicy ledgerlite-allow-ingress-nginx

# Source: ledgerlite/templates/networkpolicy.yaml
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: ledgerlite-allow-ingress-nginx
  namespace: ledgerlite-dev
  labels:
    app.kubernetes.io/name: ledgerlite
    app.kubernetes.io/instance: ledgerlite
    app.kubernetes.io/component: network
    app.kubernetes.io/part-of: ledgerlite
spec:
  podSelector:
    matchLabels:
      app.kubernetes.io/name: ledgerlite
      app.kubernetes.io/instance: ledgerlite
      app.kubernetes.io/component: api
  policyTypes:
    - Ingress
  ingress:
    - from:
        - namespaceSelector:
            matchLabels:
              kubernetes.io/metadata.name: ingress-nginx
      ports:
        - port: 8000
          protocol: TCP

NetworkPolicy ledgerlite-allow-prometheus

# Source: ledgerlite/templates/networkpolicy.yaml
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: ledgerlite-allow-prometheus
  namespace: ledgerlite-dev
  labels:
    app.kubernetes.io/name: ledgerlite
    app.kubernetes.io/instance: ledgerlite
    app.kubernetes.io/component: network
    app.kubernetes.io/part-of: ledgerlite
spec:
  podSelector:
    matchLabels:
      app.kubernetes.io/name: ledgerlite
      app.kubernetes.io/instance: ledgerlite
      app.kubernetes.io/component: api
  policyTypes:
    - Ingress
  ingress:
    - from:
        - namespaceSelector:
            matchLabels:
              kubernetes.io/metadata.name: monitoring
      ports:
        - port: 8000
          protocol: TCP

NetworkPolicy ledgerlite-allow-dns

# Source: ledgerlite/templates/networkpolicy.yaml
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: ledgerlite-allow-dns
  namespace: ledgerlite-dev
  labels:
    app.kubernetes.io/name: ledgerlite
    app.kubernetes.io/instance: ledgerlite
    app.kubernetes.io/component: network
    app.kubernetes.io/part-of: ledgerlite
spec:
  podSelector:
    matchExpressions:
      - key: app.kubernetes.io/name
        operator: In
        values:
          - ledgerlite
      - key: app.kubernetes.io/component
        operator: In
        values:
          - api
          - migrate
          - backup
  policyTypes:
    - Egress
  egress:
    - to:
        - namespaceSelector:
            matchLabels:
              kubernetes.io/metadata.name: kube-system
          podSelector:
            matchLabels:
              k8s-app: kube-dns
      ports:
        - port: 53
          protocol: UDP
        - port: 53
          protocol: TCP

NetworkPolicy ledgerlite-allow-egress-postgres

# Source: ledgerlite/templates/networkpolicy.yaml
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: ledgerlite-allow-egress-postgres
  namespace: ledgerlite-dev
  labels:
    app.kubernetes.io/name: ledgerlite
    app.kubernetes.io/instance: ledgerlite
    app.kubernetes.io/component: network
    app.kubernetes.io/part-of: ledgerlite
spec:
  podSelector:
    matchExpressions:
      - key: app.kubernetes.io/name
        operator: In
        values:
          - ledgerlite
      - key: app.kubernetes.io/component
        operator: In
        values:
          - api
          - migrate
          - backup
  policyTypes:
    - Egress
  egress:
    - to:
        - podSelector:
            matchLabels:
              app.kubernetes.io/name: ledgerlite
              app.kubernetes.io/instance: ledgerlite
              app.kubernetes.io/component: postgres
      ports:
        - port: 5432
          protocol: TCP

NetworkPolicy ledgerlite-allow-postgres-ingress

# Source: ledgerlite/templates/networkpolicy.yaml
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: ledgerlite-allow-postgres-ingress
  namespace: ledgerlite-dev
  labels:
    app.kubernetes.io/name: ledgerlite
    app.kubernetes.io/instance: ledgerlite
    app.kubernetes.io/component: network
    app.kubernetes.io/part-of: ledgerlite
spec:
  podSelector:
    matchLabels:
      app.kubernetes.io/name: ledgerlite
      app.kubernetes.io/instance: ledgerlite
      app.kubernetes.io/component: postgres
  policyTypes:
    - Ingress
  ingress:
    - from:
        - podSelector:
            matchExpressions:
              - key: app.kubernetes.io/component
                operator: In
                values:
                  - api
                  - migrate
                  - backup
      ports:
        - port: 5432
          protocol: TCP

ResourceQuota ledgerlite

# Source: ledgerlite/templates/resourcequota.yaml
apiVersion: v1
kind: ResourceQuota
metadata:
  name: ledgerlite
  namespace: ledgerlite-dev
  labels:
    app.kubernetes.io/name: ledgerlite
    app.kubernetes.io/instance: ledgerlite
    app.kubernetes.io/component: quota
    app.kubernetes.io/part-of: ledgerlite
spec:
  hard:
    pods: "20"
    requests.cpu: "2"
    requests.memory: "2Gi"
    limits.cpu: "4"
    limits.memory: "4Gi"
    persistentvolumeclaims: "4"
    requests.storage: "5Gi"

LimitRange ledgerlite

# Source: ledgerlite/templates/limitrange.yaml
apiVersion: v1
kind: LimitRange
metadata:
  name: ledgerlite
  namespace: ledgerlite-dev
  labels:
    app.kubernetes.io/name: ledgerlite
    app.kubernetes.io/instance: ledgerlite
    app.kubernetes.io/component: limits
    app.kubernetes.io/part-of: ledgerlite
spec:
  limits:
    - type: Container
      defaultRequest:
        cpu: "50m"
        memory: "64Mi"
      default:
        cpu: "250m"
        memory: "256Mi"
      max:
        cpu: "2"
        memory: "2Gi"

ServiceAccount ledgerlite

# Source: ledgerlite/templates/serviceaccount.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
  name: ledgerlite
  namespace: ledgerlite-dev
  labels:
    app.kubernetes.io/name: ledgerlite
    app.kubernetes.io/instance: ledgerlite
    app.kubernetes.io/component: api
    app.kubernetes.io/part-of: ledgerlite
automountServiceAccountToken: false

ConfigMap ledgerlite-api

# Source: ledgerlite/templates/configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: ledgerlite-api
  namespace: ledgerlite-dev
  labels:
    app.kubernetes.io/name: ledgerlite
    app.kubernetes.io/instance: ledgerlite
    app.kubernetes.io/component: api
    app.kubernetes.io/part-of: ledgerlite
data:
  LOG_LEVEL: "info"
  PORT: "8000"
  ENVIRONMENT: "dev"
  METRICS_PATH: /metrics
  WEB_CONCURRENCY: "1"

PersistentVolumeClaim ledgerlite-postgres-backup

# Source: ledgerlite/templates/backup-pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: ledgerlite-postgres-backup
  namespace: ledgerlite-dev
  labels:
    app.kubernetes.io/name: ledgerlite
    app.kubernetes.io/instance: ledgerlite
    app.kubernetes.io/component: backup
    app.kubernetes.io/part-of: ledgerlite
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: "1Gi"

Service ledgerlite-postgres

# Source: ledgerlite/templates/postgres-service.yaml
apiVersion: v1
kind: Service
metadata:
  name: ledgerlite-postgres
  namespace: ledgerlite-dev
  labels:
    app.kubernetes.io/name: ledgerlite
    app.kubernetes.io/instance: ledgerlite
    app.kubernetes.io/component: postgres
    app.kubernetes.io/part-of: ledgerlite
spec:
  clusterIP: "None"
  selector:
    app.kubernetes.io/name: ledgerlite
    app.kubernetes.io/instance: ledgerlite
    app.kubernetes.io/component: postgres
  ports:
    - name: postgres
      port: 5432
      targetPort: postgres
      protocol: TCP

Service ledgerlite-api

# Source: ledgerlite/templates/service.yaml
apiVersion: v1
kind: Service
metadata:
  name: ledgerlite-api
  namespace: ledgerlite-dev
  labels:
    app.kubernetes.io/name: ledgerlite
    app.kubernetes.io/instance: ledgerlite
    app.kubernetes.io/component: api
    app.kubernetes.io/part-of: ledgerlite
spec:
  type: ClusterIP
  selector:
    app.kubernetes.io/name: ledgerlite
    app.kubernetes.io/instance: ledgerlite
    app.kubernetes.io/component: api
  ports:
    - name: http
      port: 8000
      targetPort: http
      protocol: TCP

Deployment ledgerlite-api

# Source: ledgerlite/templates/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: ledgerlite-api
  namespace: ledgerlite-dev
  labels:
    app.kubernetes.io/name: ledgerlite
    app.kubernetes.io/instance: ledgerlite
    app.kubernetes.io/component: api
    app.kubernetes.io/part-of: ledgerlite
spec:
  replicas: 1
  selector:
    matchLabels:
      app.kubernetes.io/name: ledgerlite
      app.kubernetes.io/instance: ledgerlite
      app.kubernetes.io/component: api
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 0
      maxSurge: 1
  template:
    metadata:
      labels:
        app.kubernetes.io/name: ledgerlite
        app.kubernetes.io/instance: ledgerlite
        app.kubernetes.io/component: api
        app.kubernetes.io/part-of: ledgerlite
      annotations:
        checksum/config: 49d3bb28c933f095da10530dd0f4b61a8e868359bb8fcd5d67a0d8a13af73a48
    spec:
      serviceAccountName: ledgerlite
      automountServiceAccountToken: false
      enableServiceLinks: false
      hostNetwork: false
      hostPID: false
      hostIPC: false
      securityContext:
        runAsNonRoot: true
        runAsUser: 10001
        runAsGroup: 10001
        fsGroup: 10001
        seccompProfile:
          type: RuntimeDefault
      affinity:
        podAntiAffinity:
          preferredDuringSchedulingIgnoredDuringExecution:
            - weight: 100
              podAffinityTerm:
                topologyKey: kubernetes.io/hostname
                labelSelector:
                  matchLabels:
                    app.kubernetes.io/name: ledgerlite
                    app.kubernetes.io/instance: ledgerlite
                    app.kubernetes.io/component: api
      topologySpreadConstraints:
        - maxSkew: 1
          topologyKey: topology.kubernetes.io/zone
          whenUnsatisfiable: ScheduleAnyway
          labelSelector:
            matchLabels:
              app.kubernetes.io/name: ledgerlite
              app.kubernetes.io/instance: ledgerlite
              app.kubernetes.io/component: api
        - maxSkew: 1
          topologyKey: kubernetes.io/hostname
          whenUnsatisfiable: ScheduleAnyway
          labelSelector:
            matchLabels:
              app.kubernetes.io/name: ledgerlite
              app.kubernetes.io/instance: ledgerlite
              app.kubernetes.io/component: api
      containers:
        - name: api
          image: "ghcr.io/OWNER/ledgerlite:0.1.0"
          imagePullPolicy: Always
          command: ["python", "-m", "app"]
          ports:
            - name: http
              containerPort: 8000
              protocol: TCP
          env:
            - name: PORT
              value: "8000"
            - name: DATA_DIR
              value: /tmp
            - name: PYTHONDONTWRITEBYTECODE
              value: "1"
            - name: PYTHONUNBUFFERED
              value: "1"
            - name: LOG_LEVEL
              valueFrom:
                configMapKeyRef:
                  name: ledgerlite-api
                  key: LOG_LEVEL
            - name: WEB_CONCURRENCY
              valueFrom:
                configMapKeyRef:
                  name: ledgerlite-api
                  key: WEB_CONCURRENCY
            - name: ENVIRONMENT
              valueFrom:
                configMapKeyRef:
                  name: ledgerlite-api
                  key: ENVIRONMENT
            - name: DATABASE_URL
              valueFrom:
                secretKeyRef:
                  name: ledgerlite-dev-db
                  key: DATABASE_URL
          resources:
            requests:
              cpu: "50m"
              memory: "64Mi"
            limits:
              cpu: "250m"
              memory: "256Mi"
          securityContext:
            allowPrivilegeEscalation: false
            privileged: false
            readOnlyRootFilesystem: true
            runAsNonRoot: true
            runAsUser: 10001
            runAsGroup: 10001
            capabilities:
              drop:
                - ALL
            seccompProfile:
              type: RuntimeDefault
          startupProbe:
            httpGet:
              path: /healthz
              port: http
            periodSeconds: 5
            timeoutSeconds: 2
            failureThreshold: 30
          livenessProbe:
            httpGet:
              path: /healthz
              port: http
            periodSeconds: 10
            timeoutSeconds: 2
            failureThreshold: 3
          readinessProbe:
            httpGet:
              path: /readyz
              port: http
            periodSeconds: 10
            timeoutSeconds: 2
            failureThreshold: 3
          volumeMounts:
            - name: tmp
              mountPath: /tmp
      volumes:
        - name: tmp
          emptyDir: {}

StatefulSet ledgerlite-postgres

# Source: ledgerlite/templates/postgres-statefulset.yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: ledgerlite-postgres
  namespace: ledgerlite-dev
  labels:
    app.kubernetes.io/name: ledgerlite
    app.kubernetes.io/instance: ledgerlite
    app.kubernetes.io/component: postgres
    app.kubernetes.io/part-of: ledgerlite
spec:
  serviceName: ledgerlite-postgres
  replicas: 1
  selector:
    matchLabels:
      app.kubernetes.io/name: ledgerlite
      app.kubernetes.io/instance: ledgerlite
      app.kubernetes.io/component: postgres
  template:
    metadata:
      labels:
        app.kubernetes.io/name: ledgerlite
        app.kubernetes.io/instance: ledgerlite
        app.kubernetes.io/component: postgres
        app.kubernetes.io/part-of: ledgerlite
    spec:
      serviceAccountName: ledgerlite
      automountServiceAccountToken: false
      enableServiceLinks: false
      hostNetwork: false
      hostPID: false
      hostIPC: false
      securityContext:
        runAsNonRoot: true
        runAsUser: 70
        runAsGroup: 70
        fsGroup: 70
        seccompProfile:
          type: RuntimeDefault
      containers:
        - name: postgres
          image: "postgres:16-alpine"
          imagePullPolicy: Always
          ports:
            - name: postgres
              containerPort: 5432
              protocol: TCP
          env:
            - name: PGDATA
              value: /var/lib/postgresql/data/pgdata
            - name: POSTGRES_USER
              valueFrom:
                secretKeyRef:
                  name: ledgerlite-dev-db
                  key: POSTGRES_USER
            - name: POSTGRES_PASSWORD
              valueFrom:
                secretKeyRef:
                  name: ledgerlite-dev-db
                  key: POSTGRES_PASSWORD
            - name: POSTGRES_DB
              valueFrom:
                secretKeyRef:
                  name: ledgerlite-dev-db
                  key: POSTGRES_DB
          resources:
            requests:
              cpu: "50m"
              memory: "64Mi"
            limits:
              cpu: "250m"
              memory: "256Mi"
          securityContext:
            allowPrivilegeEscalation: false
            privileged: false
            readOnlyRootFilesystem: true
            runAsNonRoot: true
            runAsUser: 70
            runAsGroup: 70
            capabilities:
              drop:
                - ALL
            seccompProfile:
              type: RuntimeDefault
          startupProbe:
            tcpSocket:
              port: postgres
            periodSeconds: 5
            timeoutSeconds: 2
            failureThreshold: 30
          livenessProbe:
            tcpSocket:
              port: postgres
            periodSeconds: 10
            timeoutSeconds: 2
            failureThreshold: 3
          readinessProbe:
            tcpSocket:
              port: postgres
            periodSeconds: 10
            timeoutSeconds: 2
            failureThreshold: 3
          volumeMounts:
            - name: data
              mountPath: /var/lib/postgresql/data
            - name: run
              mountPath: /var/run/postgresql
            - name: tmp
              mountPath: /tmp
      volumes:
        - name: run
          emptyDir: {}
        - name: tmp
          emptyDir: {}
  volumeClaimTemplates:
    - metadata:
        name: data
        labels:
          app.kubernetes.io/name: ledgerlite
          app.kubernetes.io/instance: ledgerlite
          app.kubernetes.io/component: postgres
          app.kubernetes.io/part-of: ledgerlite
      spec:
        accessModes:
          - ReadWriteOnce
        resources:
          requests:
            storage: "1Gi"

CronJob ledgerlite-postgres-backup

# Source: ledgerlite/templates/backup-cronjob.yaml
apiVersion: batch/v1
kind: CronJob
metadata:
  name: ledgerlite-postgres-backup
  namespace: ledgerlite-dev
  labels:
    app.kubernetes.io/name: ledgerlite
    app.kubernetes.io/instance: ledgerlite
    app.kubernetes.io/component: backup
    app.kubernetes.io/part-of: ledgerlite
spec:
  schedule: "0 3 * * *"
  concurrencyPolicy: Forbid
  successfulJobsHistoryLimit: 1
  failedJobsHistoryLimit: 1
  jobTemplate:
    spec:
      template:
        metadata:
          labels:
            app.kubernetes.io/name: ledgerlite
            app.kubernetes.io/instance: ledgerlite
            app.kubernetes.io/component: backup
            app.kubernetes.io/part-of: ledgerlite
        spec:
          restartPolicy: Never
          serviceAccountName: ledgerlite
          automountServiceAccountToken: false
          enableServiceLinks: false
          hostNetwork: false
          hostPID: false
          hostIPC: false
          securityContext:
            runAsNonRoot: true
            runAsUser: 70
            runAsGroup: 70
            fsGroup: 70
            seccompProfile:
              type: RuntimeDefault
          containers:
            - name: backup
              image: "postgres:16-alpine"
              imagePullPolicy: Always
              command:
                - /bin/sh
                - -c
                - |
                  set -eu
                  ts=$(date -u +%Y%m%dT%H%M%SZ)
                  mkdir -p /backup
                  pg_dump --file="/backup/ledgerlite-${ts}.sql"
                  ls -1t /backup/ledgerlite-*.sql | awk 'NR>7' | while IFS= read -r old; do
                    rm -f "$old"
                  done
              env:
                - name: PGHOST
                  value: ledgerlite-postgres
                - name: PGUSER
                  valueFrom:
                    secretKeyRef:
                      name: ledgerlite-dev-db
                      key: POSTGRES_USER
                - name: PGPASSWORD
                  valueFrom:
                    secretKeyRef:
                      name: ledgerlite-dev-db
                      key: POSTGRES_PASSWORD
                - name: PGDATABASE
                  valueFrom:
                    secretKeyRef:
                      name: ledgerlite-dev-db
                      key: POSTGRES_DB
              resources:
                requests:
                  cpu: "50m"
                  memory: "64Mi"
                limits:
                  cpu: "250m"
                  memory: "256Mi"
              securityContext:
                allowPrivilegeEscalation: false
                privileged: false
                readOnlyRootFilesystem: true
                runAsNonRoot: true
                runAsUser: 70
                runAsGroup: 70
                capabilities:
                  drop:
                    - ALL
                seccompProfile:
                  type: RuntimeDefault
              startupProbe:
                exec:
                  command: ["pg_dump", "--version"]
                periodSeconds: 5
                timeoutSeconds: 5
                failureThreshold: 12
              livenessProbe:
                exec:
                  command: ["pg_dump", "--version"]
                periodSeconds: 20
                timeoutSeconds: 5
                failureThreshold: 3
              readinessProbe:
                exec:
                  command: ["pg_dump", "--version"]
                periodSeconds: 10
                timeoutSeconds: 5
                failureThreshold: 3
              volumeMounts:
                - name: backup
                  mountPath: /backup
                - name: tmp
                  mountPath: /tmp
          volumes:
            - name: backup
              persistentVolumeClaim:
                claimName: ledgerlite-postgres-backup
            - name: tmp
              emptyDir: {}

Ingress ledgerlite-api

# Source: ledgerlite/templates/ingress.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ledgerlite-api
  namespace: ledgerlite-dev
  labels:
    app.kubernetes.io/name: ledgerlite
    app.kubernetes.io/instance: ledgerlite
    app.kubernetes.io/component: api
    app.kubernetes.io/part-of: ledgerlite
  annotations:
    cert-manager.io/cluster-issuer: "letsencrypt-staging"
spec:
  ingressClassName: nginx
  tls:
    - hosts:
        - "ledgerlite.dev.example.com"
      secretName: ledgerlite-dev-tls
  rules:
    - host: "ledgerlite.dev.example.com"
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: ledgerlite-api
                port:
                  number: 8000

Job ledgerlite-migrate

# Source: ledgerlite/templates/migrate-job.yaml
apiVersion: batch/v1
kind: Job
metadata:
  name: ledgerlite-migrate
  namespace: ledgerlite-dev
  labels:
    app.kubernetes.io/name: ledgerlite
    app.kubernetes.io/instance: ledgerlite
    app.kubernetes.io/component: migrate
    app.kubernetes.io/part-of: ledgerlite
  annotations:
    helm.sh/hook: pre-install,pre-upgrade
    helm.sh/hook-weight: "-5"
    helm.sh/hook-delete-policy: before-hook-creation,hook-succeeded
spec:
  backoffLimit: 2
  ttlSecondsAfterFinished: 600
  template:
    metadata:
      labels:
        app.kubernetes.io/name: ledgerlite
        app.kubernetes.io/instance: ledgerlite
        app.kubernetes.io/component: migrate
        app.kubernetes.io/part-of: ledgerlite
    spec:
      restartPolicy: Never
      serviceAccountName: ledgerlite
      automountServiceAccountToken: false
      enableServiceLinks: false
      hostNetwork: false
      hostPID: false
      hostIPC: false
      securityContext:
        runAsNonRoot: true
        runAsUser: 10001
        runAsGroup: 10001
        fsGroup: 10001
        seccompProfile:
          type: RuntimeDefault
      containers:
        - name: migrate
          image: "ghcr.io/OWNER/ledgerlite:0.1.0"
          imagePullPolicy: Always
          command: ["alembic", "upgrade", "head"]
          env:
            - name: PYTHONDONTWRITEBYTECODE
              value: "1"
            - name: PYTHONUNBUFFERED
              value: "1"
            - name: DATABASE_URL
              valueFrom:
                secretKeyRef:
                  name: ledgerlite-dev-db
                  key: DATABASE_URL
          resources:
            requests:
              cpu: "50m"
              memory: "64Mi"
            limits:
              cpu: "250m"
              memory: "256Mi"
          securityContext:
            allowPrivilegeEscalation: false
            privileged: false
            readOnlyRootFilesystem: true
            runAsNonRoot: true
            runAsUser: 10001
            runAsGroup: 10001
            capabilities:
              drop:
                - ALL
            seccompProfile:
              type: RuntimeDefault
          startupProbe:
            exec:
              command: ["alembic", "--help"]
            periodSeconds: 5
            timeoutSeconds: 5
            failureThreshold: 12
          livenessProbe:
            exec:
              command: ["alembic", "--help"]
            periodSeconds: 10
            timeoutSeconds: 5
            failureThreshold: 3
          readinessProbe:
            exec:
              command: ["alembic", "--help"]
            periodSeconds: 10
            timeoutSeconds: 5
            failureThreshold: 3
          volumeMounts:
            - name: tmp
              mountPath: /tmp
      volumes:
        - name: tmp
          emptyDir: {}