HNS
is built to allow for easier multi-tenancy in OpenShift clusters, containing a set of CRDs and controllers that allow users to create namespaces without needing cluster-level permission to create namespaces, with each namespace having a quota associated to it.
In order to use HNS
, you need to have:
- An operating OpenShift cluster of version 4.x.
cert-manager
installed on the cluster.
Helm chart docs are available on charts/hns
directory.
$ helm upgrade hns --install --namespace hns-system --create-namespace oci://ghcr.io/dana-team/helm-charts/hns --version <release>
To build the HNS
controller, login into an image registry, and run:
$ make docker-build docker-push IMG=<image_registry>/<image_name>:<image_tag>
To build the HNS
controller, login into an operational OpenShift cluster and run:
$ make deploy IMG=<image_registry>/<image_name>:<image_tag>
To test the HNS
controller, login into an operational OpenShift cluster and run:
$ make test-e2e
-
Subnamespace
: Represents a namespace in a hierarchy. EachSubnamespace
has anamespace
bound to it which has the same name as theSubnamespace
. ASubnamepsace
may also have a quota bound to it. The quota can be either aResourceQuota
object or aClusterResourceQuota
object (this depends on the depth in the hierarchy of theSubnamespace
) of the same name as theSubnamespace
. -
UpdateQuota
: A CRD that allows to move resources betweenSubnamespaces
. -
MigrationHierarchy
: A CRD that allows migrating aSubnamespace
to a different hierarchy.