Skip to content

Conversation

@sandeepknd
Copy link

@sandeepknd sandeepknd commented Oct 15, 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": ""
  }
]


jmhbnz and others added 30 commits August 4, 2024 19:01
Complete backport of migration to OWNERS file.
[release-3.5] go version bump from 1.21.12 to 1.21.13
Backports commit: #5a02298ad5a947214ba02655b0a93ac01d4c178a

Signed-off-by: James Blair <[email protected]>
 [3.5] Backport github/workflows: set read-only default permissions to approve workflow
…14_3.5

[3.5] Skip leadership check if the etcd instance is active processing heartbeats
Reference:
- etcd-io#18443

Signed-off-by: Chun-Hung Tseng <[email protected]>
[3.5] test: extend leaseRevoke and leaseRenew test to support 5 members cluster
[release-3.5] Bump go toolchain to 1.22.6
The goal is to reproduce a DELETE event being dropped in a watch after a compaction
occurs on the revision where the deletion took place. In order to reproduce this, we
perform the following sequence (steps for reproduction thanks to @ahrtr):
  - PUT k v2 (assume returned revision = r2)
  - PUT k v3 (assume returned revision = r3)
  - PUT k v4 (assume returned revision = r4)
  - DELETE k (assume returned revision = r5)
  - PUT k v6 (assume returned revision = r6)
  - COMPACT r5
  - WATCH rev=r5

We should get the DELETE event (r5) followed by the PUT event (r6). However, currently we only
get the PUT event with returned revision of r6 (key=k, val=v6).

Signed-off-by: Madhav Jivrajani <[email protected]>
(cherry picked from commit ebf2cac)
Signed-off-by: Wei Fu <[email protected]>
The Go runtime uses runtime Finalizer to delete cert [[1]]. The
interestingGoroutines is able to collect stack like,

```plain
leak.go:103: Found leaked goroutined BEFORE test appears to have leaked :
        sync.(*Map).LoadAndDelete(0xc00031e180, {0xe07320, 0xc00009fde0})
                /usr/local/go/src/sync/map.go:272 +0x192
        sync.(*Map).Delete(...)
                /usr/local/go/src/sync/map.go:297
        crypto/tls.(*certCache).evict(...)
                /usr/local/go/src/crypto/tls/cache.go:73
        crypto/tls.(*certCache).active.func1(0x0?)
                /usr/local/go/src/crypto/tls/cache.go:65 +0x67
```

It's caused by GC instead of leaky goroutine. interestingGoroutines
should skip it.

Backport of etcd-io#18287

[1]: https://github.com/golang/go/blob/8e1fdea8316d840fd07e9d6e026048e53290948b/src/crypto/tls/cache.go#L63

Signed-off-by: Wei Fu <[email protected]>
[3.5] client/pkg/testutil: update interestingGoroutines
[3.5] tests/e2e: add e2e test to reproduce issue 18089
[3.5] mvcc/*_test.go: should not use duplicate revision.Main for one key
Signed-off-by: Wei Fu <[email protected]>
(cherry picked from commit ee33652)
Signed-off-by: Wei Fu <[email protected]>
Before this patch, the tombstone can be deleted if its revision is equal
compacted revision. It causes that the watch subscriber won't get this
DELETE event. Based on Compact API[1], we should keep tombstone revision
if it's not less than the compaction revision.

> CompactionRequest compacts the key-value store up to a given revision.
> All superseded keys with a revision less than the compaction revision
> will be removed.

[1]: https://etcd.io/docs/latest/dev-guide/api_reference_v3/

Signed-off-by: Wei Fu <[email protected]>
(cherry picked from commit bbdc941)
Signed-off-by: Wei Fu <[email protected]>
Signed-off-by: Wei Fu <[email protected]>
(cherry picked from commit 6f93af8)
Signed-off-by: Wei Fu <[email protected]>
[3.5] tests/e2e: add test cases related to HashKV
[3.5] *: keep tombstone if revision == compactAtRev
Signed-off-by: akshaym-3255 <[email protected]>

bump bbolt to 1.3.11 for 3.5
This is a backporting cherry-pick of the following commits:

- add flagsline

Signed-off-by: Jalin Wang <[email protected]>

- etcdserver: rename defaultCompactionSleepInterval var (etcd-io#18495)

etcdserver: rename `minimumBatchInterval`  to `defaultCompactionSleepInterval` and `defaultCompactBatchLimit` to `defaultCompactionBatchLimit`

Signed-off-by: Jalin Wang <[email protected]>
(cherry picked from commit 2c53be7)

- test: add CompactionSleepInterval in FakeStore's config

After setting the ComparionSleepInterval, we can use time.Ticker
instead of time.After to optimize the scheduleComparison(),
otherwise it will fail in the 'TestStoreCompact(t)' test.

Signed-off-by: guozhao <[email protected]>
(cherry picked from commit fab8474)

- add sleep interval

(cherry picked from commit 184b0e5)
Signed-off-by: Jalin Wang <[email protected]>
[release-3.5] Fix passing default grpc call options in Kubernetes client
[3.5] Introduce the CompactionSleepInterval flag
cluster-restore needs to calculate and parse json files, thus adding jq
into the release image for etcd now.

Signed-off-by: Thomas Jungblut <[email protected]>
DOWNSTREAM: <carry>: ETCD-653: add jq to the etcd image
@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Oct 16, 2025
@openshift-ci-robot
Copy link

openshift-ci-robot commented Oct 16, 2025

@sandeepknd: This pull request references CNTRLPLANE-1316 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the task to target the "4.21.0" version, but no target version was set.

Details

In response to this:

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": ""
 }
]


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 openshift-eng/jira-lifecycle-plugin repository.

@sandeepknd sandeepknd force-pushed the ote-for-etcd branch 2 times, most recently from 8a391b8 to 9ac8831 Compare October 16, 2025 15:22
@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 16, 2025
@sandeepknd
Copy link
Author

/test e2e-aws-ovn-serial

2 similar comments
@sandeepknd
Copy link
Author

/test e2e-aws-ovn-serial

@sandeepknd
Copy link
Author

/test e2e-aws-ovn-serial

@sandeepknd
Copy link
Author

/test e2e-aws-ovn

@gangwgr
Copy link

gangwgr commented Oct 17, 2025

/lgtm

@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label Oct 17, 2025
@sandeepknd
Copy link
Author

/test e2e-aws-ovn-serial

This commit adds the OpenShift Tests Extension (OTE) framework for etcd,
including the etcd-tests-ext binary and all required vendor dependencies.

Changes include:
- New etcd-tests-ext command in cmd/etcd-tests-ext/
- Extended test framework in tests/extended/
- Updated Makefile with OTE build targets
- Added vendor dependencies for test framework
- Updated .gitignore and go.mod/go.sum
@openshift-ci openshift-ci bot removed the lgtm Indicates that a PR is ready to be merged. label Oct 19, 2025
@sandeepknd
Copy link
Author

/test e2e-aws-ovn-serial

@sandeepknd
Copy link
Author

/test okd-scos-e2e-aws-ovn

@openshift-ci
Copy link

openshift-ci bot commented Oct 19, 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-serial d1d5a87 link true /test e2e-aws-ovn-serial
ci/prow/okd-scos-e2e-aws-ovn d1d5a87 link false /test okd-scos-e2e-aws-ovn

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.

@dusk125
Copy link

dusk125 commented Oct 24, 2025

/lgtm
/approve

@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label Oct 24, 2025
@openshift-ci
Copy link

openshift-ci bot commented Oct 24, 2025

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: dusk125, gangwgr, sandeepknd

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

The pull request process is described 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

@openshift-ci openshift-ci bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Oct 24, 2025
@openshift-merge-robot openshift-merge-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Oct 29, 2025
@openshift-merge-robot
Copy link

PR needs rebase.

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.

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

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. lgtm Indicates that a PR is ready to be merged. needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD.

Projects

None yet

Development

Successfully merging this pull request may close these issues.