Releases: Obmondo/kubeaid-cli
v0.12.1
v0.12.0
Features :
-
Allow having 0 node-groups.
-
Added support for bootstrapping cluster in Hetzner Bare Metal.
-
Added support for bootstrapping and upgrading Bare Metal clusters (supports YubiKey authentication).
-
Added support for bootstrapping a hybrid cluster in Hetzner : the control-plane will be in HCloud and node-groups will be in Hetzner Bare-Metal.
-
Added
cluster testcommand, which, for now, checks whether Cilium is installed and running properly or not. -
feat : command execution output is now streamed to the stdout
-
feat : creating and setting up an ArgoCD account for KubeAid Agent, when customerID is set
Chores :
-
Main cluster's name cannot contain any dot character.
-
Writing guide docs for each provider.
And other chores and small bug fixes.
v0.11.2
Full Changelog: v0.11.1...v0.11.2
v0.11.1
-
VMSpecs.Memory in GiB and not MiB.
-
Using
notblankinstead ofnotblank.required. -
Creating initial Velero and Sealed Secrets backups while bootstrapping a fresh cluster.
-
Shifting from Syself's to HCloud's official CCM Helm chart.
v0.11.0
cluster bootstrap command support for HCloud
v0.10.0
Feat :
-
Finished
cluster recovercommand implementation for Azure. -
Persist general config in cluster dir in user's KubeAid config repo.
Fixes :
-
Fixed
downloadBlobContentfunction - adding YAML extension to the file where downloaded backed up Sealed Secrets keys are persisted. -
Using
kubectl replace --forceinstead ofkubectl applyto restore backed up Sealed Secrets keys. -
While recovering cluster, recover sealed secrets controller private keys and then install sealed secrets.
-
Fixed
AssertNotNilfunction. -
Adding
external-snapshottertemplate. -
Not syncing all ArgoCD Apps at the end of BootstrapCluster if recovering a cluster.
-
Upgrading Kubernetes API server endpoint in Cilium values file when recovering a cluster.
Chores :
-
Extracting common node-group validation logic in
validateNodeGroupfunction. -
Updated go mod dependencies.
v0.9.0
-
Giving
security eventswrite permission to the Github Actions release Workflow. -
Installing
external-snapshotterArgoCD App. -
Ignoring
replicasfield forMachineDeploymenttype resource, when calculating sync status for thecapi-clusterArgoCD App.
Azure specific changes :
-
Changing scope to subscription level for velero UAMI.
-
Installing
azuredisk-csi-driverArgoCD App. -
Wrote function to download contents from Azure Blob Container (not tested).
feat(azure) : bringing support for ARM64 based nodes :
-
Bringing support for ARM64 based nodes, in case of Azure.
-
Fixed renovate JSON5 config file
-
Fixed Azure CLI login issue (which popped up recently).
-
Updated dependencies in nix flake.
-
Moved
disasterRecoverysection undercloud, instead of it being in the cloud provider specific section. -
Not updating cluster specific directory in user's KubeAid config, when doing disaster recovery.
added support for specifying CA bundle for accessing customer's Git server.
v0.8.0
Azure support related :
-
Validate PEM type SSH key-pair (used for external OpenID provider associated with the Workload Identity setup).
-
Scale to / from zero support for node-groups.
-
Deploying Velero to provisioned cluster.
-
Deploying Sealed Secrets backuper CRONJob to provisioned cluster.
-
High performance networking using Cilium.Not possible, since we need to have an BGP router to do cross subnet traffic routing.
Bug fixes :
-
After doing
clusterctl move, CAPZ and ASO weren't able to authenticate with Microsoft Entra. Fixed that. -
After doing
clusterctl move, sealed secrets weren't getting updated (to being signed by the provisioned cluster's Sealed Secrets key) in KubeAid. Fixed that.
Developer experience and CI related :
-
Added
golangci-lint,trivyandrenovateconfiguration files. -
Fix all lint errors.
-
Write a Gitea Actions workflow file, to run lint tests for each PR.
-
Update the Github release actions workflow file, to do vulnerability scanning using Trivy and upload the results as GitHub artifacts.
-
Instead of directly fetching binaries like
azwiandclusterawsadm, fetch the source repository and usebuildGoModuleto build the binary intead. This way, it's easier to support all the OS + CPU architecture combinations. -
CreatingKubeAid Bootstrap Scriptoverlay. So I can install thekubeaid-bootstrap-scriptbinary along with its runtime dependencies, inKubeAid Agent, using KubeAid Agent's nix flake.Ditched the idea of building multi-arch container images using Nix.
Not worth the time as of now.
**Related changes in KubeAid ** :
-
added
azure-workload-identity-webhookKubeAid chart -
consuming service account issuer keys from Kubernetes Secret
-
removing root account password for each node
Signed-off-by: Archisman archisman@obmondo.com
v0.7.2
-
Currently we have a single config file : the
KubeAid Bootstrap Scriptconfig file.And credentials get picked up, with this precedence order :
CLI Flag > Environment Variable > KubeAid Bootstrap Script config file.A downside of specifying credentials via CLI flags / environment variables is that the credentials will stay in the shell history.
We need to have a dedicated
KubeAid Bootstrap Scriptsecrets file. Any credentials will be specified there.We can later have a feature : of automatically backing up the secrets file in an S3 compatible storage, during the cluster bootstrap process.
Or the user can just save the secrets file in passwordstore / 1password / other password management solutions.
And the config file will be saved in the KubeAid config's cluster specific directory.
If the user wants to reinstall / recover a cluster, the user can download the KubeAid Bootstrap Script config and secret files locally, update tokens and credentials (if required) and then use them to run the corresponding command.
-
Also, hides this annoying ArgoCD port-forward error :
E0403 16:48:33.891777 48128 portforward.go:391] "Unhandled Error" err="error copying from remote stream to local connection: readfrom tcp4 127.0.0.1:53214->127.0.0.1:53218: write tcp4 127.0.0.1:53214->127.0.0.1:53218: write: broken pipe" logger="UnhandledError" -
I ran the
cluster upgrade awscommand. Thecapi-cluster.values.yamlgot weirdly and wrongly formatted : Archisman-Mridha/kubeaid-config@main...Archisman-Mridha:kubeaid-config:kubeaid-kubeaid-demo-aws-1740740791.I have to disable yq's formatting.
v0.7.1
- Implementing a
custom slog handlerwhich emitscolorizedlogs. - Using
multiwriterto write to both os.Stdout and a log file. - Disabled debug logs from the Helm SDK.
- Having a nice folder structure in the
outputsdirectory.