Skip to main content
Bifrost Enterprise images for GCP customers are distributed through GCP Artifact Registry, enabling native Workload Identity for secure, keyless authentication.

Architecture

Prerequisites

  • GKE cluster (v1.24+) with Workload Identity enabled
  • gcloud CLI configured with appropriate permissions
  • kubectl configured for your GKE cluster
  • Your GCP project allowlisted by Bifrost team
Contact the Bifrost team with your GCP project ID and service account email to get access configured.
Workload Identity provides the most secure authentication method for GKE deployments by eliminating the need for service account keys.

Step 1: Enable Workload Identity on GKE

If not already enabled, enable Workload Identity on your cluster:

Step 2: Create GCP Service Account

Create a service account that will be used to pull images:

Step 3: Request Access from Bifrost Team

Provide the following to the Bifrost team:
  • Your GCP project ID
  • Service account email: bifrost-pull-sa@YOUR_PROJECT_ID.iam.gserviceaccount.com
The Bifrost team will grant the necessary permissions to pull images from the registry.

Step 4: Create Namespace and ServiceAccount

Step 5: Bind Kubernetes SA to GCP SA

Allow the Kubernetes ServiceAccount to impersonate the GCP Service Account:

Step 6: Create Image Pull Secret with Token Refresh

Artifact Registry tokens expire after 60 minutes. Use a CronJob to refresh the imagePullSecret:
Replace REGION with your Artifact Registry region (e.g., us-central1).

Step 7: Deploy Bifrost

Bootstrap: Initial Secret Creation

Before the first deployment, manually create the initial imagePullSecret:

Service Account Impersonation

For cross-project deployments or when you need to use an existing service account:

Configure Impersonation

Token Refresh with Impersonation

Update the CronJob to use impersonation:

Service Account Key (Legacy)

Service account keys are not recommended for production. Use Workload Identity instead.
For environments that cannot use Workload Identity:

Verifying Access

Test Artifact Registry Authentication

Verify Workload Identity Configuration

Troubleshooting

ImagePullBackOff Errors

  1. Check imagePullSecret exists: kubectl get secret ar-pull-secret -n bifrost
  2. Verify token is valid: Check if CronJob ran successfully
  3. Check Workload Identity binding: Ensure GCP SA is bound to K8s SA

Workload Identity Issues

Token Expiration

If pods fail to pull images after 60 minutes:
  1. Verify CronJob is running: kubectl get cronjob -n bifrost
  2. Check CronJob logs: kubectl logs -l job-name=refresh-ar-secret -n bifrost
  3. Manually trigger refresh: kubectl create job --from=cronjob/refresh-ar-secret manual-refresh -n bifrost

Next Steps