Skip to content

Commit

Permalink
docs: namespace labeling for tenant owners
Browse files Browse the repository at this point in the history
  • Loading branch information
Maksim Fedotov committed Sep 16, 2021
1 parent e1e5e37 commit 74013fa
Show file tree
Hide file tree
Showing 3 changed files with 66 additions and 3 deletions.
64 changes: 64 additions & 0 deletions docs/operator/use-cases/namespace-labels-and-annotations.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
# Assign Pod Security Policies

By default, capsule allows tenant owners to add only `capsule.clastix.io/tenant` label on their namespaces in order to support [multiple tenants owned by a single owner](./multiple-tenants.md). This is a necessary security measure in shared multi-tenant environments to protect tenant resources from different malicious attacks.

But there are some scenarios, where organization have a set of defined and well-known labels or annotations, which must be set on a tenant namespaces.

Bill, the cluster admin, can allow Alice to add specific labels and annotations on namespaces:

```yaml
kubectl apply -f - << EOF
apiVersion: capsule.clastix.io/v1beta1
kind: Tenant
metadata:
name: oil
spec:
owners:
- name: alice
kind: User
namespaceOptions:
userLabels:
allowedLabels:
allowed:
- foo.acme.net
allowedRegex: .*.acme.net
userAnnotations:
allowedAnnotations:
allowed:
- foo.acme.net
allowedRegex: .*.acme.net
EOF
```
Bill can also protect some labels or annotations from being able to be set by Alice:

```yaml
kubectl apply -f - << EOF
apiVersion: capsule.clastix.io/v1beta1
kind: Tenant
metadata:
name: oil
spec:
owners:
- name: alice
kind: User
namespaceOptions:
userLabels:
allowedLabels:
allowedRegex: .*.acme.net
protectedLabels:
protected:
- foo.acme.net
userAnnotations:
allowedAnnotations:
allowedRegex: .*.acme.net
protectedAnnotations:
protected:
- foo.acme.net
EOF
```


# What’s next
This ends our tour in Capsule use cases. As we improve Capsule, more use cases about multi-tenancy, policy admission control, and cluster governance will be covered in the future.

Stay tuned!
1 change: 1 addition & 0 deletions docs/operator/use-cases/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ Use Capsule to address any of the following scenarios:
* [Cordon Tenants](./cordoning-tenant.md)
* [Disable Service Types](./service-type.md)
* [Taint Services](./taint-services.md)
* [Allow adding labels and annotations on namespaces](./namespace-labels-and-annotations.md)
* [Velero Backup Restoration](./velero-backup-restoration.md)

> NB: as we improve Capsule, more use cases about multi-tenancy and cluster governance will be covered.
Expand Down
4 changes: 1 addition & 3 deletions docs/operator/use-cases/taint-services.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,4 @@ EOF
When Alice creates a service in a namespace, this will inherit the given label and/or annotation.

# What’s next
This ends our tour in Capsule use cases. As we improve Capsule, more use cases about multi-tenancy, policy admission control, and cluster governance will be covered in the future.

Stay tuned!
See how Bill, the cluster admin, can allow Alice to use specific labels or annotations. [Allow adding labels and annotations on namespaces](./namespace-labels-and-annotations.md).

0 comments on commit 74013fa

Please sign in to comment.