HNC v1.0.0 is our first production release. It is based on the highly stable HNC v0.9, and introduces several new features including managed labels and annotations (beta) and HA support (experimental).
New: please sign up for low-volume announcements of new versions, proposed changes, and critical issues at kubernetes-hnc-announce.
Installing
You can install or upgrade HNC on your cluster using the following commands (admin privileges required):
# Select the latest version of HNC
HNC_VERSION=v1.0.0
# Install HNC. Afterwards, wait up to 30s for HNC to refresh the certificates on its webhooks.
kubectl apply -f https://github.com/kubernetes-sigs/hierarchical-namespaces/releases/download/${HNC_VERSION}/default.yaml
WARNING: if your cluster already has HNC installed, please ensure you are using HNC v0.9.0 or later before trying to upgrade to v1.0.0.
To install the kubectl plugin on your workstation, either use Krew or install manually:
-
Via Krew: Install Krew if you don't have it already, then run the command
kubectl krew update && kubectl krew install hns
. -
Manually: Switch to any directory in your
PATH
(e.g.~/bin
) and run the following commands:HNC_VERSION=v1.0.0 HNC_PLATFORM=linux_amd64 # also supported: darwin_amd64, darwin_arm64, windows_amd64 curl -L https://github.com/kubernetes-sigs/hierarchical-namespaces/releases/download/${HNC_VERSION}/kubectl-hns_${HNC_PLATFORM} -o ./kubectl-hns chmod +x ./kubectl-hns # Ensure the plugin is working kubectl hns # The help text should be displayed
For more instructions, see the user guide.
Known issues
- Managed label conflicts are silently ignored (#143, #144)
- SubnamespaceAnchor status should indicate errors reconciling labels/annotations (#175)
What's changed since HNC v0.9
- Beta: Addition of managed labels and annotations on namespaces (#47 and many others)
- Support for Rancher (#125), OpenShift (#141), Apple M1 (#111), and K8s 1.22 (#133)
- Startup and liveness probes (#139, #160)
- Experiment HA support (#163, #167)
Testing signoff
Target | Manifest | Tests | By | When | Result |
---|---|---|---|---|---|
GKE 1.22 (rapid channel) | default | make test-e2e
| @adrianludwin | mar 31 | passed |
GKE 1.22 (rapid channel) | ha | make test-e2e
| @adrianludwin | mar 29 | passed (as RC2) |
KIND 1.23 | default | make test-smoke
| @adrianludwin | mar 29 | passed (as RC2) |
GKE 1.20 (stable channel) | default | make test-e2e
| @adrianludwin | mar 29 | passed (as RC2) |
Thanks to all our contributors!
It's been a long road to get to HNC! Thanks to our key long-term developers, @rjbez17 and @yiqigao217. For special contributions in v1.0, thanks to @erikgb. And for the entire history of HNC, thanks to (in no particular order): @akazs, @RealHarshThakur, @gkarthiks, @florath, @nobbs, @rahulii, @simonoff, @onesail, @arturobrzut, @mishamo, @GinnyJI, @vishh, @xinydev, @squat, @just1900, @Abirdcfly, @seankhliao, @olljanat, @mikedanese, @joe2far, @minchao, @santinoncs, @shivi28, @danielSbastos, @vjdhama, @Fei-Guo, @lafh, @entro-pi, @srampal, @sophieliu15, @adrianchung, @jiachengxu, and anyone else I may have missed (please drop me a line if your name should be here)!