kubernetes/argo-cd/applications/production-hm/airbyte/argo-cd-manifests/hm-airbyte-application.yaml
# 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