Releases: clastix/kamaji
v0.3.0
Kamaji v0.3.0 can be installed using its v0.12.0 Helm Chart.
Remember to add the CLASTIX repository and update it:
helm repo add clastix https://clastix.github.io/charts helm repo update
Images can be pulled from Docker hub:
docker pull clastix/kamaji:v0.3.0
⚠️ Due to several changes on theTenantControlPlane
definition, ensure to update it manually if you've priorly installed Kamaji using Helm.
Enhancements
- Docs enhancement #298 @bsctl
- TCP deployment mangling (additional volumes, init containers, containers, and volume mounts) #223 @maruina @prometherion
- Support for TCP deployment Dynamic Resource Allocation #293 @prometherion
- Custom container registry #299 @prometherion
Hotfixes
v0.2.3
Container images are hosted on docker.io and can be pulled with the following command:
docker pull clastix/kamaji:v0.2.3
The current release has been tested over the last Chart release (0.11.5), remember to update your Helm chart as follows:
helm repo add clastix https://clastix.github.io/charts
helm repo update
Hotfixes
- CrashLoopBackOff when defining ingress in spec.controlPlane #282 @sn4psh0t @prometherion
- Missing Ingress loadbalancer status #283 @prometherion @sn4psh0t
Enhancements
- Support up to Kubernetes 1.27 #289 @bsctl @prometherion
v0.2.2
Container images are hosted on docker.io and can be pulled with the following command:
docker pull clastix/kamaji:v0.2.2
The current release has been tested over the last Chart release (0.11.4), remember to update your Helm chart as follows:
helm repo add clastix https://clastix.github.io/charts
helm repo update
Hotfixes
- Upon restoration of a TCP, Kamaji is not able to reconcile Deployment #279 @prometherion
v0.2.1
Container images are hosted on docker.io and can be pulled with the following command:
docker pull clastix/kamaji:v0.2.1
The current release has been tested over the last Chart release (0.11.3), remember to update your Helm chart as follows:
helm repo add clastix https://clastix.github.io/charts
helm repo update
Enhancements
- Code optimization for resource checksum #258 @prometherion
- Resource label consistency #269 @prometherion @bsctl
- Upgrading to new Kubernetes container registry #262 @ptx96
- Supporting Kubernetes v1.26.1 #274 @prometherion
Hotfix
- Support Velero restore #270 @ptx96 @prometherion
v0.2.0
Container images are hosted on docker.io and can be pulled with the following command:
docker pull clastix/kamaji:v0.2.0
The current release has been tested over the last Chart release (0.11.0), remember to update your Helm chart as follows:
helm repo add clastix https://clastix.github.io/charts
helm repo update
⚠️ Due to several changes on theTenantControlPlane
definition, ensure to update it manually if you've priorly installed Kamaji.
Enhancements
- cert-manager support #166 (@prometherion)
- Preventing TCP downgrading via validating webhook #193 (@prometherion)
- Upgrade to latest Kubernetes release #196 #225 (@prometherion)
- Showing used datastore in
kubectl get tcp
output #183 (@bsctl @prometherion) - DataStore migration support when using the same driver #164 (@prometherion)
- Removing rbac-proxy for metrics scraping #192 (@prometherion)
- Avoiding switch to a different DataStore driver #194 (@prometherion)
- Validating selected DataStore on TCP basis #206 (@prometherion)
- Freezing TCP during migration #208 (@prometherion)
- Tenant Control Plane addons reactive reconciliation #213 #218 (@prometherion)
- Updating GH Action base image #227 (@prometherion)
- Various reorgs #222 (@prometherion)
- Support installation on AWS EKS #187 (@maruina)
- Updating default
etcd
installation preventing segfault #202 (@bsctl @prometherion) - Documenting FluxCD integration with Tenant Control Planes #121 (@curx @maxgio92)
- TCP Deploymentupdate strategy #242 (@bsctl @prometherion)
- Customizing kubelet preferred address types #245 (@fchiaretta @prometherion)
- First benchmark results #252 #249 (@prometherion)
- Documentation alignment #236 (@bsctl)
- ServiceMonitor support #251 (@prometherion)
- Performance enhancements #255 (@prometherion)
Hotixes
- Missing metadata upon container image release #190 (@prometherion)
- Failing reconciliation due tom missing secret #189 (@prometherion @maxgio92)
- Corruption of etcd prefix upon deletion of single TCP #201 (@bsctl @prometherion)
- DataStore certificate change truncate etcd prefix #204 (@prometherion)
- CA rotation with certs regeneration #240 (@prometherion)
- Handling etcd Helm chart basic auth values #254 (@bsctl)
Thanks
To all the contributors, issue reporters, or feature requesters, ad maiora! 🥂
v0.2.0-rc0
- c905e16 chore(docs/guides): fix syntax on flux helmrelease
- e08792a chore(docs/images): update flux diagram
- 248b508 docs(docs/content/guides/kamaji-gitops-flux.md): use third person
- 5cebb05 docs: add guide for managing tenant resources gitops way
- efbefba docs(api): aligning to latest changes
- bc19203 chore(gi): checking diff and docs alignement
- c8b8dcc test(e2e): testing different datastores and migration
- cf27212 chore: adding samples and automating deployment of datastores
- 4aa7792 chore(helm): using webhooks for secrets instead of finalizers
- a3c52e8 chore(kustomize): using webhooks for secrets instead of finalizers
- 7ed3c44 refactor(datastore): using webhooks for secrets instead of finalizers
- beebaf0 fix(storage): wrong variable while assigning finalizers
- b9cda29 fix(migrate): allowing leases updates during migration
- 7db8a64 fix(etcd): using stored username for cert common name
- c6abe03 fix(soot): typo on params for service name and namespace
- 723fa1a chore(helm): upgrading etcd to v3.5.6
- 7e0ec81 deps: upgrading etcd to v3.5.6
- 7353bb5 chore(gh): upgrading to go 1.19
- 96cedad test(e2e): upgrading to ginkgo v2
- 76b603d chore(helm): upgrade to 1.26
- 7cff6b5 chore(kustomize): upgrade to 1.26
- 6e6ea01 refactor(k8s): upgrade to 1.26
- aefdbc9 deps(k8s): upgrade to 1.26
- 074279b chore(go): upgrading to 1.19 required for k8s 1.26
- 09891f4 chore(gh): running workflows on ubuntu-22.04
- 18c6046 refactor: conforming finalizers management
- ceab662 feat(soot): using finalizer for clean-up
- d38098a fix(soot): ensure that manager is stopped upon tcp deletion
- 017a50b fix(soot): ensuring manager to restart upon tcp pod restart
- b07062b chore(kustomize): missing datastore finalizer rbac
- b880cff fix: missing datastore finalizer rbac
- 3f7fa08 refactor: removing unused scheme
- 8311f1f fix: ensure default datastore exists before starting manager
- 77fff03 chore(helm): support for runtime class
- abada61 chore(kustomize): support for runtime class
- 1eb1e0f feat: support for runtime class
- e83c347 refactor(soot): creating channel source during controller setup
- 3b90294 chore(helm): kubeadm phases are moved to soot manager
- c5d62f3 chore(kustomize): kubeadm phases are moved to soot manager
- 938341a refactor(log): uniforming log for soot controllers
- 3ea721c feat(kubeadm): moving phases to soot manager
- 5cbd085 chore(helm): addons no more need checksum
- e358fbe chore(kustomize): addons no more need checksum
- 9d55e77 refactor(api): no more need of checksum for addons
- 1e4640e feat(addons): implementation in the soot cluster
- 1b14922 refactor(kubeadm): preparing migration for addons to soot manager
- 11f8000 fix(konnectivity): typo in ca-cert cli flag
- e11b459 fix(konnectivity): reconciliation failed and in loop
- 9c8de78 docs: datastore migration support
- 4c51eaf feat(konnectivity): reconciliation performed by soot manager
- 1a80fc5 fix(api): wrong konnectivity defaults
- 02052d5 fix(helm): wrong konnectivity defaults
- 7e47e33 fix(kustomize): wrong konnectivity defaults
- 28c47d9 refactor: moving migrate webhook handling from tcp to soot manager
- 1ec257a feat: introducing soot controllers manager
- 68006b1 fix(datastore): coalesce for storage configuration
- cd109dc fix: using slash prefix for etcd datastore
- 1138eb1 fix: using the status storage schema for the etcd prefix
- f4f9140 feat(migrate): enhancing job metadata
- 5e78b63 feat(migrate): making timeout configurable
- e25f95d feat(migrate): making image configurable
- 7f49fc6 refactor(konnectivity): removing default logging options
- 8b96838 fix: support for arguments without a value
- cb5e356 docs: support for konnectivity extra args
- 0d6246c chore(helm): support for konnectivity extra args
- d8760fd chore(kustomize): support for konnectivity extra args
- c00df62 feat(konnectivity)!: support for extra args
- 653a393 chore(helm): decoupling agent and server struct
- 6775b2a chore(kustomize): decoupling agent and server struct
- 5241fa6 refactor(konnectivity)!: decoupling agent and server structs
- 723fef5 feat(migrate): injecting webhook into tcp
- 8d1d859 refactor: moving datastore migrate resource to its module
- c96f589 fix(helm): installing datastore upon completion
- 2d1daa8 feat(datastore): validation webhook
- fe94829 chore(helm): wrong crd validation markers
- 79942dd chore(kustomize): wrong crd validation markers
- 4491959 fix(kubebuilder): wrong crd validation markers
- 2336d40 refactor: using custom validator and custom defaulter
- 79c59e5 feat: validation webhook to prevent DataStore migration to a different driver
- 95d0983 chore(dockerfile): optimizing build
- 7e276e5 chore(helm): support to datastore migration w/ the same driver
- b2e6460 fix(helm): switching over webhook server service
- 3850ad9 chore(kustomize): support to datastore migration w/ the same driver
- 9e89937 feat: support to datastore migration w/ the same driver
- a260a92 fix(psql): checking db and table ownership
- cc4864c feat: datastore migration drivers
- ece1a4e fix: avoiding inconsistency upon tcp retrieval and status update
- eb2440a refactor: abstracting datastore configuration retrieval
- 0c41570 fix(datastore): not deleting database content upon certificates change
- 7a6b0a8 fix(datastore): ensuring to update status upon any change
- a31fbdc chore(makefile): allowing creation of multiple datastore instances
- 4ff0cdf docs: configuration for the manager command
- ae573b1 chore(kustomize): removing rbac proxy and support for manager command
- e81b322 chore(helm): removing rbac proxy and support for manager command
- 4298bdd chore(dockerfile): manager command
- 15d0d57 feat: refactoring for commands
- c17a31e fix: avoiding collision of datastore schemes
- f0df1cf fix: removing tcp data using prefix, and not range
- 1bcff90 chore(kustomize): show datastore for each tcp
- 6c817a9 chore(helm): show datastore for each tcp
- 5b9311f feat: show datastore for each tcp
- 0d607df refactor: adding finalizer upon datastore setu
- 11502bf refactor: retry on conflict for the status update
- ff1c9fc chore(samples): updating to latest kubeadm supported version
- adc4b7d chore(test): updating to latest kindest/node version
- a96133f deps: upgrade to k8s 1.25.4
- 81fb429 test(e2e): validating tcp kubernetes version
- 190acc9 feat: tcp version validation upon create and update
- b0a059d docs: cert-manager dependency
- bcc7d0e chore(makefile): installing cert-manager for e2e
- 9dc0a9a chore(makefile): crds diverged between kustomize and helm
- d312738 chore(helm): support for cert-manager and webhooks
- 30bc8cc feat!: support for cert-manager and webhooks
- 55d7f09 chore(kustomize): support for cert-manager and webhooks
- 2c892d7 fix(ci): missing metadata upon container images release
- 43f1a6b chore(makefile): installing required dependencies
- 78ef34c fix(docs): aligning to latest changes for the chart documentation
- 16d8b2d fix(helm): support installation on EKS
- 68764be chore(helm): support installation using --wait option
v0.1.1
Container images are hosted on docker.io and can be pulled with the following command:
docker pull clastix/kamaji:v0.1.1
The current release has been tested over the last Chart release (0.10.0), remember to update your Helm chart as follows:
helm repo add clastix https://clastix.github.io/charts
helm repo update
⚠️ Due to an update on theTenantControlPlane
definition, ensure to update it manually if you've prior installed Kamaji.
Features
- Specify scheduling constraints for TenantControlPlane pods #179
Enhancements
v0.1.0
Container images are hosted on docker.io and can be pulled with the following command:
docker pull clastix/kamaji:v0.1.0
Enhancements
- Reflecting current version of the deployed Tenant Control Plane version rather then the specified one in the spec [#5]
- Moving to Docker Hub as main container registry [#8] and GH Actions workflow [#16]
- Support for Go 1.18 [#12]
- Dynamic management of Addons (kube-proxy, core-dns) [#7, #107]
- Helm Chart automatic release [#50]
- Using default values for the network profile section of Tenant Control Plane [#58]
- Remove API Machinery NewYAMLSerializer() deprecated function [#60
- Report Kamaji version and info at startup [#62]
- Adding konnectivity as Addons [#25, #93, #100, #140]
- Missing or wrong header in source files [#71]
- Utils for tenant kubernetes client [#72]
- Making optional spec.networkProfile.domain and renaming it to certSANs [#75]
- Missing handling of conflicts during reconciliation [#54]
- Set image pull policy to Always [#82]
- Provide logs for deletion of Tenant Control Planes [#83]
- Make container resources allocation configurable in Tenant Control Plane pods [#99]
- Support for additional extra arguments in TCP components [#103]
- Support for etcd storage class and size in Helm chart [#112, #114]
- Introduce support for MySQL and PostgreSQL as datastore [#22]
- DataStore API [#67, #133]
- Upgrade dependencies to Kuberentes 1.25 [#136]
- Dynamic kube-proxy addon version [#137]
- DataStore selection at the Tenant Control Plane level [#138]
- Enable topology spread constraints on tcp deployment [#142]
- Add the scale subresource in TenantControlPlane custom resource definition [#144]
Bug fix
- Tenant Control Plane kubelet configuration is not updated upon cgroup driver change [#79]
- Reconciliation of Kubeconfig upon TCP address change [#90]
- kube-proxy kubeconfig is missing address when dynamically allocation [#97]
- Update link to Capsule in README [#120]
- Wrong ServiceAccountIssuer string in kube-apiserver [#149]
- Documentation alignements [#162]
What's next
Check the just opened milestone and feel free to open a feature request!
Thanks
As the first minor release of Kamaji we're really emotional and we would like to thank all the contributors and early adopters: @bsctl, @ptx96 , @stek29, @davideimola, @alegrey91, @maxgio92, @mendrugory, @prometherion.
v0.1.0-rc0
- reorg: upgrade phase as first resource by @prometherion in #6
- chore: using docker hub as default container registry by @prometherion in #9
- Support for Go 1.18 by @prometherion in #12
- reorg: scaffolding for e2e test suite by @prometherion in #15
- docs: pointing to k8s slack channel by @prometherion in #13
- Addons by @mendrugory in #7
- chore(helm): addons by @mendrugory in #24
- docs(kind): fixed URL for kamaji develop deploy by @ptx96 in #33
- CI - Build and push amd/arm OCI images by @ptx96 in #17
- fix(helm): missing crd update upon addons feature by @prometherion in #36
- test(e2e): add test suite for e2e by @alegrey91 in #34
- Update documentation with latest changes by @bsctl in #44
- reorg: marking loadbalancer errors as debug by @prometherion in #39
- test(e2e): worker node join through kubeadm by @prometherion in #49
- Update the documentation by @maxgio92 in #47
- chore(ci): helm release pipeline by @davideimola in #50
- fix(docs): wrong links by @bsctl in #53
- Using default values for the network profile section of Tenant Control Plane by @prometherion in #58
- refactor(kubeadm): using suggested serializer with options by @prometherion in #60
- feat: providing binary version and details by @prometherion in #62
- Refactor and konnectivity by @mendrugory in #25
- kine by @mendrugory in #66
- style: ensuring headers are correct by @prometherion in #71
- refactor: abstracting tenant control plane client generation by @prometherion in #72
- fix: konnectivity reconciliation loop by @prometherion in #74
- Support for additional certificate SANs by @prometherion in #75
- refactor: retrying mutate function in case of conflict error by @prometherion in #77
- Always pulling images by @prometherion in #82
- feat: support for announced clusterip address by @prometherion in #81
- Ensuring kubeadm phases and addons reconciliation by @prometherion in #79
- feat: logging resource deletion by @prometherion in #83
- Refactoring getting-started docs and automations by @maxgio92 in #68
- Embed etcd installation using Helm by @prometherion in #84
- fix(internal/resources): close etcd client after etcdsetup reconcile by @maxgio92 in #88
- Ensuring kubeconfig upon TCP change by @prometherion in #90
- fix(internal/resources/konnectivity): get lb svc endpoint from cp status by @maxgio92 in #93
- Support for container resources for each component by @prometherion in #99
- Using TCP status as address source of truth by @prometherion in #97
- Collapsing TCP and Konnectivity Service in a single resource by @prometherion in #100
- Additional extra arguments for TCP components by @prometherion in #103
- CLI flag to specify Kine container image by @prometherion in #104
v0.0.1
Container images are available in the following container registries.
docker pull clastix/kamaji:v0.0.1
docker pull quay.io/clastix/kamaji:v0.0.1
Features
- Support for dynamic address allocation on native Load Balancer
- Zero Downtime Tenant Control Plane upgrade
- Helm Chart to install Kamaji on any Kubernetes cluster
Thanks to all the contributors involved in the development, such as @mendrugory, @bsctl, @maxgio92, and @alegrey91, @ptx96 although not directly involved in the Go code development! 🚀