You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
|**[metadata](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectmeta-v1-meta)**| object | Refer to the Kubernetes API documentation for the fields of the `metadata` field. | true |
36
-
|**[spec](#globalproxysettingsspec)**| object | GlobalProxySettingsSpec defines the desired state of GlobalProxySettings. | false |
37
+
| **[spec](#globalproxysettingsspec)** | object |GlobalProxySettingsSpec defines the desired state of GlobalProxySettings.
38
+
| false |
37
39
38
40
39
41
### GlobalProxySettings.spec
@@ -42,9 +44,11 @@ GlobalProxySettings is the Schema for the globalproxysettings API.
42
44
43
45
GlobalProxySettingsSpec defines the desired state of GlobalProxySettings.
44
46
47
+
45
48
|**Name**|**Type**|**Description**|**Required**|
46
49
| :---- | :---- | :----------- | :-------- |
47
-
|**[rules](#globalproxysettingsspecrulesindex)**|[]object | Subjects that should receive additional permissions.<br>The subjects are selected based on the oncoming requests. They don't have to relate to an existing tenant.<br>However they must be part of the capsule-user groups. | true |
50
+
| **[rules](#globalproxysettingsspecrulesindex)** | []object |Subjects that should receive additional permissions.<br>The subjects are selected based on the oncoming requests. They don't have to relate to an existing tenant.<br>However they must be part of the capsule-user groups.
51
+
| true |
48
52
49
53
50
54
### GlobalProxySettings.spec.rules[index]
@@ -53,10 +57,13 @@ GlobalProxySettingsSpec defines the desired state of GlobalProxySettings.
53
57
54
58
55
59
60
+
56
61
|**Name**|**Type**|**Description**|**Required**|
57
62
| :---- | :---- | :----------- | :-------- |
58
-
|**[subjects](#globalproxysettingsspecrulesindexsubjectsindex)**|[]object | Subjects that should receive additional permissions.<br>The subjects are selected based on the oncoming requests. They don't have to relate to an existing tenant.<br>However they must be part of the capsule-user groups. | true |
59
-
|**[clusterResources](#globalproxysettingsspecrulesindexclusterresourcesindex)**|[]object | Cluster Resources for tenant Owner. | false |
63
+
| **[subjects](#globalproxysettingsspecrulesindexsubjectsindex)** | []object |Subjects that should receive additional permissions.<br>The subjects are selected based on the oncoming requests. They don't have to relate to an existing tenant.<br>However they must be part of the capsule-user groups.
64
+
| true |
65
+
| **[clusterResources](#globalproxysettingsspecrulesindexclusterresourcesindex)** | []object |Cluster Resources for tenant Owner.
@@ -65,10 +72,13 @@ GlobalProxySettingsSpec defines the desired state of GlobalProxySettings.
65
72
66
73
67
74
75
+
68
76
|**Name**|**Type**|**Description**|**Required**|
69
77
| :---- | :---- | :----------- | :-------- |
70
-
|**kind**| enum | Kind of tenant owner. Possible values are "User", "Group", and "ServiceAccount".<br/>*Enum*: User, Group, ServiceAccount<br/> | true |
71
-
|**name**| string | Name of tenant owner. | true |
78
+
| **kind** | enum |Kind of tenant owner. Possible values are "User", "Group", and "ServiceAccount".<br/>*Enum*: User, Group, ServiceAccount<br/>
@@ -77,12 +87,17 @@ GlobalProxySettingsSpec defines the desired state of GlobalProxySettings.
77
87
78
88
79
89
90
+
80
91
|**Name**|**Type**|**Description**|**Required**|
81
92
| :---- | :---- | :----------- | :-------- |
82
-
|**apiGroups**|[]string | APIGroups is the name of the APIGroup that contains the resources. If multiple API groups are specified, any action requested against any resource listed will be allowed. '*' represents all resources. Empty string represents v1 api resources. | true |
83
-
|**resources**|[]string | Resources is a list of resources this rule applies to. '*' represents all resources. | true |
84
-
|**[selector](#globalproxysettingsspecrulesindexclusterresourcesindexselector)**| object | Select all cluster scoped resources with the given label selector.<br>Defining a selector which does not match any resources is considered not selectable (eg. using operation NotExists). | true |
85
-
|**operations**|[]enum | Operations which can be executed on the selected resources.<br>Deprecated: For all registered Routes only LIST ang GET requests will intercepted<br>Other permissions must be implemented via kubernetes native RBAC<br/>*Enum*: List, Update, Delete<br/> | false |
93
+
| **apiGroups** | []string |APIGroups is the name of the APIGroup that contains the resources. If multiple API groups are specified, any action requested against any resource listed will be allowed. '*' represents all resources. Empty string represents v1 api resources.
94
+
| true |
95
+
| **resources** | []string |Resources is a list of resources this rule applies to. '*' represents all resources.
96
+
| true |
97
+
| **[selector](#globalproxysettingsspecrulesindexclusterresourcesindexselector)** | object |Select all cluster scoped resources with the given label selector.<br>Defining a selector which does not match any resources is considered not selectable (eg. using operation NotExists).
98
+
| true |
99
+
| **operations** | []enum |<spanstyle="color:red;font-weight:bold">Operations which can be executed on the selected resources.<br>Deprecated: For all registered Routes only LIST ang GET requests will intercepted<br>Other permissions must be implemented via kubernetes native RBAC</span><br/>*Enum*: List, Update, Delete<br/>
@@ -92,10 +107,13 @@ GlobalProxySettingsSpec defines the desired state of GlobalProxySettings.
92
107
Select all cluster scoped resources with the given label selector.
93
108
Defining a selector which does not match any resources is considered not selectable (eg. using operation NotExists).
94
109
110
+
95
111
|**Name**|**Type**|**Description**|**Required**|
96
112
| :---- | :---- | :----------- | :-------- |
97
-
|**[matchExpressions](#globalproxysettingsspecrulesindexclusterresourcesindexselectormatchexpressionsindex)**|[]object | matchExpressions is a list of label selector requirements. The requirements are ANDed. | false |
98
-
|**matchLabels**| map[string]string | matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels<br>map is equivalent to an element of matchExpressions, whose key field is "key", the<br>operator is "In", and the values array contains only "value". The requirements are ANDed. | false |
113
+
| **[matchExpressions](#globalproxysettingsspecrulesindexclusterresourcesindexselectormatchexpressionsindex)** | []object |matchExpressions is a list of label selector requirements. The requirements are ANDed.
114
+
| false |
115
+
| **matchLabels** | map[string]string |matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels<br>map is equivalent to an element of matchExpressions, whose key field is "key", the<br>operator is "In", and the values array contains only "value". The requirements are ANDed.
@@ -105,11 +123,15 @@ Defining a selector which does not match any resources is considered not selecta
105
123
A label selector requirement is a selector that contains values, a key, and an operator that
106
124
relates the key and values.
107
125
126
+
108
127
|**Name**|**Type**|**Description**|**Required**|
109
128
| :---- | :---- | :----------- | :-------- |
110
-
|**key**| string | key is the label key that the selector applies to. | true |
111
-
|**operator**| string | operator represents a key's relationship to a set of values.<br>Valid operators are In, NotIn, Exists and DoesNotExist. | true |
112
-
|**values**|[]string | values is an array of string values. If the operator is In or NotIn,<br>the values array must be non-empty. If the operator is Exists or DoesNotExist,<br>the values array must be empty. This array is replaced during a strategic<br>merge patch. | false |
129
+
| **key** | string |key is the label key that the selector applies to.
130
+
| true |
131
+
| **operator** | string |operator represents a key's relationship to a set of values.<br>Valid operators are In, NotIn, Exists and DoesNotExist.
132
+
| true |
133
+
| **values** | []string |values is an array of string values. If the operator is In or NotIn,<br>the values array must be non-empty. If the operator is Exists or DoesNotExist,<br>the values array must be empty. This array is replaced during a strategic<br>merge patch.
134
+
| false |
113
135
114
136
## ProxySetting
115
137
@@ -120,12 +142,14 @@ relates the key and values.
120
142
121
143
ProxySetting is the Schema for the proxysettings API.
|**[metadata](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#objectmeta-v1-meta)**| object | Refer to the Kubernetes API documentation for the fields of the `metadata` field. | true |
128
-
|**[spec](#proxysettingspec)**| object | ProxySettingSpec defines the additional Capsule Proxy settings for additional users of the Tenant.<br>Resource is Namespace-scoped and applies the settings to the belonged Tenant. | false |
151
+
| **[spec](#proxysettingspec)** | object |ProxySettingSpec defines the additional Capsule Proxy settings for additional users of the Tenant.<br>Resource is Namespace-scoped and applies the settings to the belonged Tenant.
152
+
| false |
129
153
130
154
131
155
### ProxySetting.spec
@@ -135,9 +159,11 @@ ProxySetting is the Schema for the proxysettings API.
135
159
ProxySettingSpec defines the additional Capsule Proxy settings for additional users of the Tenant.
136
160
Resource is Namespace-scoped and applies the settings to the belonged Tenant.
137
161
162
+
138
163
|**Name**|**Type**|**Description**|**Required**|
139
164
| :---- | :---- | :----------- | :-------- |
140
-
|**[subjects](#proxysettingspecsubjectsindex)**|[]object | Subjects that should receive additional permissions. | true |
165
+
| **[subjects](#proxysettingspecsubjectsindex)** | []object |Subjects that should receive additional permissions.
166
+
| true |
141
167
142
168
143
169
### ProxySetting.spec.subjects[index]
@@ -146,12 +172,17 @@ Resource is Namespace-scoped and applies the settings to the belonged Tenant.
146
172
147
173
148
174
175
+
149
176
|**Name**|**Type**|**Description**|**Required**|
150
177
| :---- | :---- | :----------- | :-------- |
151
-
|**kind**| enum | Kind of tenant owner. Possible values are "User", "Group", and "ServiceAccount"<br/>*Enum*: User, Group, ServiceAccount<br/> | true |
152
-
|**name**| string | Name of tenant owner. | true |
153
-
|**[clusterResources](#proxysettingspecsubjectsindexclusterresourcesindex)**|[]object | Cluster Resources for tenant Owner. | false |
154
-
|**[proxySettings](#proxysettingspecsubjectsindexproxysettingsindex)**|[]object | Proxy settings for tenant owner. | false |
178
+
| **kind** | enum |Kind of tenant owner. Possible values are "User", "Group", and "ServiceAccount"<br/>*Enum*: User, Group, ServiceAccount<br/>
179
+
| true |
180
+
| **name** | string |Name of tenant owner.
181
+
| true |
182
+
| **[clusterResources](#proxysettingspecsubjectsindexclusterresourcesindex)** | []object |Cluster Resources for tenant Owner.
183
+
| false |
184
+
| **[proxySettings](#proxysettingspecsubjectsindexproxysettingsindex)** | []object |Proxy settings for tenant owner.
@@ -160,12 +191,17 @@ Resource is Namespace-scoped and applies the settings to the belonged Tenant.
160
191
161
192
162
193
194
+
163
195
|**Name**|**Type**|**Description**|**Required**|
164
196
| :---- | :---- | :----------- | :-------- |
165
-
|**apiGroups**|[]string | APIGroups is the name of the APIGroup that contains the resources. If multiple API groups are specified, any action requested against any resource listed will be allowed. '*' represents all resources. Empty string represents v1 api resources. | true |
166
-
|**resources**|[]string | Resources is a list of resources this rule applies to. '*' represents all resources. | true |
167
-
|**[selector](#proxysettingspecsubjectsindexclusterresourcesindexselector)**| object | Select all cluster scoped resources with the given label selector.<br>Defining a selector which does not match any resources is considered not selectable (eg. using operation NotExists). | true |
168
-
|**operations**|[]enum | Operations which can be executed on the selected resources.<br>Deprecated: For all registered Routes only LIST ang GET requests will intercepted<br>Other permissions must be implemented via kubernetes native RBAC<br/>*Enum*: List, Update, Delete<br/> | false |
197
+
| **apiGroups** | []string |APIGroups is the name of the APIGroup that contains the resources. If multiple API groups are specified, any action requested against any resource listed will be allowed. '*' represents all resources. Empty string represents v1 api resources.
198
+
| true |
199
+
| **resources** | []string |Resources is a list of resources this rule applies to. '*' represents all resources.
200
+
| true |
201
+
| **[selector](#proxysettingspecsubjectsindexclusterresourcesindexselector)** | object |Select all cluster scoped resources with the given label selector.<br>Defining a selector which does not match any resources is considered not selectable (eg. using operation NotExists).
202
+
| true |
203
+
| **operations** | []enum |<spanstyle="color:red;font-weight:bold">Operations which can be executed on the selected resources.<br>Deprecated: For all registered Routes only LIST ang GET requests will intercepted<br>Other permissions must be implemented via kubernetes native RBAC</span><br/>*Enum*: List, Update, Delete<br/>
@@ -175,10 +211,13 @@ Resource is Namespace-scoped and applies the settings to the belonged Tenant.
175
211
Select all cluster scoped resources with the given label selector.
176
212
Defining a selector which does not match any resources is considered not selectable (eg. using operation NotExists).
177
213
214
+
178
215
|**Name**|**Type**|**Description**|**Required**|
179
216
| :---- | :---- | :----------- | :-------- |
180
-
|**[matchExpressions](#proxysettingspecsubjectsindexclusterresourcesindexselectormatchexpressionsindex)**|[]object | matchExpressions is a list of label selector requirements. The requirements are ANDed. | false |
181
-
|**matchLabels**| map[string]string | matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels<br>map is equivalent to an element of matchExpressions, whose key field is "key", the<br>operator is "In", and the values array contains only "value". The requirements are ANDed. | false |
217
+
| **[matchExpressions](#proxysettingspecsubjectsindexclusterresourcesindexselectormatchexpressionsindex)** | []object |matchExpressions is a list of label selector requirements. The requirements are ANDed.
218
+
| false |
219
+
| **matchLabels** | map[string]string |matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels<br>map is equivalent to an element of matchExpressions, whose key field is "key", the<br>operator is "In", and the values array contains only "value". The requirements are ANDed.
@@ -188,11 +227,15 @@ Defining a selector which does not match any resources is considered not selecta
188
227
A label selector requirement is a selector that contains values, a key, and an operator that
189
228
relates the key and values.
190
229
230
+
191
231
|**Name**|**Type**|**Description**|**Required**|
192
232
| :---- | :---- | :----------- | :-------- |
193
-
|**key**| string | key is the label key that the selector applies to. | true |
194
-
|**operator**| string | operator represents a key's relationship to a set of values.<br>Valid operators are In, NotIn, Exists and DoesNotExist. | true |
195
-
|**values**|[]string | values is an array of string values. If the operator is In or NotIn,<br>the values array must be non-empty. If the operator is Exists or DoesNotExist,<br>the values array must be empty. This array is replaced during a strategic<br>merge patch. | false |
233
+
| **key** | string |key is the label key that the selector applies to.
234
+
| true |
235
+
| **operator** | string |operator represents a key's relationship to a set of values.<br>Valid operators are In, NotIn, Exists and DoesNotExist.
236
+
| true |
237
+
| **values** | []string |values is an array of string values. If the operator is In or NotIn,<br>the values array must be non-empty. If the operator is Exists or DoesNotExist,<br>the values array must be empty. This array is replaced during a strategic<br>merge patch.
Copy file name to clipboardExpand all lines: content/en/docs/tenants/enforcement.md
+52Lines changed: 52 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -350,7 +350,59 @@ Any attempt of Alice to change the selector on the `Pods` will result in an erro
350
350
kubectl auth can-i edit ns -n solar-production
351
351
no
352
352
```
353
+
### Dynamic resource allocation (DRA)
354
+
Dynamic Resource Allocation (DRA) is a Kubernetes capability that allows Pods to request and use shared resources, typically external devices such as hardware accelerators.
355
+
See [Kubernetes documentation](https://kubernetes.io/docs/concepts/scheduling-eviction/dynamic-resource-allocation/) for more information.
353
356
357
+
Bill can assign a set of dedicated `DeviceClasses` to tell the `solar` `Tenant` what devices they can request.
With the said Tenant specification, Alice can create a ResourceClaim or ResourceClaimTemplate resource if spec.devices.requests[].deviceClassName ( ResourceClaim) or spec.spec.devices.requests[].deviceClassName ( ResourceClaimTemplate) equals to:
387
+
388
+
* Any DeviceClass, which has the label env with the value production
389
+
390
+
If any of the devices in the ResourceClaim or ResourceClaimTemplate spec is going to use a non-allowed DeviceClass, the entire request will be rejected by the Validation Webhook enforcing it.
391
+
392
+
Alice now can create a ResourceClaim using only an allowed DeviceClass:
0 commit comments