Muhammad Nauman
11/03/2025, 10:58 AMMountVolume.SetUp failed for volume "gcs-log-creds-volume" : references non-existent secret key: GOOGLE_APPLICATION_CREDENTIALS_JSON
my values.yaml is
global:
edition: community
#airbyteUrl: <https://airbyte.brkarlsen.no>
database:
secretName: database-secret
host: "10.61.80.33"
port: 5432
name: "airbyte" # Previously `database`
userSecretKey: "DATABASE_USER"
passwordSecretKey: "DATABASE_PASSWORD" # Previously `secretKey`
storage:
storageSecretName: gcs-log-creds # Previously `storageSecretName`
type: gcs # Change "GCS" to lowercase
secretName: gcs-log-creds # Previously `storageSecretName`
bucket:
log: brk-airbytev2
state: brk-airbytev2
workloadOutput: brk-airbytev2
activityPayload: brk-airbytev2
gcs:
projectId: brk-analytics
#credentialsJson: | __CREDENTIALS__
credentialsJsonPath: /secrets/gcs-log-creds/gcp.json
workloads:
containerOrchestrator:
secretName: gcs-log-creds
secretMountPath: /secrets/gcs-log-creds
postgresql:
enabled: false
worker:
redinessProbe:
enabled: false
livnessProbe:
enabled: false
webapp:
enabled: false
and the snip from secrets is
target:
name: gcs-log-creds # The name of the Secret resource that will be created in the cluster.
data:
- secretKey: gcp.json # The key of the secret in the secret resource.
remoteRef:
key: airbyte-sa # The key of the secret in the secret manager.
#property: gcp.json
could anybody who know how to solve this problem, 🙂kapa.ai
11/03/2025, 10:59 AMMountVolume.SetUp failed for volume "gcs-log-creds-volume" : references non-existent secret key: GOOGLE_APPLICATION_CREDENTIALS_JSON indicates that Airbyte is looking for a key named GOOGLE_APPLICATION_CREDENTIALS_JSON in your Kubernetes secret (gcs-log-creds), but it does not exist. ### Key Issues Identified 1. Secret Key Name Mismatch Your secret contains a key named gcp.json, but Airbyte is looking for GOOGLE_APPLICATION_CREDENTIALS_JSON. This mismatch is the root cause of the error. 2. Helm Chart Key Usage In Helm chart v2, the correct way to reference an existing secret for GCS credentials is to use global.storage.secretName (not storageSecretName). The documentation and user feedback indicate that storageSecretName was used in v1, but in v2, you should use secretName only ([see user feedback](https://github.com/airbytehq/airbyte/issues/68178)). 3. credentialsJson vs credentialsJsonPath The credentialsJsonPath field is not documented as a supported key in Helm chart v2 for GCS. Instead, you should either: - Provide the base64-encoded credentials directly in credentialsJson, or - Reference an existing secret using secretName and ensure the key is named GOOGLE_APPLICATION_CREDENTIALS_JSON ([see docs](https://docs.airbyte.com/platform/next/deploying-airbyte/chart-v2-community#update-your-valuesyaml-file)). ### How to Fix #### Option 1: Rename the Secret Key Update your Kubernetes secret so that the key is GOOGLE_APPLICATION_CREDENTIALS_JSON instead of gcp.json. For example: yaml apiVersion: v1 kind: Secret metadata: name: gcs-log-creds type: Opaque data: GOOGLE_APPLICATION_CREDENTIALS_JSON: <base64-encoded-gcp-json> #### Option 2: Use credentialsJson in values.yaml If you want Airbyte to create the secret for you, set: yaml global: storage: type: gcs bucket: log: brk-airbytev2 state: brk-airbytev2 workloadOutput: brk-airbytev2 activityPayload: brk-airbytev2 gcs: projectId: brk-analytics credentialsJson: <base64-encoded-gcp-json> Do not set secretName or storageSecretName in this case. #### Option 3: Reference the Secret and Key Correctly If you want to use your own secret and key name, you must ensure Airbyte is configured to look for the correct key. However, the current chart expects GOOGLE_APPLICATION_CREDENTIALS_JSON as the key. If you cannot change the key in your secret, you may need to use a workaround by setting environment variables for the container orchestrator, as described in [this issue](https://github.com/airbytehq/airbyte/issues/65153): yaml global: workloads: containerOrchestrator: secretName: gcs-log-creds secretMountPath: /secrets/gcs-log-creds But you still need the key to be named GOOGLE_APPLICATION_CREDENTIALS_JSON unless you customize the chart templates. --- Summary: Rename your secret key from gcp.json to GOOGLE_APPLICATION_CREDENTIALS_JSON in the gcs-log-creds secret, or use the credentialsJson field in your values.yaml and let Airbyte create the secret for you. The documentation and user feedback confirm this is the expected setup for Helm chart v2 and GCS log storage ([see docs](https://docs.airbyte.com/platform/next/deploying-airbyte/chart-v2-community#update-your-valuesyaml-file), [user feedback](https://github.com/airbytehq/airbyte/issues/68178), [workarounds](https://github.com/airbytehq/airbyte/issues/65153)).