Commit 4547ab4
committed
Bump to OSSM 3.0 for Gateway API support
With OSSM 3, the Maistra Istio Operator is replaced with new operator based on
the upstream Sail Operator, and the ServiceMeshControlPlane CRD is replaced by
the Istio CRD. Vendor the sail-operator API:
go mod edit -replace github.com/imdario/mergo=github.com/imdario/[email protected]
go get github.com/istio-ecosystem/sail-operator/api/v1
go mod tidy
go mod vendor
Note that vendoring sail-operator requires the mergo override.
OSSM 3.0 is based on Istio 1.24, which supports Gateway API v1.2.1. Copy in the
updated Gateway API CRDs:
curl --silent --output-dir pkg/manifests/assets/gateway-api/ --remote-name 'https://raw.githubusercontent.com/kubernetes-sigs/gateway-api/refs/heads/main/config/crd/standard/gateway.networking.k8s.io_{gatewayclasses,gateways,grpcroutes,httproutes,referencegrants}.yaml'
Update the conformance tests to reflect the features that Istio 1.24 supports.
Update the gatewayclass controller to create a subscription for the OSSM 3
Operator (which is in a separate channel from the OSSM 2 operator) and to create
an Istio CR instead of a ServiceMeshControlPlane CR.
Update client initialization, RBAC, and tests that used the Maistra APIs from
OSSM 2 to use the sail-operator API for OSSM 3.
* go.mod: Vendor the sail-operator.io API, and gump sigs.k8s.io/gateway-api.
* go.sum:
* vendor/*: Regenerate.
* hack/gatewayapi-conformance.sh (SUPPORTED_FEATURES): Update for Istio 1.24.
* manifests/00-cluster-role.yaml: Allow access to the istios.sailoperator.io
resource instead of the servicemeshcontrolplanes.maistra.io resource.
* pkg/manifests/assets/gateway-api/*: Update to Gateway API v1.2.1.
* pkg/manifests/manifests.go (GRPCRouteCRDAsset, GRPCRouteCRD):
* pkg/manifests/manifests_test.go (TestManifests): Add GRPCRoute, which is now
stable in Gateway API v1.2.1 and supported in Istio 1.24.
* pkg/operator/client/client.go (init): Register the Sail API types instead of
the Maistra API types.
* pkg/operator/controller/gateway-service-dns/controller.go (Reconcile): Use the
service's labels instead of the service's label selector. OSSM 3.0 seems to set
a label whereas OSSM 2.y set the label selector.
* pkg/operator/controller/gateway-service-dns/controller_test.go
(Test_Reconcile): Update expectations for service labels and selectors.
* pkg/operator/controller/gatewayapi/controller_test.go (Test_Reconcile): Expect
grpcroutes.gateway.networking.k8s.io to be created.
* pkg/operator/controller/gatewayapi/crds.go (managedCRDs): Add GRPCRouteCRD.
* pkg/operator/controller/gatewayclass/controller.go (NewUnmanaged): Use
ServiceMeshOperatorSubscriptionName instead of ServiceMeshSubscriptionName.
(reconciler): Rename startSMCPWatch to startIstioWatch.
(Reconcile): Use ensureIstio instead of ensureServiceMeshControlPlane.
Use IstioName instead of ServiceMeshControlPlaneName.
Watch istios instead of servicemeshcontrolplanes.
* pkg/operator/controller/gatewayclass/servicemeshcontrolplane.go: Rename...
* pkg/operator/controller/gatewayclass/istio.go: ...to this.
(ensureServiceMeshControlPlane): Rename...
(ensureIstio): To this.
(desiredServiceMeshControlPlane): Rename...
(desiredIstio): ...to this.
(currentServiceMeshControlPlane): Rename...
(currentIstio): ...to this.
(createServiceMeshControlPlane): Rename...
(createIstio): ...to this.
(smcpCmpOpts): Rename...
(istioCmpOpts): ...to this. Remove unneeded AllowUnexported rule.
(updateServiceMeshControlPlane): Rename...
(updateIstio): ...to this.
(serviceMeshControlPlaneChanged): Rename...
(istioChanged): ...to this.
* pkg/operator/controller/gatewayclass/subscription.go (desiredSubscription):
Update to use ServiceMeshOperatorSubscriptionName intead of
ServiceMeshSubscriptionName. Change the subscription from
"servicemeshoperator", for OSSM 2, to "servicemeshoperator3", for OSSM 3. For
now, install a recent nightly build.
* pkg/operator/controller/names.go (ServiceMeshControlPlaneName): Rename...
(IstioName): ...to this. Remove the namespace as the Istio CR is
cluster-scoped.
(ServiceMeshSubscriptionName): Rename...
(ServiceMeshOperatorSubscriptionName): ...to this. Update the name to reflect
that it is a subscription for "servicemeshoperator3" (OSSM 3).
* test/e2e/gateway_api_test.go (expectedSubscriptionName): Update const
to reference the OSSM 3 subscription.
(testGatewayAPIIstioInstallation): Update to check the Istio CR instead of the
ServiceMeshControlPlane CR. Clean up some log messages and comments.
* test/e2e/util_gatewayapi_test.go (openshiftIstioOperatorDeploymentName):
Update to reference the OSSM 3 operator deployment.
(openshiftSMCPName): Rename const...
(openshiftIstioName): ...to this.
(updateIngressOperatorRole): Delete unused function.
(assertSMCP): Rename...
(assertIstio): ...to this. Update to use the Istio CR. Clean up some log
messages.
(deleteExistingSMCP): Rename...
(deleteExistingIstio): ...to this. Update to use the Istio CR. Delete an
unnecessary nil check, and clean up some log messages and comments.1 parent 69cadab commit 4547ab4
File tree
591 files changed
+64967
-35121
lines changed- hack
- manifests
- pkg
- manifests
- assets/gateway-api
- operator
- client
- controller
- gateway-service-dns
- gatewayapi
- gatewayclass
- test/e2e
- vendor
- cloud.google.com/go/compute/metadata
- github.com
- cncf/xds/go/xds
- data/orca/v3
- service/orca/v3
- emicklei/go-restful/v3
- envoyproxy/protoc-gen-validate/validate
- fatih/color
- fsnotify/fsnotify
- internal
- go-openapi/jsonreference
- goccy/go-yaml
- ast
- internal/errors
- lexer
- parser
- printer
- scanner
- token
- golang/protobuf/ptypes
- any
- duration
- timestamp
- google/gnostic-models
- compiler
- extensions
- openapiv2
- openapiv3
- gorilla/websocket
- imdario/mergo
- istio-ecosystem/sail-operator
- api/v1
- klauspost/compress
- fse
- huff0
- internal
- cpuinfo
- snapref
- zstd
- internal/xxhash
- mailru/easyjson
- jlexer
- jwriter
- maistra/istio-operator/pkg
- apis/maistra
- status
- v1
- v2
- version
- mattn/go-colorable
- prometheus
- client_golang
- api/prometheus/v1
- internal/github.com/golang/gddo
- httputil
- header
- prometheus
- collectors
- internal
- promhttp
- testutil
- promlint
- validations
- common
- expfmt
- model
- stretchr/testify/assert
- yaml
- go.opentelemetry.io/otel
- attribute
- codes
- internal
- attribute
- trace
- golang.org/x
- crypto
- chacha20
- internal/poly1305
- pkcs12
- sha3
- net
- html
- http2
- oauth2
- google/externalaccount
- sys
- cpu
- unix
- windows
- registry
- term
- xerrors
- internal
- google.golang.org
- genproto/googleapis/rpc/errdetails
- grpc
- backoff
- balancer
- base
- pickfirst
- internal
- pickfirstleaf
- roundrobin
- benchmark/stats
- binarylog/grpc_binarylog_v1
- credentials
- insecure
- encoding
- proto
- experimental/stats
- grpclog
- internal
- internal
- backoff
- balancer/gracefulswitch
- binarylog
- channelz
- envconfig
- grpclog
- grpcsync
- grpcutil
- idle
- resolver
- dns
- passthrough
- stats
- status
- syscall
- transport
- interop
- grpc_testing
- core
- keepalive
- mem
- metadata
- orca
- resolver
- stats
- protobuf
- encoding
- protojson
- prototext
- internal
- editiondefaults
- editionssupport
- errors
- filedesc
- flags
- genid
- impl
- protolazy
- version
- proto
- reflect
- protodesc
- protoreflect
- runtime
- protoiface
- protoimpl
- types
- descriptorpb
- gofeaturespb
- known
- anypb
- durationpb
- timestamppb
- k8s.io
- kube-openapi/pkg/handler3
- utils
- clock/testing
- lru
- sigs.k8s.io
- controller-runtime/pkg/conversion
- gateway-api/apis/v1
- structured-merge-diff/v4
- merge
- typed
- value
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
591 files changed
+64967
-35121
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
18 | | - | |
| 18 | + | |
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
| 23 | + | |
23 | 24 | | |
24 | | - | |
25 | | - | |
| 25 | + | |
26 | 26 | | |
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
30 | | - | |
31 | | - | |
| 30 | + | |
| 31 | + | |
32 | 32 | | |
33 | | - | |
| 33 | + | |
34 | 34 | | |
35 | 35 | | |
36 | 36 | | |
37 | | - | |
| 37 | + | |
38 | 38 | | |
39 | | - | |
| 39 | + | |
40 | 40 | | |
41 | 41 | | |
42 | 42 | | |
43 | 43 | | |
44 | 44 | | |
45 | 45 | | |
46 | | - | |
47 | | - | |
| 46 | + | |
| 47 | + | |
48 | 48 | | |
49 | | - | |
| 49 | + | |
50 | 50 | | |
51 | 51 | | |
52 | 52 | | |
53 | | - | |
| 53 | + | |
54 | 54 | | |
55 | 55 | | |
56 | 56 | | |
| |||
63 | 63 | | |
64 | 64 | | |
65 | 65 | | |
66 | | - | |
67 | | - | |
68 | | - | |
69 | | - | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
70 | 70 | | |
71 | | - | |
| 71 | + | |
72 | 72 | | |
73 | 73 | | |
74 | 74 | | |
75 | 75 | | |
76 | | - | |
| 76 | + | |
77 | 77 | | |
78 | 78 | | |
79 | 79 | | |
80 | 80 | | |
81 | 81 | | |
82 | | - | |
83 | 82 | | |
84 | 83 | | |
85 | 84 | | |
86 | 85 | | |
87 | 86 | | |
88 | | - | |
| 87 | + | |
89 | 88 | | |
90 | 89 | | |
91 | 90 | | |
92 | 91 | | |
93 | 92 | | |
94 | | - | |
| 93 | + | |
95 | 94 | | |
96 | 95 | | |
97 | | - | |
| 96 | + | |
98 | 97 | | |
99 | 98 | | |
100 | 99 | | |
101 | 100 | | |
102 | 101 | | |
| 102 | + | |
103 | 103 | | |
104 | 104 | | |
105 | | - | |
106 | | - | |
| 105 | + | |
| 106 | + | |
107 | 107 | | |
108 | 108 | | |
109 | 109 | | |
| |||
114 | 114 | | |
115 | 115 | | |
116 | 116 | | |
117 | | - | |
118 | 117 | | |
119 | 118 | | |
120 | 119 | | |
| |||
125 | 124 | | |
126 | 125 | | |
127 | 126 | | |
128 | | - | |
129 | | - | |
| 127 | + | |
| 128 | + | |
130 | 129 | | |
131 | | - | |
132 | | - | |
133 | | - | |
134 | | - | |
135 | | - | |
136 | | - | |
137 | | - | |
138 | | - | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
139 | 137 | | |
140 | 138 | | |
141 | | - | |
142 | | - | |
| 139 | + | |
| 140 | + | |
143 | 141 | | |
144 | 142 | | |
145 | 143 | | |
146 | 144 | | |
147 | 145 | | |
148 | 146 | | |
149 | | - | |
150 | | - | |
| 147 | + | |
| 148 | + | |
151 | 149 | | |
152 | | - | |
| 150 | + | |
153 | 151 | | |
154 | 152 | | |
155 | 153 | | |
156 | | - | |
157 | | - | |
158 | | - | |
159 | | - | |
160 | | - | |
161 | | - | |
162 | | - | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
0 commit comments