Releases: projectcapsule/capsule
v0.2.1
v0.2.0
Enhancements
- Replicating resources across Tenant Namespaces using GlobalTenantResource and TenantResource APIs (#525 #222 #416)
- Support for labelling of Namespace by Tenant owners in v1beta2 API version (#431)
- Tenant v1beta2 API version (#426 #436 #633 #610)
- Support up to Kubernetes 1.26 (#665)
- Labelling PV and avoiding cross-tenant mount (#682)
Hotfix
- Tenant owner is unable to label namespaces (#663)
- Enforcing container registry also upon Pod update (#674)
- Wrong LimitRange reference in the documentation (#630)
Breaking changes
- Deprecation of Tenant API version v1alpha1 (#657)
Thanks
This awesome release has been made possible thanks to @oliverbaehler, @MaxFedotov, @bsctl, @YvosOnTheHub, @smileisak. Capsule v0.2.0 is implementing terrific new features and this is possible to you all, by opening issues, feature requests, bugs, and using it for your projects!
Per Aspera, ad Astra! 🚀
v0.1.3
🚨 This is a critical release as a patch for the CVE-2022-46167.
Enhancements
- Include gosec in CI pipeline #621 (@alegrey91)
- Added makefile command to autogen CRDs documentation #629 (@mastrogiovanni)
- Chart Linting (Dry Install) / Github Config #635 (@oliverbaehler)
- Update documentation on integration with Flux v2 #636 (@maxgio92)
- Clarify ServiceAccount as Tenant Owner documentation #645 (@lalyos)
- Improve local development experience #650 (@oliverbaehler)
- Typo in the Velero guide #661 (@prometherion)
Fix
- Privilege escalation by ServiceAccount deployed in a Tenant Namespace - 75525ac
- Service controller doesn't skip sentinel error #653 (@prometherion)
v0.1.2
v0.1.2 (2022-07-26)
Docker images are hosted on docker.io and can be pulled with the following command:
docker pull clastix/capsule:v0.1.2
Enhancements
- Integration and support with cert-manager (#613, #554)
- Integration with FluxCD (#528, requires capsule-proxy v0.3.0)
- Support with GCP IAM (#583)
- Enhanced Helm Chart documentation and generation (#592)
- Support for Kubernetes 1.24 (#590)
- Granting PATCH rights to Tenant Owners (#582)
- Annotation preventing accidental Tenant deletion (#563)
- Upgrade to Go 1.18 (#543)
- Dynamic cluster roles to Tenant owner (#524)
- Tolerations for pre and post job hooks used by Helm (#538)
Hotfixes
- Tenant owners can edit Namespace labels or annotations although these are forbidden (#617)
- Wrong Helm examples (#589)
- Test fixes (#586)
- Unrequired PATCH verb for deleter cluster-role (#587)
- Removing unused struct memebers (#556)
- Ensuring limit error upon Custom Resource Definitions Tenant quota (#564)
- Idempotent Helm upgrade for the generated CA (#546)
- Wrong CA name referenced in Helm charts (#521)
- Validation of forbidden regex patterns (#510)
- Sanitizing name for CRD Tenant quota (#510)
- Installation on AWS EKS (#500)
What's next?
Capsule is going to consolidate APIs with a new version, both for Tenant
and CapsuleConfiguration
resources.
Thanks
As usual, the community around Capsule is growing, many kudos to all the people using it and contributing with feature requests, bug reports, or by using it!
To the maintainers that contributed to this release, @slushysnowman, @MaxFedotov, @oliverbaehler, @fierman333, @gkarthiks, @bsctl, @viveksyngh, @TinySong, @titansmc, @pramodsetlur, cheers and thanks for your effort in shaping this new release! 🥂
v0.1.2-rc1
- 261876b docs: documenting new support for dynamic tenant owners clusterrole
- ab75014 refactor: support for rfc 1123 for tenant owners cluster roles overrides
- e237249 feat: improve chart documentation
- e15191c refactor: sentinel error for running in out of cluster mode
- 741db52 chore(gh): adding 1.24 to the e2e test matrix
- 7b3f850 chore(gh): disabling fail fast for e2e
- 7273341 fix(docs): helm example was wrong when customizing value
- cac2920 feat: grant global patch privileges and add patch handler
- e0b339d fix(tests): cleaning up protected tenant upon test success
- 4f55dd8 refactor: removing unrequired verb for clusterrole namespace deleter
- fd73834 docs: fix typos
- fce1658 chore: remove unused CASecretNameAnnotation constant
- 93547c1 build(helm): revert bumping chart version
- f1dc028 feat: generate TLS certificates before starting controllers
- 3738118 build(helm): refactor capsule TLS certificates management
- 82b58d7 feat: refactor capsule TLS certificates management
- 60e826d docs: update tenant owner default cluster documentation
- 6e8ddd1 build(deps): bump eventsource from 1.1.0 to 1.1.1 in /docs
- b64aaeb docs: referring to docker hub image
- 9a85631 chore(yaml): using docker hub image
- 51ed429 chore(helm): using docker hub image
- cf313d4 chore(make): using docker hub image
- 526a605 docs: documenting charmed operator (#572)
- 0dd13a9 chore(yaml): aligning to v0.1.2-rc0 image
- 1c8a5d8 docs(proxy): documenting retrieval of a single namespace
- b9fc508 style: removing unused struct field
- 29d29cc feat(ci): added docker.io repository
- f207546 docs(readme.md): add slack link
v0.1.2-rc0
- deb0858 build(helm): support cert-manager for generating tls and ca
- 1af56b7 feat: support cert-manager for generating tls and ca
- 3c9228d fix: protectedHandler OnDelete get tenant using client
- bf6760f docs: documenting protected tenants annotation
- 23564f8 feat: protected tenant annotation
- a8b84c8 fix: using sentinel error for non limited custom resource
- 8c0c8c6 docs: documenting proxysetting crd use cases in capsule-proxy
- ec89f5d docs(readme.md): add links to community repo and governance doc
- 68956a0 chore(ci): pinning golangci-lint version
- c036fee docs(general/proxy): remove duplicated doc about nodes
- 9f6883d fix: formatting error message for service-related objects
- e7227d2 build(helm): alignement with latest changes
- f168137 build(installer): alignement with latest changes
- 49e76f7 style: linters refactoring
- 9d69770 style: fixing linters issues
- f4ac85d refactor: using k8s client scheme
- cb4289d refactor: using kubernetes tls secret key names
- 0119789 refactor: optimizing watchers predicates
- 3458366 refactor: avoiding using background context
- 69a6394 build(deps): bump async from 2.6.3 to 2.6.4 in /docs
- a3495cf chore: go 1.18 support
- 7662c3d docs: aligning to dynamic tenant owner roles
- 137b0f0 test: aligning to new rolebindings sync policies
- 9fd18db feat: dynamic cluster roles for tenant owners
- 364adf7 style: using constant for rbac group
- cb3ce37 fix: ensuring ca bundle replication upon helm upgrade
- 59d81c2 chore(build): makefile for building local binary
- 85861ee build(deps): bump moment from 2.29.1 to 2.29.2 in /docs
- ed88606 build(deps): bump minimist from 1.2.5 to 1.2.6 in /docs
- afae361 fix(helm): jobs in capsule helm chart should use the same tolerations as deployment
- 535ef74 chore(ci): force use of go 1.16
- f373deb fix: fixing the helm chart
- 569d803 fix: using configuration for mutating and validating webhooks
- 7b3b0d6 fix: using configuration for tls and ca secret names
- 0bfca6b (tag: helm-v0.1.7) fix(helm): avoiding overwriting secrets upon helm upgrade
- fdc1b3f fix(docs): capsule-proxy chart url
- f7bc2e2 chore: description for limit ranges and update doc
- d302163 Docs update (#530)
- 7fefe4f build(deps): bump url-parse from 1.5.7 to 1.5.10 in /docs
- 302bb19 build(deps): bump prismjs from 1.25.0 to 1.27.0 in /docs
- 27a7792 build(deps): bump simple-get from 3.1.0 to 3.1.1 in /docs
- 1a60e83 docs: misc typo fixes in various places
- 632268d fix(docs): adding missing validatingwebhookconfiguration patch for nodes endpoint
- 4e07de3 build(deps): bump url-parse from 1.5.3 to 1.5.7 in /docs
- 1d10bca test(e2e): tenant regex forbidden namespace labels and annotations
- d4a5f3b fix: validate regex patterns in annotations #510
- cd56eab fix: object count resource quotas not working when using Tenant scope
- 6cee5b7 build(deps-dev): bump postcss from 7.0.39 to 8.2.13 in /docs
- 8e7325a build(deps): bump nanoid from 3.1.29 to 3.2.0 in /docs
- be26783 docs: clarify usage of serviceaccount as tenant owner (#503)
- 0b199f4 fix: modify jobs.image.tag for eks
v0.1.1
v0.1.1 (2022-01-11)
Per Aspera ad Astra, 2022.
Docker images are hosted on quay.io and can be pulled with the following command:
docker pull quay.io/clastix/capsule:v0.1.1
Enhancement
- Avoid polluting logs with not found errors in ServiceLabels reconciler (#493)
- Automatic discovery of Kubernetes client version in the Helm post-install job (#462)
- Allowing image pull secret for Helm hooks jobs (#486)
- Enhanced documentation (#480, #449, #433)
- Avoiding race condition on Helm Chart build step in GitHub Actions (#459)
- More options for the local development environment (#429)
- Support additional webhook configuration in helm charts (#427)
- JQ is required for user creation (#418)
Hotfix
- Allowing ArgoCD to deal with Capsule Helm Chart (#438)
- Restoring Multi-Tenant Benchmark document (#488)
- Fixing conversion issue related LimitRanges from
v1alpha1
tov1beta1
(#440) - Error handling for RoleBinding drops in case of errors (#453)
- Fixing regex not allowing to limit registries from Azure container registry (#452)
- NetworkPolicies not synced after Tenant update (#465)
- Support for underscore in the Container Registry regex (#460)
- Hard-coded namespace in the webhook configuration (#455, #448)
- Avoid CRD reinstall from e2e test suite (#444)
- Invalid YAML default values w/ v0.1.1 Helm Chart (#441)
- Automatic discovery of supported API version (#415)
- Tenant condoning checks capsuleUserGroup membership rather than tenant owners (#421)
- Avoiding nil pointer with non-well-formed ServiceAccount Tenant owners (#412)
- Supporting start-up in HA of the Capsule controller (#410)
Features
- Support for Kubernetes 1.23 (#495)
- Documenting how to migrate from
v1alpha1
tov1beta1
(#408) - Limiting amount of custom resources per Tenant (#365)
- Support for Namespace labeling by Tenant Owners (#407)
- Programmable deny of wildcard hostnames (#219)
More features are on their way and planned here.
Thanks
As usual, we're proud of the community behind Capsule and this release has been possible thanks to all the contributors and newcomer feature requesters or issuers: @93lucasp, @adrianhernandez-stratio, @oliverbaehler, @mendrugory, @MaxFedotov, @nodefourtytwo, @alegrey91, @RixTmobilender, @ptx96, @brightzheng100, @slushysnowman, @bsctl, @titansmc, and @viveksyngh!
v0.1.1-rc1
- 5c7804e fix: add rolebinding validation against rfc-1123 dns for sa subjects
- c4481f2 docs: additions to dev-guide
- ec715d2 fix: do not register tenant controller\webhook\indexer until CA is created
- 0aeaf89 fix(docs): broken links and style, deleted command code from MD file
- 3d31ddb docs: instructions on how to develop the docs website
- e83f344 feat(docs): removed meta robots and added meta og:url
- da83a87 style(docs): added blockquote style
- 43a944a feat(docs): created 404 default page
- 0acc2d2 feat(docs): setup Gridsome for the website
- 14f9686 Forbidden node labels and annotations (#464)
- 6ba9826 chore(linters): no more need of duplicate check
- bd58084 docs!: container registry enforcement required fqci
- 3a5e508 test: fqci is required for containar registry enforcement
- e2768da fix!: forcing to use fqci and container registries with no repositories
- b97c231 fix: duplicate release for helm chart this commit remote helm release workflow trigger on create which triggers duplicate event as push
- fa8e805 build(ci): triggering e2e also for nested files
- 8df66fc test: resources are no more pointers
- c221891 fix: pointer doesn't trigger resources pruning
- e361e2d fix: allowing regex underscore for container registry enforcement
- 260b60d build(helm): bumping up to new Helm version
- e0d5e6f Refactor helper script to create a Capsule user (#454)
- 0784dc7 docs: add service account group to Capsule group (#450)
- b17c6c4 fix(helm): do not hardcode namespace forwebhook configs
- 52cf597 docs: use one patch for each webhook
- b8dcded docs: add dev env diagram
- 6a175e9 docs: explicitly add the contribution section
- 3c609f8 docs: tune the dev setup process
- 7c3a59c feat: ignore vscode
- d3e3b8a docs: review and enhance dev guide
- 7a8148b docs: add dev guide
- 405d3ac docs: move and refactor contributing.md
- f92acf9 fix: correct the make run issue
- bbb7b85 fix: avoid CRD reinstall
- 0f7284d fix(helm): remove matchExpressions selector from ingresses webhook
- 7db263b fix(documentation): add link to use case velero backup restoration
- 0a8f50f docs(operator): add documentation for deny wildcard hostnames
- 7a66e8e ci: limit e2e tests to specific paths
- b5eb03e chore: adding auto-generated code
- 681b514 ci: allowing tag creation as trigger to push helm chart
v0.1.1-rc0
- b28b98a feat: namespace labeling for tenant owners. fix linting issues
- f6bf0ca build(installer): namespace labeling for tenant owners
- 1081bad docs: namespace labeling for tenant owners
- 79372c7 build(helm): namespace labeling for tenant owners
- 4e8faaf build(kustomize): namespace labeling for tenant owners
- d1b0089 test(e2e): namespace labeling for tenant owners
- a14c760 feat: namespace labeling for tenant owners
- 03456c0 (tag: helm-v0.1.1) fix(ci): allowing tag creation as trigger to push helm chart
- ddfe221 build(helm): update chart version
- 6b68363 build(helm): additional webhook configuration in chart
- 357834c refactor(test): switch from kubernetes version control to NoKindMatchError
- 085d9f6 test(e2e): disabled Ingress wildcard annotation
- 196e3c9 feat: add deny-wildcard annotation
- 0039c91 docs: fix doc minor issues
- 26965a5 fix: skipping indexer if error is a NoKindMatch
- 422b659 fix: check if user is a member of capsuleUserGroup instead of tenantOwner when cordoning a tenant
- 61e6ab4 fix(hack): jq installation checking
- 94c6a64 fix: validating Tenant owner name when is a ServiceAccount
- 75ebb57 fix(chore): ignoring Helm tags
- 8f3b3ea fix: deleting Pods upon TLS update for HA installations
v0.1.0
v0.1.0 (2021-08-23)
Welcome to the first minor release of Capsule full of new features!
⚠️ Warning: this release contains breaking changes!
Docker images are hosted on quay.io and can be pulled with the following command:
docker pull quay.io/clastix/capsule:v0.1.0
Enhancement
- Use more comprehensive variables in the code-base (#164)
- Releasing Helm chart release upon tag (#250)
- Use multiple groups as capsule-user-group (#258)
- Support of Capsule Chart for ArgoCD (#266 #264)
⚠️ Webhook refactoring (#297)- Optimizing reconciliations for RoleBinding (#315)
- Refactoring of the Tenbant controller (#363)
Breaking changes
⚠️ Removing the RBAC Proxy sidecar container for metrics exposure (#246)⚠️ Capsule configuration using theCapsuleConfiguration
CRD (#122)⚠️ Dropping forv1beta1
additionalPrinterColumns regarding tenant ownership (#331)⚠️ Preventing ingress hostname collision by default (#218 #207)
Hotfix
- Using an arbitrary name for capsule namespace generates errors during webhook calls (#247)
- Check for KUBECONFIG env variable during user creation (#298)
⚠️ Wrong package name for theconfig
controller (#373)- Documenting Helm Namespace creation (#359)
- Documenting Capsule installation on AWS EKS (#306)
Features
- Support for armv7/arm64 (#244)
- Emitting events for policy violations and other events (#173)
- Support for ImagePullPolicy enforcement at Tenant level (#271)
- Tenant cordoning (#243)
- Grafana dashboard (#150)
- Single YAML file installer (#347)
- Support for Service type enforcement at Tenant level (#339 #390)
- Support for PriorityClass enforcement at Tenant level (#257)
- ResourceQuota scope configurable at Tenant level (#50)
- Support up to Kubernetes 1.22 (#335)
- Addressing the multi-tenancy benchmark requirements (#68)
- Ingress hostname collision scope, evaluating Ingress paths (#358)
- New Capsule
v1beta1
API version (#286) - Support for multiple Tenant owners (#276)
- Tenant backup and restore of a Tenant using bash script (#320 #338)
More features are on their way and planned here.
Thanks
For our biggest release, many kudos to the great effort showed by @MaxFedotov, @alegrey91, @ptx96, @spagno, @viveksyngh, @sftim, @xphoniex, @ruzickap, @ludusrusso, and @bsctl.