The goal of the setup is to put the downloaded directory structure into your GitHub repository, so let’s get started with creating a fresh repository for this purpose and then setup the GitHub Secrets before pushing the code to the repository.
Also prepare an Access token for GitHub which will be used for GitOps tool bootstrap.
Login to AWS console and create your access keys under IAM or using
aws iam create-access-key.
Credentials should be static and do not utilize any tools like
aws-iam-authenticator because they are also stored as secret in your Kubernetes cluster.
SSH public/private key-pair is used for accessing the cluster nodes. You can generate these keys locally and you will need to set them inside the GitHub Secrets below.
You can use following command to generate the keys:
ssh-keygen -t rsa -b 4096 -C "firstname.lastname@example.org"
You will be prompted to provide a key location, e.g.
Go to your GitHub repository under Settings -> Secrets and setup following secrets:
AWS_ACCESS_KEY_IDwith value of AccessKeyId from above step
AWS_SECRET_ACCESS_KEYwith value of SecretAccessKey from above step
SOPS_AGE_SECRET_KEYwith value of generated AGE secret key (see secrets.md file)
TOKEN_GITHUBwith value of GitHub access token from above step
SSH_PRIVATE_KEYwith value of private SSH key (e.g.
SSH_PUBLIC_KEYwith value of public SSH key (e.g.
Now it’s time to push the generated structure in your repository.
git init git checkout -b main git add . git commit -m "Initial setup for KKP on Autopilot" git remote add origin email@example.com:<GITHUB_OWNER>/<GITHUB_REPOSITORY> git push -u origin main
At this point, GitHub Workflow should be triggered and you can watch it in the Actions menu on your repository. After all steps are complete, it may still take a few minutes to reconcile the required state (as the Flux is delivering additional steps independently).
Congratulations, now it’s time to login to your KKP and create your first user cluster!
See the details about creating User Cluster in Kubermatic Kubernetes Platform documentation.