Website Setup
Migrating from GitHub Pages to Cloudflare Pages.
Cloudflare
Account Home, Compute (Workers) then the Pages tab to connect Cloudflare to GitHub jeffmccune/jeffmccune.com
Google Organization
Setup a google organization so we have inexpensive access to a GKE autopilot cluster, identity and access management, and workload identity token exchange.
Created a new browser profile for the task. The overall process is:
- Verify the domain.
- Configure SMTP forwarding rules in Cloudflare.
- Setup the domain admin cloud identity account.
- Grant access to the primary google account I use.
- Setup some Google security groups.
- Create the GKE autopilot cluster.
- Configure holos to use the autopilot cluster.
Sign up for Cloud Identity Free
Went through the wizard and setup [email protected]
. Two factor,
passkey in iCloud keychain. Had to enable passkeys at https://admin.google.com
and sign into Chrome to get the passkey to save correctly.
The rest of the setup is done in a chrome profile logged in as super-admin.
Started Google Cloud setup by browsing to https://console.cloud.google.com
Worked through setting up logging and and security but didn't setup the Hierarchy and access.
Created a project, jeffmccune-com and switched to gcloud for the rest.
GKE Security Group
Browse to https://admin.google.com/ac/groups and create a group named gke-security-groups
. See Set up your Google Groups
Kubernetes Cluster
PROJECT_ID="$(gcloud config get-value project)"
PROJECT_NUMBER="$(gcloud projects describe $PROJECT_ID --format='value(projectNumber)')"
ORG_DOMAIN="example.com"
Init to the super-admin account. Fine for now.
gcloud container clusters create-auto autopilot \
--release-channel=stable \
--monitoring=SYSTEM \
--logging=SYSTEM \
--enable-master-global-access \
--enable-master-authorized-networks \
--master-authorized-networks=0.0.0.0/0 \
--region=us-central1 \
--security-group=gke-security-groups@$ORG_DOMAIN
Get the kubeconfig
mkdir -p ~/.holos
KUBECONFIG=${HOME}/.holos/kubeconfig.autopilot.${PROJECT_ID} \
gcloud container clusters get-credentials autopilot --region=us-central1
Move to where holos
expects it.
(cd ~/.holos && ln -sf kubeconfig.autopilot.${PROJECT_ID} kubeconfig.provisioner
We need to run some kubectl commands.
export KUBECONFIG="${HOME}/.holos/kubeconfig.provisioner"
Create the secrets namespace
kubectl create namespace secrets
Now we can script secrets with holos
. Workload identity setup and integration
with External Secrets operator is another topic.