Open tianchen98 opened 11 months ago
Hi, had the same issue and solve it replacing a value in the ConfigMap airbyte-airbyte-env, there is no option to do this by the values files because the helm template originally doesn't add the https:// on the value.
kind: ConfigMap name: airbyte-airbyte-env
- INTERNAL_API_HOST: airbyte-airbyte-server-svc:8001
+ INTERNAL_API_HOST: http://airbyte-airbyte-server-svc:8001
After this you must restart only the airbyte-api-server deployment.
api-server can't communicate with server because it needs the https:// on the INTERNAL_API_HOST , replacing this by hand works but then you need to redeploy. Other services as worker will fail if the get INTERNAL_API_HOST with http:// .
Chart: airbyte TEMPLATE: env-configmap.yaml
27 INTERNAL_API_HOST: {{ .Release.Name }}-airbyte-server-svc:{{ .Values.server.service.port }}
Chart: airbyte-api-server Template: deployment.yaml
58 - name: INTERNAL_API_HOST
59 valueFrom:
60 configMapKeyRef:
61 name: {{ .Release.Name}}-airbyte-env
62 key: INTERNAL_API_HOST
Hi, we are also impacted by this. The worker
is not the only component that crashes when updating the global configmaps as shown by @juanfbl9307 , the webapp
crashes too ...
The only workaround we found to work was to force the value of INTERNAL_API_HOST
at the airbyte-api-server
level, so in the values files this gives us:
airbyte-api-server:
env_vars:
INTERNAL_API_HOST: http://airbyte-airbyte-server-svc:8001
This is hardcoded and far from elementary robustness :( A cleaner solution, such as standardizing the use of this environment variables across all components, or adjusting the helm charts to take this into consideration, is still required.
airbyte-api-server
depends on {{ .Release.Name }}-airbyte-env
configMap, three invironment variables from Deployment are there:
airbyte-api-server-deployment
Following you approach @pdemagny, Creating a configMap only for airbyte-api-server
and changing the reference on the deployment, this new configMap will have the protocol http:// before the enviornment variable definition.
[ ] Create configMap manifest on airbyte-api-server
helm template path airbyte-api-server/templates/config-map.yaml
with
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ .Release.Name }}-airbyte-api-server-env
data:
INTERNAL_API_HOST: http://{{ .Release.Name }}-airbyte-server-svc:{{ .Values.server.service.port }}
AIRBYTE_VERSION: {{ .Values.version | default .Chart.AppVersion }}
AIRBYTE_API_HOST: {{ .Release.Name }}-airbyte-api-server-svc:{{ index .Values "airbyte-api-server" "service" "port" }}
[ ] Replace the values reference on deployment
configMapKeyRef:
name: {{ .Release.Name }}-airbyte-env
configMapKeyRef:
name: {{ .Release.Name }}-airbyte-api-server-env
Yep, that's the way to go if you are willing to fork or download the chart and install it from local files while waiting for a more permanent fix.
I don't want to do that because I want to keep using the official chart, not the local one, to benefit from other updates of the chart and have my Renovate Bot scan my helmfile.yaml and keep it up to date as well, hence my dirty workaround ;)
What method are you using to run Airbyte?
Kubernetes
Platform Version or Helm Chart Version
0.49.6
What step the error happened?
On deploy
Revelant information
the API endpoint
v1/connections
return 500. The original request iscurl --request GET --url 'https://api.airbyte.dev.k8s.pelotime.com/v1/connections' --header 'Authorization: Basic <Redacted>' --header 'accept: application/json' --header 'content-type: application/json'
and the response is
{"type":"about:blank","status":500}
. This seems to be caused by a bug in Airbyte serverRelevant log output