Skip to content

CORENET-6714: Enable Network Observability on Day 0#2752

Open
OlivierCazade wants to merge 3 commits intoopenshift:masterfrom
OlivierCazade:day0
Open

CORENET-6714: Enable Network Observability on Day 0#2752
OlivierCazade wants to merge 3 commits intoopenshift:masterfrom
OlivierCazade:day0

Conversation

@OlivierCazade
Copy link

@OlivierCazade OlivierCazade commented Mar 10, 2026

config/v1: add installNetworkObservability field for day-0 installation

Summary

This PR adds the installNetworkObservability field to the Network CRD (config.openshift.io/v1) to support automatic installation of the Network Observability operator during cluster creation.

Changes

  • Add InstallNetworkObservability string field to NetworkSpec
  • Field defaults to Enable (when omitted), enabling network observability by default
  • When explicitly set to Disable, automatic installation is skipped

Behavior

When omitted or set to Enable, the Network Observability operator and FlowCollector are deployed at bootstrap time, providing immediate network visibility for troubleshooting packet drops, latencies, and DNS tracking.

When explicitly set to Disable, no automatic installation occurs (though the operator can still be installed manually post-installation).

Related

/cc @stleerh

Add InstallNetworkObservability field to NetworkSpec to support
automatic installation of the Network Observability operator during
cluster creation. When omitted or set to true, the operator and
FlowCollector are deployed at bootstrap time, enabling immediate
network visibility for troubleshooting packet drops, latencies,
and DNS tracking.

When explicitly set to false, no automatic installation occurs
(the operator can still be installed manually post-installation).

This treats network observability as integral networking infrastructure,
making it available by default rather than as a separate optional
component.
@openshift-ci-robot
Copy link

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-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Mar 10, 2026
@openshift-ci openshift-ci bot requested a review from stleerh March 10, 2026 10:20
@openshift-ci-robot
Copy link

openshift-ci-robot commented Mar 10, 2026

@OlivierCazade: This pull request references CORENET-6714 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 story to target the "4.22.0" version, but no target version was set.

Details

In response to this:

config/v1: add installNetworkObservability field for day-0 installation

Summary

This PR adds the installNetworkObservability field to the Network CRD (config.openshift.io/v1) to support automatic installation of the Network Observability operator during cluster creation.

Changes

  • Add InstallNetworkObservability boolean field to NetworkSpec
  • Field defaults to true (when omitted), enabling network observability by default
  • When explicitly set to false, automatic installation is skipped

Behavior

When omitted or set to true, the Network Observability operator and FlowCollector are deployed at bootstrap time, providing immediate network visibility for troubleshooting packet drops, latencies, and DNS tracking.

When explicitly set to false, no automatic installation occurs (though the operator can still be installed manually post-installation).

This change treats network observability as integral networking infrastructure rather than an optional add-on component.

Related

/cc @stleerh

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.

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Mar 10, 2026

Hello @OlivierCazade! 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.

@qodo-code-review
Copy link

Review Summary by Qodo

Add InstallNetworkObservability field for day-0 network observability

✨ Enhancement

Grey Divider

Walkthroughs

Description
• Add InstallNetworkObservability optional boolean field to NetworkSpec
• Field enables network observability by default when omitted or true
• Update generated code and CRD manifests for new field
• Support day-0 automatic Network Observability operator deployment
Diagram
flowchart LR
  NetworkSpec["NetworkSpec CRD"] -- "adds field" --> InstallNetworkObservability["InstallNetworkObservability: *bool"]
  InstallNetworkObservability -- "enables by default" --> NetworkObservability["Network Observability Operator"]
  NetworkObservability -- "deploys at bootstrap" --> FlowCollector["FlowCollector"]
Loading

Grey Divider

File Changes

1. config/v1/types_network.go ✨ Enhancement +6/-0

Add InstallNetworkObservability field to NetworkSpec

• Add InstallNetworkObservability optional pointer-to-bool field to NetworkSpec struct
• Field includes documentation explaining default behavior when omitted or set to true
• Marked as optional with +optional tag

config/v1/types_network.go


2. config/v1/zz_generated.deepcopy.go Code generation +5/-0

Generate deepcopy for InstallNetworkObservability field

• Add deep copy logic for new InstallNetworkObservability pointer field
• Handles nil checks and pointer dereferencing for proper copying

config/v1/zz_generated.deepcopy.go


3. config/v1/zz_generated.swagger_doc_generated.go 📝 Documentation +8/-7

Add swagger documentation for new field

• Add swagger documentation entry for installNetworkObservability field
• Update map alignment for consistency with other NetworkSpec fields

config/v1/zz_generated.swagger_doc_generated.go


View more (4)
4. openapi/generated_openapi/zz_generated.openapi.go Code generation +7/-0

Generate OpenAPI schema for new field

• Add OpenAPI schema definition for installNetworkObservability field
• Define field as boolean type with appropriate description

openapi/generated_openapi/zz_generated.openapi.go


5. config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_networks.crd.yaml ⚙️ Configuration changes +5/-0

Update CRD manifest with new field

• Add installNetworkObservability field to CRD manifest with boolean type
• Include field description matching source code documentation

config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_networks.crd.yaml


6. config/v1/zz_generated.featuregated-crd-manifests/networks.config.openshift.io/AAA_ungated.yaml ⚙️ Configuration changes +5/-0

Update feature-gated CRD manifest

• Add installNetworkObservability field to feature-gated CRD manifest
• Maintain consistency with primary CRD manifest

config/v1/zz_generated.featuregated-crd-manifests/networks.config.openshift.io/AAA_ungated.yaml


7. payload-manifests/crds/0000_10_config-operator_01_networks.crd.yaml ⚙️ Configuration changes +5/-0

Update payload CRD manifest

• Add installNetworkObservability field to payload CRD manifest
• Ensure consistency across all CRD manifest variants

payload-manifests/crds/0000_10_config-operator_01_networks.crd.yaml


Grey Divider

Qodo Logo

@qodo-code-review
Copy link

qodo-code-review bot commented Mar 10, 2026

Code Review by Qodo

🐞 Bugs (2) 📘 Rule violations (1) 📎 Requirement gaps (0)

Grey Divider


Action required

1. InstallNetworkObservability not feature-gated 📘 Rule violation ✓ Correctness
Description
A new field was added to the stable config.openshift.io/v1 NetworkSpec without
+openshift:enable:FeatureGate=.... This makes the field unconditionally available on a stable v1
API, violating the requirement to gate new stable fields for controlled rollout.
Code

config/v1/types_network.go[R90-94]

+	// InstallNetworkObservability is an optional field that enables network observability
+	// when omitted or set to true.  If the field is set to false, it does nothing.
+	//
+	// +optional
+	InstallNetworkObservability *bool `json:"installNetworkObservability,omitempty"`
Evidence
PR Compliance ID 3 requires any new field added to a stable v1 API to be introduced behind a
FeatureGate using +openshift:enable:FeatureGate=.... The added InstallNetworkObservability field
in NetworkSpec has only +optional and no FeatureGate marker, and it also appears in the
AAA_ungated.yaml featuregated CRD manifest, indicating it is not gated.

AGENTS.md
config/v1/types_network.go[90-94]
config/v1/zz_generated.featuregated-crd-manifests/networks.config.openshift.io/AAA_ungated.yaml[116-120]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
A new field (`InstallNetworkObservability`) was added to the stable `config.openshift.io/v1` `NetworkSpec` without being gated by `+openshift:enable:FeatureGate=...`, which violates the requirement that new fields on stable v1 APIs must be behind a FeatureGate.
## Issue Context
This field currently appears in the ungated CRD manifest (`AAA_ungated.yaml`), meaning it is exposed unconditionally.
## Fix Focus Areas
- config/v1/types_network.go[90-94]
- config/v1/zz_generated.featuregated-crd-manifests/networks.config.openshift.io/AAA_ungated.yaml[116-120]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


2. OpenAPI JSON out of sync 🐞 Bug ✓ Correctness
Description
The PR adds installNetworkObservability to the generated OpenAPI Go definitions, but the checked-in
openapi/openapi.json still lacks the field under NetworkSpec, so OpenAPI consumers won’t see it and
hack/verify-openapi.sh would diff-fail.
Code

openapi/generated_openapi/zz_generated.openapi.go[R17030-17036]

+					"installNetworkObservability": {
+						SchemaProps: spec.SchemaProps{
+							Description: "InstallNetworkObservability is an optional field that enables network observability when omitted or set to true.  If the field is set to false, it does nothing.",
+							Type:        []string{"boolean"},
+							Format:      "",
+						},
+					},
Evidence
The OpenAPI Go schema now includes installNetworkObservability, while the committed
openapi/openapi.json NetworkSpec schema does not list that property. The repo’s verify script
explicitly diffs regenerated openapi.json against the committed one, so leaving it stale is a
concrete breakage.

openapi/generated_openapi/zz_generated.openapi.go[17023-17039]
openapi/openapi.json[8988-9034]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The PR updates `openapi/generated_openapi/zz_generated.openapi.go` to include the new `installNetworkObservability` field, but `openapi/openapi.json` is not updated and still lacks the field under `NetworkSpec`. This breaks consistency and will fail `hack/verify-openapi.sh`, and any tooling consuming `openapi/openapi.json` will miss the field.
### Issue Context
`hack/verify-openapi.sh` regenerates OpenAPI artifacts and diffs them against the committed versions.
### Fix Focus Areas
- openapi/openapi.json[8986-9034]
- hack/update-openapi.sh[9-13]
- hack/verify-openapi.sh[5-9]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools



Remediation recommended

3. Default true not encoded🐞 Bug ✓ Correctness
Description
NetworkSpec.InstallNetworkObservability is documented as enabled “when omitted”, but neither the CRD
schema nor OpenAPI schema sets a default; omitted values remain absent/nil and clients won’t observe
a default-true value unless every consumer implements nil-as-true explicitly.
Code

config/v1/types_network.go[R90-94]

+	// InstallNetworkObservability is an optional field that enables network observability
+	// when omitted or set to true.  If the field is set to false, it does nothing.
+	//
+	// +optional
+	InstallNetworkObservability *bool `json:"installNetworkObservability,omitempty"`
Evidence
The Go type is a *bool pointer with no kubebuilder default marker, and the generated CRD property is
only type: boolean (no default: true). This contradicts the in-code documentation that says
omitted behaves like true; other APIs in this repo use +kubebuilder:default=... when a default is
intended.

config/v1/types_network.go[90-95]
config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_networks.crd.yaml[115-119]
openapi/generated_openapi/zz_generated.openapi.go[17030-17036]
config/v1/types_infrastructure.go[99-111]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
`InstallNetworkObservability` is documented as enabled when omitted, but the CRD/OpenAPI schemas do not specify `default: true`. As a result, API clients will see the field as absent/nil when omitted, which contradicts the documented “omitted == true” behavior unless every consumer implements nil-as-true.
### Issue Context
This repo already uses `+kubebuilder:default=...` markers to encode defaults into generated CRDs/OpenAPI for other fields.
### Fix Focus Areas
- config/v1/types_network.go[90-94]
- config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_networks.crd.yaml[115-119]
- openapi/generated_openapi/zz_generated.openapi.go[17030-17036]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

ⓘ The new review experience is currently in Beta. Learn more

Grey Divider

Qodo Logo

@openshift-ci openshift-ci bot added the size/S Denotes a PR that changes 10-29 lines, ignoring generated files. label Mar 10, 2026
@coderabbitai
Copy link

coderabbitai bot commented Mar 10, 2026

📝 Walkthrough

Walkthrough

The change adds a new optional field InstallNetworkObservability (*string) to NetworkSpec in config/v1/types_network.go and updates the Network CRD (payload-manifests/crds/0000_10_config-operator_01_networks.crd.yaml). The CRD schema changes the field from a boolean to a string with allowed values "", "Enable", and "Disable", and includes an updated description.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the primary change—adding support for Network Observability installation on day 0 by introducing the installNetworkObservability field.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Stable And Deterministic Test Names ✅ Passed PR contains no test files or Ginkgo test code; changes are limited to Go type definitions and YAML CRD manifest updates.
Test Structure And Quality ✅ Passed This PR modifies only configuration and type definition files with no Ginkgo test files included.
Description check ✅ Passed The pull request description accurately describes the changes: adding an installNetworkObservability field to the Network CRD to support automatic installation of the Network Observability operator during cluster creation.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Tip

Try Coding Plans. Let us write the prompt for your AI agent so you can ship faster (with fewer bugs).
Share your feedback on Discord.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Mar 10, 2026

[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

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

🧹 Nitpick comments (2)
payload-manifests/crds/0000_10_config-operator_01_networks.crd.yaml (1)

115-119: Keep description in sync with Go type and apply same clarity improvement.

The CRD schema correctly reflects the Go type. The description has the same ambiguity issue noted in the Go file—"it does nothing" should be clarified to "automatic installation is skipped."

Ensure this description stays synchronized with any documentation changes made to config/v1/types_network.go.

📝 Suggested description improvement
               installNetworkObservability:
                 description: |-
-                  InstallNetworkObservability is an optional field that enables network observability
-                  when omitted or set to true.  If the field is set to false, it does nothing.
+                  InstallNetworkObservability is an optional field that enables automatic installation
+                  of network observability when omitted or set to true. If the field is set to false,
+                  automatic installation is skipped (the operator may still be installed manually post-installation).
+                  This field is immutable after installation.
                 type: boolean
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@payload-manifests/crds/0000_10_config-operator_01_networks.crd.yaml` around
lines 115 - 119, Update the CRD description for the installNetworkObservability
field so it matches the Go type and the clearer wording used in
config/v1/types_network.go: replace "it does nothing" with "automatic
installation is skipped" and ensure the sentence indicates the field is optional
and defaults to true when omitted; target the installNetworkObservability field
description in the CRD and keep this text synchronized with the corresponding
struct/comment in config/v1/types_network.go.
config/v1/types_network.go (1)

90-94: Clarify documentation wording and consider adding immutability notice.

Two suggestions for the field documentation:

  1. The phrase "it does nothing" is ambiguous. Consider clarifying to: "If the field is set to false, automatic installation of network observability is skipped."

  2. Based on the PR objective (Day 0 enablement), if this field is intended to be immutable after installation like other fields in NetworkSpec (e.g., ClusterNetwork, ServiceNetwork, NetworkType), the documentation should explicitly state this.

📝 Suggested documentation improvement
-	// InstallNetworkObservability is an optional field that enables network observability
-	// when omitted or set to true.  If the field is set to false, it does nothing.
+	// InstallNetworkObservability is an optional field that enables automatic installation
+	// of network observability when omitted or set to true. If the field is set to false,
+	// automatic installation is skipped (the operator may still be installed manually post-installation).
+	// This field is immutable after installation.
 	//
 	// +optional
 	InstallNetworkObservability *bool `json:"installNetworkObservability,omitempty"`
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@config/v1/types_network.go` around lines 90 - 94, Update the
InstallNetworkObservability field comment to remove ambiguity and, if intended
to be immutable after initial installation like other NetworkSpec fields,
explicitly state that; specifically, change the sentence "If the field is set to
false, it does nothing." to "If the field is set to false, automatic
installation of network observability is skipped." and add a second sentence
such as "This field is immutable after initial installation (Day 0) similarly to
ClusterNetwork, ServiceNetwork, and NetworkType." Ensure the comment sits above
the InstallNetworkObservability *bool field in NetworkSpec and references
consistency with ClusterNetwork, ServiceNetwork, and NetworkType.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@config/v1/types_network.go`:
- Around line 90-94: Update the InstallNetworkObservability field comment to
remove ambiguity and, if intended to be immutable after initial installation
like other NetworkSpec fields, explicitly state that; specifically, change the
sentence "If the field is set to false, it does nothing." to "If the field is
set to false, automatic installation of network observability is skipped." and
add a second sentence such as "This field is immutable after initial
installation (Day 0) similarly to ClusterNetwork, ServiceNetwork, and
NetworkType." Ensure the comment sits above the InstallNetworkObservability
*bool field in NetworkSpec and references consistency with ClusterNetwork,
ServiceNetwork, and NetworkType.

In `@payload-manifests/crds/0000_10_config-operator_01_networks.crd.yaml`:
- Around line 115-119: Update the CRD description for the
installNetworkObservability field so it matches the Go type and the clearer
wording used in config/v1/types_network.go: replace "it does nothing" with
"automatic installation is skipped" and ensure the sentence indicates the field
is optional and defaults to true when omitted; target the
installNetworkObservability field description in the CRD and keep this text
synchronized with the corresponding struct/comment in
config/v1/types_network.go.

ℹ️ Review info
⚙️ Run configuration

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

Review profile: CHILL

Plan: Pro

Run ID: f66427af-5dad-4322-a130-036759f2a2b3

📥 Commits

Reviewing files that changed from the base of the PR and between 7127010 and b430b07.

⛔ Files ignored due to path filters (5)
  • config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_networks.crd.yaml is excluded by !**/zz_generated.crd-manifests/*
  • config/v1/zz_generated.deepcopy.go is excluded by !**/zz_generated*
  • config/v1/zz_generated.featuregated-crd-manifests/networks.config.openshift.io/AAA_ungated.yaml is excluded by !**/zz_generated.featuregated-crd-manifests/**
  • config/v1/zz_generated.swagger_doc_generated.go is excluded by !**/zz_generated*
  • openapi/generated_openapi/zz_generated.openapi.go is excluded by !openapi/**, !**/zz_generated*
📒 Files selected for processing (2)
  • config/v1/types_network.go
  • payload-manifests/crds/0000_10_config-operator_01_networks.crd.yaml

Comment on lines +90 to +94
// InstallNetworkObservability is an optional field that enables network observability
// when omitted or set to true. If the field is set to false, it does nothing.
//
// +optional
InstallNetworkObservability *bool `json:"installNetworkObservability,omitempty"`

Choose a reason for hiding this comment

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

Action required

1. installnetworkobservability not feature-gated 📘 Rule violation ✓ Correctness

A new field was added to the stable config.openshift.io/v1 NetworkSpec without
+openshift:enable:FeatureGate=.... This makes the field unconditionally available on a stable v1
API, violating the requirement to gate new stable fields for controlled rollout.
Agent Prompt
## Issue description
A new field (`InstallNetworkObservability`) was added to the stable `config.openshift.io/v1` `NetworkSpec` without being gated by `+openshift:enable:FeatureGate=...`, which violates the requirement that new fields on stable v1 APIs must be behind a FeatureGate.

## Issue Context
This field currently appears in the ungated CRD manifest (`AAA_ungated.yaml`), meaning it is exposed unconditionally.

## Fix Focus Areas
- config/v1/types_network.go[90-94]
- config/v1/zz_generated.featuregated-crd-manifests/networks.config.openshift.io/AAA_ungated.yaml[116-120]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

Comment on lines +17030 to +17036
"installNetworkObservability": {
SchemaProps: spec.SchemaProps{
Description: "InstallNetworkObservability is an optional field that enables network observability when omitted or set to true. If the field is set to false, it does nothing.",
Type: []string{"boolean"},
Format: "",
},
},

Choose a reason for hiding this comment

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

Action required

2. Openapi json out of sync 🐞 Bug ✓ Correctness

The PR adds installNetworkObservability to the generated OpenAPI Go definitions, but the checked-in
openapi/openapi.json still lacks the field under NetworkSpec, so OpenAPI consumers won’t see it and
hack/verify-openapi.sh would diff-fail.
Agent Prompt
### Issue description
The PR updates `openapi/generated_openapi/zz_generated.openapi.go` to include the new `installNetworkObservability` field, but `openapi/openapi.json` is not updated and still lacks the field under `NetworkSpec`. This breaks consistency and will fail `hack/verify-openapi.sh`, and any tooling consuming `openapi/openapi.json` will miss the field.

### Issue Context
`hack/verify-openapi.sh` regenerates OpenAPI artifacts and diffs them against the committed versions.

### Fix Focus Areas
- openapi/openapi.json[8986-9034]
- hack/update-openapi.sh[9-13]
- hack/verify-openapi.sh[5-9]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

@openshift-ci openshift-ci bot added size/M Denotes a PR that changes 30-99 lines, ignoring generated files. and removed size/S Denotes a PR that changes 10-29 lines, ignoring generated files. labels Mar 10, 2026
@openshift-ci-robot
Copy link

openshift-ci-robot commented Mar 10, 2026

@OlivierCazade: This pull request references CORENET-6714 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 story to target the "4.22.0" version, but no target version was set.

Details

In response to this:

config/v1: add installNetworkObservability field for day-0 installation

Summary

This PR adds the installNetworkObservability field to the Network CRD (config.openshift.io/v1) to support automatic installation of the Network Observability operator during cluster creation.

Changes

  • Add InstallNetworkObservability boolean field to NetworkSpec
  • Field defaults to Enable (when omitted), enabling network observability by default
  • When explicitly set to Disable, automatic installation is skipped

Behavior

When omitted or set to true, the Network Observability operator and FlowCollector are deployed at bootstrap time, providing immediate network visibility for troubleshooting packet drops, latencies, and DNS tracking.

When explicitly set to false, no automatic installation occurs (though the operator can still be installed manually post-installation).

This change treats network observability as integral networking infrastructure rather than an optional add-on component.

Related

/cc @stleerh

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.

@openshift-ci-robot
Copy link

openshift-ci-robot commented Mar 10, 2026

@OlivierCazade: This pull request references CORENET-6714 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 story to target the "4.22.0" version, but no target version was set.

Details

In response to this:

config/v1: add installNetworkObservability field for day-0 installation

Summary

This PR adds the installNetworkObservability field to the Network CRD (config.openshift.io/v1) to support automatic installation of the Network Observability operator during cluster creation.

Changes

  • Add InstallNetworkObservability boolean field to NetworkSpec
  • Field defaults to Enable (when omitted), enabling network observability by default
  • When explicitly set to Disable, automatic installation is skipped

Behavior

When omitted or set to Enable, the Network Observability operator and FlowCollector are deployed at bootstrap time, providing immediate network visibility for troubleshooting packet drops, latencies, and DNS tracking.

When explicitly set to Disable, no automatic installation occurs (though the operator can still be installed manually post-installation).

This change treats network observability as integral networking infrastructure rather than an optional add-on component.

Related

/cc @stleerh

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.

@openshift-ci-robot
Copy link

openshift-ci-robot commented Mar 10, 2026

@OlivierCazade: This pull request references CORENET-6714 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 story to target the "4.22.0" version, but no target version was set.

Details

In response to this:

config/v1: add installNetworkObservability field for day-0 installation

Summary

This PR adds the installNetworkObservability field to the Network CRD (config.openshift.io/v1) to support automatic installation of the Network Observability operator during cluster creation.

Changes

  • Add InstallNetworkObservability boolean field to NetworkSpec
  • Field defaults to Enable (when omitted), enabling network observability by default
  • When explicitly set to Disable, automatic installation is skipped

Behavior

When omitted or set to Enable, the Network Observability operator and FlowCollector are deployed at bootstrap time, providing immediate network visibility for troubleshooting packet drops, latencies, and DNS tracking.

When explicitly set to Disable, no automatic installation occurs (though the operator can still be installed manually post-installation).

Related

/cc @stleerh

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.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

🧹 Nitpick comments (1)
payload-manifests/crds/0000_10_config-operator_01_networks.crd.yaml (1)

116-123: Description casing doesn't match enum values, and wording is ambiguous.

Two issues with the description:

  1. The description uses lowercase "enable" and "disable" but the enum values are CamelCase "Enable" and "Disable". This could confuse users when setting the field.

  2. The phrase "it does nothing" is ambiguous. Based on the PR objectives, when set to "Disable", automatic installation is skipped. Consider clarifying to "network observability is not automatically installed" or similar.

  3. Minor inconsistency: The existing networkDiagnostics.mode field (line 144) uses "Disabled" (past tense), while this field uses "Disable" (present tense). Consider aligning with the existing pattern for consistency.

📝 Suggested description improvement
               description: |-
-                installNetworkObservability is an optional field that enables network observability
-                when omitted or set to enable.  If the field is set to disable, it does nothing.
-                Valid values are "", "Enable", "Disable".
+                installNetworkObservability is an optional field that controls automatic installation
+                of the Network Observability operator during cluster creation.
+                When omitted or set to "Enable", network observability is automatically installed.
+                When set to "Disable", automatic installation is skipped (manual installation remains possible).
+                Valid values are "", "Enable", "Disable".
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@payload-manifests/crds/0000_10_config-operator_01_networks.crd.yaml` around
lines 116 - 123, The description for the installNetworkObservability field is
inconsistent with its enum and ambiguous; update the description for
installNetworkObservability to use the same casing as the enum values ("Enable",
"Disable"), clearly state the behavior for each value (e.g., when set to
"Enable" or omitted it enables automatic installation, when set to "Disable"
network observability is not automatically installed), and consider aligning
wording with the existing networkDiagnostics.mode choice (e.g., use "Disabled"
vs "Disable") for consistency across the CRD.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@payload-manifests/crds/0000_10_config-operator_01_networks.crd.yaml`:
- Around line 116-123: The description for the installNetworkObservability field
is inconsistent with its enum and ambiguous; update the description for
installNetworkObservability to use the same casing as the enum values ("Enable",
"Disable"), clearly state the behavior for each value (e.g., when set to
"Enable" or omitted it enables automatic installation, when set to "Disable"
network observability is not automatically installed), and consider aligning
wording with the existing networkDiagnostics.mode choice (e.g., use "Disabled"
vs "Disable") for consistency across the CRD.

ℹ️ Review info
⚙️ Run configuration

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

Review profile: CHILL

Plan: Pro

Run ID: f88d5b2c-e676-465b-b05d-b0d40c189d2f

📥 Commits

Reviewing files that changed from the base of the PR and between b430b07 and fcc26dc.

⛔ Files ignored due to path filters (5)
  • config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_networks.crd.yaml is excluded by !**/zz_generated.crd-manifests/*
  • config/v1/zz_generated.deepcopy.go is excluded by !**/zz_generated*
  • config/v1/zz_generated.featuregated-crd-manifests/networks.config.openshift.io/AAA_ungated.yaml is excluded by !**/zz_generated.featuregated-crd-manifests/**
  • config/v1/zz_generated.swagger_doc_generated.go is excluded by !**/zz_generated*
  • openapi/generated_openapi/zz_generated.openapi.go is excluded by !openapi/**, !**/zz_generated*
📒 Files selected for processing (2)
  • config/v1/types_network.go
  • payload-manifests/crds/0000_10_config-operator_01_networks.crd.yaml
🚧 Files skipped from review as they are similar to previous changes (1)
  • config/v1/types_network.go

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Mar 10, 2026

@OlivierCazade: all tests passed!

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.

@openshift-ci-robot
Copy link

openshift-ci-robot commented Mar 10, 2026

@OlivierCazade: This pull request references CORENET-6714 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 story to target the "4.22.0" version, but no target version was set.

Details

In response to this:

config/v1: add installNetworkObservability field for day-0 installation

Summary

This PR adds the installNetworkObservability field to the Network CRD (config.openshift.io/v1) to support automatic installation of the Network Observability operator during cluster creation.

Changes

  • Add InstallNetworkObservability string field to NetworkSpec
  • Field defaults to Enable (when omitted), enabling network observability by default
  • When explicitly set to Disable, automatic installation is skipped

Behavior

When omitted or set to Enable, the Network Observability operator and FlowCollector are deployed at bootstrap time, providing immediate network visibility for troubleshooting packet drops, latencies, and DNS tracking.

When explicitly set to Disable, no automatic installation occurs (though the operator can still be installed manually post-installation).

Related

/cc @stleerh

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.

// Valid values are "", "Enable", "Disable".
// +kubebuilder:validation:Enum:="";Enable;Disable
// +optional
InstallNetworkObservability *string `json:"installNetworkObservability,omitempty"`
Copy link

Choose a reason for hiding this comment

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

"Disable" is misleading, because it is not disabling Network Observability; it does nothing. In the Enhancement Proposal, it uses the term "not enable" to mean it doesn't enable Network Observability.

What about using the values "true", "false" and ""? "false" would imply that it would not install Network Observability.

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

Labels

jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. size/M Denotes a PR that changes 30-99 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants