HNC v1.1.0 introduces beta support for Hierarchical Resource Quotas (HRQ), opt-in propagation, and better support for K8s-based platforms such as Rancher.
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.1.0
# Select the variant of HNC you like. Other than 'default', options include:
# 'hrq': Like default, but with hierarchical quotas.
# 'ha': Like default, but with two deployments: one single-pod for the controller, and one three-pod for the webhooks
# 'default-cm': Like default, but without the built-in cert rotator, and with support for cert-manager
HNC_VARIANT=default
# 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}/${HNC_VARIANT}.yaml
WARNING: if your cluster already has HNC installed, please ensure you are using HNC v1.0.0 or later before trying to upgrade to v1.1.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:# Ensure HNC_VERSION is set as above HNC_PLATFORM=linux_amd64 # also supported: linux_arm64, 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.
What's changed since HNC v1.0
- Beta - Hierarchical Resource Quotas (HRQ): Drop-in replacement for many regular
ResourceQuota
use-cases, but across related namespaces. - Beta - Opt-in propagation: Allow propagation for a certain type, but disable it by default. Objects are propagated case-by-case based on annotations.
- Move built-in propagation exceptions to the command line: the new
--nopropagation-label
command-line flag gives admins more flexible option to control propagation on objects you don't create.
Testing signoff
Target | Manifest | Tests | By | When | Result |
---|---|---|---|---|---|
GKE 1.24 (regular channel) | default | make test-e2e |
@adrianludwin | 2023-06-23 | pass |
GKE 1.24 (regular channel) | ha | make test-e2e |
@adrianludwin | 2023-06-20 | pass (as RC3) |
GKE 1.24 (regular channel) | hrq | make test-e2e with hrq tests enabled |
@adrianludwin | 2023-06-20 | pass (as RC3) |
KIND 1.27.3 | default | make test-smoke |
@adrianludwin | 2023-06-20 | pass (as RC3) |