diff --git a/.env b/.env index dfb96db7ca3f..69b16926bba3 100644 --- a/.env +++ b/.env @@ -61,6 +61,7 @@ CONNECTOR_BUILDER_API_HOST=airbyte-connector-builder-server:80 WEBAPP_URL=http://localhost:8000/ # Although not present as an env var, required for webapp configuration. API_URL=/api/v1/ +CONNECTOR_BUILDER_API_URL=/connector-builder-api ### JOBS ### # Relevant to scaling. diff --git a/.github/workflows/publish-helm-charts.yml b/.github/workflows/publish-helm-charts.yml index b6f1540fbace..3ad583619da3 100644 --- a/.github/workflows/publish-helm-charts.yml +++ b/.github/workflows/publish-helm-charts.yml @@ -70,7 +70,7 @@ jobs: - name: "Helm package" shell: bash run: | - declare -a StringArray=("airbyte-bootloader" "airbyte-server" "airbyte-temporal" "airbyte-webapp" "airbyte-pod-sweeper" "airbyte-worker" "airbyte-metrics" "airbyte-cron") + declare -a StringArray=("airbyte-bootloader" "airbyte-server" "airbyte-temporal" "airbyte-webapp" "airbyte-pod-sweeper" "airbyte-worker" "airbyte-metrics" "airbyte-cron" "airbyte-connector-builder-server") for val in ${StringArray[@]}; do cd ./airbyte/charts/${val} && helm dep update && cd $GITHUB_WORKSPACE sed -i -E 's/version: \"[0-9]+\.[0-9]+\.[0-9]+\"/version: \"${{ needs.generate-semantic-version.outputs.next-version }}\"/' ./airbyte/charts/${val}/Chart.yaml diff --git a/airbyte-proxy/Dockerfile b/airbyte-proxy/Dockerfile index 873312fa85c5..942745586b58 100644 --- a/airbyte-proxy/Dockerfile +++ b/airbyte-proxy/Dockerfile @@ -9,9 +9,10 @@ ENV VERSION ${VERSION} RUN apt-get update -y && apt-get install -y apache2-utils && rm -rf /var/lib/apt/lists/* -# This variable can be used to update the destintion containers that Nginx proxies to. +# This variable can be used to update the destination containers that Nginx proxies to. ENV PROXY_PASS_WEB "http://airbyte-webapp:80" ENV PROXY_PASS_API "http://airbyte-server:8001" +ENV CONNECTOR_BUILDER_SERVER_API "http://airbyte-connector-builder-server:80" # Nginx config file WORKDIR / diff --git a/airbyte-proxy/nginx-auth.conf.template b/airbyte-proxy/nginx-auth.conf.template index 9dcf9804cd4a..2a6f279329be 100644 --- a/airbyte-proxy/nginx-auth.conf.template +++ b/airbyte-proxy/nginx-auth.conf.template @@ -42,4 +42,25 @@ http { } } } + + server { + listen 8003; + + location / { + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + + auth_basic "Welcome to Airbyte"; + auth_basic_user_file /etc/nginx/.htpasswd; + + proxy_pass "${CONNECTOR_BUILDER_SERVER_API}"; + + error_page 401 /etc/nginx/401.html; + location ~ (401.html)$ { + alias /etc/nginx/$1; + auth_basic off; + } + } + } } diff --git a/airbyte-proxy/nginx-no-auth.conf.template b/airbyte-proxy/nginx-no-auth.conf.template index 577dd7ef7f11..ab3a2e8d9e67 100644 --- a/airbyte-proxy/nginx-no-auth.conf.template +++ b/airbyte-proxy/nginx-no-auth.conf.template @@ -24,4 +24,16 @@ http { proxy_pass "${PROXY_PASS_API}"; } } + + server { + listen 8003; + + location / { + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + + proxy_pass "${CONNECTOR_BUILDER_SERVER_API}"; + } + } } diff --git a/airbyte-proxy/run.sh b/airbyte-proxy/run.sh index afa840adb70e..032c60e4996c 100644 --- a/airbyte-proxy/run.sh +++ b/airbyte-proxy/run.sh @@ -16,7 +16,7 @@ else TEMPLATE_PATH="/etc/nginx/templates/nginx-auth.conf.template" fi -envsubst '${PROXY_PASS_WEB} ${PROXY_PASS_API} ${PROXY_PASS_RESOLVER}' < $TEMPLATE_PATH > /etc/nginx/nginx.conf +envsubst '${PROXY_PASS_WEB} ${PROXY_PASS_API} ${CONNECTOR_BUILDER_SERVER_API} ${PROXY_PASS_RESOLVER}' < $TEMPLATE_PATH > /etc/nginx/nginx.conf echo "starting nginx..." nginx -v diff --git a/airbyte-proxy/test.sh b/airbyte-proxy/test.sh index 6d26885912e7..4abec191f4f8 100755 --- a/airbyte-proxy/test.sh +++ b/airbyte-proxy/test.sh @@ -11,7 +11,7 @@ VERSION="${VERSION:-dev}" # defaults to "dev", otherwise it is set by environmen echo "testing with proxy container airbyte/proxy:$VERSION" function start_container () { - CMD="docker run -d -p $PORT:8000 --env BASIC_AUTH_USERNAME=$1 --env BASIC_AUTH_PASSWORD=$2 --env PROXY_PASS_WEB=http://localhost --env PROXY_PASS_API=http://localhost --name $NAME airbyte/proxy:$VERSION" + CMD="docker run -d -p $PORT:8000 --env BASIC_AUTH_USERNAME=$1 --env BASIC_AUTH_PASSWORD=$2 --env PROXY_PASS_WEB=http://localhost --env PROXY_PASS_API=http://localhost --env CONNECTOR_BUILDER_SERVER_API=http://localhost --name $NAME airbyte/proxy:$VERSION" echo $CMD eval $CMD wait_for_docker; diff --git a/airbyte-webapp/.env b/airbyte-webapp/.env index b6cf64f3beaf..4e35f5bc0deb 100644 --- a/airbyte-webapp/.env +++ b/airbyte-webapp/.env @@ -3,4 +3,3 @@ REACT_APP_FULL_STORY_ORG=13AXQ4 REACT_APP_SENTRY_DSN= REACT_APP_INTERCOM_APP_ID=nj1oam7s REACT_APP_OSANO=16A0CTTE7vE8m1Qif/67beec9b-e563-4736-bdb4-4fe4adc39d48 -REACT_APP_CONNECTOR_BUILDER_API=/connector-builder-api/ diff --git a/airbyte-webapp/nginx/default.conf.template b/airbyte-webapp/nginx/default.conf.template index 25de5efe4ad3..ee2c2271faf1 100644 --- a/airbyte-webapp/nginx/default.conf.template +++ b/airbyte-webapp/nginx/default.conf.template @@ -25,6 +25,7 @@ server { window.TRACKING_STRATEGY = "$TRACKING_STRATEGY"; window.AIRBYTE_VERSION = "$AIRBYTE_VERSION"; window.API_URL = "$API_URL"; + window.CONNECTOR_BUILDER_API_URL = "$CONNECTOR_BUILDER_API_URL"; '; sub_filter_once on; } diff --git a/airbyte-webapp/src/config/configProviders.ts b/airbyte-webapp/src/config/configProviders.ts index 84d846d7699f..8fcdf4887c97 100644 --- a/airbyte-webapp/src/config/configProviders.ts +++ b/airbyte-webapp/src/config/configProviders.ts @@ -11,6 +11,7 @@ const windowConfigProvider: ConfigProvider = async () => { token: window.SEGMENT_TOKEN, }, apiUrl: window.API_URL, + connectorBuilderApiUrl: window.CONNECTOR_BUILDER_API_URL, version: window.AIRBYTE_VERSION, // cloud only start // TODO: remove when infra team supports proper webapp building @@ -22,7 +23,6 @@ const windowConfigProvider: ConfigProvider = async () => { const envConfigProvider: ConfigProvider = async () => { return { apiUrl: process.env.REACT_APP_API_URL, - connectorBuilderUrl: process.env.REACT_APP_CONNECTOR_BUILDER_API, integrationUrl: process.env.REACT_APP_INTEGRATION_DOCS_URLS, segment: { token: process.env.REACT_APP_SEGMENT_TOKEN, diff --git a/airbyte-webapp/src/config/types.ts b/airbyte-webapp/src/config/types.ts index 62a0ab434e33..0a2b8e3f75b0 100644 --- a/airbyte-webapp/src/config/types.ts +++ b/airbyte-webapp/src/config/types.ts @@ -3,6 +3,7 @@ declare global { TRACKING_STRATEGY?: string; AIRBYTE_VERSION?: string; API_URL?: string; + CONNECTOR_BUILDER_API_URL?: string; CLOUD?: string; REACT_APP_DATADOG_APPLICATION_ID: string; REACT_APP_DATADOG_CLIENT_TOKEN: string; diff --git a/charts/airbyte-connector-builder-server/.gitignore b/charts/airbyte-connector-builder-server/.gitignore new file mode 100644 index 000000000000..88e91e8a8f34 --- /dev/null +++ b/charts/airbyte-connector-builder-server/.gitignore @@ -0,0 +1,2 @@ +# Charts are downloaded at install time with `helm dep build`. +charts diff --git a/charts/airbyte-connector-builder-server/Chart.lock b/charts/airbyte-connector-builder-server/Chart.lock new file mode 100644 index 000000000000..746fb41b3a91 --- /dev/null +++ b/charts/airbyte-connector-builder-server/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: https://charts.bitnami.com/bitnami + version: 1.17.1 +digest: sha256:dacc73770a5640c011e067ff8840ddf89631fc19016c8d0a9e5ea160e7da8690 +generated: "2022-10-17T18:35:15.123937677Z" diff --git a/charts/airbyte-connector-builder-server/Chart.yaml b/charts/airbyte-connector-builder-server/Chart.yaml new file mode 100644 index 000000000000..50c5a229d54a --- /dev/null +++ b/charts/airbyte-connector-builder-server/Chart.yaml @@ -0,0 +1,31 @@ +apiVersion: v2 +name: connector-builder-server +description: Helm chart to deploy airbyte-connector-builder-server + +# A chart can be either an 'application' or a 'library' chart. +# +# Application charts are a collection of templates that can be packaged into versioned archives +# to be deployed. +# +# Library charts provide useful utilities or functions for the chart developer. They're included as +# a dependency of application charts to inject those utilities and functions into the rendering +# pipeline. Library charts do not define any templates and therefore cannot be deployed. +type: application + +# This is the chart version. This version number should be incremented each time you make changes +# to the chart and its templates, including the app version. +# Versions are expected to follow Semantic Versioning (https://semver.org/) +version: "0.40.46" + +# This is the version number of the application being deployed. This version number should be +# incremented each time you make changes to the application. Versions are not expected to +# follow Semantic Versioning. They should reflect the version the application is using. +# It is recommended to use it with quotes. +appVersion: "0.40.21" + +dependencies: + - name: common + repository: https://charts.bitnami.com/bitnami + tags: + - bitnami-common + version: 1.x.x diff --git a/charts/airbyte-connector-builder-server/README.md b/charts/airbyte-connector-builder-server/README.md new file mode 100644 index 000000000000..1cf47631d75e --- /dev/null +++ b/charts/airbyte-connector-builder-server/README.md @@ -0,0 +1,79 @@ +# server + +![Version: 0.39.36](https://img.shields.io/badge/Version-0.39.36-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.40.4](https://img.shields.io/badge/AppVersion-0.40.4-informational?style=flat-square) + +Helm chart to deploy airbyte-server + +## Requirements + +| Repository | Name | Version | +|------------|------|---------| +| https://charts.bitnami.com/bitnami | common | 1.x.x | + +## Values + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| affinity | object | `{}` | | +| containerSecurityContext | object | `{}` | | +| enabled | bool | `true` | | +| env_vars | object | `{}` | | +| extraContainers | list | `[]` | | +| extraEnv | list | `[]` | | +| extraInitContainers | list | `[]` | | +| extraVolumeMounts | list | `[]` | | +| extraVolumes | list | `[]` | | +| global.configMapName | string | `""` | | +| global.credVolumeOverride | string | `""` | | +| global.database.host | string | `"example.com"` | | +| global.database.port | string | `"5432"` | | +| global.database.secretName | string | `""` | | +| global.database.secretValue | string | `""` | | +| global.deploymentMode | string | `"oss"` | | +| global.extraContainers | list | `[]` | | +| global.logs.accessKey.existingSecret | string | `""` | | +| global.logs.accessKey.existingSecretKey | string | `""` | | +| global.logs.accessKey.password | string | `"minio"` | | +| global.logs.externalMinio.enabled | bool | `false` | | +| global.logs.externalMinio.host | string | `"localhost"` | | +| global.logs.externalMinio.port | int | `9000` | | +| global.logs.gcs.bucket | string | `""` | | +| global.logs.gcs.credentials | string | `""` | | +| global.logs.gcs.credentialsJson | string | `""` | | +| global.logs.minio.enabled | bool | `true` | | +| global.logs.s3.bucket | string | `"airbyte-dev-logs"` | | +| global.logs.s3.bucketRegion | string | `""` | | +| global.logs.s3.enabled | bool | `false` | | +| global.logs.secretKey.existingSecret | string | `""` | | +| global.logs.secretKey.existingSecretKey | string | `""` | | +| global.logs.secretKey.password | string | `"minio123"` | | +| global.secretName | string | `""` | | +| global.serviceAccountName | string | `"placeholderServiceAccount"` | | +| image.pullPolicy | string | `"IfNotPresent"` | | +| image.repository | string | `"airbyte/server"` | | +| livenessProbe.enabled | bool | `true` | | +| livenessProbe.failureThreshold | int | `3` | | +| livenessProbe.initialDelaySeconds | int | `30` | | +| livenessProbe.periodSeconds | int | `10` | | +| livenessProbe.successThreshold | int | `1` | | +| livenessProbe.timeoutSeconds | int | `1` | | +| log.level | string | `"INFO"` | | +| nodeSelector | object | `{}` | | +| podAnnotations | object | `{}` | | +| readinessProbe.enabled | bool | `true` | | +| readinessProbe.failureThreshold | int | `3` | | +| readinessProbe.initialDelaySeconds | int | `10` | | +| readinessProbe.periodSeconds | int | `10` | | +| readinessProbe.successThreshold | int | `1` | | +| readinessProbe.timeoutSeconds | int | `1` | | +| replicaCount | int | `1` | | +| resources.limits | object | `{}` | | +| resources.requests | object | `{}` | | +| secrets | object | `{}` | | +| service.annotations | object | `{}` | | +| service.port | int | `8001` | | +| service.type | string | `"ClusterIP"` | | +| tolerations | list | `[]` | | + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.11.0](https://github.com/norwoodj/helm-docs/releases/v1.11.0) diff --git a/charts/airbyte-connector-builder-server/templates/_helpers.tpl b/charts/airbyte-connector-builder-server/templates/_helpers.tpl new file mode 100644 index 000000000000..e34859a9d375 --- /dev/null +++ b/charts/airbyte-connector-builder-server/templates/_helpers.tpl @@ -0,0 +1,73 @@ +{{/* +Expand the name of the chart. +*/}} +{{- define "airbyte.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +*/}} +{{- define "airbyte.fullname" -}} +{{- if .Values.fullnameOverride }} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- $name := default .Chart.Name .Values.nameOverride }} +{{- if contains $name .Release.Name }} +{{- .Release.Name | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} +{{- end }} +{{- end }} +{{- end }} + +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "airbyte.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Common labels +*/}} +{{- define "airbyte.labels" -}} +helm.sh/chart: {{ include "airbyte.chart" . }} +{{ include "airbyte.selectorLabels" . }} +{{- if .Chart.AppVersion }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +{{- end }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- end }} + +{{/* +Selector labels +*/}} +{{- define "airbyte.selectorLabels" -}} +app.kubernetes.io/name: {{ include "airbyte.name" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +{{- end }} + +{{/* +Define db secret +*/}} + +{{- define "database.secret.name" -}} +{{- printf "%s-postgresql" .Release.Name }} +{{- end }} + +{{/* +Define imageTag +*/}} + +{{- define "connectorBuilderServer.imageTag" -}} +{{- if .Values.image.tag }} + {{- printf "%s" .Values.image.tag }} +{{- else if ((.Values.global.image).tag) }} + {{- printf "%s" .Values.global.image.tag }} +{{- else }} + {{- printf "%s" .Chart.AppVersion }} +{{- end }} +{{- end }} \ No newline at end of file diff --git a/charts/airbyte-connector-builder-server/templates/deployment.yaml b/charts/airbyte-connector-builder-server/templates/deployment.yaml new file mode 100644 index 000000000000..9d3cd3777e02 --- /dev/null +++ b/charts/airbyte-connector-builder-server/templates/deployment.yaml @@ -0,0 +1,131 @@ +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "common.names.fullname" . }} + labels: + {{- include "airbyte.labels" . | nindent 4 }} +spec: + replicas: {{ .Values.replicaCount }} + selector: + matchLabels: + {{- include "airbyte.selectorLabels" . | nindent 6 }} + strategy: + type: Recreate # Needed due to volume claims + template: + metadata: + labels: + {{- include "airbyte.selectorLabels" . | nindent 8 }} + {{- if .Values.podAnnotations }} + annotations: + {{- include "common.tplvalues.render" (dict "value" .Values.podAnnotations "context" $) | nindent 8 }} + {{- end }} + spec: + serviceAccountName: {{ .Values.global.serviceAccountName }} + {{- if .Values.global.imagePullSecrets }} + imagePullSecrets: + {{- range .Values.global.imagePullSecrets }} + {{- printf "- name: %s" .name | nindent 8 }} + {{- end }} + {{- end }} + {{- if .Values.nodeSelector }} + nodeSelector: {{- include "common.tplvalues.render" (dict "value" .Values.nodeSelector "context" $) | nindent 8 }} + {{- end }} + {{- if .Values.tolerations }} + tolerations: {{- include "common.tplvalues.render" (dict "value" .Values.tolerations "context" $) | nindent 8 }} + {{- end }} + {{- if .Values.affinity }} + affinity: {{- include "common.tplvalues.render" (dict "value" .Values.affinity "context" $) | nindent 8 }} + {{- end }} + {{- if .Values.extraInitContainers }} + initContainers: + {{- toYaml .Values.extraInitContainers | nindent 6 }} + {{- end }} + containers: + - name: airbyte-server-container + image: {{ printf "%s:%s" .Values.image.repository (include "connectorBuilderServer.imageTag" .) }} + imagePullPolicy: "{{ .Values.image.pullPolicy }}" + env: + {{- if eq .Values.global.deploymentMode "oss" }} + - name: AIRBYTE_VERSION + valueFrom: + configMapKeyRef: + name: {{ .Release.Name }}-airbyte-env + key: AIRBYTE_VERSION + {{- end }} + + # Values from secret + {{- if .Values.secrets }} + {{- range $k, $v := .Values.secrets }} + - name: {{ $k }} + valueFrom: + secretKeyRef: + name: server-secrets + key: {{ $k }} + {{- end }} + {{- end }} + + # Values from env + {{- if .Values.env_vars }} + {{- range $k, $v := mergeOverwrite .Values.env_vars .Values.global.env_vars }} + - name: {{ $k }} + value: {{ $v | quote }} + {{- end }} + {{- end }} + + # Values from extraEnv for more compability(if you want to use external secret source or other stuff) + {{- if .Values.extraEnv }} + {{- toYaml .Values.extraEnv | nindent 8 }} + {{- end }} + + # TODO: add a health check endpoint to connector builder server + # {{- if .Values.livenessProbe.enabled }} + # livenessProbe: + # httpGet: + # path: /api/v1/health + # port: http + # initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds }} + # periodSeconds: {{ .Values.livenessProbe.periodSeconds }} + # timeoutSeconds: {{ .Values.livenessProbe.timeoutSeconds }} + # successThreshold: {{ .Values.livenessProbe.successThreshold }} + # failureThreshold: {{ .Values.livenessProbe.failureThreshold }} + # {{- end }} + # {{- if .Values.readinessProbe.enabled }} + # readinessProbe: + # httpGet: + # path: /api/v1/health + # port: http + # initialDelaySeconds: {{ .Values.readinessProbe.initialDelaySeconds }} + # periodSeconds: {{ .Values.readinessProbe.periodSeconds }} + # timeoutSeconds: {{ .Values.readinessProbe.timeoutSeconds }} + # successThreshold: {{ .Values.readinessProbe.successThreshold }} + # failureThreshold: {{ .Values.readinessProbe.failureThreshold }} + # {{- end }} + + ports: + - name: http + containerPort: 80 + protocol: TCP + {{- if .Values.resources }} + resources: {{- toYaml .Values.resources | nindent 10 }} + {{- end }} + {{- if .Values.containerSecurityContext }} + securityContext: {{- toYaml .Values.containerSecurityContext | nindent 10 }} + {{- end }} + volumeMounts: + {{- if .Values.extraVolumeMounts }} + {{ toYaml .Values.extraVolumeMounts | nindent 8 }} + {{- end }} + {{- if .Values.global.extraVolumeMounts }} + {{ toYaml .Values.global.extraVolumeMounts | nindent 8 }} + {{- end }} + {{- if .Values.extraContainers }} + {{ toYaml .Values.extraContainers | nindent 6 }} + {{- end }} + {{- if .Values.global.extraContainers }} + {{ toYaml .Values.global.extraContainers | nindent 6 }} + {{- end }} + volumes: + {{- if .Values.extraVolumes }} +{{ toYaml .Values.extraVolumes | nindent 6 }} + {{- end }} diff --git a/charts/airbyte-connector-builder-server/templates/secrets.yaml b/charts/airbyte-connector-builder-server/templates/secrets.yaml new file mode 100644 index 000000000000..e00ae6babbce --- /dev/null +++ b/charts/airbyte-connector-builder-server/templates/secrets.yaml @@ -0,0 +1,17 @@ +# Create secrets only for the local deployment +{{- if .Values.secrets }} +apiVersion: v1 +kind: Secret +metadata: + name: connector-builder-server-secrets + labels: + {{- include "airbyte.labels" . | nindent 4 }} + annotations: + helm.sh/hook: pre-install,pre-upgrade + helm.sh/hook-weight: "-1" +type: Opaque +data: + {{- range $k, $v := mergeOverwrite .Values.secrets .Values.global.secrets }} + {{ $k }}: {{ if $v }}{{ $v | b64enc }} {{else}}""{{end}} + {{- end }} +{{- end }} diff --git a/charts/airbyte-connector-builder-server/templates/service.yaml b/charts/airbyte-connector-builder-server/templates/service.yaml new file mode 100644 index 000000000000..251e2394fd40 --- /dev/null +++ b/charts/airbyte-connector-builder-server/templates/service.yaml @@ -0,0 +1,20 @@ +--- +apiVersion: v1 +kind: Service +metadata: + name: {{.Release.Name }}-airbyte-connector-builder-server-svc + {{- with .Values.service.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} + labels: + {{- include "airbyte.labels" . | nindent 4 }} +spec: + type: {{ .Values.service.type }} + ports: + - port: {{ .Values.service.port }} + targetPort: http + protocol: TCP + name: http + selector: + {{- include "airbyte.selectorLabels" . | nindent 4 }} diff --git a/charts/airbyte-connector-builder-server/values.yaml b/charts/airbyte-connector-builder-server/values.yaml new file mode 100644 index 000000000000..0f385a1d7759 --- /dev/null +++ b/charts/airbyte-connector-builder-server/values.yaml @@ -0,0 +1,178 @@ +global: + serviceAccountName: placeholderServiceAccount + deploymentMode: oss + configMapName: "" + secretName: "" + credVolumeOverride: "" + extraContainers: [] + database: + secretName: "" + secretValue: "" + host: "example.com" + port: "5432" + +enabled: true +## replicaCount Number of server replicas +replicaCount: 1 + +## image.repository The repository to use for the airbyte server image. +## image.pullPolicy the pull policy to use for the airbyte server image +## image.tag The airbyte server image tag. Defaults to the chart's AppVersion +image: + repository: airbyte/connector-builder-server + pullPolicy: IfNotPresent + +## podAnnotations [object] Add extra annotations to the server pod +## +podAnnotations: {} + +## containerSecurityContext Security context for the container +## Examples: +## containerSecurityContext: +## runAsNonRoot: true +## runAsUser: 1000 +## readOnlyRootFilesystem: true +containerSecurityContext: {} + +## Configure extra options for the server containers' liveness and readiness probes +## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes +## livenessProbe.enabled Enable livenessProbe on the server +## livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe +## livenessProbe.periodSeconds Period seconds for livenessProbe +## livenessProbe.timeoutSeconds Timeout seconds for livenessProbe +## livenessProbe.failureThreshold Failure threshold for livenessProbe +## livenessProbe.successThreshold Success threshold for livenessProbe +## +livenessProbe: + enabled: true + initialDelaySeconds: 30 + periodSeconds: 10 + timeoutSeconds: 1 + failureThreshold: 3 + successThreshold: 1 + +## readinessProbe.enabled Enable readinessProbe on the server +## readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe +## readinessProbe.periodSeconds Period seconds for readinessProbe +## readinessProbe.timeoutSeconds Timeout seconds for readinessProbe +## readinessProbe.failureThreshold Failure threshold for readinessProbe +## readinessProbe.successThreshold Success threshold for readinessProbe +## +readinessProbe: + enabled: true + initialDelaySeconds: 10 + periodSeconds: 10 + timeoutSeconds: 1 + failureThreshold: 3 + successThreshold: 1 + +## Server app resource requests and limits +## ref: http://kubernetes.io/docs/user-guide/compute-resources/ +## We usually recommend not to specify default resources and to leave this as a conscious +## choice for the user. This also increases chances charts run on environments with little +## resources, such as Minikube. If you do want to specify resources, uncomment the following +## lines, adjust them as necessary, and remove the curly braces after 'resources:'. +## resources.limits [object] The resources limits for the server container +## resources.requests [object] The requested resources for the server container +resources: + ## Example: + ## limits: + ## cpu: 200m + ## memory: 1Gi + limits: {} + ## Examples: + ## requests: + ## memory: 256Mi + ## cpu: 250m + requests: {} + +## service.type The service type to use for the API server +## service.port The service port to expose the API server on +service: + type: ClusterIP + port: 8003 + annotations: {} + +## nodeSelector [object] Node labels for pod assignment +## Ref: https://kubernetes.io/docs/user-guide/node-selection/ +## +nodeSelector: {} + +## tolerations [array] Tolerations for server pod assignment. +## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ +## +tolerations: [] + +## affinity [object] Affinity and anti-affinity for server pod assignment. +## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity +## +affinity: {} + +## log.level The log level to log at +log: + level: "INFO" + +## extraVolumeMounts [array] Additional volumeMounts for server container(s). +## Examples (when using `containerSecurityContext.readOnlyRootFilesystem=true`): +## extraVolumeMounts: +## - name: tmpdir +## mountPath: /tmp +## +extraVolumeMounts: [] + +## extraVolumes [array] Additional volumes for server pod(s). +## Examples (when using `containerSecurityContext.readOnlyRootFilesystem=true`): +## extraVolumes: +## - name: tmpdir +## emptyDir: {} +## +extraVolumes: [] + +## extraContainer [array] Additional container for server pod(s) +## Example: +# extraContainers: +# - name: otel_collector +# image: somerepo/someimage:sometag +# args: [ +# "--important-args" +# ] +# ports: +# - containerPort: 443 +# volumeMounts: +# - name: volumeMountCool +# mountPath: /some/path +# readOnly: true +extraContainers: [] + +## extraInitContainers [array] Additional init containers for server pod(s) +## Example: +# extraInitContainers: +# - name: sleepy +# image: alpine +# command: ['sleep', '60'] + +extraInitContainers: [] + +## extraEnv [array] Supply extra env variables to main container using full notation +## Example: (With default env vars and values taken from generated config map) +# extraEnv: +# - name: AIRBYTE_VERSION +# valueFrom: +# configMapKeyRef: +# name: airbyte-env +# key: AIRBYTE_VERSION +## +extraEnv: [] +## secrets [object] Supply additional secrets to container +## Example: +## secrets: +## DATABASE_PASSWORD: strong-password +## DATABASE_USER: my-db-user +secrets: {} + +## env_vars [object] Supply extra env variables to main container using simplified notation +## Example: +# env_vars: +# AIRBYTE_VERSION: 0.40.4 + +env_vars: {} diff --git a/charts/airbyte-server/Chart.yaml b/charts/airbyte-server/Chart.yaml index 1651052585bd..e24b0f21b707 100644 --- a/charts/airbyte-server/Chart.yaml +++ b/charts/airbyte-server/Chart.yaml @@ -15,7 +15,7 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 0.45.3 +version: "0.40.46" # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to diff --git a/charts/airbyte-webapp/templates/deployment.yaml b/charts/airbyte-webapp/templates/deployment.yaml index 52532747602e..71b2b4b981d7 100644 --- a/charts/airbyte-webapp/templates/deployment.yaml +++ b/charts/airbyte-webapp/templates/deployment.yaml @@ -55,6 +55,11 @@ spec: configMapKeyRef: name: {{ .Release.Name }}-airbyte-env key: API_URL + - name: CONNECTOR_BUILDER_API_URL + valueFrom: + configMapKeyRef: + name: {{ .Release.Name }}-airbyte-env + key: CONNECTOR_BUILDER_API_URL - name: TRACKING_STRATEGY valueFrom: configMapKeyRef: @@ -65,6 +70,11 @@ spec: configMapKeyRef: name: {{ .Release.Name }}-airbyte-env key: INTERNAL_API_HOST + - name: CONNECTOR_BUILDER_API_HOST + valueFrom: + configMapKeyRef: + name: {{ .Release.Name }}-airbyte-env + key: CONNECTOR_BUILDER_API_HOST {{- end }} # Values from secret {{- if .Values.secrets }} diff --git a/charts/airbyte/Chart.yaml b/charts/airbyte/Chart.yaml index 40079a15f0be..3931c40f8281 100644 --- a/charts/airbyte/Chart.yaml +++ b/charts/airbyte/Chart.yaml @@ -17,7 +17,6 @@ type: application # Versions are expected to follow Semantic Versioning (https://semver.org/) version: 0.40.46 - # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to # follow Semantic Versioning. They should reflect the version the application is using. @@ -59,7 +58,10 @@ dependencies: repository: "https://airbytehq.github.io/helm-charts/" version: 0.40.46 - condition: cron.enabled - name: cron + name: cron + repository: "https://airbytehq.github.io/helm-charts/" + version: 0.40.46 + - condition: connector-builder-server.enabled + name: connector-builder-server repository: "https://airbytehq.github.io/helm-charts/" version: 0.40.46 - diff --git a/charts/airbyte/Chart.yaml.test b/charts/airbyte/Chart.yaml.test index 3e3861396681..d4643cc7e72e 100644 --- a/charts/airbyte/Chart.yaml.test +++ b/charts/airbyte/Chart.yaml.test @@ -65,3 +65,7 @@ dependencies: name: cron repository: "file://../airbyte-cron" version: "*" + - condition: connector-builder-server.enabled + name: connector-builder-server + repository: "file://../airbyte-connector-builder-server" + version: "*" diff --git a/charts/airbyte/templates/env-configmap.yaml b/charts/airbyte/templates/env-configmap.yaml index 83f4115d184f..87ab69d90bed 100644 --- a/charts/airbyte/templates/env-configmap.yaml +++ b/charts/airbyte/templates/env-configmap.yaml @@ -11,6 +11,7 @@ metadata: data: AIRBYTE_VERSION: {{ .Values.version | default .Chart.AppVersion }} API_URL: {{ .Values.webapp.api.url }} + CONNECTOR_BUILDER_API_URL: {{ .Values.webapp.connectorBuilderServer.url | quote }} CONFIG_ROOT: /configs CONFIGS_DATABASE_MINIMUM_FLYWAY_MIGRATION_VERSION: "0.35.15.001" DATA_DOCKER_MOUNT: airbyte_data @@ -22,6 +23,7 @@ data: GCS_LOG_BUCKET: {{ .Values.global.logs.gcs.bucket | quote }} GOOGLE_APPLICATION_CREDENTIALS: {{ include "airbyte.gcpLogCredentialsPath" . | quote }} INTERNAL_API_HOST: {{ .Release.Name }}-airbyte-server-svc:{{ .Values.server.service.port }} + CONNECTOR_BUILDER_API_HOST: {{ .Release.Name }}-airbyte-connector-builder-server-svc:{{ .Values.connectorBuilderServer.service.port }} {{- if $.Values.global.jobs.kube.annotations }} JOB_KUBE_ANNOTATIONS: {{ $.Values.global.jobs.kube.annotations | include "airbyte.flattenMap" | quote }} {{- end }} diff --git a/charts/airbyte/values.yaml b/charts/airbyte/values.yaml index 1c5ec6ccbff0..d4dbda991b4f 100644 --- a/charts/airbyte/values.yaml +++ b/charts/airbyte/values.yaml @@ -4,14 +4,11 @@ ## global -- Global params that are overwritten with umbrella chart global: - - ## serviceAccountName -- Service Account name override serviceAccountName: &service-account-name "airbyte-admin" ## deploymentMode -- Deployment mode, whether or not render the default env vars and volumes in deployment spec deploymentMode: "oss" - ## database [object] -- Object used to overrite database configuration(to use external DB) ## database.secretName -- secret name where DB creds are stored ## database.secretValue -- secret value for database password @@ -285,12 +282,13 @@ webapp: ## webapp.api.url The webapp API url. api: url: /api/v1/ + connectorBuilderServer: + url: /connector-builder-api ## webapp.fullstory.enabled Whether or not to enable fullstory fullstory: enabled: false - ## webapp.extraVolumeMounts [array] Additional volumeMounts for webapp container(s). ## Examples (when using `webapp.containerSecurityContext.readOnlyRootFilesystem=true`): ## extraVolumeMounts: @@ -383,10 +381,6 @@ webapp: ## DATABASE_PORT: 5432 env_vars: {} - - - - ## @section Pod Sweeper parameters pod-sweeper: @@ -591,8 +585,6 @@ server: log: level: "INFO" - - ## server.extraVolumeMounts [array] Additional volumeMounts for server container(s). ## Examples (when using `server.containerSecurityContext.readOnlyRootFilesystem=true`): ## extraVolumeMounts: @@ -1234,7 +1226,6 @@ minio: rootUser: minio rootPassword: minio123 - ## @section cron parameters cron: @@ -1332,8 +1323,6 @@ cron: log: level: "INFO" - - ## cron.extraVolumeMounts [array] Additional volumeMounts for cron container(s). ## Examples (when using `cron.containerSecurityContext.readOnlyRootFilesystem=true`): ## extraVolumeMounts: @@ -1417,4 +1406,9 @@ cron: ## env_vars: ## DATABASE_HOST: airbyte-db ## DATABASE_PORT: 5432 - env_vars: {} \ No newline at end of file + env_vars: {} + +connectorBuilderServer: + enabled: true + service: + port: 8003 diff --git a/charts/airbyte/values.yaml.test b/charts/airbyte/values.yaml.test index 57b30f1c393a..a7bde8239665 100644 --- a/charts/airbyte/values.yaml.test +++ b/charts/airbyte/values.yaml.test @@ -274,6 +274,8 @@ webapp: ## webapp.api.url The webapp API url. api: url: /api/v1/ + connectorBuilderServer: + url: /connector-builder-api ## webapp.fullstory.enabled Whether or not to enable fullstory fullstory: @@ -1393,3 +1395,8 @@ cron: ## DATABASE_HOST: airbyte-db ## DATABASE_PORT: 5432 env_vars: {} + +connectorBuilderServer: + enabled: true + service: + port: 8003 diff --git a/docker-compose.yaml b/docker-compose.yaml index 9dfaca3dc1e5..85d86942e534 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -166,6 +166,7 @@ services: - AIRBYTE_ROLE=${AIRBYTE_ROLE:-} - AIRBYTE_VERSION=${VERSION} - API_URL=${API_URL:-} + - CONNECTOR_BUILDER_API_URL=${CONNECTOR_BUILDER_API_URL:-} - INTERNAL_API_HOST=${INTERNAL_API_HOST} - CONNECTOR_BUILDER_API_HOST=${CONNECTOR_BUILDER_API_HOST} - OPENREPLAY=${OPENREPLAY:-} @@ -218,7 +219,7 @@ services: container_name: airbyte-connector-builder-server restart: unless-stopped ports: - - 8003:80 + - 80 environment: - AIRBYTE_VERSION=${VERSION} networks: @@ -229,6 +230,7 @@ services: ports: - 8000:8000 - 8001:8001 + - 8003:8003 environment: - BASIC_AUTH_USERNAME=${BASIC_AUTH_USERNAME} - BASIC_AUTH_PASSWORD=${BASIC_AUTH_PASSWORD} diff --git a/kube/overlays/dev-integration-test/.env b/kube/overlays/dev-integration-test/.env index 2b3674e89f11..3c789b3b443e 100644 --- a/kube/overlays/dev-integration-test/.env +++ b/kube/overlays/dev-integration-test/.env @@ -28,7 +28,9 @@ LOCAL_ROOT=/tmp/airbyte_local TRACKING_STRATEGY=logging WEBAPP_URL=airbyte-webapp-svc:80 API_URL=/api/v1/ +CONNECTOR_BUILDER_API_URL=/connector-builder-api INTERNAL_API_HOST=airbyte-server-svc:8001 +CONNECTOR_BUILDER_API_HOST=airbyte-connector-builder-server-svc:8003 WORKER_ENVIRONMENT=kubernetes LOG_LEVEL=INFO @@ -90,3 +92,6 @@ ACTIVITY_MAX_DELAY_BETWEEN_ATTEMPTS_SECONDS= WORKFLOW_FAILURE_RESTART_DELAY_SECONDS= USE_STREAM_CAPABLE_STATE=true + +SHOULD_RUN_NOTIFY_WORKFLOWS=false +MAX_NOTIFY_WORKERS=5 diff --git a/kube/overlays/dev-integration-test/kustomization.yaml b/kube/overlays/dev-integration-test/kustomization.yaml index 8344cb2ae51c..82d3e08b3742 100644 --- a/kube/overlays/dev-integration-test/kustomization.yaml +++ b/kube/overlays/dev-integration-test/kustomization.yaml @@ -21,8 +21,8 @@ images: newTag: 1.7.0 - name: airbyte/cron newTag: dev - #- name: airbyte/connector-builder-server #FIXME: Uncomment this block when enabling airbyte-connector-builder - # newTag: dev + - name: airbyte/connector-builder-server + newTag: dev configMapGenerator: - name: airbyte-env diff --git a/kube/overlays/dev/.env b/kube/overlays/dev/.env index 839afbaa47b1..25b59f6b1c6c 100644 --- a/kube/overlays/dev/.env +++ b/kube/overlays/dev/.env @@ -30,7 +30,9 @@ LOCAL_ROOT=/tmp/airbyte_local TRACKING_STRATEGY=logging WEBAPP_URL=airbyte-webapp-svc:80 API_URL=/api/v1/ +CONNECTOR_BUILDER_API_URL=/connector-builder-api INTERNAL_API_HOST=airbyte-server-svc:8001 +CONNECTOR_BUILDER_API_HOST=airbyte-connector-builder-server-svc:8003 WORKER_ENVIRONMENT=kubernetes LOG_LEVEL=INFO @@ -92,3 +94,6 @@ ACTIVITY_MAX_DELAY_BETWEEN_ATTEMPTS_SECONDS= WORKFLOW_FAILURE_RESTART_DELAY_SECONDS= USE_STREAM_CAPABLE_STATE=true + +SHOULD_RUN_NOTIFY_WORKFLOWS=false +MAX_NOTIFY_WORKERS=5 diff --git a/kube/overlays/dev/kustomization.yaml b/kube/overlays/dev/kustomization.yaml index 100bf1be6b43..199d33d4f089 100644 --- a/kube/overlays/dev/kustomization.yaml +++ b/kube/overlays/dev/kustomization.yaml @@ -21,8 +21,8 @@ images: newTag: 1.7.0 - name: airbyte/cron newTag: dev - #- name: airbyte/connector-builder-server #FIXME: Uncomment this block when enabling airbyte-connector-builder - # newTag: dev + - name: airbyte/connector-builder-server + newTag: dev configMapGenerator: - name: airbyte-env diff --git a/kube/overlays/stable-with-resource-limits/.env b/kube/overlays/stable-with-resource-limits/.env index 4f59e3c44860..b144ac6f9574 100644 --- a/kube/overlays/stable-with-resource-limits/.env +++ b/kube/overlays/stable-with-resource-limits/.env @@ -30,7 +30,9 @@ LOCAL_ROOT=/tmp/airbyte_local TRACKING_STRATEGY=segment WEBAPP_URL=airbyte-webapp-svc:80 API_URL=/api/v1/ +CONNECTOR_BUILDER_API_URL=/connector-builder-api INTERNAL_API_HOST=airbyte-server-svc:8001 +CONNECTOR_BUILDER_API_HOST=airbyte-connector-builder-server-svc:8003 WORKER_ENVIRONMENT=kubernetes LOG_LEVEL=INFO @@ -75,6 +77,7 @@ JOB_KUBE_MAIN_CONTAINER_IMAGE_PULL_POLICY= # Launch a separate pod to orchestrate sync steps CONTAINER_ORCHESTRATOR_ENABLED=true +CONTAINER_ORCHESTRATOR_IMAGE= CONNECTOR_SPECIFIC_RESOURCE_DEFAULTS_ENABLED=true @@ -93,3 +96,6 @@ ACTIVITY_MAX_DELAY_BETWEEN_ATTEMPTS_SECONDS= WORKFLOW_FAILURE_RESTART_DELAY_SECONDS= USE_STREAM_CAPABLE_STATE=true + +SHOULD_RUN_NOTIFY_WORKFLOWS=false +MAX_NOTIFY_WORKERS=5 diff --git a/kube/overlays/stable-with-resource-limits/kustomization.yaml b/kube/overlays/stable-with-resource-limits/kustomization.yaml index b9c038286671..79775ffcc817 100644 --- a/kube/overlays/stable-with-resource-limits/kustomization.yaml +++ b/kube/overlays/stable-with-resource-limits/kustomization.yaml @@ -21,8 +21,8 @@ images: newTag: 1.7.0 - name: airbyte/cron newTag: 0.40.21 - #- name: airbyte/connector-builder-server #FIXME: Uncomment this block when enabling airbyte-connector-builder - # newTag: 0.40.21 + - name: airbyte/connector-builder-server + newTag: 0.40.21 configMapGenerator: - name: airbyte-env diff --git a/kube/overlays/stable-with-resource-limits/set-resource-limits.yaml b/kube/overlays/stable-with-resource-limits/set-resource-limits.yaml index 283d7614b7f0..86d84d863021 100644 --- a/kube/overlays/stable-with-resource-limits/set-resource-limits.yaml +++ b/kube/overlays/stable-with-resource-limits/set-resource-limits.yaml @@ -9,8 +9,8 @@ spec: - name: airbyte-db-container resources: limits: - cpu: 2 - memory: 2Gi + cpu: 0.5 + memory: 512Mi --- apiVersion: apps/v1 kind: Deployment @@ -29,8 +29,8 @@ spec: key: CONNECTOR_SPECIFIC_RESOURCE_DEFAULTS_ENABLED resources: limits: - cpu: 2 - memory: 1Gi + cpu: 0.5 + memory: 512Mi --- apiVersion: apps/v1 kind: Deployment @@ -49,8 +49,8 @@ spec: key: CONNECTOR_SPECIFIC_RESOURCE_DEFAULTS_ENABLED resources: limits: - cpu: 1 - memory: 2Gi + cpu: 0.5 + memory: 512Mi --- apiVersion: apps/v1 kind: Deployment @@ -63,7 +63,7 @@ spec: - name: airbyte-temporal resources: limits: - cpu: 2 + cpu: 0.5 memory: 512Mi --- apiVersion: apps/v1 @@ -77,7 +77,7 @@ spec: - name: airbyte-webapp-container resources: limits: - cpu: 1 + cpu: 0.5 memory: 512Mi --- apiVersion: apps/v1 @@ -91,7 +91,7 @@ spec: - name: airbyte-minio resources: limits: - cpu: 1 + cpu: 0.5 memory: 512Mi --- apiVersion: apps/v1 @@ -121,17 +121,17 @@ spec: limits: cpu: 0.5 memory: 128Mi -#--- #FIXME: Uncomment this block when enabling airbyte-connector-builder -#apiVersion: apps/v1 -#kind: Deployment -#metadata: -# name: airbyte-connector-builder-server -#spec: -# template: -# spec: -# containers: -# - name: airbyte-connector-builder-server-container -# resources: -# limits: -# cpu: 0.5 -# memory: 128Mi +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: airbyte-connector-builder-server +spec: + template: + spec: + containers: + - name: airbyte-connector-builder-server-container + resources: + limits: + cpu: 0.5 + memory: 128Mi diff --git a/kube/overlays/stable/.env b/kube/overlays/stable/.env index 213ab11e0c35..f04c4d660214 100644 --- a/kube/overlays/stable/.env +++ b/kube/overlays/stable/.env @@ -30,7 +30,9 @@ LOCAL_ROOT=/tmp/airbyte_local TRACKING_STRATEGY=segment WEBAPP_URL=airbyte-webapp-svc:80 API_URL=/api/v1/ +CONNECTOR_BUILDER_API_URL=/connector-builder-api INTERNAL_API_HOST=airbyte-server-svc:8001 +CONNECTOR_BUILDER_API_HOST=airbyte-connector-builder-server-svc:8003 WORKER_ENVIRONMENT=kubernetes LOG_LEVEL=INFO @@ -92,3 +94,6 @@ ACTIVITY_MAX_DELAY_BETWEEN_ATTEMPTS_SECONDS= WORKFLOW_FAILURE_RESTART_DELAY_SECONDS= USE_STREAM_CAPABLE_STATE=true + +SHOULD_RUN_NOTIFY_WORKFLOWS=false +MAX_NOTIFY_WORKERS=5 diff --git a/kube/overlays/stable/kustomization.yaml b/kube/overlays/stable/kustomization.yaml index f6a3f08c9e4f..fce5a94e2db6 100644 --- a/kube/overlays/stable/kustomization.yaml +++ b/kube/overlays/stable/kustomization.yaml @@ -21,8 +21,8 @@ images: newTag: 1.7.0 - name: airbyte/cron newTag: 0.40.21 - #- name: airbyte/connector-builder-server #FIXME: Uncomment this block when enabling airbyte-connector-builder - # newTag: 0.40.21 + - name: airbyte/connector-builder-server + newTag: 0.40.21 configMapGenerator: - name: airbyte-env diff --git a/kube/resources/connector-builder-server.yaml b/kube/resources/connector-builder-server.yaml index bd6f5f98d625..08dfc737d080 100644 --- a/kube/resources/connector-builder-server.yaml +++ b/kube/resources/connector-builder-server.yaml @@ -1,3 +1,16 @@ +apiVersion: v1 +kind: Service +metadata: + name: airbyte-connector-builder-server-svc +spec: + type: NodePort + ports: + - port: 8003 + protocol: TCP + targetPort: 80 + selector: + airbyte: connector-builder-server +--- apiVersion: apps/v1 kind: Deployment metadata: @@ -21,3 +34,5 @@ spec: configMapKeyRef: name: airbyte-env key: AIRBYTE_VERSION + ports: + - containerPort: 80 diff --git a/kube/resources/kustomization.yaml b/kube/resources/kustomization.yaml index be3d0af1859f..bb4cd4dd3793 100644 --- a/kube/resources/kustomization.yaml +++ b/kube/resources/kustomization.yaml @@ -4,7 +4,7 @@ kind: Kustomization resources: - airbyte-minio.yaml - bootloader.yaml - #- connector-builder-server.yaml #FIXME uncomment this when enabling the connector-builder + - connector-builder-server.yaml - cron.yaml - db.yaml - pod-sweeper.yaml diff --git a/kube/resources/webapp.yaml b/kube/resources/webapp.yaml index 9bb5c59ac68a..f057961526bb 100644 --- a/kube/resources/webapp.yaml +++ b/kube/resources/webapp.yaml @@ -38,6 +38,11 @@ spec: configMapKeyRef: name: airbyte-env key: API_URL + - name: CONNECTOR_BUILDER_API_URL + valueFrom: + configMapKeyRef: + name: airbyte-env + key: CONNECTOR_BUILDER_API_URL - name: TRACKING_STRATEGY valueFrom: configMapKeyRef: @@ -48,5 +53,10 @@ spec: configMapKeyRef: name: airbyte-env key: INTERNAL_API_HOST + - name: CONNECTOR_BUILDER_API_HOST + valueFrom: + configMapKeyRef: + name: airbyte-env + key: CONNECTOR_BUILDER_API_HOST ports: - containerPort: 80