- A GCP project where you can run GKE, ACM and, if you want to manage non GKE clusters, enable Anthos
- A main user account with project owner role on the project
- A Github account
- 2 additional Google accounts that will be used as the 'application deployment' teams with the 'Kubernetes Engine Cluster Viewer' role on the project, the 2nd account should also have a separate Github account to test the Pull Request workflow
- (If you want to manage non GKE clusters) an external Kubernetes cluster that is supported by Anthos as an attached cluster, I typically use an EKS Cluster
- Fork this repo and clone locally
- Run setup.sh from the local repo clone and follow prompt to insert user accounts to be used, commit and push to your fork.
- Create at least 2 Kubernetes clusters, one of them GKE with Network Policy or Dataplane v2 enabled (I typically use 1 GKE and 1 EKS)
- (If using non GKE clusters)Register Clusters with Anthos Fleet
- Enable and configure ACM Config Sync (synced to the repo fork you created at step 1) and Policy Controller for both clusters
- Authorize your main user account to log in to the external cluster through Connect Gateway or a bearer token. You must have at least 2 kubectl contexts for your main user account in your local workstation (or whatever workstation you will use to run the workshop) for the 2 clusters
- Create 2 additional Chrome profiles (or use Chrome Incognito windows) and log in to Google Cloud Shell with each of the 2 'application deployment' user accounts, for each account:
- Clone the fork of this repo locally in the Cloud Shell
- Configure cluster access through kubectl for the GKE cluster (or clusters)
- (only for the 2nd user account) Configure personal access token for Github account