diff --git a/charts/airbyte-server/templates/ingress.yaml b/charts/airbyte-server/templates/ingress.yaml new file mode 100644 index 00000000000..7140ed05be1 --- /dev/null +++ b/charts/airbyte-server/templates/ingress.yaml @@ -0,0 +1,62 @@ +--- +{{ if .Values.ingress.enabled -}} +{{- $fullName := include "airbyte.fullname" . -}} +{{- $svcPort := .Values.service.port -}} +{{- if and .Values.ingress.className (not (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion)) }} + {{- if not (hasKey .Values.ingress.annotations "kubernetes.io/ingress.class") }} + {{- $_ := set .Values.ingress.annotations "kubernetes.io/ingress.class" .Values.ingress.className}} + {{- end }} +{{- end }} +{{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion -}} +apiVersion: networking.k8s.io/v1 +{{- else if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}} +apiVersion: networking.k8s.io/v1beta1 +{{- else -}} +apiVersion: extensions/v1beta1 +{{- end }} +kind: Ingress +metadata: + name: {{ $fullName }} + labels: + {{- include "airbyte.labels" . | nindent 4 }} + {{- with .Values.ingress.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + {{- if and .Values.ingress.className (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion) }} + ingressClassName: {{ .Values.ingress.className }} + {{- end }} + {{- if .Values.ingress.tls }} + tls: + {{- range .Values.ingress.tls }} + - hosts: + {{- range .hosts }} + - {{ . | quote }} + {{- end }} + secretName: {{ .secretName }} + {{- end }} + {{- end }} + rules: + {{- range .Values.ingress.hosts }} + - host: {{ .host | quote }} + http: + paths: + {{- range .paths }} + - path: {{ .path }} + {{- if and .pathType (semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion) }} + pathType: {{ .pathType }} + {{- end }} + backend: + {{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }} + service: + name: {{ $.Release.Name }}-airbyte-api-server-svc + port: + number: {{ $svcPort }} + {{- else }} + serviceName: {{ $fullName }}-svc + servicePort: {{ $svcPort }} + {{- end }} + {{- end }} + {{- end }} +{{- end }} diff --git a/charts/airbyte-server/values.yaml b/charts/airbyte-server/values.yaml index f8662a82251..a129376a314 100644 --- a/charts/airbyte-server/values.yaml +++ b/charts/airbyte-server/values.yaml @@ -1,4 +1,3 @@ - global: serviceAccountName: placeholderServiceAccount edition: community @@ -116,6 +115,30 @@ tolerations: [] ## affinity: {} +## Configure the ingress resource that allows you to access the Airbyte Configuration API. +## ref: http://kubernetes.io/docs/user-guide/ingress/ +## webapp.ingress.enabled Set to true to enable ingress record generation +## webapp.ingress.className Specifies ingressClassName for clusters >= 1.18+ +## webapp.ingress.annotations [object] Ingress annotations done as key:value pairs +## webapp.ingress.hosts The list of hostnames to be covered with this ingress record. +## webapp.ingress.tls [array] Custom ingress TLS configuration +ingress: + enabled: false + className: "" + annotations: {} + # kubernetes.io/ingress.class: nginx + # kubernetes.io/tls-acme: "true" + hosts: [] + # - host: chart-example.local + # paths: + # - path: / + # pathType: ImplementationSpecific + + tls: [] + # - secretName: chart-example-tls + # hosts: + # - chart-example.local + ## log.level The log level to log at log: level: "INFO" @@ -193,13 +216,11 @@ secrets: {} # CONFIGS_DATABASE_MINIMUM_FLYWAY_MIGRATION_VERSION: 0.35.15.001 env_vars: {} - ## extraSelectorLabels [object] - use to specify own additional selector labels for deployment extraSelectorLabels: {} ## extraLabels [object] - use to specify own additional labels for deployment extraLabels: {} - ## deploymentStrategyType [string] - deployment strategy type for airbyte-server deployment. ## Defaults to Recreate since the pod is using pvc deploymentStrategyType: Recreate diff --git a/charts/airbyte/values.yaml b/charts/airbyte/values.yaml index da668b8f3d1..f8e749ca60f 100644 --- a/charts/airbyte/values.yaml +++ b/charts/airbyte/values.yaml @@ -538,6 +538,30 @@ server: # https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity affinity: {} + ## Configure the ingress resource that allows you to access the Airbyte Configuration API. + ## ref: http://kubernetes.io/docs/user-guide/ingress/ + ## webapp.ingress.enabled Set to true to enable ingress record generation + ## webapp.ingress.className Specifies ingressClassName for clusters >= 1.18+ + ## webapp.ingress.annotations [object] Ingress annotations done as key:value pairs + ## webapp.ingress.hosts The list of hostnames to be covered with this ingress record. + ## webapp.ingress.tls [array] Custom ingress TLS configuration + ingress: + enabled: false + className: "" + annotations: {} + # kubernetes.io/ingress.class: nginx + # kubernetes.io/tls-acme: "true" + hosts: [] + # - host: chart-example.local + # paths: + # - path: / + # pathType: ImplementationSpecific + + tls: [] + # - secretName: chart-example-tls + # hosts: + # - chart-example.local + log: # -- The log level to log at level: "INFO"