From 04f210d27d9f0c864998a8d4b2d804dc68be8bdf Mon Sep 17 00:00:00 2001 From: Patrick Ohly Date: Wed, 24 Sep 2025 12:00:07 +0200 Subject: [PATCH] SIG testing: alpha/beta "enabled" and "conformance" presubmits We've had kind-alpha-beta-features and kind-beta-features jobs for a while. The original purpose was to run stable tests in a cluster with features enabled to detect when enabling those breaks stable functionality. Later the jobs were extended to also run all tests which should work in such a cluster. The kind-alpha-features job got removed recently because it's not necessarily a valid cluster configuration. What this adds for the both cluster configs is: - "-enabled": running only tests for on-by-default features, i.e. excluding tests for stable features. This matches the original purpose of the jobs. - "-enabled-conformance": restricts the test selection even further to only conformance tests. Both can eventually get promoted to release informing or even blocking. Only presubmits get added for now. If testing the jobs in a trial PR works, the corresponding periodics can be added. --- .../kubernetes-kind-presubmits.yaml | 202 ++++++++++++++++++ .../kubernetes/presubmits/config.yaml | 12 ++ 2 files changed, 214 insertions(+) diff --git a/config/jobs/kubernetes/sig-testing/kubernetes-kind-presubmits.yaml b/config/jobs/kubernetes/sig-testing/kubernetes-kind-presubmits.yaml index e0014fb0275f..86178c294cf8 100644 --- a/config/jobs/kubernetes/sig-testing/kubernetes-kind-presubmits.yaml +++ b/config/jobs/kubernetes/sig-testing/kubernetes-kind-presubmits.yaml @@ -314,6 +314,106 @@ presubmits: cpu: 7 memory: 9000Mi + - name: pull-kubernetes-e2e-kind-beta-enabled + cluster: k8s-infra-prow-build + annotations: + description: Runs tests with no special requirements in a KinD cluster where beta feature gates and APIs are enabled, i.e. this does not include tests for off-by-default beta features. + testgrid-num-failures-to-alert: '10' + testgrid-alert-stale-results-hours: '24' + testgrid-create-test-group: 'true' + optional: true + always_run: false + decorate: true + skip_branches: + - release-\d+\.\d+ # per-release settings + labels: + preset-dind-enabled: "true" + decoration_config: + timeout: 60m + grace_period: 15m + path_alias: k8s.io/kubernetes + spec: + containers: + - image: gcr.io/k8s-staging-test-infra/krte:v20250904-c89b045f57-master + command: + - wrapper.sh + - bash + - -c + - curl -sSL https://kind.sigs.k8s.io/dl/latest/linux-amd64.tgz | tar xvfz - -C "${PATH%%:*}/" && e2e-k8s.sh + env: + - name: FEATURE_GATES + value: '{"AllBeta":true}' + - name: RUNTIME_CONFIG + value: '{"api/beta":"true", "api/ga":"true"}' + - name: FOCUS + value: "" + - name: SKIP + value: "" + - name: LABEL_FILTER + value: "Feature: isEmpty && !Deprecated && !Slow && !Disruptive && !Flaky" + - name: PARALLEL + value: "true" + # we need privileged mode in order to do docker in docker + securityContext: + privileged: true + resources: + limits: + cpu: 7 + memory: 9000Mi + requests: + cpu: 7 + memory: 9000Mi + + - name: pull-kubernetes-e2e-kind-beta-enabled-conformance + cluster: k8s-infra-prow-build + annotations: + description: Runs conformance tests in a KinD cluster where beta feature gates and APIs are enabled. + testgrid-num-failures-to-alert: '10' + testgrid-alert-stale-results-hours: '24' + testgrid-create-test-group: 'true' + optional: true + always_run: false + decorate: true + skip_branches: + - release-\d+\.\d+ # per-release settings + labels: + preset-dind-enabled: "true" + decoration_config: + timeout: 60m + grace_period: 15m + path_alias: k8s.io/kubernetes + spec: + containers: + - image: gcr.io/k8s-staging-test-infra/krte:v20250904-c89b045f57-master + command: + - wrapper.sh + - bash + - -c + - curl -sSL https://kind.sigs.k8s.io/dl/latest/linux-amd64.tgz | tar xvfz - -C "${PATH%%:*}/" && e2e-k8s.sh + env: + - name: FEATURE_GATES + value: '{"AllBeta":true}' + - name: RUNTIME_CONFIG + value: '{"api/beta":"true", "api/ga":"true"}' + - name: FOCUS + value: "" + - name: SKIP + value: "" + - name: LABEL_FILTER + value: "Conformance && !Deprecated && !Slow && !Disruptive && !Flaky" + - name: PARALLEL + value: "true" + # we need privileged mode in order to do docker in docker + securityContext: + privileged: true + resources: + limits: + cpu: 7 + memory: 9000Mi + requests: + cpu: 7 + memory: 9000Mi + - name: pull-kubernetes-e2e-kind-alpha-beta-features annotations: description: Runs tests with no special requirements other than alpha or beta feature gates in a KinD cluster where alpha and beta feature gates and APIs are enabled. @@ -361,6 +461,108 @@ presubmits: cpu: 7 memory: 9000Mi + - name: pull-kubernetes-e2e-kind-alpha-beta-enabled + annotations: + description: Runs tests with no special requirements in a KinD cluster where alpha and beta feature gates and APIs are enabled, i.e. this does not include tests for alpha features and off-by-default beta features. + testgrid-num-failures-to-alert: '10' + testgrid-alert-stale-results-hours: '24' + testgrid-create-test-group: 'true' + cluster: k8s-infra-prow-build + optional: true + run_if_changed: ^pkg/features/ + decorate: true + skip_branches: + - release-\d+\.\d+ # per-release settings + labels: + preset-dind-enabled: "true" + decoration_config: + timeout: 60m + grace_period: 15m + path_alias: k8s.io/kubernetes + spec: + containers: + - image: gcr.io/k8s-staging-test-infra/krte:v20250904-c89b045f57-master + command: + - wrapper.sh + - bash + - -c + - curl -sSL https://kind.sigs.k8s.io/dl/latest/linux-amd64.tgz | tar xvfz - -C "${PATH%%:*}/" && e2e-k8s.sh + env: + # EventedPLEG is disabled temporarily for https://github.com/kubernetes/kubernetes/issues/122721 + - name: FEATURE_GATES + value: '{"AllAlpha":true,"AllBeta":true,"EventedPLEG":false}' + - name: RUNTIME_CONFIG + value: '{"api/all":"true"}' + - name: FOCUS + value: "" + - name: SKIP + value: "" + - name: LABEL_FILTER + value: "Feature: isEmpty && !Deprecated && !Slow && !Disruptive && !Flaky" + - name: PARALLEL + value: "true" + # we need privileged mode in order to do docker in docker + securityContext: + privileged: true + resources: + limits: + cpu: 7 + memory: 9000Mi + requests: + cpu: 7 + memory: 9000Mi + + - name: pull-kubernetes-e2e-kind-alpha-beta-enabled-conformance + annotations: + description: Runs conformance tests in a KinD cluster where alpha and beta feature gates and APIs are enabled. + testgrid-num-failures-to-alert: '10' + testgrid-alert-stale-results-hours: '24' + testgrid-create-test-group: 'true' + cluster: k8s-infra-prow-build + optional: true + run_if_changed: ^pkg/features/ + decorate: true + skip_branches: + - release-\d+\.\d+ # per-release settings + labels: + preset-dind-enabled: "true" + decoration_config: + timeout: 60m + grace_period: 15m + path_alias: k8s.io/kubernetes + spec: + containers: + - image: gcr.io/k8s-staging-test-infra/krte:v20250904-c89b045f57-master + command: + - wrapper.sh + - bash + - -c + - curl -sSL https://kind.sigs.k8s.io/dl/latest/linux-amd64.tgz | tar xvfz - -C "${PATH%%:*}/" && e2e-k8s.sh + env: + # EventedPLEG is disabled temporarily for https://github.com/kubernetes/kubernetes/issues/122721 + - name: FEATURE_GATES + value: '{"AllAlpha":true,"AllBeta":true,"EventedPLEG":false}' + - name: RUNTIME_CONFIG + value: '{"api/all":"true"}' + - name: FOCUS + value: "" + - name: SKIP + value: "" + - name: LABEL_FILTER + value: "Conformance && !Deprecated && !Slow && !Disruptive && !Flaky" + - name: PARALLEL + value: "true" + # we need privileged mode in order to do docker in docker + securityContext: + privileged: true + resources: + limits: + cpu: 7 + memory: 9000Mi + requests: + cpu: 7 + memory: 9000Mi + - name: pull-kubernetes-e2e-kind-alpha-beta-features-race annotations: description: Runs tests with no special requirements other than alpha or beta feature gates in a KinD cluster where alpha and beta feature gates and APIs are enabled and control plane components are built with race detection. diff --git a/config/testgrids/kubernetes/presubmits/config.yaml b/config/testgrids/kubernetes/presubmits/config.yaml index 65ba8b2c60a6..6f3036dd7768 100644 --- a/config/testgrids/kubernetes/presubmits/config.yaml +++ b/config/testgrids/kubernetes/presubmits/config.yaml @@ -107,9 +107,21 @@ dashboards: - name: pull-kubernetes-e2e-kind-beta-features test_group_name: pull-kubernetes-e2e-kind-beta-features base_options: width=10 + - name: pull-kubernetes-e2e-kind-beta-enabled + test_group_name: pull-kubernetes-e2e-kind-beta-enabled + base_options: width=10 + - name: pull-kubernetes-e2e-kind-beta-enabled-conformance + test_group_name: pull-kubernetes-e2e-kind-beta-enabled-conformance + base_options: width=10 - name: pull-kubernetes-e2e-kind-alpha-beta-features test_group_name: pull-kubernetes-e2e-kind-alpha-beta-features base_options: width=10 + - name: pull-kubernetes-e2e-kind-alpha-beta-enabled + test_group_name: pull-kubernetes-e2e-kind-alpha-beta-enabled + base_options: width=10 + - name: pull-kubernetes-e2e-kind-alpha-beta-enabled-conformance + test_group_name: pull-kubernetes-e2e-kind-alpha-beta-enabled-conformance + base_options: width=10 - name: pull-kubernetes-e2e-kind-alpha-beta-features-race test_group_name: pull-kubernetes-e2e-kind-alpha-beta-features-race base_options: width=10