-
When you
cdinto this Git repository, for the first time, rundirenv allow. From then onwards, whenever youcdhere, you'll be dropped into a Nix shell with all the required tools for development.
Also, you must have Docker installed and running.
Let's try to bootstrap a local K3D cluster!
-
Run
make sample-config-generate-local-dev. Sample general and secret config files will be generated for you inoutputs/configs/local. Go through and adjust them accordingly. -
Run
make bootstrap-cluster-local-dev.
If cluster provisioning by ClusterAPI gets stuck, then you can :
-
check pod logs of ClusterAPI components :
Operator,Core Provider,Bootstrap Provider,ControlPlane ProviderandInfrastructure Provider. -
SSH into the control-plane node. Then view cloud-init output logs stored at
/var/log/cloud-init-output.log.
-
If the
clusterawsadm bootstrap iam create-cloudformation-stackcommand errors out with this message :the IAM CloudFormation Stack create / update failed and it's currently in a
ROLLBACK_COMPLETEstatethen that means maybe there are pre-existing IAM resources with overlapping name. Then first delete them manually from the AWS Console and then retry running the script. Filter the IAM roles and policies in the corresponding region with the keyword :
cluster/clusterapi.
Checkout to a new branch.
Software versioning is controlled via a single source of truth : cmd/kubeaid-core/root/version/version.txt.
Run standard-version, using bun, to :
-
Bump the version in that version.txt file.
-
Update
vendorHashfor theKubeAid CLIpackage inflake.nix.This will take a bit of time.
-
Create a release commit.
-
Create a new tag.
Merge the release commit into the main branch, and sync everything to GitHub.
A GitHub Actions release workflow will get triggered. It'll :
-
Scan the source-code, looking for vulnerabilities.
You can view the scan result in the GitHub Actions release workflow summary.
-
Build and publish new
KubeAid CLIbinaries, as release artifacts. -
Build and publish new
KubeAid Corecontainer images.