github kubernetes-retired/multi-tenancy hnc-v0.7.0
HNC v0.7.0

latest releases: hnc-v0.8.0, hnc-v0.8.0-rc1, hnc-v0.7.1-test1...
3 years ago

HNC v0.7.0 introduces Exceptions, which gives you fine-grained control of where objects are propagated, instead of always copying objects to all descendant namespaces.

Installing

WARNING: you cannot upgrade from HNC v0.5.x directly to HNC v0.7.x, since the use different APIs (v1alpha1 vs v1alpha2). Instead, upgrade to HNC v0.6.0 first, and then from v0.6.x to v0.7.x. Be sure to carefully follow the upgrading instructions from v0.5 to v0.6 to avoid losing data.

You can install or upgrade HNC on your cluster using the following commands (admin privileges required):

HNC_VERSION=v0.7.0
kubectl apply -f https://github.com/kubernetes-sigs/multi-tenancy/releases/download/hnc-${HNC_VERSION}/hnc-manager.yaml
# Wait 30s if HNC has never been installed before for it to generate certs and reboot itself.

To install the kubectl plugin on your workstation, either use Krew or install manually:

  • Via Krew (APR 30 2021: Krew replaced by HNC v0.8.0): Install Krew if you don't have it already, then run the command kubectl krew install hns.

    • The HNC v0.8.0 plugin may work with HNC v0.7.0, but for best results, download the plugin manually, or upgrade to the latest version of HNC.
  • Manually: Switch to any directory in your PATH (e.g. ~/bin) and run the following commands:

    HNC_VERSION=v0.7.0
    HNC_PLATFORM=linux_amd64 # also supported: darwin_amd64
    curl -L https://github.com/kubernetes-sigs/multi-tenancy/releases/download/hnc-${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

  • Exceptions are not correctly reapplied if the labels are changed on a namespace (#1448)
  • CRDs and webhooks use the v1beta1 API versions, which are deprecated in K8s 1.16 and removed in 1.22 (#1247)

Changelog

Since HNC v0.6

  • Introduced Exceptions
  • When uninstalling HNC CRDs, subnamespaces could sometimes be erased by mistake; this is now fixed (#1285)
  • Default RAM requests/limits are raised from 50MB/100MB to 150MB/300MB as a result of scalability tests (#1306)
  • You can no longer create subnamespaces in kube-node-lease, similar to other system namespaces such as kube-system (#1229)

See full list of changes

Testing signoff

Target Tests By When Result
KIND 1.19 make test-e2e @adrianludwin dec 13 passed (as rc1)
GKE 1.18 (rapid channel) " @adrianludwin dec 14 passed
GKE 1.17 (regular channel) " @adrianludwin dec 13 passed (as rc1)
GKE 1.16 (stable channel) " @adrianludwin dec 13 passed (as rc1)

Don't miss a new multi-tenancy release

NewReleases is sending notifications on new releases.