NOTE - both the use of Google Cloud and Cloudflare DNS configurations are presented in this section. Only complete one of these paths based on DNS prefered platform.
NOTE - the actions in this section should be performed in your Google Cloud console instance
NOTE - additional information on the configuration of the settings covered in this section can be found here
Role name: DNS Administrator Limited
ID: dns.admin.light
Description:
Created on: 2023-04-26
To use for DNS-01 ACME challenges.
https://cert-manager.io/docs/configuration/acme/dns01/google/
Permissions:
dns.resourceRecordSets.*
dns.changes.*
dns.managedZones.list
NOTE - additional information on the configuration of the settings covered in this section can be found here
SA Name: dns01-solver
SA ID: dns01-solver
NOTE - additional information on the configuration of the settings covered in this section can be found here
- First download the service account key in JSON
- Then encode the service account key in base64
cat your-gcp-service-account-key.json | base64 | tr -d '\n'
NOTE - this step should be performed on one of the Kubernetes control plane nodes of your Akash Provider
- Replace the service account key field with your own key
cat > service-account-secret.yaml << EOF
apiVersion: v1
kind: Secret
metadata:
name: clouddns-gcp-dns01-solver-sa
namespace: cert-manager
type: Opaque
data:
key.json: "<your-gcp-service-account-key-json-base64>"
EOF
kubectl apply -f service-account-secret.yaml
- If using Cloudflare for DNS then request your API token and then create the following secret:
API Tokens are recommended for higher security, since they have more restrictive permissions and are more easily revocable. Tokens can be created at User Profile > API Tokens > API Tokens. The following settings are recommended:
Permissions:
- Zone - DNS - Edit
- Zone - Zone - Read
Zone Resources:
- Include - All Zones
NOTE - this step should be performed on one of the Kubernetes control plane nodes of your Akash Provider
cat > dns-challenge-config.yaml << EOF
apiVersion: v1
kind: Secret
metadata:
name: cloudflare-api-token-secret
namespace: cert-manager
type: Opaque
stringData:
api-token: <API token>
EOF
kubectl apply -f dns-challenge-config.yaml