diff --git a/config/default/kustomization.yaml b/config/default/kustomization.yaml index 5f4ea351e..bbad1a6d0 100644 --- a/config/default/kustomization.yaml +++ b/config/default/kustomization.yaml @@ -29,6 +29,7 @@ resources: #- ../certmanager # [PROMETHEUS] To enable prometheus monitor, uncomment all sections with 'PROMETHEUS'. - ../prometheus +- ../priority-class patchesStrategicMerge: # Protect the /metrics endpoint by putting it behind auth. diff --git a/config/manager/manager.yaml b/config/manager/manager.yaml index 98a923552..16be2ac1a 100644 --- a/config/manager/manager.yaml +++ b/config/manager/manager.yaml @@ -19,6 +19,7 @@ spec: labels: app.kubernetes.io/component: btp-manager.kyma-project.io spec: + priorityClassName: "kyma-priority" securityContext: runAsNonRoot: true containers: diff --git a/config/priority-class/btp_manager_priority_class.yaml b/config/priority-class/btp_manager_priority_class.yaml new file mode 100644 index 000000000..7584c3187 --- /dev/null +++ b/config/priority-class/btp_manager_priority_class.yaml @@ -0,0 +1,7 @@ +apiVersion: scheduling.k8s.io/v1 +kind: PriorityClass +metadata: + name: kyma-priority +value: 2100000 +globalDefault: false +description: "Scheduling priority of the btp-operator module. Must not be blocked by unschedulable user workloads." diff --git a/config/priority-class/kustomization.yaml b/config/priority-class/kustomization.yaml new file mode 100644 index 000000000..a3a8aa667 --- /dev/null +++ b/config/priority-class/kustomization.yaml @@ -0,0 +1,2 @@ +resources: +- btp_manager_priority_class.yaml \ No newline at end of file diff --git a/controllers/testdata/test-priorityclass.yaml b/controllers/testdata/test-priorityclass.yaml deleted file mode 100644 index 3ebbdd11f..000000000 --- a/controllers/testdata/test-priorityclass.yaml +++ /dev/null @@ -1,7 +0,0 @@ -apiVersion: scheduling.k8s.io/v1 -kind: PriorityClass -metadata: - name: kyma-system -value: 99 -globalDefault: false -description: "This priority class should be used for Kyma pods only." diff --git a/controllers/utils_test.go b/controllers/utils_test.go index ae163aab1..735fdabb5 100644 --- a/controllers/utils_test.go +++ b/controllers/utils_test.go @@ -27,7 +27,6 @@ import ( admissionregistrationv1 "k8s.io/api/admissionregistration/v1" appsv1 "k8s.io/api/apps/v1" corev1 "k8s.io/api/core/v1" - schedulingv1 "k8s.io/api/scheduling/v1" k8serrors "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/api/meta" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -55,7 +54,6 @@ const ( btpOperatorKind = "BtpOperator" btpOperatorApiVersion = `operator.kyma-project.io\v1alpha1` secretYamlPath = "testdata/test-secret.yaml" - priorityClassYamlPath = "testdata/test-priorityclass.yaml" k8sOpsTimeout = time.Second * 3 k8sOpsPollingInterval = time.Millisecond * 200 extraLabelKey = "reconciler.kyma-project.io/managed-by" @@ -324,16 +322,6 @@ func copyDirRecursively(src, target string) { } func createPrereqs() error { - pClass := &schedulingv1.PriorityClass{} - Expect(createK8sResourceFromYaml(pClass, priorityClassYamlPath)).To(Succeed()) - if err := k8sClient.Get(ctx, client.ObjectKeyFromObject(pClass), pClass); err != nil { - if k8serrors.IsNotFound(err) { - Eventually(func() error { return k8sClient.Create(ctx, pClass) }).WithTimeout(k8sOpsTimeout).WithPolling(k8sOpsPollingInterval).Should(Succeed()) - } else { - return err - } - } - kymaNs := &corev1.Namespace{ObjectMeta: metav1.ObjectMeta{Name: kymaNamespace}} if err := k8sClient.Get(ctx, client.ObjectKeyFromObject(kymaNs), kymaNs); err != nil { if k8serrors.IsNotFound(err) { diff --git a/deployments/prerequisites.yaml b/deployments/prerequisites.yaml index 9a1eecdf4..df38e96cc 100644 --- a/deployments/prerequisites.yaml +++ b/deployments/prerequisites.yaml @@ -2,11 +2,4 @@ kind: Namespace apiVersion: v1 metadata: name: kyma-system ---- -apiVersion: scheduling.k8s.io/v1 -kind: PriorityClass -metadata: - name: kyma-system -value: 99 -globalDefault: false -description: "This priority class should be used for Kyma pods only." + diff --git a/docs/contributor/02-10-operations.md b/docs/contributor/02-10-operations.md index c48062284..97e15ef57 100644 --- a/docs/contributor/02-10-operations.md +++ b/docs/contributor/02-10-operations.md @@ -15,10 +15,9 @@ BTP Manager performs the following operations: The prerequisites for the SAP BTP service operator provisioning are: - Namespace `kyma-system` -- PriorityClass `kyma-system` - Secret `sap-btp-manager` with data for the SAP BTP service operator -The namespace and PriorityClass resources are created during Kyma installation. The Secret is injected into the cluster +The namespace is created during Kyma installation. The Secret is injected into the cluster by Kyma Environment Broker (KEB). If you want to provision the SAP BTP service operator in a cluster without Kyma, you must create the prerequisites yourself. diff --git a/module-chart/overrides.yaml b/module-chart/overrides.yaml index 91438902c..aaf984e3d 100644 --- a/module-chart/overrides.yaml +++ b/module-chart/overrides.yaml @@ -11,3 +11,4 @@ manager: kubernetesMatchLabels: enabled: true enable_limited_cache: false + priorityClassName: "btp-manager-kyma-priority" diff --git a/module-resources/apply/deployment.yml b/module-resources/apply/deployment.yml index f6aeba933..69774f5ad 100644 --- a/module-resources/apply/deployment.yml +++ b/module-resources/apply/deployment.yml @@ -83,6 +83,7 @@ spec: name: cert readOnly: true terminationGracePeriodSeconds: 10 + priorityClassName: btp-manager-kyma-priority volumes: - name: cert secret: