github kubernetes-sigs/hierarchical-namespaces v1.1.0
HNC v1.1.0

16 months ago

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.

Full Changelog

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)

Don't miss a new hierarchical-namespaces release

NewReleases is sending notifications on new releases.