From 2f127da09466a85e4b6f7096084c11fdb270d814 Mon Sep 17 00:00:00 2001 From: Kiran Thyagaraja <18704819+kirankt@users.noreply.github.com> Date: Mon, 17 May 2021 21:11:04 -0500 Subject: [PATCH] Run the baremetalds e2e openshift-tests from the test pod Add a new workflow to test baremetalds-e2e with proxy and a new job to run it Rearrange directories and files Re-run registry metadata Remove test skips for now to test a minimal set No need to fetch artifacts. Add updated TEST_SKIPS to baremetalds-e2ev2-test TEST_PROVIDER was not set correctly --- ...ift-cluster-baremetal-operator-master.yaml | 4 +- ...-baremetal-operator-master-presubmits.yaml | 82 ++++---- .../step-registry/baremetalds/e2ev2/OWNERS | 6 + .../baremetalds-e2ev2-workflow.metadata.json | 12 ++ .../e2ev2/baremetalds-e2ev2-workflow.yaml | 12 ++ .../baremetalds/e2ev2/test/OWNERS | 1 + .../test/baremetalds-e2ev2-test-commands.sh | 80 ++++++++ .../baremetalds-e2ev2-test-ref.metadata.json | 12 ++ .../test/baremetalds-e2ev2-test-ref.yaml | 188 ++++++++++++++++++ 9 files changed, 354 insertions(+), 43 deletions(-) create mode 100644 ci-operator/step-registry/baremetalds/e2ev2/OWNERS create mode 100644 ci-operator/step-registry/baremetalds/e2ev2/baremetalds-e2ev2-workflow.metadata.json create mode 100644 ci-operator/step-registry/baremetalds/e2ev2/baremetalds-e2ev2-workflow.yaml create mode 120000 ci-operator/step-registry/baremetalds/e2ev2/test/OWNERS create mode 100644 ci-operator/step-registry/baremetalds/e2ev2/test/baremetalds-e2ev2-test-commands.sh create mode 100644 ci-operator/step-registry/baremetalds/e2ev2/test/baremetalds-e2ev2-test-ref.metadata.json create mode 100644 ci-operator/step-registry/baremetalds/e2ev2/test/baremetalds-e2ev2-test-ref.yaml diff --git a/ci-operator/config/openshift/cluster-baremetal-operator/openshift-cluster-baremetal-operator-master.yaml b/ci-operator/config/openshift/cluster-baremetal-operator/openshift-cluster-baremetal-operator-master.yaml index e5543dbe90ba5..f53918e222f17 100644 --- a/ci-operator/config/openshift/cluster-baremetal-operator/openshift-cluster-baremetal-operator-master.yaml +++ b/ci-operator/config/openshift/cluster-baremetal-operator/openshift-cluster-baremetal-operator-master.yaml @@ -97,14 +97,14 @@ tests: steps: cluster_profile: azure4 workflow: openshift-e2e-azure -- as: e2e-metal-ipi +- as: e2e-metal-ipi-v2 steps: cluster_profile: packet env: DEVSCRIPTS_CONFIG: | IP_STACK=v4 NETWORK_TYPE=OpenShiftSDN - workflow: baremetalds-e2e + workflow: baremetalds-e2ev2 - as: e2e-metal-ipi-serial-ipv4 steps: cluster_profile: packet diff --git a/ci-operator/jobs/openshift/cluster-baremetal-operator/openshift-cluster-baremetal-operator-master-presubmits.yaml b/ci-operator/jobs/openshift/cluster-baremetal-operator/openshift-cluster-baremetal-operator-master-presubmits.yaml index c3d6271002401..55881080bcd94 100644 --- a/ci-operator/jobs/openshift/cluster-baremetal-operator/openshift-cluster-baremetal-operator-master-presubmits.yaml +++ b/ci-operator/jobs/openshift/cluster-baremetal-operator/openshift-cluster-baremetal-operator-master-presubmits.yaml @@ -203,19 +203,20 @@ presubmits: secretName: result-aggregator trigger: (?m)^/test( | .* )e2e-metal-assisted,?($|\s.*) - agent: kubernetes - always_run: true + always_run: false branches: - master cluster: build02 - context: ci/prow/e2e-metal-ipi + context: ci/prow/e2e-metal-ipi-ovn-dualstack decorate: true decoration_config: skip_cloning: true labels: ci-operator.openshift.io/prowgen-controlled: "true" pj-rehearse.openshift.io/can-be-rehearsed: "true" - name: pull-ci-openshift-cluster-baremetal-operator-master-e2e-metal-ipi - rerun_command: /test e2e-metal-ipi + name: pull-ci-openshift-cluster-baremetal-operator-master-e2e-metal-ipi-ovn-dualstack + optional: true + rerun_command: /test e2e-metal-ipi-ovn-dualstack spec: containers: - args: @@ -223,8 +224,8 @@ presubmits: - --image-import-pull-secret=/etc/pull-secret/.dockerconfigjson - --lease-server-credentials-file=/etc/boskos/credentials - --report-credentials-file=/etc/report/credentials - - --secret-dir=/usr/local/e2e-metal-ipi-cluster-profile - - --target=e2e-metal-ipi + - --secret-dir=/usr/local/e2e-metal-ipi-ovn-dualstack-cluster-profile + - --target=e2e-metal-ipi-ovn-dualstack command: - ci-operator image: ci-operator:latest @@ -237,7 +238,7 @@ presubmits: - mountPath: /etc/boskos name: boskos readOnly: true - - mountPath: /usr/local/e2e-metal-ipi-cluster-profile + - mountPath: /usr/local/e2e-metal-ipi-ovn-dualstack-cluster-profile name: cluster-profile - mountPath: /secrets/gcs name: gcs-credentials @@ -269,22 +270,21 @@ presubmits: - name: result-aggregator secret: secretName: result-aggregator - trigger: (?m)^/test( | .* )e2e-metal-ipi,?($|\s.*) + trigger: (?m)^/test( | .* )e2e-metal-ipi-ovn-dualstack,?($|\s.*) - agent: kubernetes - always_run: false + always_run: true branches: - master cluster: build02 - context: ci/prow/e2e-metal-ipi-ovn-dualstack + context: ci/prow/e2e-metal-ipi-ovn-ipv6 decorate: true decoration_config: skip_cloning: true labels: ci-operator.openshift.io/prowgen-controlled: "true" pj-rehearse.openshift.io/can-be-rehearsed: "true" - name: pull-ci-openshift-cluster-baremetal-operator-master-e2e-metal-ipi-ovn-dualstack - optional: true - rerun_command: /test e2e-metal-ipi-ovn-dualstack + name: pull-ci-openshift-cluster-baremetal-operator-master-e2e-metal-ipi-ovn-ipv6 + rerun_command: /test e2e-metal-ipi-ovn-ipv6 spec: containers: - args: @@ -292,8 +292,8 @@ presubmits: - --image-import-pull-secret=/etc/pull-secret/.dockerconfigjson - --lease-server-credentials-file=/etc/boskos/credentials - --report-credentials-file=/etc/report/credentials - - --secret-dir=/usr/local/e2e-metal-ipi-ovn-dualstack-cluster-profile - - --target=e2e-metal-ipi-ovn-dualstack + - --secret-dir=/usr/local/e2e-metal-ipi-ovn-ipv6-cluster-profile + - --target=e2e-metal-ipi-ovn-ipv6 command: - ci-operator image: ci-operator:latest @@ -306,7 +306,7 @@ presubmits: - mountPath: /etc/boskos name: boskos readOnly: true - - mountPath: /usr/local/e2e-metal-ipi-ovn-dualstack-cluster-profile + - mountPath: /usr/local/e2e-metal-ipi-ovn-ipv6-cluster-profile name: cluster-profile - mountPath: /secrets/gcs name: gcs-credentials @@ -338,21 +338,21 @@ presubmits: - name: result-aggregator secret: secretName: result-aggregator - trigger: (?m)^/test( | .* )e2e-metal-ipi-ovn-dualstack,?($|\s.*) + trigger: (?m)^/test( | .* )e2e-metal-ipi-ovn-ipv6,?($|\s.*) - agent: kubernetes always_run: true branches: - master cluster: build02 - context: ci/prow/e2e-metal-ipi-ovn-ipv6 + context: ci/prow/e2e-metal-ipi-serial-ipv4 decorate: true decoration_config: skip_cloning: true labels: ci-operator.openshift.io/prowgen-controlled: "true" pj-rehearse.openshift.io/can-be-rehearsed: "true" - name: pull-ci-openshift-cluster-baremetal-operator-master-e2e-metal-ipi-ovn-ipv6 - rerun_command: /test e2e-metal-ipi-ovn-ipv6 + name: pull-ci-openshift-cluster-baremetal-operator-master-e2e-metal-ipi-serial-ipv4 + rerun_command: /test e2e-metal-ipi-serial-ipv4 spec: containers: - args: @@ -360,8 +360,8 @@ presubmits: - --image-import-pull-secret=/etc/pull-secret/.dockerconfigjson - --lease-server-credentials-file=/etc/boskos/credentials - --report-credentials-file=/etc/report/credentials - - --secret-dir=/usr/local/e2e-metal-ipi-ovn-ipv6-cluster-profile - - --target=e2e-metal-ipi-ovn-ipv6 + - --secret-dir=/usr/local/e2e-metal-ipi-serial-ipv4-cluster-profile + - --target=e2e-metal-ipi-serial-ipv4 command: - ci-operator image: ci-operator:latest @@ -374,7 +374,7 @@ presubmits: - mountPath: /etc/boskos name: boskos readOnly: true - - mountPath: /usr/local/e2e-metal-ipi-ovn-ipv6-cluster-profile + - mountPath: /usr/local/e2e-metal-ipi-serial-ipv4-cluster-profile name: cluster-profile - mountPath: /secrets/gcs name: gcs-credentials @@ -406,21 +406,22 @@ presubmits: - name: result-aggregator secret: secretName: result-aggregator - trigger: (?m)^/test( | .* )e2e-metal-ipi-ovn-ipv6,?($|\s.*) + trigger: (?m)^/test( | .* )e2e-metal-ipi-serial-ipv4,?($|\s.*) - agent: kubernetes - always_run: true + always_run: false branches: - master cluster: build02 - context: ci/prow/e2e-metal-ipi-serial-ipv4 + context: ci/prow/e2e-metal-ipi-upgrade decorate: true decoration_config: skip_cloning: true labels: ci-operator.openshift.io/prowgen-controlled: "true" pj-rehearse.openshift.io/can-be-rehearsed: "true" - name: pull-ci-openshift-cluster-baremetal-operator-master-e2e-metal-ipi-serial-ipv4 - rerun_command: /test e2e-metal-ipi-serial-ipv4 + name: pull-ci-openshift-cluster-baremetal-operator-master-e2e-metal-ipi-upgrade + optional: true + rerun_command: /test e2e-metal-ipi-upgrade spec: containers: - args: @@ -428,8 +429,8 @@ presubmits: - --image-import-pull-secret=/etc/pull-secret/.dockerconfigjson - --lease-server-credentials-file=/etc/boskos/credentials - --report-credentials-file=/etc/report/credentials - - --secret-dir=/usr/local/e2e-metal-ipi-serial-ipv4-cluster-profile - - --target=e2e-metal-ipi-serial-ipv4 + - --secret-dir=/usr/local/e2e-metal-ipi-upgrade-cluster-profile + - --target=e2e-metal-ipi-upgrade command: - ci-operator image: ci-operator:latest @@ -442,7 +443,7 @@ presubmits: - mountPath: /etc/boskos name: boskos readOnly: true - - mountPath: /usr/local/e2e-metal-ipi-serial-ipv4-cluster-profile + - mountPath: /usr/local/e2e-metal-ipi-upgrade-cluster-profile name: cluster-profile - mountPath: /secrets/gcs name: gcs-credentials @@ -474,22 +475,21 @@ presubmits: - name: result-aggregator secret: secretName: result-aggregator - trigger: (?m)^/test( | .* )e2e-metal-ipi-serial-ipv4,?($|\s.*) + trigger: (?m)^/test( | .* )e2e-metal-ipi-upgrade,?($|\s.*) - agent: kubernetes - always_run: false + always_run: true branches: - master cluster: build02 - context: ci/prow/e2e-metal-ipi-upgrade + context: ci/prow/e2e-metal-ipi-v2 decorate: true decoration_config: skip_cloning: true labels: ci-operator.openshift.io/prowgen-controlled: "true" pj-rehearse.openshift.io/can-be-rehearsed: "true" - name: pull-ci-openshift-cluster-baremetal-operator-master-e2e-metal-ipi-upgrade - optional: true - rerun_command: /test e2e-metal-ipi-upgrade + name: pull-ci-openshift-cluster-baremetal-operator-master-e2e-metal-ipi-v2 + rerun_command: /test e2e-metal-ipi-v2 spec: containers: - args: @@ -497,8 +497,8 @@ presubmits: - --image-import-pull-secret=/etc/pull-secret/.dockerconfigjson - --lease-server-credentials-file=/etc/boskos/credentials - --report-credentials-file=/etc/report/credentials - - --secret-dir=/usr/local/e2e-metal-ipi-upgrade-cluster-profile - - --target=e2e-metal-ipi-upgrade + - --secret-dir=/usr/local/e2e-metal-ipi-v2-cluster-profile + - --target=e2e-metal-ipi-v2 command: - ci-operator image: ci-operator:latest @@ -511,7 +511,7 @@ presubmits: - mountPath: /etc/boskos name: boskos readOnly: true - - mountPath: /usr/local/e2e-metal-ipi-upgrade-cluster-profile + - mountPath: /usr/local/e2e-metal-ipi-v2-cluster-profile name: cluster-profile - mountPath: /secrets/gcs name: gcs-credentials @@ -543,7 +543,7 @@ presubmits: - name: result-aggregator secret: secretName: result-aggregator - trigger: (?m)^/test( | .* )e2e-metal-ipi-upgrade,?($|\s.*) + trigger: (?m)^/test( | .* )e2e-metal-ipi-v2,?($|\s.*) - agent: kubernetes always_run: false branches: diff --git a/ci-operator/step-registry/baremetalds/e2ev2/OWNERS b/ci-operator/step-registry/baremetalds/e2ev2/OWNERS new file mode 100644 index 0000000000000..da7806a1f5e5b --- /dev/null +++ b/ci-operator/step-registry/baremetalds/e2ev2/OWNERS @@ -0,0 +1,6 @@ +approvers: +- andfasano +- akiselev1 +- derekhiggins +- honza +- stbenjam \ No newline at end of file diff --git a/ci-operator/step-registry/baremetalds/e2ev2/baremetalds-e2ev2-workflow.metadata.json b/ci-operator/step-registry/baremetalds/e2ev2/baremetalds-e2ev2-workflow.metadata.json new file mode 100644 index 0000000000000..dc749eb2ac0cf --- /dev/null +++ b/ci-operator/step-registry/baremetalds/e2ev2/baremetalds-e2ev2-workflow.metadata.json @@ -0,0 +1,12 @@ +{ + "path": "baremetalds/e2ev2/baremetalds-e2ev2-workflow.yaml", + "owners": { + "approvers": [ + "andfasano", + "akiselev1", + "derekhiggins", + "honza", + "stbenjam" + ] + } +} \ No newline at end of file diff --git a/ci-operator/step-registry/baremetalds/e2ev2/baremetalds-e2ev2-workflow.yaml b/ci-operator/step-registry/baremetalds/e2ev2/baremetalds-e2ev2-workflow.yaml new file mode 100644 index 0000000000000..00bd486555ace --- /dev/null +++ b/ci-operator/step-registry/baremetalds/e2ev2/baremetalds-e2ev2-workflow.yaml @@ -0,0 +1,12 @@ +workflow: + as: baremetalds-e2ev2 + steps: + pre: + - chain: baremetalds-ipi-pre + test: + - ref: baremetalds-e2e-conf + - ref: baremetalds-e2ev2-test + post: + - chain: baremetalds-ipi-post + documentation: |- + This workflow executes the common end-to-end test suite on a cluster provisioned by running dev-scripts on a packet server. diff --git a/ci-operator/step-registry/baremetalds/e2ev2/test/OWNERS b/ci-operator/step-registry/baremetalds/e2ev2/test/OWNERS new file mode 120000 index 0000000000000..ec405d65a79df --- /dev/null +++ b/ci-operator/step-registry/baremetalds/e2ev2/test/OWNERS @@ -0,0 +1 @@ +../OWNERS \ No newline at end of file diff --git a/ci-operator/step-registry/baremetalds/e2ev2/test/baremetalds-e2ev2-test-commands.sh b/ci-operator/step-registry/baremetalds/e2ev2/test/baremetalds-e2ev2-test-commands.sh new file mode 100644 index 0000000000000..528b450536498 --- /dev/null +++ b/ci-operator/step-registry/baremetalds/e2ev2/test/baremetalds-e2ev2-test-commands.sh @@ -0,0 +1,80 @@ +#!/bin/bash + +set -o nounset +set -o errexit +set -o pipefail + +echo "************ baremetalds test command ************" + +case "${CLUSTER_TYPE}" in +packet) + # shellcheck source=/dev/null + source "${SHARED_DIR}/packet-conf.sh" + # shellcheck source=/dev/null + source "${SHARED_DIR}/ds-vars.conf" + # shellcheck source=/dev/null + source "${SHARED_DIR}/proxy-conf.sh" + export KUBECONFIG="${SHARED_DIR}/kubeconfig" + + # Currently all v6 deployments are disconnected, so we have to tell + # openshift-tests to exclude those tests that require internet + # access. + if [[ "${DS_IP_STACK}" != "v6" ]]; + then + export TEST_PROVIDER="{\"type\":\"baremetal\"}" + else + export TEST_PROVIDER="{\"type\":\"baremetal\",\"disconnected\":true}" + fi + ;; +*) echo >&2 "Unsupported cluster type '${CLUSTER_TYPE}'"; exit 1;; +esac + +function upgrade() { + set -x + openshift-tests run-upgrade all \ + --to-image "${OPENSHIFT_UPGRADE_RELEASE_IMAGE_OVERRIDE}" \ + --provider "${TEST_PROVIDER}" \ + -o "${ARTIFACT_DIR}/e2e.log" \ + --junit-dir "${ARTIFACT_DIR}/junit" + set +x +} + +function suite() { + if [[ -n "${TEST_SKIPS}" ]]; then + TESTS="$(openshift-tests run --dry-run --provider "${TEST_PROVIDER}" "${TEST_SUITE}")" + echo "${TESTS}" | grep -v "${TEST_SKIPS}" >/tmp/tests + echo "Skipping tests:" + echo "${TESTS}" | grep "${TEST_SKIPS}" + TEST_ARGS="${TEST_ARGS:-} --file /tmp/tests" + fi + + set -x + openshift-tests run "${TEST_SUITE}" "${TEST_ARGS:-}" \ + --provider "${TEST_PROVIDER}" \ + -o "${ARTIFACT_DIR}/e2e.log" \ + --junit-dir "${ARTIFACT_DIR}/junit" + set +x +} + +echo "$(date +%s)" > "${SHARED_DIR}/TEST_TIME_TEST_START" + +case "${TEST_TYPE}" in +upgrade-conformance) + upgrade + TEST_LIMIT_START_TIME="$(date +%s)" TEST_SUITE=openshift/conformance/parallel suite + ;; +upgrade) + upgrade + ;; +suite-conformance) + suite + TEST_LIMIT_START_TIME="$(date +%s)" TEST_SUITE=openshift/conformance/parallel suite + ;; +suite) + suite + ;; +*) + echo >&2 "Unsupported test type '${TEST_TYPE}'" + exit 1 + ;; +esac diff --git a/ci-operator/step-registry/baremetalds/e2ev2/test/baremetalds-e2ev2-test-ref.metadata.json b/ci-operator/step-registry/baremetalds/e2ev2/test/baremetalds-e2ev2-test-ref.metadata.json new file mode 100644 index 0000000000000..42b2daf3b8bd1 --- /dev/null +++ b/ci-operator/step-registry/baremetalds/e2ev2/test/baremetalds-e2ev2-test-ref.metadata.json @@ -0,0 +1,12 @@ +{ + "path": "baremetalds/e2ev2/test/baremetalds-e2ev2-test-ref.yaml", + "owners": { + "approvers": [ + "andfasano", + "akiselev1", + "derekhiggins", + "honza", + "stbenjam" + ] + } +} \ No newline at end of file diff --git a/ci-operator/step-registry/baremetalds/e2ev2/test/baremetalds-e2ev2-test-ref.yaml b/ci-operator/step-registry/baremetalds/e2ev2/test/baremetalds-e2ev2-test-ref.yaml new file mode 100644 index 0000000000000..977175cfc55e3 --- /dev/null +++ b/ci-operator/step-registry/baremetalds/e2ev2/test/baremetalds-e2ev2-test-ref.yaml @@ -0,0 +1,188 @@ +ref: + as: baremetalds-e2ev2-test + from: tests + grace_period: 10m + commands: baremetalds-e2ev2-test-commands.sh + timeout: 10800s + resources: + requests: + cpu: "3" + memory: 600Mi + limits: + memory: 2Gi + env: + - name: RUN_UPGRADE_TEST + default: "false" + documentation: Not used anymore. It is necessary to remove its definition from all the jobs before removing it from this step + - name: TEST_TYPE + default: "suite" + documentation: | + The type of test to perform. + * 'suite' - Run the test suite defined by TEST_SUITE. By default this executes the + OpenShift parallel conformance suite. All product components must run the + default suite on pull requests prior to merge. + * 'suite-conformance' - Runs the test suite defined by TEST_SUITE, then runs the product conformance + suite to verify the cluster is still functional. This is typically used for testing + disruption from one suite, then confirming that the disruption did not degrade the + product. + * 'upgrade' - Perform an upgrade to the image defined by OPENSHIFT_UPGRADE_RELEASE_IMAGE_OVERRIDE. + The TEST_UPGRADE_OPTIONS flag may be optionally set. All product components + must run the default upgrade test (verify an upgrade completes) on pull requests + prior to merge. + * 'upgrade-conformance' - Performs the 'upgrade' test and then executes the full conformance + suite after upgrade completes. Does not honor TEST_SUITE but will respect + TEST_UPGRADE_OPTIONS. All product releases must pass the conformance suite after + an upgrade completes or have explicit logic in their test to tolerate behavior after + upgrade. + - name: TEST_SUITE + default: openshift/conformance/parallel + documentation: The test suite to run. Use 'openshift-test run --help' to list available suites. + - name: TEST_SKIPS + default: |- + \[Conformance\]\[sig-api-machinery\]\[Feature:APIServer\] local kubeconfig .* should be present on all masters and work + \[k8s.io\] Container Runtime blackbox test when running a container with a new image should be able to pull from private registry with secret + \[k8s.io\] \[sig-node\] Pods Extended \[k8s.io\] Pod Container Status should never report success for a pending container + \[sig-api-machinery\] CustomResourcePublishOpenAPI \[Privileged:ClusterAdmin\] works for CRD with validation schema + \[sig-api-machinery\]\[Feature:APIServer\]\[Late\] kube-apiserver terminates within graceful termination period + \[sig-api-machinery\]\[Feature:APIServer\]\[Late\] kubelet terminates kube-apiserver gracefully + \[sig-apps\]\[Feature:DeploymentConfig\] deploymentconfigs with multiple image change triggers should run a successful deployment with a trigger used by different containers + \[sig-apps\]\[Feature:DeploymentConfig\] deploymentconfigs with multiple image change triggers should run a successful deployment with multiple triggers + \[sig-arch\] Managed cluster should ensure control plane pods do not run in best-effort QoS + \[sig-arch\] Managed cluster should have no crashlooping pods in core namespaces over four minutes + \[sig-arch\] Managed cluster should only include cluster daemonsets that have maxUnavailable update of 10 or 33 percent + \[sig-auth\] \[Feature:NodeAuthenticator\] The kubelet can delegate ServiceAccount tokens to the API server + \[sig-auth\] \[Feature:NodeAuthenticator\] The kubelet's main port 10250 should reject requests with no credentials + \[sig-auth\]\[Feature:HTPasswdAuth\] HTPasswd IDP should successfully configure htpasswd and be responsive + \[sig-auth\]\[Feature:LDAP\] LDAP IDP should authenticate against an ldap server + \[sig-auth\]\[Feature:SCC\]\[Early\] should not have pod creation failures during install + \[sig-builds\]\[Feature:Builds\] result image should have proper labels set Docker build from a template should create a image from .* template with proper Docker labels + \[sig-builds\]\[Feature:Builds\] result image should have proper labels set S2I build from a template should create a image from .* template with proper Docker labels + \[sig-cli\] oc adm must-gather runs successfully + \[sig-cli\] oc adm must-gather runs successfully for audit logs + \[sig-cli\] oc adm must-gather runs successfully with options + \[sig-cli\] oc debug does not require a real resource on the server + \[sig-cli\] oc debug ensure it works with image streams + \[sig-cli\] oc explain should contain proper fields description for special types + \[sig-cli\] oc explain should contain proper spec+status for CRDs + \[sig-cli\] oc rsh rsh specific flags should work well when access to a remote shell + \[sig-devex\] check registry.redhat.io is available and samples operator can import sample imagestreams run sample related validations + \[sig-devex\]\[Feature:Templates\] templateinstance readiness test should report failed soon after an annotated objects has failed + \[sig-devex\]\[Feature:Templates\] templateinstance readiness test should report ready soon after all annotated objects are ready + \[sig-imageregistry\]\[Feature:ImageLookup\] Image policy should perform lookup when the Deployment gets the resolve-names annotation later + \[sig-imageregistry\]\[Feature:ImageLookup\] Image policy should perform lookup when the object has the resolve-names annotation + \[sig-imageregistry\]\[Feature:ImageLookup\] Image policy should update standard Kube object image fields when local names are on + \[sig-imageregistry\]\[Feature:Image\] oc tag should preserve image reference for external images + \[sig-instrumentation\] Prometheus when installed on the cluster shouldn't report any alerts in firing state apart from Watchdog and AlertmanagerReceiversNotConfigured + \[sig-instrumentation\]\[Late\] Alerts shouldn't report any alerts in firing or pending state apart from Watchdog and AlertmanagerReceiversNotConfigured and have no gaps in Watchdog firing + \[sig-network\] Conntrack should be able to preserve UDP traffic when server pod cycles for a ClusterIP service + \[sig-network\] Conntrack should be able to preserve UDP traffic when server pod cycles for a NodePort service + \[sig-network\] DNS should provide /etc/hosts entries for the cluster + \[sig-network\] DNS should provide DNS for ExternalName services + \[sig-network\] DNS should provide DNS for pods for Hostname + \[sig-network\] DNS should provide DNS for pods for Subdomain + \[sig-network\] DNS should provide DNS for services + \[sig-network\] DNS should provide DNS for the cluster + \[sig-network\] DNS should resolve DNS of partial qualified names for services + \[sig-network\] DNS should resolve DNS of partial qualified names for the cluster + \[sig-network\]\[endpoints\] admission TestEndpointAdmission + \[sig-operator\] an end user can use OLM can subscribe to the operator + \[sig-storage\] GCP Volumes GlusterFS should be mountable + \[sig-storage\] In-tree Volumes \[Driver: gluster\] \[Testpattern: Inline-volume (default fs)\] subPath should be able to unmount after the subpath directory is deleted + \[sig-storage\] In-tree Volumes \[Driver: gluster\] \[Testpattern: Inline-volume (default fs)\] subPath should support existing directories when readOnly specified in the volumeSource + \[sig-storage\] In-tree Volumes \[Driver: gluster\] \[Testpattern: Inline-volume (default fs)\] subPath should support existing directory + \[sig-storage\] In-tree Volumes \[Driver: gluster\] \[Testpattern: Inline-volume (default fs)\] subPath should support existing single file + \[sig-storage\] In-tree Volumes \[Driver: gluster\] \[Testpattern: Inline-volume (default fs)\] subPath should support file as subpath + \[sig-storage\] In-tree Volumes \[Driver: gluster\] \[Testpattern: Inline-volume (default fs)\] subPath should support non-existent path + \[sig-storage\] In-tree Volumes \[Driver: gluster\] \[Testpattern: Inline-volume (default fs)\] subPath should support readOnly directory specified in the volumeMount + \[sig-storage\] In-tree Volumes \[Driver: gluster\] \[Testpattern: Inline-volume (default fs)\] subPath should support readOnly file specified in the volumeMount + \[sig-storage\] In-tree Volumes \[Driver: gluster\] \[Testpattern: Inline-volume (default fs)\] volumes should allow exec of files on the volume + \[sig-storage\] In-tree Volumes \[Driver: gluster\] \[Testpattern: Inline-volume (default fs)\] volumes should store data + \[sig-storage\] In-tree Volumes \[Driver: gluster\] \[Testpattern: Pre-provisioned PV (default fs)\] subPath should be able to unmount after the subpath directory is deleted + \[sig-storage\] In-tree Volumes \[Driver: gluster\] \[Testpattern: Pre-provisioned PV (default fs)\] subPath should support existing directories when readOnly specified in the volumeSource + \[sig-storage\] In-tree Volumes \[Driver: gluster\] \[Testpattern: Pre-provisioned PV (default fs)\] subPath should support existing directory + \[sig-storage\] In-tree Volumes \[Driver: gluster\] \[Testpattern: Pre-provisioned PV (default fs)\] subPath should support existing single file + \[sig-storage\] In-tree Volumes \[Driver: gluster\] \[Testpattern: Pre-provisioned PV (default fs)\] subPath should support file as subpath + \[sig-storage\] In-tree Volumes \[Driver: gluster\] \[Testpattern: Pre-provisioned PV (default fs)\] subPath should support non-existent path + \[sig-storage\] In-tree Volumes \[Driver: gluster\] \[Testpattern: Pre-provisioned PV (default fs)\] subPath should support readOnly directory specified in the volumeMount + \[sig-storage\] In-tree Volumes \[Driver: gluster\] \[Testpattern: Pre-provisioned PV (default fs)\] subPath should support readOnly file specified in the volumeMount + \[sig-storage\] In-tree Volumes \[Driver: gluster\] \[Testpattern: Pre-provisioned PV (default fs)\] volumes should allow exec of files on the volume + \[sig-storage\] In-tree Volumes \[Driver: gluster\] \[Testpattern: Pre-provisioned PV (default fs)\] volumes should store data + \[sig-storage\] In-tree Volumes \[Driver: nfs\] \[Testpattern: Dynamic PV (default fs)\] provisioning should provision storage with mount options + \[sig-storage\] In-tree Volumes \[Driver: nfs\] \[Testpattern: Dynamic PV (default fs)\] subPath should support existing directories when readOnly specified in the volumeSource + \[sig-storage\] In-tree Volumes \[Driver: nfs\] \[Testpattern: Dynamic PV (default fs)\] subPath should support existing directory + \[sig-storage\] In-tree Volumes \[Driver: nfs\] \[Testpattern: Dynamic PV (default fs)\] subPath should support existing single file + \[sig-storage\] In-tree Volumes \[Driver: nfs\] \[Testpattern: Dynamic PV (default fs)\] subPath should support file as subpath + \[sig-storage\] In-tree Volumes \[Driver: nfs\] \[Testpattern: Dynamic PV (default fs)\] subPath should support non-existent path + \[sig-storage\] In-tree Volumes \[Driver: nfs\] \[Testpattern: Dynamic PV (default fs)\] subPath should support readOnly directory specified in the volumeMount + \[sig-storage\] In-tree Volumes \[Driver: nfs\] \[Testpattern: Dynamic PV (default fs)\] subPath should support readOnly file specified in the volumeMount + \[sig-storage\] In-tree Volumes \[Driver: nfs\] \[Testpattern: Dynamic PV (default fs)\] volumes should allow exec of files on the volume + \[sig-storage\] In-tree Volumes \[Driver: nfs\] \[Testpattern: Dynamic PV (default fs)\] volumes should store data + \[sig-storage\] In-tree Volumes \[Driver: nfs\] \[Testpattern: Pre-provisioned PV (default fs)\] subPath should support existing directory + documentation: Regular expression (POSIX basic regular expression) of tests to skip. Note that the current list it's just a temporary measure for the baremetal platform. + - name: TEST_UPGRADE_OPTIONS + default: "abort-at=100" + documentation: Options controlling how an upgrade is performed. See `openshift-test run-upgrade --help` for more details. + - name: TEST_MINIMAL_LIST + default: |- + "[k8s.io] Kubelet when scheduling a busybox command that always fails in a pod should be possible to delete [NodeConformance] [Conformance] [sig-node] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]" + "[k8s.io] Lease lease API should be available [Conformance] [sig-node] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]" + "[k8s.io] Probing container with readiness probe that fails should never be ready and never restart [NodeConformance] [Conformance] [sig-node] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]" + "[k8s.io] [sig-node] Pods Extended [k8s.io] Pods Set QOS Class should be set on Pods with matching resource requests and limits for memory and cpu [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]" + "[sig-api-machinery] CustomResourceDefinition Watch [Privileged:ClusterAdmin] CustomResourceDefinition Watch watch on custom resource definition objects [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]" + "[sig-api-machinery] CustomResourceDefinition resources [Privileged:ClusterAdmin] Simple CustomResourceDefinition creating/deleting custom resource definition objects works [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]" + "[sig-api-machinery] CustomResourceDefinition resources [Privileged:ClusterAdmin] Simple CustomResourceDefinition getting/updating/patching custom resource definition status sub-resource works [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]" + "[sig-api-machinery] CustomResourceDefinition resources [Privileged:ClusterAdmin] Simple CustomResourceDefinition listing custom resource definition objects works [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]" + "[sig-api-machinery] CustomResourceDefinition resources [Privileged:ClusterAdmin] custom resource defaulting for requests and from storage works [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]" + "[sig-api-machinery] CustomResourceDefinition resources [Privileged:ClusterAdmin] should include custom resource definition resources in discovery documents [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]" + "[sig-api-machinery] CustomResourcePublishOpenAPI [Privileged:ClusterAdmin] removes definition from spec when one version gets changed to not be served [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]" + "[sig-api-machinery] CustomResourcePublishOpenAPI [Privileged:ClusterAdmin] updates the published spec when one version gets renamed [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]" + "[sig-api-machinery] CustomResourcePublishOpenAPI [Privileged:ClusterAdmin] works for CRD preserving unknown fields at the schema root [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]" + "[sig-api-machinery] CustomResourcePublishOpenAPI [Privileged:ClusterAdmin] works for CRD preserving unknown fields in an embedded object [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]" + "[sig-api-machinery] CustomResourcePublishOpenAPI [Privileged:ClusterAdmin] works for CRD with validation schema [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]" + "[sig-api-machinery] CustomResourcePublishOpenAPI [Privileged:ClusterAdmin] works for CRD without validation schema [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]" + "[sig-api-machinery] CustomResourcePublishOpenAPI [Privileged:ClusterAdmin] works for multiple CRDs of different groups [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]" + "[sig-api-machinery] CustomResourcePublishOpenAPI [Privileged:ClusterAdmin] works for multiple CRDs of same group and version but different kinds [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]" + "[sig-api-machinery] CustomResourcePublishOpenAPI [Privileged:ClusterAdmin] works for multiple CRDs of same group but different versions [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]" + "[sig-api-machinery] Garbage collector should delete RS created by deployment when not orphaning [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]" + "[sig-api-machinery] Garbage collector should delete pods created by rc when not orphaning [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]" + "[sig-api-machinery] Garbage collector should keep the rc around until all its pods are deleted if the deleteOptions says so [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]" + "[sig-api-machinery] Garbage collector should not be blocked by dependency circle [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]" + "[sig-api-machinery] Garbage collector should not delete dependents that have both valid owner and owner that's waiting for dependents to be deleted [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]" + "[sig-api-machinery] Garbage collector should orphan RS created by deployment when deleteOptions.PropagationPolicy is Orphan [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]" + "[sig-api-machinery] Garbage collector should orphan pods created by rc if delete options say so [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]" + "[sig-api-machinery] ResourceQuota should be able to update and delete ResourceQuota. [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]" + "[sig-api-machinery] ResourceQuota should create a ResourceQuota and capture the life of a configMap. [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]" + "[sig-api-machinery] ResourceQuota should create a ResourceQuota and capture the life of a pod. [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]" + "[sig-api-machinery] ResourceQuota should create a ResourceQuota and capture the life of a replica set. [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]" + "[sig-api-machinery] ResourceQuota should create a ResourceQuota and capture the life of a replication controller. [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]" + "[sig-api-machinery] ResourceQuota should create a ResourceQuota and capture the life of a secret. [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]" + "[sig-api-machinery] ResourceQuota should create a ResourceQuota and capture the life of a service. [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]" + "[sig-api-machinery] ResourceQuota should create a ResourceQuota and ensure its status is promptly calculated. [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]" + "[sig-api-machinery] ResourceQuota should verify ResourceQuota with best effort scope. [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]" + "[sig-api-machinery] Secrets should fail to create secret due to empty secret key [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]" + "[sig-api-machinery] Secrets should patch a secret [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]" + "[sig-api-machinery] Servers with support for Table transformation should return a 406 for a backend which does not implement metadata [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]" + "[sig-api-machinery] Watchers should be able to restart watching from the last resource version observed by the previous watch [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]" + "[sig-api-machinery] Watchers should be able to start watching from a specific resource version [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]" + "[sig-api-machinery] Watchers should observe add, update, and delete watch notifications on configmaps [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]" + "[sig-api-machinery] Watchers should observe an object deletion if it stops meeting the requirements of the selector [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]" + "[sig-api-machinery] Watchers should receive events on concurrent watches in same order [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]" + "[sig-apps] ReplicationController should release no longer matching pods [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]" + "[sig-apps] ReplicationController should surface a failure condition on a common issue like exceeded quota [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]" + "[sig-auth] ServiceAccounts should allow opting out of API token automount [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]" + "[sig-cli] Kubectl client Kubectl api-versions should check if v1 is in available api versions [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]" + "[sig-cli] Kubectl client Kubectl version should check is all data is printed [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]" + "[sig-cli] Kubectl client Proxy server should support --unix-socket=/path [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]" + "[sig-cli] Kubectl client Proxy server should support proxy with --port 0 [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]" + "[sig-network] Proxy version v1 should proxy logs on node using proxy subresource [Suite:openshift/conformance/parallel] [Suite:k8s]" + "[sig-network] Proxy version v1 should proxy logs on node with explicit kubelet port using proxy subresource [Suite:openshift/conformance/parallel] [Suite:k8s]" + "[sig-network] Services should find a service from listing all namespaces [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]" + "[sig-network] Services should provide secure master service [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]" + "[sig-node] ConfigMap should fail to create ConfigMap with empty key [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]" + "[sig-scheduling] LimitRange should create a LimitRange with defaults and ensure pod has those defaults applied. [Conformance] [Suite:openshift/conformance/parallel/minimal] [Suite:k8s]" + documentation: This is a minimal list of working tests to be used when test images mirroring is not supported by openshift-test (baremetal ipi only) + dependencies: + - name: "release:latest" + env: OPENSHIFT_UPGRADE_RELEASE_IMAGE_OVERRIDE + documentation: |- + The Baremtal DS E2E step executes the common end-to-end test suite.