Skip to content

Commit 25cce34

Browse files
committed
Use PSP from policy API group.
1 parent 857fee8 commit 25cce34

File tree

7 files changed

+25
-14
lines changed

7 files changed

+25
-14
lines changed

docs/admin/authorization/index.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ DELETE | delete (for individual resources), deletecollection (for collections
6767

6868
Kubernetes sometimes checks authorization for additional permissions using specialized verbs. For example:
6969

70-
* [PodSecurityPolicy](/docs/concepts/policy/pod-security-policy/) checks for authorization of the `use` verb on `podsecuritypolicies` resources in the `extensions` API group.
70+
* [PodSecurityPolicy](/docs/concepts/policy/pod-security-policy/) checks for authorization of the `use` verb on `podsecuritypolicies` resources in the `policy` API group.
7171
* [RBAC](/docs/admin/authorization/rbac/#privilege-escalation-prevention-and-bootstrapping) checks for authorization
7272
of the `bind` verb on `roles` and `clusterroles` resources in the `rbac.authorization.k8s.io` API group.
7373
* [Authentication](/docs/admin/authentication/) layer checks for authorization of the `impersonate` verb on `users`, `groups`, and `serviceaccounts` in the core API group, and the `userextras` in the `authentication.k8s.io` API group.

docs/concepts/policy/example-psp.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
apiVersion: extensions/v1beta1
1+
apiVersion: policy/v1beta1
22
kind: PodSecurityPolicy
33
metadata:
44
name: example

docs/concepts/policy/pod-security-policy.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ controller](/docs/admin/admission-controllers/#how-do-i-turn-on-an-admission-con
4949
but doing so without authorizing any policies **will prevent any pods from being
5050
created** in the cluster.
5151

52-
Since the pod security policy API (`extensions/v1beta1/podsecuritypolicy`) is
52+
Since the pod security policy API (`policy/v1beta1/podsecuritypolicy`) is
5353
enabled independently of the admission controller, for existing clusters it is
5454
recommended that policies are added and authorized before enabling the admission
5555
controller.
@@ -84,7 +84,7 @@ apiVersion: rbac.authorization.k8s.io/v1
8484
metadata:
8585
name: <role name>
8686
rules:
87-
- apiGroups: ['extensions']
87+
- apiGroups: ['policy']
8888
resources: ['podsecuritypolicies']
8989
verbs: ['use']
9090
resourceNames:

docs/concepts/policy/privileged-psp.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
apiVersion: extensions/v1beta1
1+
apiVersion: policy/v1beta1
22
kind: PodSecurityPolicy
33
metadata:
44
name: privileged

docs/concepts/policy/restricted-psp.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
apiVersion: extensions/v1beta1
1+
apiVersion: policy/v1beta1
22
kind: PodSecurityPolicy
33
metadata:
44
name: restricted

docs/tutorials/clusters/apparmor.md

+2-3
Original file line numberDiff line numberDiff line change
@@ -317,14 +317,13 @@ node with the required profile.
317317
### Restricting profiles with the PodSecurityPolicy
318318

319319
If the PodSecurityPolicy extension is enabled, cluster-wide AppArmor restrictions can be applied. To
320-
enable the PodSecurityPolicy, two flags must be set on the `apiserver`:
320+
enable the PodSecurityPolicy, the following flag must be set on the `apiserver`:
321321

322322
```
323323
--admission-control=PodSecurityPolicy[,others...]
324-
--runtime-config=extensions/v1beta1/podsecuritypolicy[,others...]
325324
```
326325

327-
With the extension enabled, the AppArmor options can be specified as annotations on the PodSecurityPolicy:
326+
The AppArmor options can be specified as annotations on the PodSecurityPolicy:
328327

329328
```yaml
330329
apparmor.security.beta.kubernetes.io/defaultProfileName: <profile_ref>

test/examples_test.go

+17-5
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import (
2828
"strings"
2929
"testing"
3030

31+
policyv1beta1 "k8s.io/api/policy/v1beta1"
3132
"k8s.io/apimachinery/pkg/runtime"
3233
"k8s.io/apimachinery/pkg/types"
3334
"k8s.io/apimachinery/pkg/util/validation/field"
@@ -173,8 +174,8 @@ func validateObject(obj runtime.Object) (errors field.ErrorList) {
173174
t.Namespace = api.NamespaceDefault
174175
}
175176
errors = ext_validation.ValidateIngress(t)
176-
case *extensions.PodSecurityPolicy:
177-
errors = ext_validation.ValidatePodSecurityPolicy(t)
177+
case *policyv1beta1.PodSecurityPolicy:
178+
errors = validatePodSecurityPolicy(t)
178179
case *extensions.ReplicaSet:
179180
if t.Namespace == "" {
180181
t.Namespace = api.NamespaceDefault
@@ -312,9 +313,9 @@ func TestExampleObjectSchemas(t *testing.T) {
312313
"nginx-deployment": {&extensions.Deployment{}},
313314
},
314315
"../docs/concepts/policy": {
315-
"privileged-psp": {&extensions.PodSecurityPolicy{}},
316-
"restricted-psp": {&extensions.PodSecurityPolicy{}},
317-
"example-psp": {&extensions.PodSecurityPolicy{}},
316+
"privileged-psp": {&policyv1beta1.PodSecurityPolicy{}},
317+
"restricted-psp": {&policyv1beta1.PodSecurityPolicy{}},
318+
"example-psp": {&policyv1beta1.PodSecurityPolicy{}},
318319
},
319320
"../docs/concepts/services-networking": {
320321
"curlpod": {&extensions.Deployment{}},
@@ -754,3 +755,14 @@ func TestReadme(t *testing.T) {
754755
}
755756
}
756757
}
758+
759+
// TODO: remove type conversion when PSP validation will accept PSP from policy group
760+
func validatePodSecurityPolicy(newPsp *policy.PodSecurityPolicy) field.ErrorList {
761+
oldPsp := &extensions.PodSecurityPolicy{}
762+
if err := Convert_v1beta1_PodSecurityPolicy_To_extensions_PodSecurityPolicy(newPsp, oldPsp, nil); err != nil {
763+
errs = field.ErrorList{}
764+
errs = append(errors, field.InternalError(field.NewPath(""), fmt.Errorf("cannot convert PSP from policy to extensions group: %v", err)))
765+
return errs
766+
}
767+
return ext_validation.ValidatePodSecurityPolicy(oldPsp)
768+
}

0 commit comments

Comments
 (0)