Skip to content

operator/v1: add ovnKubernetesConfig startupReadinessTimeoutSeconds - #3073

Open
cragr wants to merge 1 commit into
openshift:masterfrom
cragr:ovnk-startup-readiness-timeout
Open

cragr wants to merge 1 commit into
openshift:masterfrom
cragr:ovnk-startup-readiness-timeout

Conversation

@cragr

@cragr cragr commented Oct 2, 2026 •

Copy link
Copy Markdown

Adds an optional startupReadinessTimeoutSeconds field to OVNKubernetesConfig in operator.openshift.io/v1 Network, behind a new OVNKubernetesStartupReadinessTimeout feature gate (DevPreviewNoUpgrade and TechPreviewNoUpgrade).

It sets how long ovnkube-node waits at startup for its gateway and management port to be created in OVN. When omitted, the platform default applies (currently 300 seconds). Valid values are 1 to 3600 seconds. CNO will pass it to ovnkube-node as the --startup-readiness-timeout flag from ovn-kubernetes/ovn-kubernetes#7034.

Enhancement: openshift/enhancements#2127
Tracking: OCPBUGS-127208

Changes:

  • features/features.go: new gate OVNKubernetesStartupReadinessTimeout
  • operator/v1/types_network.go: new field, int32, +kubebuilder:validation:Minimum=1, +kubebuilder:validation:Maximum=3600
  • operator/v1/tests/networks.operator.openshift.io/OVNKubernetesStartupReadinessTimeout.yaml: validation tests for unset, 600, 1, 3600, -1, 3601, update and removal
  • Regenerated CRDs, OpenAPI and feature gate manifests (make update)

Verification: make update, make -C operator/v1 test (2074 passed, 0 failed), and make lint (0 issues).

AI-assisted: Claude Code (Claude Opus).

Add an optional startupReadinessTimeoutSeconds field to
OVNKubernetesConfig, behind the new TechPreview feature gate
OVNKubernetesStartupReadinessTimeout. It sets how long ovnkube-node
waits at startup for its gateway and management port to be created in
OVN. When omitted, the platform default (currently 300 seconds)
applies. Valid values are 1 to 3600.

Enhancement: openshift/enhancements#2127
@openshift-merge-bot

Copy link
Copy Markdown
Contributor

Pipeline controller notification
This repo is configured to use the pipeline controller. Second-stage tests will be triggered either automatically or after lgtm label is added, depending on the repository configuration. The pipeline controller will automatically detect which contexts are required and will utilize /test Prow commands to trigger the second stage.

For optional jobs, comment /test ? to see a list of all defined jobs. To trigger manually all jobs from second stage use /pipeline required command.

This repository is configured in: LGTM mode

@openshift-ci openshift-ci Bot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Oct 2, 2026
@openshift-ci openshift-ci Bot added the size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. label Oct 2, 2026
@coderabbitai

coderabbitai Bot commented Oct 2, 2026 •

Copy link
Copy Markdown

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Central YAML (inherited)

Review profile: CHILL

Plan: Advanced

Run ID: ff6d8549-c3a9-45d8-ab5f-85bbe2a1d65c

📥 Commits

Reviewing files that changed from the base of the PR and between 764bd4c and dddf52f.

⛔ Files ignored due to path filters (8)
  • openapi/generated_openapi/zz_generated.openapi.go is excluded by !openapi/**, !**/zz_generated*
  • openapi/openapi.json is excluded by !openapi/**
  • operator/v1/zz_generated.crd-manifests/0000_70_network_01_networks-CustomNoUpgrade.crd.yaml is excluded by !**/zz_generated.crd-manifests/*
  • operator/v1/zz_generated.crd-manifests/0000_70_network_01_networks-DevPreviewNoUpgrade.crd.yaml is excluded by !**/zz_generated.crd-manifests/*
  • operator/v1/zz_generated.crd-manifests/0000_70_network_01_networks-TechPreviewNoUpgrade.crd.yaml is excluded by !**/zz_generated.crd-manifests/*
  • operator/v1/zz_generated.featuregated-crd-manifests.yaml is excluded by !**/zz_generated*
  • operator/v1/zz_generated.featuregated-crd-manifests/networks.operator.openshift.io/OVNKubernetesStartupReadinessTimeout.yaml is excluded by !**/zz_generated.featuregated-crd-manifests/**
  • operator/v1/zz_generated.swagger_doc_generated.go is excluded by !**/zz_generated*
📒 Files selected for processing (16)
  • features.md
  • features/features.go
  • operator/v1/tests/networks.operator.openshift.io/OVNKubernetesStartupReadinessTimeout.yaml
  • operator/v1/types_network.go
  • payload-manifests/featuregates/featureGate-4-10-Hypershift-Default.yaml
  • payload-manifests/featuregates/featureGate-4-10-Hypershift-DevPreviewNoUpgrade.yaml
  • payload-manifests/featuregates/featureGate-4-10-Hypershift-OKD.yaml
  • payload-manifests/featuregates/featureGate-4-10-Hypershift-TechPreviewNoUpgrade.yaml
  • payload-manifests/featuregates/featureGate-4-SelfManagedHA-Default.yaml
  • payload-manifests/featuregates/featureGate-4-SelfManagedHA-DevPreviewNoUpgrade.yaml
  • payload-manifests/featuregates/featureGate-4-SelfManagedHA-OKD.yaml
  • payload-manifests/featuregates/featureGate-4-SelfManagedHA-TechPreviewNoUpgrade.yaml
  • payload-manifests/featuregates/featureGate-5-10-SelfManagedHA-Default.yaml
  • payload-manifests/featuregates/featureGate-5-10-SelfManagedHA-DevPreviewNoUpgrade.yaml
  • payload-manifests/featuregates/featureGate-5-10-SelfManagedHA-OKD.yaml
  • payload-manifests/featuregates/featureGate-5-10-SelfManagedHA-TechPreviewNoUpgrade.yaml

Included review availability: This review used your included allowance. Your plan provides up to 2 included reviews per hour; 1 remain after this review.


📝 Walkthrough

Walkthrough

Adds the OVNKubernetesStartupReadinessTimeout feature gate and the gated startupReadinessTimeoutSeconds field to the Network API. The field accepts values from 1 through 3600 seconds, and its documentation states that omission leaves the platform to choose a default. Adds create and update test expectations and configures the gate across the listed feature sets.

Suggested reviewers: joelanford

Priority: ➖ Normal

Merge Risk: ⚪ Minimal · up to dddf5

No actionable issue remains in the reviewed changes; the PR is mergeable after normal checks.

🚥 Pre-merge checks | ✅ 15
✅ Passed checks (15 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 2…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Stable And Deterministic Test Names ✅ Passed The pull request adds eight literal YAML test-case names. The test generator passes each testEntry.Name directly to Ginkgo Entry, and none contains a pod name, node or namespace name, timestamp, U…
Test Structure And Quality ✅ Passed PASS. The changed file is a declarative YAML suite, not handwritten Ginkgo code. Each case tests one behavior: omission, valid boundary or normal values, invalid bounds, update, or removal. The shared…
Microshift Test Compatibility ✅ Passed The pull request adds one declarative YAML CRD fixture with onCreate and onUpdate cases. It does not add Ginkgo e2e tests or use It(), Describe(), Context(), or When(). Therefore the Micro…
Single Node Openshift (Sno) Test Compatibility ✅ Passed PASS: The only added test is a declarative operator API validation YAML file. It checks Network object creation and update values for startupReadinessTimeoutSeconds. It is not a Ginkgo e2e test and ma…
Topology-Aware Scheduling Compatibility ✅ Passed The pull request adds an API field, feature-gate registration, generated schemas, feature-gate manifests, and API validation tests. The authoritative diff adds no Deployment, DaemonSet, StatefulSet, c…
Ote Binary Stdout Contract ✅ Passed PASS. The PR adds API metadata, feature-gate registration, generated schemas, manifests, and YAML validation tests. It adds no OTE binary entrypoint or suite setup and no stdout/logging write. The new…
Ipv6 And Disconnected Network Test Compatibility ✅ Passed The pull request adds a declarative YAML API test, not a new Ginkgo e2e test. The added test contains only Network resource values and validation errors. It has no Ginkgo constructs, IPv4 addresses, I…
No-Weak-Crypto ✅ Passed The pull request adds a feature gate, an integer timeout field with validation, tests, and generated schema/manifests. Added Go lines contain no MD5, SHA1, DES, RC4, 3DES, Blowfish, ECB, crypto APIs, …
Container-Privileges ✅ Passed The pull request adds an OVN-Kubernetes API field, CRD schemas, validation tests, generated OpenAPI data, and feature-gate entries. No added line contains privileged settings, hostPID, hostNetwork, ho…
No-Sensitive-Data-In-Logs ✅ Passed PASS. The PR adds an integer configuration field, feature-gate metadata, API schemas, manifests, and validation tests. The authoritative diff adds no logging calls and does not log passwords, tokens, …
Title check ✅ Passed The title clearly identifies the primary change: adding startupReadinessTimeoutSeconds to the OVN-Kubernetes configuration.
Description check ✅ Passed The description directly explains the new field, feature gate, validation range, generated changes, tests, and verification results.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create a new PR

Comment @coderabbitai help to get the list of available commands.

@openshift-ci

openshift-ci Bot commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign deads2k for approval. For more information see the Code Review Process.

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

@openshift-ci

openshift-ci Bot commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

Hello @cragr! Some important instructions when contributing to openshift/api:
API design plays an important part in the user experience of OpenShift and as such API PRs are subject to a high level of scrutiny to ensure they follow our best practices. If you haven't already done so, please review the OpenShift API Conventions and ensure that your proposed changes are compliant. Following these conventions will help expedite the api review process for your PR.

@openshift-ci openshift-ci Bot added the needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. label Oct 2, 2026
@openshift-ci

openshift-ci Bot commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

Hi @cragr. Thanks for your PR.

I'm waiting for a openshift member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work.

Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

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.

@cragr
cragr marked this pull request as ready for review October 2, 2026 05:20
@openshift-ci openshift-ci Bot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Oct 2, 2026
@cragr

cragr commented Oct 2, 2026

Copy link
Copy Markdown
Author

@JoelSpeed, could you review this API change? It also needs an /ok-to-test. Enhancement: openshift/enhancements#2127.

@JoelSpeed

Copy link
Copy Markdown
Contributor

The enhancement proposal needs an ack from the Networking team before this PR should be reviewed.

@JoelSpeed

Copy link
Copy Markdown
Contributor

/hold

RFE needs discussion with the PM and engineering team before we move this forward

@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 21, 2026
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. needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants