<@U04S8PLJWMT> I have deployed airbyte to my eks c...
# replication-ask-ai
m
@kapa.ai I have deployed airbyte to my eks cluster using helm. How can I add labels to the airbyte jobs?
k
You can add labels to Airbyte job pods (connector / sync / discover / spec jobs) via the Helm
values.yaml
under the
<http://global.jobs|global.jobs>
section (Helm chart v2) or via the
JOB_KUBE_LABELS
configuration (Helm chart v1-style). ### Helm chart v2 (current chart) Set job labels under
global.jobs.kube.labels
in your `values.yaml`:
Copy code
yaml global:   jobs:     kube:       labels:         app: airbyte-job         team: data-platform
This maps to the “JOB_KUBE_LABELS” behavior (“pod labels of the sync job and the default pod labels fallback for others jobs”). [[Helm values](https://github.com/airbytehq/airbyte/issues/49843)] You can combine this with
global.jobs.kube.nodeSelector
/
tolerations
if needed, as shown in other examples. [[Scaling node groups](https://docs.airbyte.com/platform/enterprise-setup/scaling-airbyte#multiple-node-groups); [Temporal on EKS](https://github.com/airbytehq/airbyte/issues/59730)] ### Helm chart v1 / env-var style (if still using it) Older config uses the
JOB_KUBE_LABELS
env var, which the Helm chart exposes as:
Copy code
yaml jobs:   kube:     labels:                # <- same semantics as JOB_KUBE_LABELS       app: airbyte-job       team: data-platform
The issue text documents: >
## JOB_KUBE_LABELS
…
labels: {}
— “key/value labels applied to kube jobs”. [[Helm values](https://github.com/airbytehq/airbyte/issues/49843)] After updating
values.yaml
, run
helm upgrade
for your release. Existing running jobs won’t be relabeled, but new jobs will get the labels.
m
@kapa.ai I have made the changes as you suggested above for Helm chart v2. My chart version is 1.5.7. But I still can't see the labels on my replication job pods. https://artifacthub.io/packages/helm/airbyte/airbyte/1.5.7
k
A message from kapa.ai
For chart version 1.5.7 you are still on the v1 Helm chart, not the new v2 chart. The
global.jobs.kube.labels
key I mentioned earlier belongs to chart v2, so it won’t have any effect on
airbyte/airbyte
1.5.7. For chart 1.5.7, job labels are controlled via the
JOB_KUBE_LABELS
setting that the chart exposes in its values under
jobs.kube.labels
(defaults to
{}
). [[Helm values](https://github.com/airbytehq/airbyte/issues/49843)] You should: 1. Edit your current
values.yaml
to add:
Copy code
yaml    jobs:      kube:        labels:          app: airbyte-job          team: data-platform
(or whatever labels you need) 2. Upgrade your release with that values file:
Copy code
bash    helm upgrade --install <RELEASE_NAME> airbyte/airbyte \      --namespace <NAMESPACE> \      --values values.yaml \      --version 1.5.7
3. Start a new sync/check/discover so that new job pods are created; labels won’t appear on already-running pods. If you want to use the
global.jobs.kube.*
API (including
global.jobs.kube.labels
), you’d need to migrate to the Helm chart V2 (
airbyte-v2/airbyte
) and then follow the v2 “Update your values.yaml file” guidance. [[Upgrade to chart v2](https://docs.airbyte.com/platform/deploying-airbyte/chart-v2-community#update-your-valuesyaml-file)]
m
@kapa.ai then help me to implement for v1.
k
A message from kapa.ai
For the v1 Helm chart, labels/annotations are configured via Kubernetes env vars like
SPEC_JOB_KUBE_ANNOTATIONS
,
CHECK_JOB_KUBE_ANNOTATIONS
, and
DISCOVER_JOB_KUBE_ANNOTATIONS
, which are then passed through the chart as
extraEnv
entries on the
workload-launcher
deployment. [[Configuring jobs](https://docs.airbyte.com/platform/operator-guides/configuring-airbyte#jobs-specific)] Because Airbyte’s public docs only list node selectors and annotations mappings when upgrading to chart v2 (no dedicated Helm field for labels), the documented and supported way in v1 is to use these job-specific env vars via
extraEnv
. [[Chart v2 upgrade](https://docs.airbyte.com/platform/deploying-airbyte/chart-v2-community#update-your-valuesyaml-file); [Jobs-specific](https://docs.airbyte.com/platform/operator-guides/configuring-airbyte#jobs-specific)] A minimal
values.yaml
example for v1 to add annotations (which you can use for many scheduling/observability tools) to job pods:
Copy code
yaml workload-launcher:   extraEnv:     # Spec job annotations     - name: SPEC_JOB_KUBE_ANNOTATIONS       value: "team=data-platform,jobType=spec"      # Check job annotations     - name: CHECK_JOB_KUBE_ANNOTATIONS       value: "team=data-platform,jobType=check"      # Discover job annotations     - name: DISCOVER_JOB_KUBE_ANNOTATIONS       value: "team=data-platform,jobType=discover"
Notes: - Values are comma‑separated
k=v
pairs, per the docs. [[Jobs-specific](https://docs.airbyte.com/platform/operator-guides/configuring-airbyte#jobs-specific)] - Apply them with:
Copy code
bash   helm upgrade --install <RELEASE_NAME> airbyte/airbyte \     --namespace <NAMESPACE> \     --values values.yaml \     --version 1.5.7
- Only new jobs (spec/check/discover/sync) created after the upgrade will get the new annotations. The knowledge sources do not document a v1‑chart‑specific
labels
field for jobs, only these job‑specific env vars for node selectors and annotations. If you must use labels specifically rather than annotations, the docs do not show an official, supported way for chart v1 beyond what’s described here.
m
@kapa.ai you gave this example previously:
Copy code
jobs:
  kube:
    labels:                # <- same semantics as JOB_KUBE_LABELS
      app: airbyte-job
      team: data-platform
I couldn't understand how the "JOB_KUBE_LABELS" is being provided and where will I add labels?
k
A message from kapa.ai
You’re right to question that example – based on the docs you’ve provided, there is no documented
jobs.kube.labels
key in Helm chart v1
, and
JOB_KUBE_LABELS
itself is only visible in snippets from GitHub issues, not in the official configuration docs. From the official docs for configuring jobs in v1 (1.6–1.8 and “current” non‑v2 pages), only the following job-related Kubernetes settings are documented: - Generic job settings like
JOB_KUBE_TOLERATIONS
,
JOB_KUBE_NODE_SELECTORS
,
JOB_KUBE_ANNOTATIONS
, etc. [[Jobs](https://docs.airbyte.com/platform/operator-guides/configuring-airbyte#jobs)] - Job‑specific overrides: -
SPEC_JOB_KUBE_NODE_SELECTORS
,
CHECK_JOB_KUBE_NODE_SELECTORS
,
DISCOVER_JOB_KUBE_NODE_SELECTORS
-
SPEC_JOB_KUBE_ANNOTATIONS
,
CHECK_JOB_KUBE_ANNOTATIONS
,
DISCOVER_JOB_KUBE_ANNOTATIONS
[[Jobs-specific](https://docs.airbyte.com/platform/operator-guides/configuring-airbyte#jobs-specific)] There is no mention of
JOB_KUBE_LABELS
or a corresponding
labels:
field
in those official docs. The only place
JOB_KUBE_LABELS
appears in your sources is in GitHub issues, for example the environment entries created by
abctl
, which show that
JOB_KUBE_LABELS
is an env var wired into deployments, but they don’t document how to configure it via `values.yaml`: >
map[name:JOB_KUBE_LABELS valueFrom:map[configMapKeyRef:map[key:JOB_KUBE_LABELS name:airbyte-abctl-airbyte-env]]]
[[abctl issue](https://github.com/airbytehq/airbyte/issues/65129)] Another issue shows a Helm values fragment for v2/V1-migration, but again does not show a chart‑v1
jobs.kube.labels
key in official docs. [[Helm values snippet](https://github.com/airbytehq/airbyte/issues/49843)] Because of that, I cannot confidently tell you: - how
JOB_KUBE_LABELS
is meant to be set from
values.yaml
in chart v1, or - that
jobs.kube.labels
is a supported key in chart v1. The only documented and supported mechanisms for adding Kubernetes metadata to job pods in chart v1 are: 1. Global annotations / node selectors via env vars:
JOB_KUBE_ANNOTATIONS
,
JOB_KUBE_NODE_SELECTORS
,
JOB_KUBE_TOLERATIONS
, etc. [[Jobs](https://docs.airbyte.com/platform/operator-guides/configuring-airbyte#jobs)] 2. Job‑specific annotations / node selectors via env vars (set via
extraEnv
on
workload-launcher
): -
SPEC_JOB_KUBE_ANNOTATIONS
-
CHECK_JOB_KUBE_ANNOTATIONS
-
DISCOVER_JOB_KUBE_ANNOTATIONS
[[Jobs-specific](https://docs.airbyte.com/platform/operator-guides/configuring-airbyte#jobs-specific)] Example (supported) for v1 using annotations, not labels:
Copy code
yaml workload-launcher:   extraEnv:     - name: SPEC_JOB_KUBE_ANNOTATIONS       value: "team=data-platform,jobType=spec"     - name: CHECK_JOB_KUBE_ANNOTATIONS       value: "team=data-platform,jobType=check"     - name: DISCOVER_JOB_KUBE_ANNOTATIONS       value: "team=data-platform,jobType=discover"
Given the knowledge sources you provided, I must correct my earlier answer: - The
jobs.kube.labels
example I gave is not confirmed by the official docs you shared. - The docs do not explain how to configure
JOB_KUBE_LABELS
via Helm v1 values, only annotations and node selectors. If you specifically need labels (not annotations) for job pods while staying on chart v1, the knowledge sources don’t give enough information to describe a supported, documented configuration path. The officially documented path to attach metadata to job pods in v1 is via the
*_KUBE_ANNOTATIONS
env vars shown above.