Skip to content

Conversation

@sandeepknd
Copy link

@sandeepknd sandeepknd commented Oct 14, 2025

As part of the https://issues.redhat.com/browse/CNTRLPLANE-1221 and sub task https://issues.redhat.com/browse/CNTRLPLANE-1316, raised this PR which introduces a binary and supporting structure to enable the execution of OpenShift etcd tests using the Open Test Environment (OTE).

Changes:

Add cmd/etcd-tests-ext/ with main.go
Add test/extended/ directory with comprehensive README.md and sanity test
Update Makefile with flexible OTE build targets and helper commands
Update go.mod with required dependencies for ginkgo and openshift-tests-extension
Add vendor dependencies for new OTE framework

Test suites:
openshift/etcd/conformance/parallel
openshift/etcd/conformance/serial
openshift/etcd/optional/slow
openshift/etcd/all

Please find the OTE test results.

$ ./etcd-tests-ext --help
Etcd Tests Extension

Usage:
   [command]

Available Commands:
  completion  Generate the autocompletion script for the specified shell
  help        Help about any command
  images      List test images
  info        Display extension metadata
  list        List items
  run-suite   Run a group of tests by suite. This is more limited than origin, and intended for light local development use. Orchestration parameters, scheduling, isolation, etc are not obeyed, and Ginkgo tests are executed serially.
  run-test    Runs tests by name
  update      Update test metadata

Flags:
  -h, --help   help for this command

Use " [command] --help" for more information about a command.
$ ./etcd-tests-ext info
{
    "apiVersion": "v1.1",
    "source": {
        "commit": "",
        "build_date": "",
        "git_tree_state": ""
    },
    "component": {
        "product": "openshift",
        "type": "payload",
        "name": "etcd"
    },
    "suites": [
        {
            "name": "openshift/etcd/conformance/parallel",
            "description": "",
            "parents": [
                "openshift/conformance/parallel"
            ],
            "qualifiers": [
                "(source == \"openshift:payload:etcd\") \u0026\u0026 (!(name.contains(\"[Serial]\") || name.contains(\"[Slow]\")))"
            ]
        },
        {
            "name": "openshift/etcd/conformance/serial",
            "description": "",
            "parents": [
                "openshift/conformance/serial"
            ],
            "qualifiers": [
                "(source == \"openshift:payload:etcd\") \u0026\u0026 (name.contains(\"[Serial]\"))"
            ]
        },
        {
            "name": "openshift/etcd/optional/slow",
            "description": "",
            "parents": [
                "openshift/optional/slow"
            ],
            "qualifiers": [
                "(source == \"openshift:payload:etcd\") \u0026\u0026 (name.contains(\"[Slow]\"))"
            ]
        },
        {
            "name": "openshift/etcd/all",
            "description": "",
            "qualifiers": [
                "source == \"openshift:payload:etcd\""
            ]
        }
    ],
    "images": null
}
$ ./etcd-tests-ext list 
[
  {
    "name": "[Jira:etcd][sig-etcd] sanity test should always pass [Suite:openshift/etcd/conformance/parallel]",
    "labels": {},
    "resources": {
      "isolation": {}
    },
    "source": "openshift:payload:etcd",
    "codeLocations": [
      "/home/skundu/automation/OCP-etcd/etcd/test/extended/main.go:8",
      "/home/skundu/automation/OCP-etcd/etcd/test/extended/main.go:9"
    ],
    "lifecycle": "blocking",
    "environmentSelector": {}
  }
]
$ ./etcd-tests-ext list tests
[
  {
    "name": "[Jira:etcd][sig-etcd] sanity test should always pass [Suite:openshift/etcd/conformance/parallel]",
    "labels": {},
    "resources": {
      "isolation": {}
    },
    "source": "openshift:payload:etcd",
    "codeLocations": [
      "/home/skundu/automation/OCP-etcd/etcd/test/extended/main.go:8",
      "/home/skundu/automation/OCP-etcd/etcd/test/extended/main.go:9"
    ],
    "lifecycle": "blocking",
    "environmentSelector": {}
  }
]
$ ./etcd-tests-ext list suites
[
  {
    "name": "openshift/etcd/conformance/parallel",
    "description": "",
    "parents": [
      "openshift/conformance/parallel"
    ],
    "qualifiers": [
      "(source == \"openshift:payload:etcd\") \u0026\u0026 (!(name.contains(\"[Serial]\") || name.contains(\"[Slow]\")))"
    ]
  },
  {
    "name": "openshift/etcd/conformance/serial",
    "description": "",
    "parents": [
      "openshift/conformance/serial"
    ],
    "qualifiers": [
      "(source == \"openshift:payload:etcd\") \u0026\u0026 (name.contains(\"[Serial]\"))"
    ]
  },
  {
    "name": "openshift/etcd/optional/slow",
    "description": "",
    "parents": [
      "openshift/optional/slow"
    ],
    "qualifiers": [
      "(source == \"openshift:payload:etcd\") \u0026\u0026 (name.contains(\"[Slow]\"))"
    ]
  },
  {
    "name": "openshift/etcd/all",
    "description": "",
    "qualifiers": [
      "source == \"openshift:payload:etcd\""
    ]
  }
]

$ ./etcd-tests-ext run-suite "openshift/etcd/conformance/parallel"
  Running Suite:  - /home/skundu/automation/OCP-etcd/etcd
  =======================================================
  Random Seed: 1760523276 - will randomize all specs

  Will run 1 of 1 specs
  ------------------------------
  [Jira:etcd][sig-etcd] sanity test should always pass [Suite:openshift/etcd/conformance/parallel]
  /home/skundu/automation/OCP-etcd/etcd/test/extended/main.go:9
  • [0.000 seconds]
  ------------------------------

  Ran 1 of 1 Specs in 0.000 seconds
  SUCCESS! -- 1 Passed | 0 Failed | 0 Pending | 0 Skipped
[
  {
    "name": "[Jira:etcd][sig-etcd] sanity test should always pass [Suite:openshift/etcd/conformance/parallel]",
    "lifecycle": "blocking",
    "duration": 0,
    "startTime": "2025-10-15 10:14:36.726395 UTC",
    "endTime": "2025-10-15 10:14:36.726597 UTC",
    "result": "passed",
    "output": ""
  }
]

$ ./etcd-tests-ext run-suite "openshift/etcd/all"
  Running Suite:  - /home/skundu/automation/OCP-etcd/etcd
  =======================================================
  Random Seed: 1760523785 - will randomize all specs

  Will run 1 of 1 specs
  ------------------------------
  [Jira:etcd][sig-etcd] sanity test should always pass [Suite:openshift/etcd/conformance/parallel]
  /home/skundu/automation/OCP-etcd/etcd/test/extended/main.go:9
  • [0.000 seconds]
  ------------------------------

  Ran 1 of 1 Specs in 0.000 seconds
  SUCCESS! -- 1 Passed | 0 Failed | 0 Pending | 0 Skipped
[
  {
    "name": "[Jira:etcd][sig-etcd] sanity test should always pass [Suite:openshift/etcd/conformance/parallel]",
    "lifecycle": "blocking",
    "duration": 0,
    "startTime": "2025-10-15 10:23:05.378903 UTC",
    "endTime": "2025-10-15 10:23:05.379337 UTC",
    "result": "passed",
    "output": ""
  }
]

$ ./etcd-tests-ext run-test "[Jira:etcd][sig-etcd] sanity test should always pass [Suite:openshift/etcd/conformance/parallel]"
  Running Suite:  - /home/skundu/automation/OCP-etcd/etcd
  =======================================================
  Random Seed: 1760523498 - will randomize all specs

  Will run 1 of 1 specs
  ------------------------------
  [Jira:etcd][sig-etcd] sanity test should always pass [Suite:openshift/etcd/conformance/parallel]
  /home/skundu/automation/OCP-etcd/etcd/test/extended/main.go:9
  • [0.000 seconds]
  ------------------------------

  Ran 1 of 1 Specs in 0.000 seconds
  SUCCESS! -- 1 Passed | 0 Failed | 0 Pending | 0 Skipped
[
  {
    "name": "[Jira:etcd][sig-etcd] sanity test should always pass [Suite:openshift/etcd/conformance/parallel]",
    "lifecycle": "blocking",
    "duration": 0,
    "startTime": "2025-10-15 10:18:18.042921 UTC",
    "endTime": "2025-10-15 10:18:18.043183 UTC",
    "result": "passed",
    "output": ""
  }
]


@openshift-ci
Copy link

openshift-ci bot commented Oct 14, 2025

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: sandeepknd

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@sandeepknd
Copy link
Author

/hold

@openshift-ci openshift-ci bot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Oct 14, 2025
@sandeepknd sandeepknd changed the title OTE extensin for etcd OTE extension for etcd Oct 14, 2025
@sandeepknd
Copy link
Author

/assign @gangwgr
/assign @dusk125

@sandeepknd
Copy link
Author

/hold cancel

@openshift-ci openshift-ci bot removed the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Oct 15, 2025
@sandeepknd
Copy link
Author

/hold

@openshift-ci openshift-ci bot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Oct 15, 2025
@openshift-ci
Copy link

openshift-ci bot commented Oct 15, 2025

@sandeepknd: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/e2e-aws-ovn-upgrade f15cf2f link true /test e2e-aws-ovn-upgrade
ci/prow/okd-scos-images f15cf2f link true /test okd-scos-images
ci/prow/images f15cf2f link true /test images
ci/prow/okd-scos-e2e-aws-ovn f15cf2f link false /test okd-scos-e2e-aws-ovn
ci/prow/configmap-scale f15cf2f link true /test configmap-scale
ci/prow/e2e-aws-ovn f15cf2f link true /test e2e-aws-ovn
ci/prow/unit f15cf2f link true /test unit
ci/prow/e2e-aws-ovn-serial f15cf2f link true /test e2e-aws-ovn-serial

Full PR test history. Your PR dashboard.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

| `make build` | Builds the operator binary. |
| `make tests-ext-build` | Builds the test extension binary. |
| `make tests-ext-update` | Updates the metadata JSON file and cleans machine-specific codeLocations. |
| `make tests-ext-clean` | Clean tests extension artifacts. |
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not needed remove

export KUBECONFIG=~/.kube/cluster-bot.kubeconfig
```

3. Run the tests using the `cluster-etcd-operator-tests-ext` binary.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it is not etcd-o binary, changed this to correct one

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants