Skip to content

[release-4.19] NE-2103: Bump to OSSM 3.0.1 and Istio 1.24.4#1244

Merged
openshift-merge-bot[bot] merged 6 commits intoopenshift:release-4.19from
Miciah:cherry-pick-1227-to-release-4.19
Jul 31, 2025
Merged

[release-4.19] NE-2103: Bump to OSSM 3.0.1 and Istio 1.24.4#1244
openshift-merge-bot[bot] merged 6 commits intoopenshift:release-4.19from
Miciah:cherry-pick-1227-to-release-4.19

Conversation

@Miciah
Copy link
Contributor

@Miciah Miciah commented Jul 25, 2025

Bump to OSSM 3.0.1 and Istio 1.24.4

Bump from OSSM v3.0.0 to v3.0.1 and from Istio v1.24.3 to v1.24.4.

Also, explicitly set ENABLE_GATEWAY_API_MANUAL_DEPLOYMENT to "false" on the Istio CR. For Istio 1.24.3, OSSM has a vendor override that sets this option. However, for Istio 1.24.4, the option must be explicitly set.

(cherry picked from 47d4152)

Enable Gateway only CA Bundles

Configure Istio to inject the configmaps only into namespaces where gateways exist in order to avoid polluting the whole cluster.

Set one new environment variable in the Istio CR:

PILOT_ENABLE_GATEWAY_API_CA_CERT_ONLY

In the future, we will set the Istio CR's trustBundleName global value to specify a custom configmap name. However, we cannot do that yet as the trustBundleName field only exists in OSSM 3.1.

This change is related to OSSM-9076.

Modified-by: Miciah Masters miciah.masters@gmail.com

(cherry picked from 41d7add)

Don't copy labels or annotations

Configure Istiod not to copy annotations or labels from gateways onto associated resources, such as the proxy deployment and load-balancer service for a gateway.

This copying behavior is Istio-specific, not part of the Gateway API spec, and could be used to inject unsupported configuration. For example, an end-user could set a service annotation on the gateway in order to configure a load-balancer. Setting annotations on the gateway to configure the load-balancer would not be portable to other Gateway API implementations and would complicate product support.

One new environment variable is set:

PILOT_ENABLE_GATEWAY_API_COPY_LABELS_ANNOTATIONS

This change is related to OSSM-8989.

(cherry picked from 05417af)

Delete old controller-mode setting

Delete the obsolete PILOT_ENABLE_GATEWAY_CONTROLLER_MODE environment variable from the Istiod configuration. This environment variable is no longer recognized in OSSM 3, and the variable has been superseded by EnhancedResourceScoping.

(cherry picked from e05309e)

assertDNSRecord: Increase timeout to 10m

Increase the timeout in assertDNSRecord for polling for the DNSRecord CR from 1 minute to 10 minutes.

The cloud provider can easily take over a minute to provision the load balancer, and the operator cannot create the DNSRecord CR before the load balancer has been provisioned and assigned a host name or address. Consequently, the polling loop could easily reach the 1-minute timeout just on account of the time that it takes to provision the load balancer.

(cherry picked from 2f7da77)

testGatewayAPIManualDeployment: Increase timeout

Increase the timeout for polling the gateway, and dump the gateway if the test fails.

(cherry picked from f1e445d)


This is manual cherry-pick of #1227 that incorporates #1243 and drops the sailv1 vendor bump, which would bring in a dependency on Go 1.24.

Miciah and others added 6 commits July 25, 2025 15:12
Also, explicitly set ENABLE_GATEWAY_API_MANUAL_DEPLOYMENT to "false" on
the Istio CR.  For Istio 1.24.3, OSSM has a vendor override that sets
this option[1].  However, for Istio 1.24.4, the option must be
explicitly set.

1. https://github.com/openshift-service-mesh/sail-operator/blob/3bf27ee3c4fb4494ffe6028c7f72034c5a7a1e60/pkg/istiovalues/vendor_defaults.yaml#L11-L14

This commit resolves NE-2103.

https://issues.redhat.com/browse/NE-2103

* cmd/ingress-operator/start.go (defaultGatewayAPIOperatorVersion):
* manifests/02-deployment-ibm-cloud-managed.yaml
(GATEWAY_API_OPERATOR_VERSION):
* manifests/02-deployment.yaml
(GATEWAY_API_OPERATOR_VERSION): Bump from OSSM v3.0.0 to v3.0.1.
* pkg/operator/controller/gatewayclass/istio.go (desiredIstio): Bump
from Istio v1.24.3 to v1.24.4.  Set ENABLE_GATEWAY_API_MANUAL_DEPLOYMENT
to "false".

(cherry picked from commit 47d4152)
Configure Istio to inject the configmaps only into namespaces where
gateways exist in order to avoid polluting the whole cluster.

Set one new environment variable in the Istio CR:

    PILOT_ENABLE_GATEWAY_API_CA_CERT_ONLY

In the future, we will set the Istio CR's trustBundleName global value
to specify a custom configmap name.  However, we cannot do that yet as
the trustBundleName field only exists in OSSM 3.1.

This commit is related to OSSM-9076.

* pkg/operator/controller/gatewayclass/istio.go (desiredIstio): Set the
new environment variable.
* pkg/operator/controller/names.go (OpenShiftGatewayCARootCertName): New
const for future use.

Modified-by: Miciah Masters <miciah.masters@gmail.com>
(cherry picked from commit 41d7add)
Configure Istiod not to copy annotations or labels from gateways onto
associated resources, such as the proxy deployment and load-balancer
service for a gateway.

This copying behavior is Istio-specific, not part of the Gateway API
spec, and could be used to inject unsupported configuration.  For
example, an end-user could set a service annotation on the gateway in
order to configure a load-balancer.  Setting annotations on the gateway
to configure the load-balancer would not be portable to other Gateway
API implementations and would complicate product support.

This commit is related to OSSM-8989.

https://issues.redhat.com/browse/OSSM-8989

* pkg/operator/controller/gatewayclass/istio.go (desiredIstio): Set the
"PILOT_ENABLE_GATEWAY_API_COPY_LABELS_ANNOTATIONS" to "false".

(cherry picked from commit 05417af)
Delete the obsolete PILOT_ENABLE_GATEWAY_CONTROLLER_MODE environment
variable from the Istiod configuration.  This environment variable is
no longer recognized in OSSM 3, and the variable has been superseded
by EnhancedResourceScoping.

* pkg/operator/controller/gatewayclass/istio.go (desiredIstio): Delete
PILOT_ENABLE_GATEWAY_CONTROLLER_MODE.

(cherry picked from commit e05309e)
Increase the timeout in assertDNSRecord for polling for the DNSRecord CR
from 1 minute to 10 minutes.

The cloud provider can easily take over a minute to provision the load balancer,
and the operator cannot create the DNSRecord CR before the load balancer has
been provisioned and assigned a host name or address.  Consequently, the polling
loop could easily reach the 1-minute timeout just on account of the time that it
takes to provision the load balancer.

* test/e2e/util_gatewayapi_test.go (assertDNSRecord): Increase timeout
for the DNSRecord CR polling loop from 1m to 10m.

(cherry picked from commit 2f7da77)
Increase the timeout for polling the gateway, and dump the gateway if
the test fails.

* test/e2e/gateway_api_test.go (testGatewayAPIManualDeployment):
Increase the timeout for polling the gateway from 1m to 5m.  Dump the
gateway if the test fails.

(cherry picked from commit f1e445d)
@openshift-ci-robot
Copy link
Contributor

openshift-ci-robot commented Jul 25, 2025

@Miciah: This pull request references NE-2103 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.19.z" version, but no target version was set.

Details

In response to this:

Bump to OSSM 3.0.1 and Istio 1.24.4

Bump from OSSM v3.0.0 to v3.0.1 and from Istio v1.24.3 to v1.24.4.

Also, explicitly set ENABLE_GATEWAY_API_MANUAL_DEPLOYMENT to "false" on the Istio CR. For Istio 1.24.3, OSSM has a vendor override that sets this option. However, for Istio 1.24.4, the option must be explicitly set.

(cherry picked from 47d4152)

Enable Gateway only CA Bundles

Configure Istio to inject the configmaps only into namespaces where gateways exist in order to avoid polluting the whole cluster.

Set one new environment variable in the Istio CR:

PILOT_ENABLE_GATEWAY_API_CA_CERT_ONLY

In the future, we will set the Istio CR's trustBundleName global value to specify a custom configmap name. However, we cannot do that yet as the trustBundleName field only exists in OSSM 3.1.

This change is related to OSSM-9076.

Modified-by: Miciah Masters miciah.masters@gmail.com

(cherry picked from 41d7add)

Don't copy labels or annotations

Configure Istiod not to copy annotations or labels from gateways onto associated resources, such as the proxy deployment and load-balancer service for a gateway.

This copying behavior is Istio-specific, not part of the Gateway API spec, and could be used to inject unsupported configuration. For example, an end-user could set a service annotation on the gateway in order to configure a load-balancer. Setting annotations on the gateway to configure the load-balancer would not be portable to other Gateway API implementations and would complicate product support.

One new environment variable is set:

PILOT_ENABLE_GATEWAY_API_COPY_LABELS_ANNOTATIONS

This change is related to OSSM-8989.

(cherry picked from 05417af)

Delete old controller-mode setting

Delete the obsolete PILOT_ENABLE_GATEWAY_CONTROLLER_MODE environment variable from the Istiod configuration. This environment variable is no longer recognized in OSSM 3, and the variable has been superseded by EnhancedResourceScoping.

(cherry picked from e05309e)

assertDNSRecord: Increase timeout to 10m

Increase the timeout in assertDNSRecord for polling for the DNSRecord CR from 1 minute to 10 minutes.

The cloud provider can easily take over a minute to provision the load balancer, and the operator cannot create the DNSRecord CR before the load balancer has been provisioned and assigned a host name or address. Consequently, the polling loop could easily reach the 1-minute timeout just on account of the time that it takes to provision the load balancer.

(cherry picked from 2f7da77)

testGatewayAPIManualDeployment: Increase timeout

Increase the timeout for polling the gateway, and dump the gateway if the test fails.

(cherry picked from f1e445d)


This is manual cherry-pick of #1227 that incorporates #1243 and drops the sailv1 vendor bump, which would bring in a dependency on Go 1.24.

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 openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Jul 25, 2025
@openshift-ci openshift-ci bot requested review from grzpiotrowski and miheer July 25, 2025 20:22
@alebedev87
Copy link
Contributor

/assign

@lihongan
Copy link
Contributor

/test e2e-aws-gatewayapi-conformance

cc @rhamini3

@Miciah
Copy link
Contributor Author

Miciah commented Jul 28, 2025

This is a medium-risk backport that bumps OSSM 3.0.0 to 3.0.1 and Istio v1.24.3 to v1.24.4 to get some CVE fixes as well as a fix not to copy labels from gateways to associated resources (such as the service) and a fix not to inject Istio's CA certificate configmap into namespaces other than the gateway's.

/label backport-risk-assessed

@openshift-ci openshift-ci bot added the backport-risk-assessed Indicates a PR to a release branch has been evaluated and considered safe to accept. label Jul 28, 2025
@Miciah
Copy link
Contributor Author

Miciah commented Jul 28, 2025

e2e-hypershift failed because TestCreateClusterCustomConfig/EnsureHostedCluster/EnsureAllContainersHaveTerminationMessagePolicyFallbackToLogsOnError failed:

{Failed  === RUN   TestCreateClusterCustomConfig/EnsureHostedCluster/EnsureAllContainersHaveTerminationMessagePolicyFallbackToLogsOnError
    util.go:890: ns/e2e-clusters-q8t8v-custom-config-d67p5 pod/olm-collect-profiles-29224677-62r6c container/collect-profiles has doesn't have terminationMessagePolicy FallbackToLogsOnError but File
    util.go:890: ns/e2e-clusters-q8t8v-custom-config-d67p5 pod/olm-collect-profiles-29224677-dzb8m container/collect-profiles has doesn't have terminationMessagePolicy FallbackToLogsOnError but File
    util.go:890: ns/e2e-clusters-q8t8v-custom-config-d67p5 pod/olm-collect-profiles-29224677-wnwqn container/collect-profiles has doesn't have terminationMessagePolicy FallbackToLogsOnError but File
    util.go:890: ns/e2e-clusters-q8t8v-custom-config-d67p5 pod/olm-collect-profiles-29224677-xc6zr container/collect-profiles has doesn't have terminationMessagePolicy FallbackToLogsOnError but File
        --- FAIL: TestCreateClusterCustomConfig/EnsureHostedCluster/EnsureAllContainersHaveTerminationMessagePolicyFallbackToLogsOnError (0.03s)
}

Let's see if the same error occurs twice.
/test e2e-hypershift

@rhamini3
Copy link
Contributor

Pre-merge-verified on a 4.19 cluster, Gatewayclass installs OSSM 3.0.1 and Istio 1.24.4

iamin@iamin-mac openshift-tests-private % oc -n openshift-operators get sub,csv,pod
NAME                                                     PACKAGE                SOURCE             CHANNEL
subscription.operators.coreos.com/servicemeshoperator3   servicemeshoperator3   redhat-operators   stable

NAME                                                                     DISPLAY                            VERSION   REPLACES                      PHASE
clusterserviceversion.operators.coreos.com/servicemeshoperator3.v3.0.1   Red Hat OpenShift Service Mesh 3   3.0.1     servicemeshoperator3.v3.0.0   Succeeded

NAME                                         READY   STATUS    RESTARTS   AGE
pod/servicemesh-operator3-786b8f77f9-k9g22   1/1     Running   0          29m
iamin@iamin-mac openshift-tests-private % oc get istio                             
NAME                REVISIONS   READY   IN USE   ACTIVE REVISION     STATUS    VERSION   AGE
openshift-gateway   1           1       1        openshift-gateway   Healthy   v1.24.4   8m9s
iamin@iamin-mac openshift-tests-private % oc get gatewayclass
NAME                CONTROLLER                           ACCEPTED   AGE
openshift-default   openshift.io/gateway-controller/v1   True       51s
iamin@iamin-mac openshift-tests-private % oc get gateway -A
NAMESPACE           NAME      CLASS               ADDRESS                                                                  PROGRAMMED   AGE
openshift-ingress   gateway   openshift-default   a475e3dc2331d425a8de451bd50638eb-600116918.us-west-1.elb.amazonaws.com   True         42s

/label qe-approved

@openshift-ci openshift-ci bot added the qe-approved Signifies that QE has signed off on this PR label Jul 28, 2025
@openshift-ci-robot
Copy link
Contributor

openshift-ci-robot commented Jul 28, 2025

@Miciah: This pull request references NE-2103 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.19.z" version, but no target version was set.

Details

In response to this:

Bump to OSSM 3.0.1 and Istio 1.24.4

Bump from OSSM v3.0.0 to v3.0.1 and from Istio v1.24.3 to v1.24.4.

Also, explicitly set ENABLE_GATEWAY_API_MANUAL_DEPLOYMENT to "false" on the Istio CR. For Istio 1.24.3, OSSM has a vendor override that sets this option. However, for Istio 1.24.4, the option must be explicitly set.

(cherry picked from 47d4152)

Enable Gateway only CA Bundles

Configure Istio to inject the configmaps only into namespaces where gateways exist in order to avoid polluting the whole cluster.

Set one new environment variable in the Istio CR:

PILOT_ENABLE_GATEWAY_API_CA_CERT_ONLY

In the future, we will set the Istio CR's trustBundleName global value to specify a custom configmap name. However, we cannot do that yet as the trustBundleName field only exists in OSSM 3.1.

This change is related to OSSM-9076.

Modified-by: Miciah Masters miciah.masters@gmail.com

(cherry picked from 41d7add)

Don't copy labels or annotations

Configure Istiod not to copy annotations or labels from gateways onto associated resources, such as the proxy deployment and load-balancer service for a gateway.

This copying behavior is Istio-specific, not part of the Gateway API spec, and could be used to inject unsupported configuration. For example, an end-user could set a service annotation on the gateway in order to configure a load-balancer. Setting annotations on the gateway to configure the load-balancer would not be portable to other Gateway API implementations and would complicate product support.

One new environment variable is set:

PILOT_ENABLE_GATEWAY_API_COPY_LABELS_ANNOTATIONS

This change is related to OSSM-8989.

(cherry picked from 05417af)

Delete old controller-mode setting

Delete the obsolete PILOT_ENABLE_GATEWAY_CONTROLLER_MODE environment variable from the Istiod configuration. This environment variable is no longer recognized in OSSM 3, and the variable has been superseded by EnhancedResourceScoping.

(cherry picked from e05309e)

assertDNSRecord: Increase timeout to 10m

Increase the timeout in assertDNSRecord for polling for the DNSRecord CR from 1 minute to 10 minutes.

The cloud provider can easily take over a minute to provision the load balancer, and the operator cannot create the DNSRecord CR before the load balancer has been provisioned and assigned a host name or address. Consequently, the polling loop could easily reach the 1-minute timeout just on account of the time that it takes to provision the load balancer.

(cherry picked from 2f7da77)

testGatewayAPIManualDeployment: Increase timeout

Increase the timeout for polling the gateway, and dump the gateway if the test fails.

(cherry picked from f1e445d)


This is manual cherry-pick of #1227 that incorporates #1243 and drops the sailv1 vendor bump, which would bring in a dependency on Go 1.24.

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
Contributor

@alebedev87 alebedev87 left a comment

Choose a reason for hiding this comment

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

/lgtm
/approve

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

openshift-ci bot commented Jul 30, 2025

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: alebedev87

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 Jul 30, 2025
@candita
Copy link
Contributor

candita commented Jul 31, 2025

Had some DNS timing failures.

/test e2e-aws-operator-techpreview

@Miciah Miciah added the jira/valid-bug Indicates that a referenced Jira bug is valid for the branch this PR is targeting. label Jul 31, 2025
@openshift-merge-bot openshift-merge-bot bot merged commit 97e023f into openshift:release-4.19 Jul 31, 2025
21 of 22 checks passed
@openshift-bot
Copy link
Contributor

[ART PR BUILD NOTIFIER]

Distgit: ose-cluster-ingress-operator
This PR has been included in build ose-cluster-ingress-operator-container-v4.19.0-202508010139.p0.g97e023f.assembly.stream.el9.
All builds following this will include this PR.

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. backport-risk-assessed Indicates a PR to a release branch has been evaluated and considered safe to accept. jira/valid-bug Indicates that a referenced Jira bug is valid for the branch this PR is targeting. 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. qe-approved Signifies that QE has signed off on this PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

10 participants