Skip to content
This repository was archived by the owner on Apr 17, 2025. It is now read-only.

Commit 3414be0

Browse files
authored
Merge pull request #263 from adrianludwin/docs
Update docs for v1.1
2 parents ff955f9 + e59fa8c commit 3414be0

File tree

6 files changed

+44
-46
lines changed

6 files changed

+44
-46
lines changed

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ All HNC issues are assigned to an HNC milestone. So far, the following
4444
milestones are defined or planned:
4545

4646
* [v1.1](https://github.com/kubernetes-sigs/hierarchical-namespaces/milestone/3):
47-
Improved UX for managed labels; performance improvements.
47+
Hierarchical quotas; inclusive propagation.
4848
* [v1.0](https://github.com/kubernetes-sigs/hierarchical-namespaces/milestone/2):
4949
HNC recommended for production use (released March 31 2022)
5050
* [v0.9](https://github.com/kubernetes-sigs/hierarchical-namespaces/milestone/1):

docs/releasing.md

+2-8
Original file line numberDiff line numberDiff line change
@@ -36,14 +36,8 @@ that anyone can use, but without leaking personal access tokens._
3636

3737
Ensure that the [user guide](user-guide/) is up-to-date with all the latest or
3838
changed features. _This must be done on the master branch **before** creating
39-
the release branch._ The user guide should usually contain instructions for at
40-
least the last two minor releases of HNC - e.g., if the current version is v0.5,
41-
it should contain instructions for both v0.4 and v0.5. But if you're _about_ to
42-
release v0.6, then you should:
43-
44-
* In the master docs README, add a link to the v0.4 version of the user guide.
45-
* Delete everything about v0.4
46-
* Add all new information for v0.6.
39+
the release branch._ We used to remove instructions for old versions of HNC, but
40+
since v1.0 this should no longer be necessary as it's not changing as quickly.
4741

4842
## Create a release branch
4943

docs/user-guide/README.md

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# HNC User Guide v1.0 (and v0.9)
1+
# HNC User Guide v1.1
22

33
Authors: [email protected] and other contributors from wg-multitenancy
44

@@ -12,7 +12,7 @@ This guide explains how to use hierarchical namespaces, explains some of the
1212
concepts behind them for a more in-depth understanding, and covers some best
1313
practices.
1414

15-
**Note: this doc covers HNC v1.0.x and v0.9.x.** For older versions of HNC, see
15+
**Note: this doc covers HNC v1.0 and later.** For older versions of HNC, see
1616
below.
1717

1818
## Table of contents
@@ -25,6 +25,7 @@ below.
2525

2626
## Older user guides
2727

28+
* [HNC v0.9](https://github.com/kubernetes-sigs/hierarchical-namespaces/tree/hnc-v0.9/docs/user-guide)
2829
* [HNC v0.8](https://github.com/kubernetes-sigs/multi-tenancy/tree/hnc-v0.8/incubator/hnc/docs/user-guide)
2930
* [HNC v0.7](https://github.com/kubernetes-sigs/multi-tenancy/tree/hnc-v0.7/incubator/hnc/docs/user-guide)
3031
* [HNC v0.6](https://github.com/kubernetes-sigs/multi-tenancy/tree/hnc-v0.6/incubator/hnc/docs/user-guide)

docs/user-guide/concepts.md

+26-23
Original file line numberDiff line numberDiff line change
@@ -315,27 +315,28 @@ whichever labels they like. However, HNC will overwrite any changes made to
315315
these labels, so other applications can trust these labels for policy
316316
application.
317317

318-
*Note: in HNC v1.0, [managed labels](#admin-managed-labels) may also be trusted
319-
for policy purposes.*
318+
If tree labels are too restrictive for your purposes, you can also use [managed
319+
labels](#admin-managed-labels), which require more work to set up but are also
320+
managed by HNC and are therefore suitable for policy use.
320321

321322
<a name="basic-exceptions"/>
322-
323+
323324
### Exceptions and propagation control
324325

325326
HNC typically propagates _all_ objects of a [specified type](how-to.md#admin-resources)
326327
from ancestor namespaces to descendant namespaces. However, sometimes this is
327328
too restrictive, and you need to create ***exceptions*** to certain policies. For example:
328329

329330
* A ResourceQuota was propagated to many children, but one child namespace now
330-
has higher requirements than the rest. Rather than getting rid of the quota in
331-
the parent namespace, or raising the limit for everyone, you can stop the
332-
quota in the parent from being propagated to that _one_ child namespace,
333-
allowing you to replace it with another, more suitable quota.
331+
has higher requirements than the rest. Rather than getting rid of the quota in
332+
the parent namespace, or raising the limit for everyone, you can stop the
333+
quota in the parent from being propagated to that _one_ child namespace,
334+
allowing you to replace it with another, more suitable quota.
334335

335336
* A RoleBinding allows any user to create subnamespaces under one namespace, but
336-
we don’t want to allow those users to create additional levels of hierarchy
337-
underneath those subnamespaces. So you can stop the role binding from being
338-
propagated to _any_ child namespace.
337+
we don’t want to allow those users to create additional levels of hierarchy
338+
underneath those subnamespaces. So you can stop the role binding from being
339+
propagated to _any_ child namespace.
339340

340341
Exceptions are defined using [annotations on the objects
341342
themselves](how-to.md#use-limit-propagation). As a result, anyone who can edit
@@ -353,18 +354,19 @@ exclude those objects, or else delete the conflicting objects to allow them to
353354
be replaced.
354355

355356
#### (Beta in v1.1) Opt-in propagation
356-
The `Propagate` mode propagates all objects unless directed to otherwise via a selector,
357-
using exceptions. By contrast, opt-in propagation, as set by the `AllowPropagate`
358-
mode, doesn't propagate objects unless directed to by a selector. That is, for an object
359-
with a selector, its behaviour will be identical in both the `Propagate` and `AllowPropagate` modes;
360-
the only difference in behaviours is for objects without a selector.
357+
The `Propagate` mode propagates all objects unless directed to otherwise via a
358+
selector, using exceptions. By contrast, opt-in propagation, as set by the
359+
`AllowPropagate` mode, doesn't propagate objects unless directed to by a
360+
selector. That is, for an object with a selector, its behaviour will be
361+
identical in both the `Propagate` and `AllowPropagate` modes; the only
362+
difference in behaviours is for objects without a selector.
361363

362364
For example:
363-
365+
364366
* A Secret exists on a namespace but we don't want this secret to be propagated
365-
to all subnamespaces by default but instead only to one namespace of our choosing.
366-
So you can choose to propagate to that _one_ child namespace using `AllowPropagate`
367-
and exceptions.
367+
to all subnamespaces by default but instead only to one namespace of our
368+
choosing. So you can choose to propagate to that _one_ child namespace using
369+
`AllowPropagate` and exceptions.
368370

369371
#### Built-in exceptions
370372

@@ -374,10 +376,11 @@ objects from being propagated by HNC.
374376
* Kubernetes Service Account Secrets
375377
* ConfigMaps named `istio-ca-root-cert` or `kube-root-ca.crt`, which are
376378
auto-created in new namespaces by Istio and Kubernetes respectively
377-
* *Planned for HNC v1.0+:* Any objects with the label
379+
* Any objects with the label
378380
`cattle.io/creator:norman`, which are [inserted by Rancher to support
379381
Projects](https://rancher.com/docs/rancher/v2.6/en/system-tools/#remove))
380-
* *Planned for future version:* Secrets with type `helm.sh/release.v1`, which is auto-created in the namespaces where their respective Helm releases are deployed to.
382+
* *HNC v1.1+:* Secrets with type `helm.sh/release.v1`, which is auto-created in
383+
the namespaces where their respective Helm releases are deployed to.
381384

382385
<a name="admin"/>
383386

@@ -517,9 +520,9 @@ problem, and will generally require human intervention to resolve.
517520

518521
<a name="admin-managed-labels"/>
519522

520-
### (Beta) Managed labels and annotations
523+
### Managed labels and annotations
521524

522-
***Managed labels and annotations are new in HNC v1.0; please use with caution.***
525+
***Managed labels and annotations are beta in HNC v1.0 and GA in HNC v1.1+.***
523526

524527
Just as certain objects can be propagated from parent namespaces to their
525528
descendants, so can certain labels and annotations on namespaces. For example,

docs/user-guide/how-to.md

+9-9
Original file line numberDiff line numberDiff line change
@@ -421,9 +421,9 @@ EOF
421421

422422
<a name="use-managed-labels"/>
423423

424-
### (Beta) Add a label or annotation to all namespaces in a subtree
424+
### Add a label or annotation to all namespaces in a subtree
425425

426-
***Managed labels and annotations are new in HNC v1.0; please use with caution.***
426+
***Managed labels and annotations are beta in HNC v1.0 and GA in HNC v1.1+.***
427427

428428
If your administrator has [created managed labels or
429429
annotations](#admin-managed-labels), you may set them on any _full_ namespace
@@ -482,7 +482,7 @@ and webhooks) that were only introduced in v1.16.
482482
There is no need to uninstall HNC before upgrading it unless specified in the
483483
release notes for that version.
484484

485-
_Note: HNC has **experimental** support for HA deployments in v1.0. Please
485+
_Note: HNC has **experimental** support for HA deployments in v1.0+. Please
486486
contact us on Slack to discuss if you want to try it out._
487487

488488
#### Prerequisites
@@ -768,9 +768,10 @@ in the `Propagate` mode or `AllowPropagate`. Instead, to do so safely:
768768
synchronizing all known source objects.
769769
* Wait until `kubectl hns config describe` looks like it's identified the
770770
correct number of objects of the newly added resource in its status.
771-
* Change the propagation mode from `Remove` to `Propagate` or `AllowPropagate`.
772-
HNC will then check to see if any objects will be overwritten, and will not
773-
allow you to change the propagation mode until all such conflicts are resolved.
771+
* Change the propagation mode from `Remove` to `Propagate` or `AllowPropagate`.
772+
HNC will then check to see if any objects will be overwritten, and will not
773+
allow you to change the propagation mode until all such conflicts are
774+
resolved.
774775

775776
Alternatively, if you're certain you want to start propagating objects
776777
immediately, you can use the `--force` flag with `kubectl hns config
@@ -779,10 +780,9 @@ edit the `config` object directly, which will bypass this protection.
779780

780781
<a name="admin-managed-labels"/>
781782

782-
### (Beta) Ask HNC to manage certain labels and annotations
783+
### Ask HNC to manage certain labels and annotations
783784

784-
***Managed labels and annotations are new in HNC v1.0; please use with
785-
caution.***
785+
***Managed labels and annotations are beta in HNC v1.0 and GA in HNC v1.1+.***
786786

787787
See [here](concepts.md#admin-managed-labels) for the background on managed
788788
labels and annotations. In order to get HNC to manage a label or annotation, use

docs/user-guide/quickstart.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -209,9 +209,9 @@ simply use the config subcommand:
209209
kubectl hns config set-resource secrets --mode Propagate
210210
```
211211

212-
Note: As of HNC v1.0+, the supported modes are `Propagate`, `Remove`,
213-
`Ignore` and `AllowPropagate`. More may be added in the future; you can run `kubectl hns config
214-
set-resource` for the latest documentation.
212+
Note: The supported modes are `Propagate`, `Remove`, `Ignore` and (in HNC
213+
v1.1+ only) `AllowPropagate`. More may be added in the future; you can run
214+
`kubectl hns config set-resource` for the latest documentation.
215215

216216
Now, we should be able to verify that `my-creds` was propagated to `service-1`:
217217

0 commit comments

Comments
 (0)