diff --git a/test/extended/pods/priorityclasses.go b/test/extended/pods/priorityclasses.go index 31bdddbc8399..0282f55de097 100644 --- a/test/extended/pods/priorityclasses.go +++ b/test/extended/pods/priorityclasses.go @@ -6,6 +6,7 @@ import ( "strings" . "github.com/onsi/ginkgo/v2" + o "github.com/onsi/gomega" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/sets" e2e "k8s.io/kubernetes/test/e2e/framework" @@ -88,6 +89,41 @@ var _ = Describe("[sig-arch] Managed cluster should", func() { }) }) +var _ = Describe("[sig-node] Pod priority should match the default priorityClassName values", func() { + defer GinkgoRecover() + var ( + oc = exutil.NewCLI("priority-class-name") + systemNodeCriticalPodFile = exutil.FixturePath("testdata", "priority-class-name", "system-node-critical.yaml") + systemClusterCriticalPodFile = exutil.FixturePath("testdata", "priority-class-name", "system-cluster-critical.yaml") + ) + + It("system-node-critical", func() { + By("creating the pods") + err := oc.Run("create").Args("-n", oc.Namespace(), "-f", systemNodeCriticalPodFile).Execute() + o.Expect(err).NotTo(o.HaveOccurred()) + + By("checking the pod priority") + pod, err := oc.KubeClient().CoreV1().Pods(oc.Namespace()).Get(context.Background(), "pod-with-system-node-critical-priority-class", metav1.GetOptions{}) + o.Expect(err).NotTo(o.HaveOccurred()) + o.Expect((int)(*pod.Spec.Priority)).To(o.Equal(2000001000)) + err = oc.KubeClient().CoreV1().Pods(oc.Namespace()).Delete(context.Background(), "pod-with-system-node-critical-priority-class", metav1.DeleteOptions{}) + o.Expect(err).NotTo(o.HaveOccurred()) + }) + + It("system-cluster-critical", func() { + By("creating the pods") + err := oc.Run("create").Args("-n", oc.Namespace(), "-f", systemClusterCriticalPodFile).Execute() + o.Expect(err).NotTo(o.HaveOccurred()) + + By("checking the pod priority") + pod, err := oc.KubeClient().CoreV1().Pods(oc.Namespace()).Get(context.Background(), "pod-with-system-cluster-critical-priority-class", metav1.GetOptions{}) + o.Expect(err).NotTo(o.HaveOccurred()) + o.Expect((int)(*pod.Spec.Priority)).To(o.Equal(2000000000)) + err = oc.KubeClient().CoreV1().Pods(oc.Namespace()).Delete(context.Background(), "pod-with-system-cluster-critical-priority-class", metav1.DeleteOptions{}) + o.Expect(err).NotTo(o.HaveOccurred()) + }) +}) + func hasPrefixSet(name string, set sets.String) bool { for _, prefix := range set.List() { if strings.HasPrefix(name, prefix) { diff --git a/test/extended/testdata/bindata.go b/test/extended/testdata/bindata.go index c508c2085bfa..f88656bd6cce 100644 --- a/test/extended/testdata/bindata.go +++ b/test/extended/testdata/bindata.go @@ -466,6 +466,8 @@ // test/extended/testdata/poddisruptionbudgets/always-allow-policy-pdb.yaml // test/extended/testdata/poddisruptionbudgets/if-healthy-budget-policy-pdb.yaml // test/extended/testdata/poddisruptionbudgets/nginx-with-delayed-ready-deployment.yaml +// test/extended/testdata/priority-class-name/system-cluster-critical.yaml +// test/extended/testdata/priority-class-name/system-node-critical.yaml // test/extended/testdata/releases/payload-1/etcd-operator/image-references // test/extended/testdata/releases/payload-1/etcd-operator/manifest.yaml // test/extended/testdata/releases/payload-1/image-registry/10_image-registry_crd.yaml @@ -51103,6 +51105,64 @@ func testExtendedTestdataPoddisruptionbudgetsNginxWithDelayedReadyDeploymentYaml return a, nil } +var _testExtendedTestdataPriorityClassNameSystemClusterCriticalYaml = []byte(`apiVersion: v1 +kind: Pod +metadata: + name: pod-with-system-cluster-critical-priority-class +spec: + containers: + - name: tools + image: image-registry.openshift-image-registry.svc:5000/openshift/tools:latest + command: + - sleep + - "3600" + priorityClassName: system-cluster-critical +`) + +func testExtendedTestdataPriorityClassNameSystemClusterCriticalYamlBytes() ([]byte, error) { + return _testExtendedTestdataPriorityClassNameSystemClusterCriticalYaml, nil +} + +func testExtendedTestdataPriorityClassNameSystemClusterCriticalYaml() (*asset, error) { + bytes, err := testExtendedTestdataPriorityClassNameSystemClusterCriticalYamlBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "test/extended/testdata/priority-class-name/system-cluster-critical.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + +var _testExtendedTestdataPriorityClassNameSystemNodeCriticalYaml = []byte(`apiVersion: v1 +kind: Pod +metadata: + name: pod-with-system-node-critical-priority-class +spec: + containers: + - name: tools + image: image-registry.openshift-image-registry.svc:5000/openshift/tools:latest + command: + - sleep + - "3600" + priorityClassName: system-node-critical +`) + +func testExtendedTestdataPriorityClassNameSystemNodeCriticalYamlBytes() ([]byte, error) { + return _testExtendedTestdataPriorityClassNameSystemNodeCriticalYaml, nil +} + +func testExtendedTestdataPriorityClassNameSystemNodeCriticalYaml() (*asset, error) { + bytes, err := testExtendedTestdataPriorityClassNameSystemNodeCriticalYamlBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "test/extended/testdata/priority-class-name/system-node-critical.yaml", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} + a := &asset{bytes: bytes, info: info} + return a, nil +} + var _testExtendedTestdataReleasesPayload1EtcdOperatorImageReferences = []byte(`kind: ImageStream apiVersion: image.openshift.io/v1 spec: @@ -56621,6 +56681,8 @@ var _bindata = map[string]func() (*asset, error){ "test/extended/testdata/poddisruptionbudgets/always-allow-policy-pdb.yaml": testExtendedTestdataPoddisruptionbudgetsAlwaysAllowPolicyPdbYaml, "test/extended/testdata/poddisruptionbudgets/if-healthy-budget-policy-pdb.yaml": testExtendedTestdataPoddisruptionbudgetsIfHealthyBudgetPolicyPdbYaml, "test/extended/testdata/poddisruptionbudgets/nginx-with-delayed-ready-deployment.yaml": testExtendedTestdataPoddisruptionbudgetsNginxWithDelayedReadyDeploymentYaml, + "test/extended/testdata/priority-class-name/system-cluster-critical.yaml": testExtendedTestdataPriorityClassNameSystemClusterCriticalYaml, + "test/extended/testdata/priority-class-name/system-node-critical.yaml": testExtendedTestdataPriorityClassNameSystemNodeCriticalYaml, "test/extended/testdata/releases/payload-1/etcd-operator/image-references": testExtendedTestdataReleasesPayload1EtcdOperatorImageReferences, "test/extended/testdata/releases/payload-1/etcd-operator/manifest.yaml": testExtendedTestdataReleasesPayload1EtcdOperatorManifestYaml, "test/extended/testdata/releases/payload-1/image-registry/10_image-registry_crd.yaml": testExtendedTestdataReleasesPayload1ImageRegistry10_imageRegistry_crdYaml, @@ -57422,6 +57484,10 @@ var _bintree = &bintree{nil, map[string]*bintree{ "if-healthy-budget-policy-pdb.yaml": {testExtendedTestdataPoddisruptionbudgetsIfHealthyBudgetPolicyPdbYaml, map[string]*bintree{}}, "nginx-with-delayed-ready-deployment.yaml": {testExtendedTestdataPoddisruptionbudgetsNginxWithDelayedReadyDeploymentYaml, map[string]*bintree{}}, }}, + "priority-class-name": {nil, map[string]*bintree{ + "system-cluster-critical.yaml": {testExtendedTestdataPriorityClassNameSystemClusterCriticalYaml, map[string]*bintree{}}, + "system-node-critical.yaml": {testExtendedTestdataPriorityClassNameSystemNodeCriticalYaml, map[string]*bintree{}}, + }}, "releases": {nil, map[string]*bintree{ "payload-1": {nil, map[string]*bintree{ "etcd-operator": {nil, map[string]*bintree{ diff --git a/test/extended/testdata/priority-class-name/system-cluster-critical.yaml b/test/extended/testdata/priority-class-name/system-cluster-critical.yaml new file mode 100644 index 000000000000..94a5e5bb0708 --- /dev/null +++ b/test/extended/testdata/priority-class-name/system-cluster-critical.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: Pod +metadata: + name: pod-with-system-cluster-critical-priority-class +spec: + containers: + - name: tools + image: image-registry.openshift-image-registry.svc:5000/openshift/tools:latest + command: + - sleep + - "3600" + priorityClassName: system-cluster-critical diff --git a/test/extended/testdata/priority-class-name/system-node-critical.yaml b/test/extended/testdata/priority-class-name/system-node-critical.yaml new file mode 100644 index 000000000000..7ca94d6ef440 --- /dev/null +++ b/test/extended/testdata/priority-class-name/system-node-critical.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: Pod +metadata: + name: pod-with-system-node-critical-priority-class +spec: + containers: + - name: tools + image: image-registry.openshift-image-registry.svc:5000/openshift/tools:latest + command: + - sleep + - "3600" + priorityClassName: system-node-critical