Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP]OCPBUGS-42701-api: Updated the disableMultiNetwork parameter description #2143

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion openapi/generated_openapi/zz_generated.openapi.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion openapi/openapi.json
Original file line number Diff line number Diff line change
Expand Up @@ -30306,7 +30306,7 @@
"type": "boolean"
},
"disableMultiNetwork": {
"description": "disableMultiNetwork specifies whether or not multiple pod network support should be disabled. If unset, this property defaults to 'false' and multiple network support is enabled.",
"description": "disableMultiNetwork defaults to 'false' and this setting enables the pod multi-networking capability. disableMultiNetwork when set to 'true' at cluster install time does not install the components, typically the Multus CNI and the network-attachment-definition CRD, that enable the pod multi-networking capability. Setting the parameter to 'true' might be useful when you need install third-party CNI plugins, but these plugins are not supported by Red Hat. Changing the parameter value as a postinstallation cluster task has no effect.",
"type": "boolean"
},
"disableNetworkDiagnostics": {
Expand Down
7 changes: 4 additions & 3 deletions operator/v1/types_network.go
Original file line number Diff line number Diff line change
Expand Up @@ -79,9 +79,10 @@ type NetworkSpec struct {
// +listMapKey=name
AdditionalNetworks []AdditionalNetworkDefinition `json:"additionalNetworks,omitempty"`

// disableMultiNetwork specifies whether or not multiple pod network
// support should be disabled. If unset, this property defaults to
// 'false' and multiple network support is enabled.
// disableMultiNetwork defaults to 'false' and this setting enables the pod multi-networking capability.
// disableMultiNetwork when set to 'true' at cluster install time does not install the components, typically the Multus CNI and the network-attachment-definition CRD,
// that enable the pod multi-networking capability. Setting the parameter to 'true' might be useful when you need install third-party CNI plugins,
// but these plugins are not supported by Red Hat. Changing the parameter value as a postinstallation cluster task has no effect.
Copy link
Contributor

Choose a reason for hiding this comment

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

Is postinstallation supposed to be one word?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yes, it matches the noun adopted in our official docs.

DisableMultiNetwork *bool `json:"disableMultiNetwork,omitempty"`
Copy link
Contributor

Choose a reason for hiding this comment

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

Should we make this immutable then given changing it has no effect? What does changing it from true to false mean here? And vice versa?

If it's false by default, some components get installed? If you later try to change it to true, the operator doesn't react to this? If it was true, and you change it to false, it doesn't then install the components?

Why would I want to disable this?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

It really boils down to using third-party CNIs that are unsupported. Maybe I could expand on what pod multi-networking does on how it might be unique to OCP?

Copy link
Member

Choose a reason for hiding this comment

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

If there's a way to make it immutable post install, that's great.

Here's the thing -- we don't know who we'll break if it make it so you can't use this during install. It's possible that third parties have relied on it.

It was originally here as a fail-safe during 4.0.0, the original openshift 4 when this component was released. Honestly, kind of a feature gate in case we ran into some kind of failure, which didn't happen.

Copy link
Contributor

Choose a reason for hiding this comment

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

You can use CEL to write something to make it immutable.

There are a couple of things to consider with that, the field being completely missing from the document (because it's a nil pointer) means that someone can add a value later, and that might be true, or false. We could add a transition rule to the parent to prevent this.

Once it's set, an easy self == oldSelf rule would prevent it from being changed later to another value.

If, as mentioned, changing the value does nothing, what would someone relying on being able to change this actually mean?


// useMultiNetworkPolicy enables a controller which allows for
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -659,9 +659,10 @@ spec:
type: boolean
disableMultiNetwork:
description: |-
disableMultiNetwork specifies whether or not multiple pod network
support should be disabled. If unset, this property defaults to
'false' and multiple network support is enabled.
disableMultiNetwork defaults to 'false' and this setting enables the pod multi-networking capability.
disableMultiNetwork when set to 'true' at cluster install time does not install the components, typically the Multus CNI and the network-attachment-definition CRD,
that enable the pod multi-networking capability. Setting the parameter to 'true' might be useful when you need install third-party CNI plugins,
but these plugins are not supported by Red Hat. Changing the parameter value as a postinstallation cluster task has no effect.
type: boolean
disableNetworkDiagnostics:
default: false
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -643,9 +643,10 @@ spec:
type: boolean
disableMultiNetwork:
description: |-
disableMultiNetwork specifies whether or not multiple pod network
support should be disabled. If unset, this property defaults to
'false' and multiple network support is enabled.
disableMultiNetwork defaults to 'false' and this setting enables the pod multi-networking capability.
disableMultiNetwork when set to 'true' at cluster install time does not install the components, typically the Multus CNI and the network-attachment-definition CRD,
that enable the pod multi-networking capability. Setting the parameter to 'true' might be useful when you need install third-party CNI plugins,
but these plugins are not supported by Red Hat. Changing the parameter value as a postinstallation cluster task has no effect.
type: boolean
disableNetworkDiagnostics:
default: false
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -659,9 +659,10 @@ spec:
type: boolean
disableMultiNetwork:
description: |-
disableMultiNetwork specifies whether or not multiple pod network
support should be disabled. If unset, this property defaults to
'false' and multiple network support is enabled.
disableMultiNetwork defaults to 'false' and this setting enables the pod multi-networking capability.
disableMultiNetwork when set to 'true' at cluster install time does not install the components, typically the Multus CNI and the network-attachment-definition CRD,
that enable the pod multi-networking capability. Setting the parameter to 'true' might be useful when you need install third-party CNI plugins,
but these plugins are not supported by Red Hat. Changing the parameter value as a postinstallation cluster task has no effect.
type: boolean
disableNetworkDiagnostics:
default: false
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -659,9 +659,10 @@ spec:
type: boolean
disableMultiNetwork:
description: |-
disableMultiNetwork specifies whether or not multiple pod network
support should be disabled. If unset, this property defaults to
'false' and multiple network support is enabled.
disableMultiNetwork defaults to 'false' and this setting enables the pod multi-networking capability.
disableMultiNetwork when set to 'true' at cluster install time does not install the components, typically the Multus CNI and the network-attachment-definition CRD,
that enable the pod multi-networking capability. Setting the parameter to 'true' might be useful when you need install third-party CNI plugins,
but these plugins are not supported by Red Hat. Changing the parameter value as a postinstallation cluster task has no effect.
type: boolean
disableNetworkDiagnostics:
default: false
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -610,9 +610,10 @@ spec:
type: boolean
disableMultiNetwork:
description: |-
disableMultiNetwork specifies whether or not multiple pod network
support should be disabled. If unset, this property defaults to
'false' and multiple network support is enabled.
disableMultiNetwork defaults to 'false' and this setting enables the pod multi-networking capability.
disableMultiNetwork when set to 'true' at cluster install time does not install the components, typically the Multus CNI and the network-attachment-definition CRD,
that enable the pod multi-networking capability. Setting the parameter to 'true' might be useful when you need install third-party CNI plugins,
but these plugins are not supported by Red Hat. Changing the parameter value as a postinstallation cluster task has no effect.
type: boolean
disableNetworkDiagnostics:
default: false
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -643,9 +643,10 @@ spec:
type: boolean
disableMultiNetwork:
description: |-
disableMultiNetwork specifies whether or not multiple pod network
support should be disabled. If unset, this property defaults to
'false' and multiple network support is enabled.
disableMultiNetwork defaults to 'false' and this setting enables the pod multi-networking capability.
disableMultiNetwork when set to 'true' at cluster install time does not install the components, typically the Multus CNI and the network-attachment-definition CRD,
that enable the pod multi-networking capability. Setting the parameter to 'true' might be useful when you need install third-party CNI plugins,
but these plugins are not supported by Red Hat. Changing the parameter value as a postinstallation cluster task has no effect.
type: boolean
disableNetworkDiagnostics:
default: false
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -610,9 +610,10 @@ spec:
type: boolean
disableMultiNetwork:
description: |-
disableMultiNetwork specifies whether or not multiple pod network
support should be disabled. If unset, this property defaults to
'false' and multiple network support is enabled.
disableMultiNetwork defaults to 'false' and this setting enables the pod multi-networking capability.
disableMultiNetwork when set to 'true' at cluster install time does not install the components, typically the Multus CNI and the network-attachment-definition CRD,
that enable the pod multi-networking capability. Setting the parameter to 'true' might be useful when you need install third-party CNI plugins,
but these plugins are not supported by Red Hat. Changing the parameter value as a postinstallation cluster task has no effect.
type: boolean
disableNetworkDiagnostics:
default: false
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -626,9 +626,10 @@ spec:
type: boolean
disableMultiNetwork:
description: |-
disableMultiNetwork specifies whether or not multiple pod network
support should be disabled. If unset, this property defaults to
'false' and multiple network support is enabled.
disableMultiNetwork defaults to 'false' and this setting enables the pod multi-networking capability.
disableMultiNetwork when set to 'true' at cluster install time does not install the components, typically the Multus CNI and the network-attachment-definition CRD,
that enable the pod multi-networking capability. Setting the parameter to 'true' might be useful when you need install third-party CNI plugins,
but these plugins are not supported by Red Hat. Changing the parameter value as a postinstallation cluster task has no effect.
type: boolean
disableNetworkDiagnostics:
default: false
Expand Down
2 changes: 1 addition & 1 deletion operator/v1/zz_generated.swagger_doc_generated.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.