Credentials Configuration¶
kindplane can automatically configure cloud provider credentials for Crossplane.
Configuration¶
AWS Credentials¶
Environment Variables¶
Uses AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY from environment.
AWS Profile¶
Uses credentials from ~/.aws/credentials for the specified profile.
Credentials File¶
Uses a custom credentials file.
Azure Credentials¶
Environment Variables¶
Uses the following environment variables:
AZURE_SUBSCRIPTION_IDAZURE_TENANT_IDAZURE_CLIENT_IDAZURE_CLIENT_SECRET
Credentials File¶
The file should contain:
Kubernetes Provider¶
In-Cluster Credentials¶
Uses the service account of the provider pod.
Kubeconfig¶
Interactive Setup¶
Use the credentials command for interactive setup:
This guides you through configuring credentials for each provider.
Provider Configurations Created¶
When credentials are configured, kindplane creates:
AWS ProviderConfig¶
apiVersion: aws.upbound.io/v1beta1
kind: ProviderConfig
metadata:
name: default
spec:
credentials:
source: Secret
secretRef:
namespace: crossplane-system
name: aws-credentials
key: credentials
Azure ProviderConfig¶
apiVersion: azure.upbound.io/v1beta1
kind: ProviderConfig
metadata:
name: default
spec:
credentials:
source: Secret
secretRef:
namespace: crossplane-system
name: azure-credentials
key: credentials
Kubernetes ProviderConfig¶
apiVersion: kubernetes.crossplane.io/v1alpha1
kind: ProviderConfig
metadata:
name: default
spec:
credentials:
source: InjectedIdentity
Security Considerations¶
Local Development Only
kindplane stores credentials as Kubernetes secrets for local development. Do not use this approach in production.
For production environments:
- Use IRSA (IAM Roles for Service Accounts) on AWS
- Use Workload Identity on Azure/GCP
- Use External Secrets Operator for secret management
Complete Example¶
cluster:
name: creds-demo
crossplane:
version: "1.15.0"
providers:
- name: provider-aws
package: xpkg.upbound.io/upbound/provider-aws:v1.1.0
- name: provider-azure
package: xpkg.upbound.io/upbound/provider-azure:v1.0.0
- name: provider-kubernetes
package: xpkg.upbound.io/crossplane-contrib/provider-kubernetes:v0.12.0
credentials:
aws:
source: profile
profile: development
azure:
source: env
kubernetes:
source: incluster
Troubleshooting¶
Missing Credentials¶
If providers show Unhealthy status due to credentials:
-
Check the secret exists:
-
Verify ProviderConfig:
-
Check provider logs: