hongbo-miao/hongbomiao.com

View on GitHub
kubernetes/argo-cd/applications/production-hm/airbyte/argo-cd-manifests/hm-airbyte-application.yaml

Summary

Maintainability
Test Coverage
# https://github.com/airbytehq/airbyte-platform/blob/main/charts/airbyte/values.yaml
---
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: hm-airbyte
  namespace: production-hm-argo-cd
  labels:
    app.kubernetes.io/name: hm-airbyte
spec:
  project: production-hm
  sources:
    - repoURL: https://airbytehq.github.io/helm-charts
      # https://artifacthub.io/packages/helm/airbyte/airbyte
      targetRevision: 0.350.0
      chart: airbyte
      helm:
        releaseName: hm-airbyte
        values: |
          # https://docs.airbyte.com/deploying-airbyte/on-kubernetes-via-helm
          # https://github.com/airbytehq/airbyte-platform/blob/main/charts/airbyte/values.yaml
          ---
          global:
            airbyteUrl: https://hm-airbyte.internal.hongbomiao.com
            serviceAccountName: airbyte-admin
            auth:
              instanceAdmin:
                firstName: Hongbo
                lastName:  Miao
                secretName: hm-airbyte-secret
                emailSecretKey: AIRBYTE_ADMIN_EMAIL
                passwordSecretKey: AIRBYTE_ADMIN_PASSWORD
            state:
              storage:
                type: S3
            database:
              type: external
              host: production-hm-airbyte-postgres.xxxxxxxxxxxx.us-west-2.rds.amazonaws.com
              port: 5432
              database: airbyte_db
              secretName: hm-airbyte-secret
              userSecretKey: POSTGRES_USER_NAME
              passwordSecretKey: POSTGRES_PASSWORD
            logs:
              accessKey:
                existingSecret: hm-airbyte-secret
                existingSecretKey: AWS_ACCESS_KEY_ID
              secretKey:
                existingSecret: hm-airbyte-secret
                existingSecretKey: AWS_SECRET_ACCESS_KEY
            storage:
              type: S3
              bucket:
                activityPayload: production-hm-airbyte
                log: production-hm-airbyte
                state: production-hm-airbyte
                workloadOutput: production-hm-airbyte
            minio:
              enabled: false
            jobs:
              kube:
                images:
                  # https://gallery.ecr.aws/docker/library/busybox
                  busybox: public.ecr.aws/docker/library/busybox:1.36.1
                  # https://gallery.ecr.aws/t2o0z5n2/socat
                  socat: public.ecr.aws/t2o0z5n2/socat:1.7.4.4-r0
                  # https://gallery.ecr.aws/groundcovercom/curl
                  curl: public.ecr.aws/groundcovercom/curl:8.6.0
              resources:
                requests:
                   cpu: 3000m
                   memory: 4Gi
                limits:
                   cpu: 4000m
                   memory: 8Gi
          serviceAccount:
            create: true
            name: airbyte-admin
          webapp:
            enabled: true
            resources:
              requests:
                cpu: 100m
                memory: 128Mi
              limits:
                cpu: 200m
                memory: 256Mi
          server:
            enabled: true
            extraEnv:
              - name: AWS_DEFAULT_REGION
                valueFrom:
                  secretKeyRef:
                    name: hm-airbyte-secret
                    key: AIRBYTE_LOG_S3_BUCKET_REGION
              - name: AWS_ACCESS_KEY_ID
                valueFrom:
                  secretKeyRef:
                    name: hm-airbyte-secret
                    key: AWS_ACCESS_KEY_ID
              - name: AWS_SECRET_ACCESS_KEY
                valueFrom:
                  secretKeyRef:
                    name: hm-airbyte-secret
                    key: AWS_SECRET_ACCESS_KEY
              - name: STATE_STORAGE_S3_ACCESS_KEY
                valueFrom:
                  secretKeyRef:
                    name: hm-airbyte-secret
                    key: AWS_ACCESS_KEY_ID
              - name: STATE_STORAGE_S3_SECRET_ACCESS_KEY
                valueFrom:
                  secretKeyRef:
                    name: hm-airbyte-secret
                    key: AWS_SECRET_ACCESS_KEY
              - name: STATE_STORAGE_S3_BUCKET_NAME
                valueFrom:
                  secretKeyRef:
                    name: hm-airbyte-secret
                    key: AIRBYTE_LOG_S3_BUCKET_NAME
              - name: STATE_STORAGE_S3_REGION
                valueFrom:
                  secretKeyRef:
                    name: hm-airbyte-secret
                    key: AIRBYTE_LOG_S3_BUCKET_REGION
            resources:
              requests:
                cpu: 500m
                memory: 2Gi
              limits:
                cpu: 1000m
                memory: 4Gi
          worker:
            enabled: true
            extraEnv:
              - name: AWS_DEFAULT_REGION
                valueFrom:
                  secretKeyRef:
                    name: hm-airbyte-secret
                    key: AIRBYTE_LOG_S3_BUCKET_REGION
              - name: AWS_ACCESS_KEY_ID
                valueFrom:
                  secretKeyRef:
                    name: hm-airbyte-secret
                    key: AWS_ACCESS_KEY_ID
              - name: AWS_SECRET_ACCESS_KEY
                valueFrom:
                  secretKeyRef:
                    name: hm-airbyte-secret
                    key: AWS_SECRET_ACCESS_KEY
              - name: STATE_STORAGE_S3_ACCESS_KEY
                valueFrom:
                  secretKeyRef:
                    name: hm-airbyte-secret
                    key: AWS_ACCESS_KEY_ID
              - name: STATE_STORAGE_S3_SECRET_ACCESS_KEY
                valueFrom:
                  secretKeyRef:
                    name: hm-airbyte-secret
                    key: AWS_SECRET_ACCESS_KEY
              - name: STATE_STORAGE_S3_BUCKET_NAME
                valueFrom:
                  secretKeyRef:
                    name: hm-airbyte-secret
                    key: AIRBYTE_LOG_S3_BUCKET_NAME
              - name: STATE_STORAGE_S3_REGION
                valueFrom:
                  secretKeyRef:
                    name: hm-airbyte-secret
                    key: AIRBYTE_LOG_S3_BUCKET_REGION
            resources:
              requests:
                cpu: 1000m
                memory: 1Gi
              limits:
                cpu: 2000m
                memory: 2Gi
          airbyte-bootloader:
            enabled: true
            resources:
              requests:
                cpu: 1000m
                memory: 512Mi
              limits:
                cpu: 2000m
                memory: 1Gi
          airbyte-api-server:
            enabled: false
          connector-builder-server:
            enabled: true
            resources:
              requests:
                cpu: 200m
                memory: 512Mi
              limits:
                cpu: 500m
                memory: 1Gi
          pod-sweeper:
            enabled: true
            resources:
              requests:
                cpu: 100m
                memory: 128Mi
              limits:
                cpu: 200m
                memory: 256Mi
          cron:
            enabled: true
            resources:
              requests:
                cpu: 100m
                memory: 512Mi
              limits:
                cpu: 200m
                memory: 1Gi
          temporal:
            enabled: true
            extraVolumes:
              - name: airbyte-config-map-volume
                configMap:
                  name: hm-airbyte-config-map
            extraVolumeMounts:
              - name: airbyte-config-map-volume
                subPath: amazon-rds-ca-global-bundle.pem
                mountPath: /etc/ssl/certs/amazon-rds-ca-global-bundle.pem
            extraEnv:
              # https://github.com/temporalio/docker-builds/blob/main/docker/auto-setup.sh
              # Ensure that the boolean values below are in string format
              - name: SKIP_DB_CREATE
                value: "true"
              - name: DBNAME
                value: temporal_db
              - name: VISIBILITY_DBNAME
                value: temporal_visibility_db
              - name: POSTGRES_TLS_ENABLED
                value: "true"
              - name: POSTGRES_TLS_DISABLE_HOST_VERIFICATION
                value: "false"
              - name: POSTGRES_TLS_CA_FILE
                value: /etc/ssl/certs/amazon-rds-ca-global-bundle.pem
            resources:
              requests:
                cpu: 100m
                memory: 256Mi
              limits:
                cpu: 200m
                memory: 512Mi
          postgresql:
            enabled: false
          externalDatabase:
            host: production-hm-airbyte-postgres.xxxxxxxxxxxx.us-west-2.rds.amazonaws.com
            port: 5432
            database: airbyte_db
            user: airbyte_user
            existingSecret: hm-airbyte-secret
            existingSecretPasswordKey: POSTGRES_PASSWORD
            jdbcUrl: jdbc:postgresql://production-hm-airbyte-postgres.xxxxxxxxxxxx.us-west-2.rds.amazonaws.com:5432/airbyte_db?ssl=true&sslmode=require
    - repoURL: git@github.com:hongbo-miao/hongbomiao.com.git
      targetRevision: HEAD
      path: kubernetes/argo-cd/applications/production-hm/airbyte/kubernetes-manifests
  destination:
    namespace: production-hm-airbyte
    server: https://kubernetes.default.svc
  syncPolicy:
    syncOptions:
      - ServerSideApply=true
    automated:
      prune: true