gobblin-kubernetes/gobblin-service/mysql-cluster/deployment.yaml (92 lines of code) (raw):

# In the future, build the kubernetes cluster from the official docker account # Also ensure that proper tagging/versioning is done i.e. remove :latest tag and instead use the digest of the container apiVersion: apps/v1 kind: Deployment metadata: name: 'gaas-deployment' labels: app: gaas-deployment spec: selector: matchLabels: app: gaas replicas: 1 template: metadata: name: 'gaas' labels: app: gaas spec: volumes: - name: shared-jobs persistentVolumeClaim: claimName: shared-jobs-claim - name: flowconfig-templates configMap: name: flowconfig-templates - name: gaas-config configMap: name: gaas-config containers: - name: gobblin-service image: apache/gobblin:latest args: ["--mode", "gobblin-as-service", "--jvmopts", "-DmysqlCredentials.user=$(MYSQL_USERNAME) -DmysqlCredentials.password=$(MYSQL_PASSWORD) -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap"] env: - name: MYSQL_USERNAME valueFrom: secretKeyRef: name: mysql-credentials key: username - name: MYSQL_PASSWORD valueFrom: secretKeyRef: name: mysql-credentials key: password volumeMounts: - name: shared-jobs mountPath: /etc/gobblin-as-service/jobs - name: flowconfig-templates mountPath: /etc/templateCatalog - name: gaas-config mountPath: /home/gobblin/conf/gobblin-as-service/application.conf subPath: gaas-application.conf # dependency on mysql to be initialized before gaas can be initialized initContainers: - name: init-mysql image: busybox:1.28 command: ['sh', '-c', 'until nslookup mysql; do echo waiting for mysql; sleep 2; done;'] --- apiVersion: apps/v1 kind: Deployment metadata: name: gobblin-standalone-deployment labels: app: gobblin-standalone-deployment spec: selector: matchLabels: app: gobblin-standalone replicas: 1 template: metadata: name: 'gobblin-standalone' labels: app: gobblin-standalone spec: volumes: - name: shared-jobs persistentVolumeClaim: claimName: shared-jobs-claim - name: standalone-config configMap: name: standalone-config containers: - name: gobblin-standalone image: apache/gobblin:latest args: ["--mode", "standalone"] volumeMounts: - name: shared-jobs mountPath: /etc/gobblin-standalone/jobs - name: standalone-config mountPath: /home/gobblin/conf/standalone/application.conf subPath: standalone-application.conf env: - name: GOBBLIN_JOB_CONFIG_DIR value: /etc/gobblin-standalone/jobs