Credential Types
Registry Credentials
Authenticate with Helm chart registries (HTTP and OCI).
Git Credentials
Connect to GitHub, GitLab, and other Git providers.
Hetzner API Credentials
Authenticate with Hetzner Cloud for cluster provisioning.
OVH API Credentials
Authenticate with OVH Cloud for cluster provisioning.
Google Cloud (GCP) Credentials
Read-only service account for cloud cost estimates and GKE discovery.
SSH Key Credentials
SSH keys for server access on provisioned clusters.
Registry Credentials
Registry credentials authenticate with Helm chart repositories. They’re used when syncing charts from private registries.Creating a Registry Credential
Enter Details
Name: A unique identifier (e.g.,
ghcr-auth, harbor-prod)
Username: Your registry username
Password: Your registry password or access tokenProvider-Specific Setup
GitHub Container Registry (GHCR)
GitHub Container Registry (GHCR)
Create a Personal Access Token:
- Go to GitHub → Settings → Developer settings → Personal access tokens
- Generate a token with
read:packagesscope - For pushing charts, also add
write:packages
Google Artifact Registry
Google Artifact Registry
Create a Service Account:
- Go to Google Cloud Console → IAM → Service Accounts
- Create a new service account
- Grant “Artifact Registry Reader” role
- Create and download a JSON key
_json_key
Password: The entire JSON key file contentsAmazon ECR
Amazon ECR
Get an auth token:Credential values:
Username:
AWS
Password: The token from the command aboveAzure Container Registry
Azure Container Registry
Create a Service Principal:Credential values:
Username: The
appId from the output
Password: The password from the outputDocker Hub
Docker Hub
Create an Access Token:
- Go to Docker Hub → Account Settings → Security
- Create a new Access Token with Read permissions
Harbor
Harbor
Use a robot account (recommended):
- Go to your Harbor project → Robot Accounts
- Create a new robot account with pull permissions
robot$project+name (the robot account name)
Password: The robot account secretJFrog Artifactory
JFrog Artifactory
Create an API Key or Access Token:
- Go to User Profile → Edit Profile
- Generate an API Key or create an Access Token
Hetzner API Credentials
Hetzner API credentials store your Hetzner Cloud API token, used when provisioning and managing Hetzner clusters. The token is validated against the Hetzner API on creation.Creating a Hetzner API Credential
Get a Hetzner API Token
- Log in to the Hetzner Console
- Select your project
- Go to Security → API Tokens
- Click Generate API Token with Read & Write permissions
- Copy the token (it’s only shown once)
Listing Hetzner Credentials
OVH API Credentials
OVH API credentials store your OVH Cloud application key, application secret, consumer key, and project ID used when provisioning and managing OVH clusters. The credentials are validated against the OVH API on creation.Creating OVH API Credentials
Generate OVH API Credentials
- Go to https://api.ovh.com/createToken/
- Log in with your OVH account
- Set the following permissions:
GET, POST, PUT, DELETE on
/cloud/project/*GET on/cloud/project - Click Create Keys
- Save the Application Key, Application Secret, and Consumer Key
Get Your Project ID
- Log in to the OVH Control Panel
- Go to Public Cloud → select your project
- Copy the Project ID from the dashboard URL or project settings
Add to Ankra (UI)
Go to Credentials → Add → OVH, enter a name, your project ID, and paste your API credentials.
Listing OVH Credentials
Google Cloud (GCP) Credentials
GCP credentials store a read-only service account key that Ankra uses to estimate the infrastructure cost of your clusters (and, in a future release, to discover GKE clusters). Ankra only ever reads from your project — it requests Google’s read-only OAuth scope and never provisions or modifies resources. The key is validated against the GCP Cloud Resource Manager API when you save it, so an invalid key or a project the service account can’t read is rejected immediately.What Ankra Accesses
Ankra calls three Google APIs with the service account, all read-only:| API | Why it’s used |
|---|---|
| Cloud Resource Manager API | Verify the service account can read the project (the Test connection check) |
| Cloud Billing API | Read the public Compute Engine price catalog (SKUs) for cost estimates |
| Compute Engine API | Read machine-type specs (vCPU and memory) to price your nodes |
Creating a GCP Credential
Enable the required APIs
In the Google Cloud Console, select your project and enable the Cloud Resource Manager API, Cloud Billing API, and Compute Engine API.Or with the
gcloud CLI:Create a read-only service account
- Go to IAM & Admin → Service Accounts → Create service account
- Give it a name such as
ankra-cost-readonly - Grant it the Viewer role (
roles/viewer) on the project — or a custom read-only role
gcloud:Create and download a JSON key
- Open the service account → Keys → Add key → Create new key
- Choose JSON and download the file
gcloud:client_email, private_key, and token_uri.Add to Ankra (UI)
Go to Credentials → Add → Google Cloud (GCP), then provide:Name: A unique identifier — lowercase letters and numbers only, cannot start with a hyphen (e.g.
gcp-prod)
Project ID: Your GCP project ID (e.g. my-gcp-project)
Service Account Key (JSON): Paste the full contents of the downloaded key fileClick Test connection to verify access, then Add.The service account only needs read access. Ankra requests Google’s
cloud-platform.read-only scope, so even a more privileged key is used read-only.Troubleshooting GCP Credentials
| Test connection result | Cause | Solution |
|---|---|---|
| The service account key is not valid JSON or is missing required fields | The pasted key isn’t the full JSON file | Paste the entire downloaded JSON; it must include client_email, private_key, and token_uri |
| Google rejected the service account credentials | The key is disabled or deleted | Confirm the key is active, or create a new JSON key |
| The service account lacks read access to this project | Missing IAM role or disabled API | Grant the Viewer role and enable the Cloud Resource Manager API |
| The project was not found | Wrong project ID | Check the Project ID matches your GCP project exactly |
| Could not reach the GCP Resource Manager API | Network or connectivity issue | Retry; ensure outbound access to *.googleapis.com |
SSH Key Credentials
SSH key credentials store public keys that are deployed to servers during cluster provisioning. You can either provide your own public key or let Ankra generate a keypair for you.Creating an SSH Key Credential
Choose an approach
Bring your own key: Provide an existing SSH public key
Generate a keypair: Ankra generates a new Ed25519 keypair and returns the private key for you to save
Add to Ankra (UI)
Go to Credentials → Add → SSH Key, enter a name, and either paste your public key or choose Generate.
Listing SSH Key Credentials
Using Credentials
With Helm Registries
When adding a registry, select the credential to use for authentication:- Go to Charts → Repositories → Add
- Enter the registry URL
- Select the credential from the dropdown
- Click Add
With GitOps
Credentials are automatically used when syncing configurations to GitHub repositories connected via OAuth.Managing Credentials
View Credentials
Go to Credentials to see all stored credentials:- Name and type
- Creation date
- Associated registries (if any)
Update a Credential
- Click on the credential name
- Update the username or password
- Click Save
Updating a credential automatically applies to all registries using it. No need to reconfigure registries.
Delete a Credential
- Go to Credentials
- Click the menu (⋮) next to the credential
- Select Delete
Security
Storage
Credentials are stored securely using HashiCorp Vault:- Encrypted at rest
- Access controlled per organization
- Audit logging for all access
Best Practices
Use Tokens, Not Passwords
Prefer access tokens over account passwords. Tokens can be scoped and revoked independently.
Minimum Permissions
Grant only the permissions needed. For chart sync, read-only access is sufficient.
Rotate Regularly
Rotate credentials periodically, especially for production registries.
Separate by Environment
Use different credentials for dev, staging, and production registries.
Troubleshooting
Authentication Errors
| Error | Cause | Solution |
|---|---|---|
| 401 Unauthorized | Invalid credentials | Verify username and password/token |
| 403 Forbidden | Insufficient permissions | Check the token has required scopes |
| Token expired | Temporary tokens (ECR) | Refresh the token |
| Connection refused | Network issue | Check firewall and network access |
Common Issues
“unauthorized: authentication required”- The credential wasn’t selected when adding the registry
- Edit the registry and select the correct credential
- The token may have been revoked or expired
- Regenerate the token and update the credential
- The token doesn’t have read access to the repository
- Update the token permissions or use a different account