diff --git a/go.mod b/go.mod index 395656ca9e..59430ba302 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/openshift/operator-framework-olm -go 1.25.3 +go 1.25.7 require ( github.com/blang/semver/v4 v4.0.0 @@ -8,18 +8,18 @@ require ( github.com/go-logr/logr v1.4.3 github.com/golang/mock v1.7.0-rc.1 github.com/googleapis/gnostic v0.5.5 - github.com/grpc-ecosystem/grpc-health-probe v0.4.44 + github.com/grpc-ecosystem/grpc-health-probe v0.4.45 github.com/maxbrunsfeld/counterfeiter/v6 v6.12.1 github.com/mikefarah/yq/v3 v3.0.0-20201202084205-8846255d1c37 github.com/onsi/ginkgo/v2 v2.28.1 github.com/openshift/api v0.0.0-20260204104751-e09e5a4ebcd0 - github.com/operator-framework/api v0.39.0 + github.com/operator-framework/api v0.41.0 github.com/operator-framework/operator-lifecycle-manager v0.0.0-00010101000000-000000000000 - github.com/operator-framework/operator-registry v1.63.0 + github.com/operator-framework/operator-registry v1.64.0 github.com/sirupsen/logrus v1.9.4 github.com/spf13/cobra v1.10.2 github.com/stretchr/testify v1.11.1 - google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.6.0 + google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.6.1 google.golang.org/protobuf v1.36.11 gopkg.in/yaml.v2 v2.4.0 k8s.io/api v0.35.1 @@ -136,7 +136,7 @@ require ( github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.20 // indirect github.com/mattn/go-runewidth v0.0.19 // indirect - github.com/mattn/go-sqlite3 v1.14.33 // indirect + github.com/mattn/go-sqlite3 v1.14.34 // indirect github.com/miekg/pkcs11 v1.1.2 // indirect github.com/mitchellh/go-wordwrap v1.0.1 // indirect github.com/mitchellh/hashstructure v1.1.0 // indirect @@ -196,7 +196,7 @@ require ( go.opentelemetry.io/otel/sdk v1.40.0 // indirect go.opentelemetry.io/otel/trace v1.40.0 // indirect go.opentelemetry.io/proto/otlp v1.9.0 // indirect - go.podman.io/common v0.66.1 // indirect + go.podman.io/common v0.67.0 // indirect go.podman.io/image/v5 v5.39.1 // indirect go.podman.io/storage v1.62.0 // indirect go.uber.org/multierr v1.11.0 // indirect @@ -206,7 +206,7 @@ require ( golang.org/x/crypto v0.48.0 // indirect golang.org/x/exp v0.0.0-20260112195511-716be5621a96 // indirect golang.org/x/lint v0.0.0-20241112194109-818c5a804067 // indirect - golang.org/x/mod v0.32.0 // indirect + golang.org/x/mod v0.33.0 // indirect golang.org/x/net v0.50.0 // indirect golang.org/x/oauth2 v0.34.0 // indirect golang.org/x/sync v0.19.0 // indirect diff --git a/go.sum b/go.sum index 8b029ffa70..f994d834d4 100644 --- a/go.sum +++ b/go.sum @@ -295,8 +295,8 @@ github.com/grpc-ecosystem/go-grpc-prometheus v1.2.1-0.20210315223345-82c243799c9 github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.7 h1:X+2YciYSxvMQK0UZ7sg45ZVabVZBeBuvMkmuI2V3Fak= github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.7/go.mod h1:lW34nIZuQ8UDPdkon5fmfp2l3+ZkQ2me/+oecHYLOII= -github.com/grpc-ecosystem/grpc-health-probe v0.4.44 h1:UL/D651ntWGhnAR8MwhdzPM0tHhWFrXToL+9uX+YXRs= -github.com/grpc-ecosystem/grpc-health-probe v0.4.44/go.mod h1:omGa1rvwXOYzLpaxeOAHruRqdCYGJUSVds++SpkF5iQ= +github.com/grpc-ecosystem/grpc-health-probe v0.4.45 h1:MShozNmU62P19s8ectkSDecdGfzmYlvphvD/4wxRjF8= +github.com/grpc-ecosystem/grpc-health-probe v0.4.45/go.mod h1:Amn2YzmUFN8Usb0kffD18fQ005c7C3sCn92kBxiOm5E= github.com/h2non/filetype v1.1.3 h1:FKkx9QbD7HR/zjK1Ia5XiBsq9zdLi5Kf3zGyFTAFkGg= github.com/h2non/filetype v1.1.3/go.mod h1:319b3zT68BvV+WRj7cwy856M2ehB3HqNOt6sy1HndBY= github.com/h2non/go-is-svg v0.0.0-20160927212452-35e8c4b0612c h1:fEE5/5VNnYUoBOj2I9TP8Jc+a7lge3QWn9DKE7NCwfc= @@ -369,8 +369,8 @@ github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWE github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-runewidth v0.0.19 h1:v++JhqYnZuu5jSKrk9RbgF5v4CGUjqRfBm05byFGLdw= github.com/mattn/go-runewidth v0.0.19/go.mod h1:XBkDxAl56ILZc9knddidhrOlY5R/pDhgLpndooCuJAs= -github.com/mattn/go-sqlite3 v1.14.33 h1:A5blZ5ulQo2AtayQ9/limgHEkFreKj1Dv226a1K73s0= -github.com/mattn/go-sqlite3 v1.14.33/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y= +github.com/mattn/go-sqlite3 v1.14.34 h1:3NtcvcUnFBPsuRcno8pUtupspG/GM+9nZ88zgJcp6Zk= +github.com/mattn/go-sqlite3 v1.14.34/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/maxbrunsfeld/counterfeiter/v6 v6.12.1 h1:D4O2wLxB384TS3ohBJMfolnxb4qGmoZ1PnWNtit8LYo= github.com/maxbrunsfeld/counterfeiter/v6 v6.12.1/go.mod h1:RuJdxo0oI6dClIaMzdl3hewq3a065RH65dofJP03h8I= @@ -629,8 +629,8 @@ go.opentelemetry.io/otel/trace v1.40.0 h1:WA4etStDttCSYuhwvEa8OP8I5EWu24lkOzp+ZY go.opentelemetry.io/otel/trace v1.40.0/go.mod h1:zeAhriXecNGP/s2SEG3+Y8X9ujcJOTqQ5RgdEJcawiA= go.opentelemetry.io/proto/otlp v1.9.0 h1:l706jCMITVouPOqEnii2fIAuO3IVGBRPV5ICjceRb/A= go.opentelemetry.io/proto/otlp v1.9.0/go.mod h1:xE+Cx5E/eEHw+ISFkwPLwCZefwVjY+pqKg1qcK03+/4= -go.podman.io/common v0.66.1 h1:zDyd4HhVgQAN8LupBHCnhtM3FEOJ9DwmThjulXZq2qA= -go.podman.io/common v0.66.1/go.mod h1:aNd2a0S7pY+fx1X5kpQYuF4hbwLU8ZOccuVrhu7h1Xc= +go.podman.io/common v0.67.0 h1:6Ci5oU1ek08OAxBLkHEqSyWmjNh5zf03PRqZ04cPdwU= +go.podman.io/common v0.67.0/go.mod h1:sB9L8LMtmf5Hpek2qkEyRrcSzpb+gYpG3vq5Khima3U= go.podman.io/image/v5 v5.39.1 h1:loIw4qHzZzBlUguYZau40u8HbR5MrTPQhwT4Hy6sCm0= go.podman.io/image/v5 v5.39.1/go.mod h1:SlaR6Pra1ATIx4BcuZ16oafb3QcCHISaKcJbtlN/G/0= go.podman.io/storage v1.62.0 h1:0QjX1XlzVmbiaulb+aR/CG6p9+pzaqwIeZPe3tEjHbY= @@ -679,8 +679,8 @@ golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= -golang.org/x/mod v0.32.0 h1:9F4d3PHLljb6x//jOyokMv3eX+YDeepZSEo3mFJy93c= -golang.org/x/mod v0.32.0/go.mod h1:SgipZ/3h2Ci89DlEtEXWUk/HteuRin+HHhN+WbNhguU= +golang.org/x/mod v0.33.0 h1:tHFzIWbBifEmbwtGz65eaWyGiGZatSrT9prnU8DbVL8= +golang.org/x/mod v0.33.0/go.mod h1:swjeQEj+6r7fODbD2cqrnje9PnziFuw4bmLbBZFrQ5w= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -833,8 +833,8 @@ google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8 google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= google.golang.org/grpc v1.79.1 h1:zGhSi45ODB9/p3VAawt9a+O/MULLl9dpizzNNpq7flY= google.golang.org/grpc v1.79.1/go.mod h1:KmT0Kjez+0dde/v2j9vzwoAScgEPx/Bw1CYChhHLrHQ= -google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.6.0 h1:6Al3kEFFP9VJhRz3DID6quisgPnTeZVr4lep9kkxdPA= -google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.6.0/go.mod h1:QLvsjh0OIR0TYBeiu2bkWGTJBUNQ64st52iWj/yA93I= +google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.6.1 h1:/WILD1UcXj/ujCxgoL/DvRgt2CP3txG8+FwkUbb9110= +google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.6.1/go.mod h1:YNKnb2OAApgYn2oYY47Rn7alMr1zWjb2U8Q0aoGWiNc= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= diff --git a/staging/api/.bingo/Variables.mk b/staging/api/.bingo/Variables.mk index a0640efc8f..e8d1ae0c3f 100644 --- a/staging/api/.bingo/Variables.mk +++ b/staging/api/.bingo/Variables.mk @@ -29,6 +29,12 @@ $(KIND): $(BINGO_DIR)/kind.mod @echo "(re)installing $(GOBIN)/kind-v0.31.0" @cd $(BINGO_DIR) && GOWORK=off $(GO) build -mod=mod -modfile=kind.mod -o=$(GOBIN)/kind-v0.31.0 "sigs.k8s.io/kind" +OPENAPI_GEN := $(GOBIN)/openapi-gen-v0.0.0-20260127142750-a19766b6e2d4 +$(OPENAPI_GEN): $(BINGO_DIR)/openapi-gen.mod + @# Install binary/ries using Go 1.14+ build command. This is using bwplotka/bingo-controlled, separate go module with pinned dependencies. + @echo "(re)installing $(GOBIN)/openapi-gen-v0.0.0-20260127142750-a19766b6e2d4" + @cd $(BINGO_DIR) && GOWORK=off $(GO) build -mod=mod -modfile=openapi-gen.mod -o=$(GOBIN)/openapi-gen-v0.0.0-20260127142750-a19766b6e2d4 "k8s.io/kube-openapi/cmd/openapi-gen" + YQ := $(GOBIN)/yq-v4.45.1 $(YQ): $(BINGO_DIR)/yq.mod @# Install binary/ries using Go 1.14+ build command. This is using bwplotka/bingo-controlled, separate go module with pinned dependencies. diff --git a/staging/api/.bingo/openapi-gen.mod b/staging/api/.bingo/openapi-gen.mod new file mode 100644 index 0000000000..47a61253f5 --- /dev/null +++ b/staging/api/.bingo/openapi-gen.mod @@ -0,0 +1,5 @@ +module _ // Auto generated by https://github.com/bwplotka/bingo. DO NOT EDIT + +go 1.25.3 + +require k8s.io/kube-openapi v0.0.0-20260127142750-a19766b6e2d4 // cmd/openapi-gen diff --git a/staging/api/.bingo/openapi-gen.sum b/staging/api/.bingo/openapi-gen.sum new file mode 100644 index 0000000000..a9102f2c1c --- /dev/null +++ b/staging/api/.bingo/openapi-gen.sum @@ -0,0 +1,66 @@ +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/emicklei/go-restful/v3 v3.11.0 h1:rAQeMHw1c7zTmncogyy8VvRZwtkmkZ4FxERmMY4rD+g= +github.com/emicklei/go-restful/v3 v3.11.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs= +github.com/go-openapi/jsonpointer v0.21.0 h1:YgdVicSA9vH5RiHs9TZW5oyafXZFc6+2Vc1rr/O9oNQ= +github.com/go-openapi/jsonpointer v0.21.0/go.mod h1:IUyH9l/+uyhIYQ/PXVA41Rexl+kOkAPDdXEYns6fzUY= +github.com/go-openapi/jsonreference v0.20.1 h1:FBLnyygC4/IZZr893oiomc9XaghoveYTrLC1F86HID8= +github.com/go-openapi/jsonreference v0.20.1/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k= +github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= +github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+GrE= +github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ= +github.com/google/gnostic-models v0.7.0 h1:qwTtogB15McXDaNqTZdzPJRHvaVJlAl+HVQnLmJEJxo= +github.com/google/gnostic-models v0.7.0/go.mod h1:whL5G0m6dmc5cPxKc5bdKdEN3UjI7OUGxBlw57miDrQ= +github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= +github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= +github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= +github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= +github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= +github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= +github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= +github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +go.yaml.in/yaml/v3 v3.0.3 h1:bXOww4E/J3f66rav3pX3m8w6jDE4knZjGOw8b5Y6iNE= +go.yaml.in/yaml/v3 v3.0.3/go.mod h1:tBHosrYAkRZjRAOREWbDnBXUf08JOwYq++0QNwQiWzI= +golang.org/x/mod v0.27.0 h1:kb+q2PyFnEADO2IEF935ehFUXlWiNjJWtRNgBLSfbxQ= +golang.org/x/mod v0.27.0/go.mod h1:rWI627Fq0DEoudcK+MBkNkCe0EetEaDSwJJkCcjpazc= +golang.org/x/sync v0.16.0 h1:ycBJEhp9p4vXvUZNszeOq0kGTPghopOL8q0fq3vstxw= +golang.org/x/sync v0.16.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= +golang.org/x/tools v0.36.0 h1:kWS0uv/zsvHEle1LbV5LE8QujrxB3wfQyxHfhOk0Qkg= +golang.org/x/tools v0.36.0/go.mod h1:WBDiHKJK8YgLHlcQPYQzNCkUxUypCaa5ZegCVutKm+s= +google.golang.org/protobuf v1.35.1 h1:m3LfL6/Ca+fqnjnlqQXNpFPABW1UD7mjh8KO2mKFytA= +google.golang.org/protobuf v1.35.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +k8s.io/gengo/v2 v2.0.0-20250604051438-85fd79dbfd9f h1:SLb+kxmzfA87x4E4brQzB33VBbT2+x7Zq9ROIHmGn9Q= +k8s.io/gengo/v2 v2.0.0-20250604051438-85fd79dbfd9f/go.mod h1:EJykeLsmFC60UQbYJezXkEsG2FLrt0GPNkU5iK5GWxU= +k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= +k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= +k8s.io/kube-openapi v0.0.0-20260127142750-a19766b6e2d4 h1:HhDfevmPS+OalTjQRKbTHppRIz01AWi8s45TMXStgYY= +k8s.io/kube-openapi v0.0.0-20260127142750-a19766b6e2d4/go.mod h1:kdmbQkyfwUagLfXIad1y2TdrjPFWp2Q89B3qkRwf/pQ= +sigs.k8s.io/randfill v1.0.0 h1:JfjMILfT8A6RbawdsK2JXGBR5AQVfd+9TbzrlneTyrU= +sigs.k8s.io/randfill v1.0.0/go.mod h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY= diff --git a/staging/api/.bingo/variables.env b/staging/api/.bingo/variables.env index 9537239fc3..9696139573 100644 --- a/staging/api/.bingo/variables.env +++ b/staging/api/.bingo/variables.env @@ -12,5 +12,7 @@ CONTROLLER_GEN="${GOBIN}/controller-gen-v0.20.0" KIND="${GOBIN}/kind-v0.31.0" +OPENAPI_GEN="${GOBIN}/openapi-gen-v0.0.0-20260127142750-a19766b6e2d4" + YQ="${GOBIN}/yq-v4.45.1" diff --git a/staging/api/Makefile b/staging/api/Makefile index cac579f0e3..14a66e68d6 100644 --- a/staging/api/Makefile +++ b/staging/api/Makefile @@ -43,7 +43,7 @@ install: ## Build & install operator-verify ### # Code management. ### -.PHONY: format tidy clean generate manifests +.PHONY: format tidy clean generate generate-openapi manifests format: ## Format the source code $(Q)go fmt $(PKGS) @@ -55,9 +55,24 @@ tidy: ## Update dependencies clean: ## Clean up the build artifacts $(Q)rm -rf build -generate: $(CONTROLLER_GEN) ## Generate code +generate: $(CONTROLLER_GEN) generate-openapi ## Generate code $(CONTROLLER_GEN) object:headerFile=./hack/boilerplate.go.txt paths=./... +generate-openapi: $(OPENAPI_GEN) ## Generate OpenAPIModelName() functions and OpenAPI definitions + @# Generate OpenAPIModelName() functions (zz_generated.model_name.go) in each input package. + @# Also produces a consolidated OpenAPI definitions file in pkg/generated/openapi/ (required by openapi-gen). + @# API rule violations are written to api_violations.report instead of failing the build. + @# New violations in api_violations.report will cause `make verify` to fail. + $(OPENAPI_GEN) \ + --go-header-file ./hack/boilerplate.go.txt \ + --output-file zz_generated.openapi.go \ + --output-dir ./pkg/generated/openapi \ + --output-pkg $(REPO)/pkg/generated/openapi \ + --output-model-name-file zz_generated.model_name.go \ + --report-filename ./api_violations.report \ + ./pkg/operators/v1alpha1 \ + ./pkg/lib/version + manifests: $(CONTROLLER_GEN) $(YQ) ## Generate manifests e.g. CRD, RBAC etc @# Create CRDs for new APIs $(CONTROLLER_GEN) crd:crdVersions=v1 output:crd:dir=./crds paths=./pkg/operators/... diff --git a/staging/api/api_violations.report b/staging/api/api_violations.report new file mode 100644 index 0000000000..454559db4a --- /dev/null +++ b/staging/api/api_violations.report @@ -0,0 +1,83 @@ +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,APIServiceDefinitions,Owned +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,APIServiceDefinitions,Required +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,APIServiceDescription,ActionDescriptor +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,APIServiceDescription,Resources +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,APIServiceDescription,SpecDescriptors +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,APIServiceDescription,StatusDescriptors +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,ActionDescriptor,XDescriptors +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,BundleLookup,Conditions +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,CRDDescription,ActionDescriptor +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,CRDDescription,Resources +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,CRDDescription,SpecDescriptors +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,CRDDescription,StatusDescriptors +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,CatalogSourceSpec,Secrets +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,CleanupStatus,PendingDeletion +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,ClusterServiceVersionSpec,Icon +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,ClusterServiceVersionSpec,InstallModes +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,ClusterServiceVersionSpec,Keywords +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,ClusterServiceVersionSpec,Links +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,ClusterServiceVersionSpec,Maintainers +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,ClusterServiceVersionSpec,NativeAPIs +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,ClusterServiceVersionSpec,RelatedImages +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,ClusterServiceVersionSpec,Skips +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,ClusterServiceVersionSpec,WebhookDefinitions +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,ClusterServiceVersionStatus,Conditions +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,ClusterServiceVersionStatus,RequirementStatus +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,CustomResourceDefinitions,Owned +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,CustomResourceDefinitions,Required +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,GrpcPodConfig,Tolerations +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,InstallPlanSpec,ClusterServiceVersionNames +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,InstallPlanStatus,BundleLookups +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,InstallPlanStatus,CatalogSources +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,InstallPlanStatus,Conditions +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,InstallPlanStatus,Plan +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,RequirementStatus,Dependents +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,ResourceList,Instances +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,SpecDescriptor,XDescriptors +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,StatusDescriptor,XDescriptors +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,StrategyDeploymentPermissions,Rules +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,StrategyDetailsDeployment,ClusterPermissions +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,StrategyDetailsDeployment,DeploymentSpecs +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,StrategyDetailsDeployment,Permissions +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,SubscriptionConfig,Env +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,SubscriptionConfig,EnvFrom +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,SubscriptionConfig,Tolerations +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,SubscriptionConfig,VolumeMounts +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,SubscriptionConfig,Volumes +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,SubscriptionStatus,CatalogHealth +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,SubscriptionStatus,Conditions +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,WebhookDescription,AdmissionReviewVersions +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,WebhookDescription,ConversionCRDs +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,WebhookDescription,Rules +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,APIServiceDescription,ActionDescriptor +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,ActionDescriptor,XDescriptors +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,CRDDescription,ActionDescriptor +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,CatalogSourceStatus,ConfigMapResource +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,CatalogSourceStatus,GRPCConnectionState +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,CatalogSourceStatus,RegistryServiceStatus +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,ClusterServiceVersionSpec,APIServiceDefinitions +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,ClusterServiceVersionSpec,CustomResourceDefinitions +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,ClusterServiceVersionSpec,InstallStrategy +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,ClusterServiceVersionSpec,WebhookDefinitions +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,GRPCConnectionState,LastConnectTime +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,Icon,Data +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,Icon,MediaType +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,InstallPlanReference,UID +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,InstallPlanSpec,CatalogSource +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,InstallPlanSpec,CatalogSourceNamespace +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,NamedInstallStrategy,StrategyName +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,NamedInstallStrategy,StrategySpec +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,RegistryPoll,RawInterval +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,SpecDescriptor,XDescriptors +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,StatusDescriptor,XDescriptors +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,StepResource,CatalogSource +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,StepResource,CatalogSourceNamespace +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,StrategyDetailsDeployment,DeploymentSpecs +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,SubscriptionSpec,CatalogSource +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,SubscriptionSpec,CatalogSourceNamespace +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,SubscriptionSpec,Package +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,SubscriptionStatus,Install +API rule violation: streaming_list_type_json_tags,github.com/operator-framework/api/pkg/operators/v1alpha1,CatalogSourceList,ListMeta +API rule violation: streaming_list_type_json_tags,github.com/operator-framework/api/pkg/operators/v1alpha1,ClusterServiceVersionList,ListMeta +API rule violation: streaming_list_type_json_tags,github.com/operator-framework/api/pkg/operators/v1alpha1,InstallPlanList,ListMeta +API rule violation: streaming_list_type_json_tags,github.com/operator-framework/api/pkg/operators/v1alpha1,SubscriptionList,ListMeta diff --git a/staging/api/go.mod b/staging/api/go.mod index 5ca112dfdd..4411497f0e 100644 --- a/staging/api/go.mod +++ b/staging/api/go.mod @@ -1,6 +1,6 @@ module github.com/operator-framework/api -go 1.25.3 +go 1.25.7 require ( github.com/blang/semver/v4 v4.0.0 @@ -9,11 +9,13 @@ require ( github.com/sirupsen/logrus v1.9.4 github.com/spf13/cobra v1.10.2 github.com/stretchr/testify v1.11.1 + go.podman.io/image/v5 v5.39.1 google.golang.org/genproto/googleapis/api v0.0.0-20260202165425-ce8ad4cf556b - k8s.io/api v0.35.0 - k8s.io/apiextensions-apiserver v0.35.0 - k8s.io/apimachinery v0.35.0 - k8s.io/client-go v0.35.0 + k8s.io/api v0.35.1 + k8s.io/apiextensions-apiserver v0.35.1 + k8s.io/apimachinery v0.35.1 + k8s.io/client-go v0.35.1 + k8s.io/kube-openapi v0.0.0-20260127142750-a19766b6e2d4 sigs.k8s.io/controller-runtime v0.23.1 sigs.k8s.io/yaml v1.6.0 ) @@ -25,6 +27,7 @@ require ( github.com/cenkalti/backoff/v5 v5.0.3 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/emicklei/go-restful/v3 v3.12.2 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect github.com/fxamacker/cbor/v2 v2.9.0 // indirect github.com/go-logr/logr v1.4.3 // indirect @@ -52,6 +55,7 @@ require ( github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect + github.com/opencontainers/go-digest v1.0.0 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/prometheus/client_golang v1.23.2 // indirect github.com/prometheus/client_model v0.6.2 // indirect @@ -68,6 +72,7 @@ require ( go.opentelemetry.io/otel/sdk v1.40.0 // indirect go.opentelemetry.io/otel/trace v1.40.0 // indirect go.opentelemetry.io/proto/otlp v1.9.0 // indirect + go.podman.io/storage v1.62.0 // indirect go.yaml.in/yaml/v2 v2.4.3 // indirect go.yaml.in/yaml/v3 v3.0.4 // indirect golang.org/x/exp v0.0.0-20260112195511-716be5621a96 // indirect @@ -86,10 +91,9 @@ require ( google.golang.org/protobuf v1.36.11 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/apiserver v0.35.0 // indirect - k8s.io/component-base v0.35.0 // indirect + k8s.io/apiserver v0.35.1 // indirect + k8s.io/component-base v0.35.1 // indirect k8s.io/klog/v2 v2.130.1 // indirect - k8s.io/kube-openapi v0.0.0-20260127142750-a19766b6e2d4 // indirect k8s.io/utils v0.0.0-20260108192941-914a6e750570 // indirect sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.34.0 // indirect sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 // indirect diff --git a/staging/api/go.sum b/staging/api/go.sum index 6f48c1297b..754745c585 100644 --- a/staging/api/go.sum +++ b/staging/api/go.sum @@ -118,6 +118,8 @@ github.com/onsi/ginkgo/v2 v2.27.2 h1:LzwLj0b89qtIy6SSASkzlNvX6WktqurSHwkk2ipF/Ns github.com/onsi/ginkgo/v2 v2.27.2/go.mod h1:ArE1D/XhNXBXCBkKOLkbsb2c81dQHCRcF5zwn/ykDRo= github.com/onsi/gomega v1.38.2 h1:eZCjf2xjZAqe+LeWvKb5weQ+NcPwX84kqJ0cZNxok2A= github.com/onsi/gomega v1.38.2/go.mod h1:W2MJcYxRGV63b418Ai34Ud0hEdTVXq9NW9+Sx6uXf3k= +github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= +github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= @@ -175,6 +177,10 @@ go.opentelemetry.io/otel/trace v1.40.0 h1:WA4etStDttCSYuhwvEa8OP8I5EWu24lkOzp+ZY go.opentelemetry.io/otel/trace v1.40.0/go.mod h1:zeAhriXecNGP/s2SEG3+Y8X9ujcJOTqQ5RgdEJcawiA= go.opentelemetry.io/proto/otlp v1.9.0 h1:l706jCMITVouPOqEnii2fIAuO3IVGBRPV5ICjceRb/A= go.opentelemetry.io/proto/otlp v1.9.0/go.mod h1:xE+Cx5E/eEHw+ISFkwPLwCZefwVjY+pqKg1qcK03+/4= +go.podman.io/image/v5 v5.39.1 h1:loIw4qHzZzBlUguYZau40u8HbR5MrTPQhwT4Hy6sCm0= +go.podman.io/image/v5 v5.39.1/go.mod h1:SlaR6Pra1ATIx4BcuZ16oafb3QcCHISaKcJbtlN/G/0= +go.podman.io/storage v1.62.0 h1:0QjX1XlzVmbiaulb+aR/CG6p9+pzaqwIeZPe3tEjHbY= +go.podman.io/storage v1.62.0/go.mod h1:A3UBK0XypjNZ6pghRhuxg62+2NIm5lcUGv/7XyMhMUI= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= @@ -241,18 +247,18 @@ gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -k8s.io/api v0.35.0 h1:iBAU5LTyBI9vw3L5glmat1njFK34srdLmktWwLTprlY= -k8s.io/api v0.35.0/go.mod h1:AQ0SNTzm4ZAczM03QH42c7l3bih1TbAXYo0DkF8ktnA= -k8s.io/apiextensions-apiserver v0.35.0 h1:3xHk2rTOdWXXJM+RDQZJvdx0yEOgC0FgQ1PlJatA5T4= -k8s.io/apiextensions-apiserver v0.35.0/go.mod h1:E1Ahk9SADaLQ4qtzYFkwUqusXTcaV2uw3l14aqpL2LU= -k8s.io/apimachinery v0.35.0 h1:Z2L3IHvPVv/MJ7xRxHEtk6GoJElaAqDCCU0S6ncYok8= -k8s.io/apimachinery v0.35.0/go.mod h1:jQCgFZFR1F4Ik7hvr2g84RTJSZegBc8yHgFWKn//hns= -k8s.io/apiserver v0.35.0 h1:CUGo5o+7hW9GcAEF3x3usT3fX4f9r8xmgQeCBDaOgX4= -k8s.io/apiserver v0.35.0/go.mod h1:QUy1U4+PrzbJaM3XGu2tQ7U9A4udRRo5cyxkFX0GEds= -k8s.io/client-go v0.35.0 h1:IAW0ifFbfQQwQmga0UdoH0yvdqrbwMdq9vIFEhRpxBE= -k8s.io/client-go v0.35.0/go.mod h1:q2E5AAyqcbeLGPdoRB+Nxe3KYTfPce1Dnu1myQdqz9o= -k8s.io/component-base v0.35.0 h1:+yBrOhzri2S1BVqyVSvcM3PtPyx5GUxCK2tinZz1G94= -k8s.io/component-base v0.35.0/go.mod h1:85SCX4UCa6SCFt6p3IKAPej7jSnF3L8EbfSyMZayJR0= +k8s.io/api v0.35.1 h1:0PO/1FhlK/EQNVK5+txc4FuhQibV25VLSdLMmGpDE/Q= +k8s.io/api v0.35.1/go.mod h1:28uR9xlXWml9eT0uaGo6y71xK86JBELShLy4wR1XtxM= +k8s.io/apiextensions-apiserver v0.35.1 h1:p5vvALkknlOcAqARwjS20kJffgzHqwyQRM8vHLwgU7w= +k8s.io/apiextensions-apiserver v0.35.1/go.mod h1:2CN4fe1GZ3HMe4wBr25qXyJnJyZaquy4nNlNmb3R7AQ= +k8s.io/apimachinery v0.35.1 h1:yxO6gV555P1YV0SANtnTjXYfiivaTPvCTKX6w6qdDsU= +k8s.io/apimachinery v0.35.1/go.mod h1:jQCgFZFR1F4Ik7hvr2g84RTJSZegBc8yHgFWKn//hns= +k8s.io/apiserver v0.35.1 h1:potxdhhTL4i6AYAa2QCwtlhtB1eCdWQFvJV6fXgJzxs= +k8s.io/apiserver v0.35.1/go.mod h1:BiL6Dd3A2I/0lBnteXfWmCFobHM39vt5+hJQd7Lbpi4= +k8s.io/client-go v0.35.1 h1:+eSfZHwuo/I19PaSxqumjqZ9l5XiTEKbIaJ+j1wLcLM= +k8s.io/client-go v0.35.1/go.mod h1:1p1KxDt3a0ruRfc/pG4qT/3oHmUj1AhSHEcxNSGg+OA= +k8s.io/component-base v0.35.1 h1:XgvpRf4srp037QWfGBLFsYMUQJkE5yMa94UsJU7pmcE= +k8s.io/component-base v0.35.1/go.mod h1:HI/6jXlwkiOL5zL9bqA3en1Ygv60F03oEpnuU1G56Bs= k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= k8s.io/kube-openapi v0.0.0-20260127142750-a19766b6e2d4 h1:HhDfevmPS+OalTjQRKbTHppRIz01AWi8s45TMXStgYY= diff --git a/staging/api/pkg/generated/openapi/zz_generated.openapi.go b/staging/api/pkg/generated/openapi/zz_generated.openapi.go new file mode 100644 index 0000000000..07bef4dca2 --- /dev/null +++ b/staging/api/pkg/generated/openapi/zz_generated.openapi.go @@ -0,0 +1,3379 @@ +//go:build !ignore_autogenerated +// +build !ignore_autogenerated + +/* + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by openapi-gen-v0.0. DO NOT EDIT. + +package openapi + +import ( + version "github.com/operator-framework/api/pkg/lib/version" + v1alpha1 "github.com/operator-framework/api/pkg/operators/v1alpha1" + common "k8s.io/kube-openapi/pkg/common" + spec "k8s.io/kube-openapi/pkg/validation/spec" +) + +func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenAPIDefinition { + return map[string]common.OpenAPIDefinition{ + version.OperatorVersion{}.OpenAPIModelName(): schema_api_pkg_lib_version_OperatorVersion(ref), + v1alpha1.APIResourceReference{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_APIResourceReference(ref), + v1alpha1.APIServiceDefinitions{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_APIServiceDefinitions(ref), + v1alpha1.APIServiceDescription{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_APIServiceDescription(ref), + v1alpha1.ActionDescriptor{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_ActionDescriptor(ref), + v1alpha1.AppLink{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_AppLink(ref), + v1alpha1.BundleLookup{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_BundleLookup(ref), + v1alpha1.BundleLookupCondition{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_BundleLookupCondition(ref), + v1alpha1.CRDDescription{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_CRDDescription(ref), + v1alpha1.CatalogSource{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_CatalogSource(ref), + v1alpha1.CatalogSourceList{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_CatalogSourceList(ref), + v1alpha1.CatalogSourceSpec{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_CatalogSourceSpec(ref), + v1alpha1.CatalogSourceStatus{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_CatalogSourceStatus(ref), + v1alpha1.CleanupSpec{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_CleanupSpec(ref), + v1alpha1.CleanupStatus{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_CleanupStatus(ref), + v1alpha1.ClusterServiceVersion{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_ClusterServiceVersion(ref), + v1alpha1.ClusterServiceVersionCondition{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_ClusterServiceVersionCondition(ref), + v1alpha1.ClusterServiceVersionList{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_ClusterServiceVersionList(ref), + v1alpha1.ClusterServiceVersionSpec{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_ClusterServiceVersionSpec(ref), + v1alpha1.ClusterServiceVersionStatus{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_ClusterServiceVersionStatus(ref), + v1alpha1.ConfigMapResourceReference{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_ConfigMapResourceReference(ref), + v1alpha1.CustomResourceDefinitions{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_CustomResourceDefinitions(ref), + v1alpha1.DependentStatus{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_DependentStatus(ref), + v1alpha1.ExtractContentConfig{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_ExtractContentConfig(ref), + v1alpha1.GRPCConnectionState{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_GRPCConnectionState(ref), + v1alpha1.GrpcPodConfig{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_GrpcPodConfig(ref), + v1alpha1.Icon{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_Icon(ref), + v1alpha1.InstallMode{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_InstallMode(ref), + v1alpha1.InstallPlan{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_InstallPlan(ref), + v1alpha1.InstallPlanCondition{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_InstallPlanCondition(ref), + v1alpha1.InstallPlanList{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_InstallPlanList(ref), + v1alpha1.InstallPlanReference{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_InstallPlanReference(ref), + v1alpha1.InstallPlanSpec{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_InstallPlanSpec(ref), + v1alpha1.InstallPlanStatus{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_InstallPlanStatus(ref), + v1alpha1.Maintainer{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_Maintainer(ref), + v1alpha1.NamedInstallStrategy{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_NamedInstallStrategy(ref), + v1alpha1.RegistryPoll{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_RegistryPoll(ref), + v1alpha1.RegistryServiceStatus{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_RegistryServiceStatus(ref), + v1alpha1.RelatedImage{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_RelatedImage(ref), + v1alpha1.RequirementStatus{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_RequirementStatus(ref), + v1alpha1.ResourceInstance{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_ResourceInstance(ref), + v1alpha1.ResourceList{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_ResourceList(ref), + v1alpha1.SpecDescriptor{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_SpecDescriptor(ref), + v1alpha1.StatusDescriptor{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_StatusDescriptor(ref), + v1alpha1.Step{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_Step(ref), + v1alpha1.StepResource{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_StepResource(ref), + v1alpha1.StrategyDeploymentPermissions{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_StrategyDeploymentPermissions(ref), + v1alpha1.StrategyDeploymentSpec{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_StrategyDeploymentSpec(ref), + v1alpha1.StrategyDetailsDeployment{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_StrategyDetailsDeployment(ref), + v1alpha1.Subscription{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_Subscription(ref), + v1alpha1.SubscriptionCatalogHealth{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_SubscriptionCatalogHealth(ref), + v1alpha1.SubscriptionCondition{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_SubscriptionCondition(ref), + v1alpha1.SubscriptionConfig{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_SubscriptionConfig(ref), + v1alpha1.SubscriptionList{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_SubscriptionList(ref), + v1alpha1.SubscriptionSpec{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_SubscriptionSpec(ref), + v1alpha1.SubscriptionStatus{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_SubscriptionStatus(ref), + v1alpha1.UpdateStrategy{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_UpdateStrategy(ref), + v1alpha1.WebhookDescription{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_WebhookDescription(ref), + } +} + +func schema_api_pkg_lib_version_OperatorVersion(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "OperatorVersion is a wrapper around semver.Version which supports correct marshaling to YAML and JSON.", + Type: version.OperatorVersion{}.OpenAPISchemaType(), + Format: version.OperatorVersion{}.OpenAPISchemaFormat(), + }, + }, + } +} + +func schema_api_pkg_operators_v1alpha1_APIResourceReference(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "APIResourceReference is a reference to a Kubernetes resource type that the referrer utilizes.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "name": { + SchemaProps: spec.SchemaProps{ + Description: "Plural name of the referenced resource type (CustomResourceDefinition.Spec.Names[].Plural). Empty string if the referenced resource type is not a custom resource.", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "kind": { + SchemaProps: spec.SchemaProps{ + Description: "Kind of the referenced resource type.", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "version": { + SchemaProps: spec.SchemaProps{ + Description: "API Version of the referenced resource type.", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"name", "kind", "version"}, + }, + }, + } +} + +func schema_api_pkg_operators_v1alpha1_APIServiceDefinitions(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "APIServiceDefinitions declares all of the extension apis managed or required by an operator being ran by ClusterServiceVersion.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "owned": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.APIServiceDescription{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "required": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.APIServiceDescription{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + }, + }, + }, + Dependencies: []string{ + v1alpha1.APIServiceDescription{}.OpenAPIModelName()}, + } +} + +func schema_api_pkg_operators_v1alpha1_APIServiceDescription(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "APIServiceDescription provides details to OLM about apis provided via aggregation", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "name": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "group": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "version": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "kind": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "deploymentName": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "containerPort": { + SchemaProps: spec.SchemaProps{ + Type: []string{"integer"}, + Format: "int32", + }, + }, + "displayName": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "description": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "resources": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.APIResourceReference{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "statusDescriptors": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.StatusDescriptor{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "specDescriptors": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.SpecDescriptor{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "actionDescriptors": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.ActionDescriptor{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + }, + Required: []string{"name", "group", "version", "kind"}, + }, + }, + Dependencies: []string{ + v1alpha1.APIResourceReference{}.OpenAPIModelName(), v1alpha1.ActionDescriptor{}.OpenAPIModelName(), v1alpha1.SpecDescriptor{}.OpenAPIModelName(), v1alpha1.StatusDescriptor{}.OpenAPIModelName()}, + } +} + +func schema_api_pkg_operators_v1alpha1_ActionDescriptor(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "ActionDescriptor describes a declarative action that can be performed on a custom resource instance", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "path": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "displayName": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "description": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "x-descriptors": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "value": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "byte", + }, + }, + }, + Required: []string{"path"}, + }, + }, + } +} + +func schema_api_pkg_operators_v1alpha1_AppLink(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "name": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "url": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + } +} + +func schema_api_pkg_operators_v1alpha1_BundleLookup(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "BundleLookup is a request to pull and unpackage the content of a bundle to the cluster.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "path": { + SchemaProps: spec.SchemaProps{ + Description: "Path refers to the location of a bundle to pull. It's typically an image reference.", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "identifier": { + SchemaProps: spec.SchemaProps{ + Description: "Identifier is the catalog-unique name of the operator (the name of the CSV for bundles that contain CSVs)", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "replaces": { + SchemaProps: spec.SchemaProps{ + Description: "Replaces is the name of the bundle to replace with the one found at Path.", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "catalogSourceRef": { + SchemaProps: spec.SchemaProps{ + Description: "CatalogSourceRef is a reference to the CatalogSource the bundle path was resolved from.", + Ref: ref("k8s.io/api/core/v1.ObjectReference"), + }, + }, + "conditions": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "Conditions represents the overall state of a BundleLookup.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.BundleLookupCondition{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "properties": { + SchemaProps: spec.SchemaProps{ + Description: "The effective properties of the unpacked bundle.", + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"path", "identifier", "replaces", "catalogSourceRef"}, + }, + }, + Dependencies: []string{ + v1alpha1.BundleLookupCondition{}.OpenAPIModelName(), "k8s.io/api/core/v1.ObjectReference"}, + } +} + +func schema_api_pkg_operators_v1alpha1_BundleLookupCondition(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "type": { + SchemaProps: spec.SchemaProps{ + Description: "Type of condition.", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Description: "Status of the condition, one of True, False, Unknown.", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "reason": { + SchemaProps: spec.SchemaProps{ + Description: "The reason for the condition's last transition.", + Type: []string{"string"}, + Format: "", + }, + }, + "message": { + SchemaProps: spec.SchemaProps{ + Description: "A human readable message indicating details about the transition.", + Type: []string{"string"}, + Format: "", + }, + }, + "lastUpdateTime": { + SchemaProps: spec.SchemaProps{ + Description: "Last time the condition was probed.", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + "lastTransitionTime": { + SchemaProps: spec.SchemaProps{ + Description: "Last time the condition transitioned from one status to another.", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + }, + Required: []string{"type", "status"}, + }, + }, + Dependencies: []string{ + "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, + } +} + +func schema_api_pkg_operators_v1alpha1_CRDDescription(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "CRDDescription provides details to OLM about the CRDs", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "name": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "version": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "kind": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "displayName": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "description": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "resources": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.APIResourceReference{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "statusDescriptors": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.StatusDescriptor{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "specDescriptors": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.SpecDescriptor{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "actionDescriptors": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.ActionDescriptor{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + }, + Required: []string{"name", "version", "kind"}, + }, + }, + Dependencies: []string{ + v1alpha1.APIResourceReference{}.OpenAPIModelName(), v1alpha1.ActionDescriptor{}.OpenAPIModelName(), v1alpha1.SpecDescriptor{}.OpenAPIModelName(), v1alpha1.StatusDescriptor{}.OpenAPIModelName()}, + } +} + +func schema_api_pkg_operators_v1alpha1_CatalogSource(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "CatalogSource is a repository of CSVs, CRDs, and operator packages.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "kind": { + SchemaProps: spec.SchemaProps{ + Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + Type: []string{"string"}, + Format: "", + }, + }, + "apiVersion": { + SchemaProps: spec.SchemaProps{ + Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + Type: []string{"string"}, + Format: "", + }, + }, + "metadata": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), + }, + }, + "spec": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.CatalogSourceSpec{}.OpenAPIModelName()), + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.CatalogSourceStatus{}.OpenAPIModelName()), + }, + }, + }, + Required: []string{"metadata", "spec"}, + }, + }, + Dependencies: []string{ + v1alpha1.CatalogSourceSpec{}.OpenAPIModelName(), v1alpha1.CatalogSourceStatus{}.OpenAPIModelName(), "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, + } +} + +func schema_api_pkg_operators_v1alpha1_CatalogSourceList(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "CatalogSourceList is a repository of CSVs, CRDs, and operator packages.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "kind": { + SchemaProps: spec.SchemaProps{ + Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + Type: []string{"string"}, + Format: "", + }, + }, + "apiVersion": { + SchemaProps: spec.SchemaProps{ + Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + Type: []string{"string"}, + Format: "", + }, + }, + "metadata": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), + }, + }, + "items": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.CatalogSource{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + }, + Required: []string{"metadata", "items"}, + }, + }, + Dependencies: []string{ + v1alpha1.CatalogSource{}.OpenAPIModelName(), "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, + } +} + +func schema_api_pkg_operators_v1alpha1_CatalogSourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "sourceType": { + SchemaProps: spec.SchemaProps{ + Description: "SourceType is the type of source", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "priority": { + SchemaProps: spec.SchemaProps{ + Description: "Priority field assigns a weight to the catalog source to prioritize them so that it can be consumed by the dependency resolver. Usage: Higher weight indicates that this catalog source is preferred over lower weighted catalog sources during dependency resolution. The range of the priority value can go from positive to negative in the range of int32. The default value to a catalog source with unassigned priority would be 0. The catalog source with the same priority values will be ranked lexicographically based on its name.", + Type: []string{"integer"}, + Format: "int32", + }, + }, + "configMap": { + SchemaProps: spec.SchemaProps{ + Description: "ConfigMap is the name of the ConfigMap to be used to back a configmap-server registry. Only used when SourceType = SourceTypeConfigmap or SourceTypeInternal.", + Type: []string{"string"}, + Format: "", + }, + }, + "address": { + SchemaProps: spec.SchemaProps{ + Description: "Address is a host that OLM can use to connect to a pre-existing registry. Format: : Only used when SourceType = SourceTypeGrpc. Ignored when the Image field is set.", + Type: []string{"string"}, + Format: "", + }, + }, + "image": { + SchemaProps: spec.SchemaProps{ + Description: "Image is an operator-registry container image to instantiate a registry-server with. Only used when SourceType = SourceTypeGrpc. If present, the address field is ignored.", + Type: []string{"string"}, + Format: "", + }, + }, + "grpcPodConfig": { + SchemaProps: spec.SchemaProps{ + Description: "GrpcPodConfig exposes different overrides for the pod spec of the CatalogSource Pod. Only used when SourceType = SourceTypeGrpc and Image is set.", + Ref: ref(v1alpha1.GrpcPodConfig{}.OpenAPIModelName()), + }, + }, + "updateStrategy": { + SchemaProps: spec.SchemaProps{ + Description: "UpdateStrategy defines how updated catalog source images can be discovered Consists of an interval that defines polling duration and an embedded strategy type", + Ref: ref(v1alpha1.UpdateStrategy{}.OpenAPIModelName()), + }, + }, + "secrets": { + SchemaProps: spec.SchemaProps{ + Description: "Secrets represent set of secrets that can be used to access the contents of the catalog. It is best to keep this list small, since each will need to be tried for every catalog entry.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "displayName": { + SchemaProps: spec.SchemaProps{ + Description: "Metadata", + Type: []string{"string"}, + Format: "", + }, + }, + "description": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "publisher": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "icon": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.Icon{}.OpenAPIModelName()), + }, + }, + }, + Required: []string{"sourceType"}, + }, + }, + Dependencies: []string{ + v1alpha1.GrpcPodConfig{}.OpenAPIModelName(), v1alpha1.Icon{}.OpenAPIModelName(), v1alpha1.UpdateStrategy{}.OpenAPIModelName()}, + } +} + +func schema_api_pkg_operators_v1alpha1_CatalogSourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "message": { + SchemaProps: spec.SchemaProps{ + Description: "A human readable message indicating details about why the CatalogSource is in this condition.", + Type: []string{"string"}, + Format: "", + }, + }, + "reason": { + SchemaProps: spec.SchemaProps{ + Description: "Reason is the reason the CatalogSource was transitioned to its current state.", + Type: []string{"string"}, + Format: "", + }, + }, + "latestImageRegistryPoll": { + SchemaProps: spec.SchemaProps{ + Description: "The last time the CatalogSource image registry has been polled to ensure the image is up-to-date", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + "configMapReference": { + SchemaProps: spec.SchemaProps{ + Description: "ConfigMapReference (deprecated) is the reference to the ConfigMap containing the catalog source's configuration, when the catalog source is a ConfigMap", + Ref: ref(v1alpha1.ConfigMapResourceReference{}.OpenAPIModelName()), + }, + }, + "registryService": { + SchemaProps: spec.SchemaProps{ + Description: "RegistryService represents the current state of the GRPC service used to serve the catalog", + Ref: ref(v1alpha1.RegistryServiceStatus{}.OpenAPIModelName()), + }, + }, + "connectionState": { + SchemaProps: spec.SchemaProps{ + Description: "ConnectionState represents the current state of the CatalogSource's connection to the registry", + Ref: ref(v1alpha1.GRPCConnectionState{}.OpenAPIModelName()), + }, + }, + "conditions": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "type", + }, + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "Represents the state of a CatalogSource. Note that Message and Reason represent the original status information, which may be migrated to be conditions based in the future. Any new features introduced will use conditions.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Condition"), + }, + }, + }, + }, + }, + }, + }, + }, + Dependencies: []string{ + v1alpha1.ConfigMapResourceReference{}.OpenAPIModelName(), v1alpha1.GRPCConnectionState{}.OpenAPIModelName(), v1alpha1.RegistryServiceStatus{}.OpenAPIModelName(), "k8s.io/apimachinery/pkg/apis/meta/v1.Condition", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, + } +} + +func schema_api_pkg_operators_v1alpha1_CleanupSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "enabled": { + SchemaProps: spec.SchemaProps{ + Default: false, + Type: []string{"boolean"}, + Format: "", + }, + }, + }, + Required: []string{"enabled"}, + }, + }, + } +} + +func schema_api_pkg_operators_v1alpha1_CleanupStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "CleanupStatus represents information about the status of cleanup while a CSV is pending deletion", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "pendingDeletion": { + SchemaProps: spec.SchemaProps{ + Description: "PendingDeletion is the list of custom resource objects that are pending deletion and blocked on finalizers. This indicates the progress of cleanup that is blocking CSV deletion or operator uninstall.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.ResourceList{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + }, + }, + }, + Dependencies: []string{ + v1alpha1.ResourceList{}.OpenAPIModelName()}, + } +} + +func schema_api_pkg_operators_v1alpha1_ClusterServiceVersion(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "ClusterServiceVersion is a Custom Resource of type `ClusterServiceVersionSpec`.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "kind": { + SchemaProps: spec.SchemaProps{ + Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + Type: []string{"string"}, + Format: "", + }, + }, + "apiVersion": { + SchemaProps: spec.SchemaProps{ + Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + Type: []string{"string"}, + Format: "", + }, + }, + "metadata": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), + }, + }, + "spec": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.ClusterServiceVersionSpec{}.OpenAPIModelName()), + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.ClusterServiceVersionStatus{}.OpenAPIModelName()), + }, + }, + }, + Required: []string{"metadata", "spec"}, + }, + }, + Dependencies: []string{ + v1alpha1.ClusterServiceVersionSpec{}.OpenAPIModelName(), v1alpha1.ClusterServiceVersionStatus{}.OpenAPIModelName(), "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, + } +} + +func schema_api_pkg_operators_v1alpha1_ClusterServiceVersionCondition(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "Conditions appear in the status as a record of state transitions on the ClusterServiceVersion", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "phase": { + SchemaProps: spec.SchemaProps{ + Description: "Condition of the ClusterServiceVersion", + Type: []string{"string"}, + Format: "", + }, + }, + "message": { + SchemaProps: spec.SchemaProps{ + Description: "A human readable message indicating details about why the ClusterServiceVersion is in this condition.", + Type: []string{"string"}, + Format: "", + }, + }, + "reason": { + SchemaProps: spec.SchemaProps{ + Description: "A brief CamelCase message indicating details about why the ClusterServiceVersion is in this state. e.g. 'RequirementsNotMet'", + Type: []string{"string"}, + Format: "", + }, + }, + "lastUpdateTime": { + SchemaProps: spec.SchemaProps{ + Description: "Last time we updated the status", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + "lastTransitionTime": { + SchemaProps: spec.SchemaProps{ + Description: "Last time the status transitioned from one status to another.", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + }, + }, + }, + Dependencies: []string{ + "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, + } +} + +func schema_api_pkg_operators_v1alpha1_ClusterServiceVersionList(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "ClusterServiceVersionList represents a list of ClusterServiceVersions.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "kind": { + SchemaProps: spec.SchemaProps{ + Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + Type: []string{"string"}, + Format: "", + }, + }, + "apiVersion": { + SchemaProps: spec.SchemaProps{ + Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + Type: []string{"string"}, + Format: "", + }, + }, + "metadata": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), + }, + }, + "items": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.ClusterServiceVersion{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + }, + Required: []string{"metadata", "items"}, + }, + }, + Dependencies: []string{ + v1alpha1.ClusterServiceVersion{}.OpenAPIModelName(), "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, + } +} + +func schema_api_pkg_operators_v1alpha1_ClusterServiceVersionSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "ClusterServiceVersionSpec declarations tell OLM how to install an operator that can manage apps for a given version.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "install": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.NamedInstallStrategy{}.OpenAPIModelName()), + }, + }, + "version": { + SchemaProps: spec.SchemaProps{ + Ref: ref(version.OperatorVersion{}.OpenAPIModelName()), + }, + }, + "release": { + SchemaProps: spec.SchemaProps{ + Description: "release specifies the packaging version of the operator, defaulting to empty release is optional\n\nA ClusterServiceVersion's release field is used to distinguish between different builds of the same operator version This is useful for operators that need to make changes to the CSV which don't affect their functionality, for example: - to fix a typo in their description - to add/amend annotations or labels - to amend examples or documentation - to produce different builds for different environments\n\nIt is up to operator authors to determine the semantics of release versions they use for their operator. All release versions must conform to the semver prerelease format (dot-separated identifiers containing only alphanumerics and hyphens) and are limited to a maximum length of 20 characters.", + Ref: ref("github.com/operator-framework/api/pkg/lib/release.OperatorRelease"), + }, + }, + "maturity": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "customresourcedefinitions": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.CustomResourceDefinitions{}.OpenAPIModelName()), + }, + }, + "apiservicedefinitions": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.APIServiceDefinitions{}.OpenAPIModelName()), + }, + }, + "webhookdefinitions": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.WebhookDescription{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "nativeAPIs": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.GroupVersionKind"), + }, + }, + }, + }, + }, + "minKubeVersion": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "displayName": { + SchemaProps: spec.SchemaProps{ + Description: "The name of the operator in display format.", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "description": { + SchemaProps: spec.SchemaProps{ + Description: "Description of the operator. Can include the features, limitations or use-cases of the operator.", + Type: []string{"string"}, + Format: "", + }, + }, + "keywords": { + SchemaProps: spec.SchemaProps{ + Description: "A list of keywords describing the operator.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "maintainers": { + SchemaProps: spec.SchemaProps{ + Description: "A list of organizational entities maintaining the operator.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.Maintainer{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "provider": { + SchemaProps: spec.SchemaProps{ + Description: "The publishing entity behind the operator.", + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.AppLink{}.OpenAPIModelName()), + }, + }, + "links": { + SchemaProps: spec.SchemaProps{ + Description: "A list of links related to the operator.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.AppLink{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "icon": { + SchemaProps: spec.SchemaProps{ + Description: "The icon for this operator.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.Icon{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "installModes": { + SchemaProps: spec.SchemaProps{ + Description: "InstallModes specify supported installation types", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.InstallMode{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "replaces": { + SchemaProps: spec.SchemaProps{ + Description: "The name of a CSV this one replaces. Should match the `metadata.Name` field of the old CSV.", + Type: []string{"string"}, + Format: "", + }, + }, + "labels": { + SchemaProps: spec.SchemaProps{ + Description: "Map of string keys and values that can be used to organize and categorize (scope and select) objects.", + Type: []string{"object"}, + AdditionalProperties: &spec.SchemaOrBool{ + Allows: true, + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "annotations": { + SchemaProps: spec.SchemaProps{ + Description: "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata.", + Type: []string{"object"}, + AdditionalProperties: &spec.SchemaOrBool{ + Allows: true, + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "selector": { + SchemaProps: spec.SchemaProps{ + Description: "Label selector for related resources.", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), + }, + }, + "cleanup": { + SchemaProps: spec.SchemaProps{ + Description: "Cleanup specifies the cleanup behaviour when the CSV gets deleted", + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.CleanupSpec{}.OpenAPIModelName()), + }, + }, + "skips": { + SchemaProps: spec.SchemaProps{ + Description: "The name(s) of one or more CSV(s) that should be skipped in the upgrade graph. Should match the `metadata.Name` field of the CSV that should be skipped. This field is only used during catalog creation and plays no part in cluster runtime.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "relatedImages": { + SchemaProps: spec.SchemaProps{ + Description: "List any related images, or other container images that your Operator might require to perform their functions. This list should also include operand images as well. All image references should be specified by digest (SHA) and not by tag. This field is only used during catalog creation and plays no part in cluster runtime.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.RelatedImage{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + }, + Required: []string{"install", "displayName"}, + }, + }, + Dependencies: []string{ + "github.com/operator-framework/api/pkg/lib/release.OperatorRelease", version.OperatorVersion{}.OpenAPIModelName(), v1alpha1.APIServiceDefinitions{}.OpenAPIModelName(), v1alpha1.AppLink{}.OpenAPIModelName(), v1alpha1.CleanupSpec{}.OpenAPIModelName(), v1alpha1.CustomResourceDefinitions{}.OpenAPIModelName(), v1alpha1.Icon{}.OpenAPIModelName(), v1alpha1.InstallMode{}.OpenAPIModelName(), v1alpha1.Maintainer{}.OpenAPIModelName(), v1alpha1.NamedInstallStrategy{}.OpenAPIModelName(), v1alpha1.RelatedImage{}.OpenAPIModelName(), v1alpha1.WebhookDescription{}.OpenAPIModelName(), "k8s.io/apimachinery/pkg/apis/meta/v1.GroupVersionKind", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, + } +} + +func schema_api_pkg_operators_v1alpha1_ClusterServiceVersionStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "ClusterServiceVersionStatus represents information about the status of a CSV. Status may trail the actual state of a system.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "phase": { + SchemaProps: spec.SchemaProps{ + Description: "Current condition of the ClusterServiceVersion", + Type: []string{"string"}, + Format: "", + }, + }, + "message": { + SchemaProps: spec.SchemaProps{ + Description: "A human readable message indicating details about why the ClusterServiceVersion is in this condition.", + Type: []string{"string"}, + Format: "", + }, + }, + "reason": { + SchemaProps: spec.SchemaProps{ + Description: "A brief CamelCase message indicating details about why the ClusterServiceVersion is in this state. e.g. 'RequirementsNotMet'", + Type: []string{"string"}, + Format: "", + }, + }, + "lastUpdateTime": { + SchemaProps: spec.SchemaProps{ + Description: "Last time we updated the status", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + "lastTransitionTime": { + SchemaProps: spec.SchemaProps{ + Description: "Last time the status transitioned from one status to another.", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + "conditions": { + SchemaProps: spec.SchemaProps{ + Description: "List of conditions, a history of state transitions", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.ClusterServiceVersionCondition{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "requirementStatus": { + SchemaProps: spec.SchemaProps{ + Description: "The status of each requirement for this CSV", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.RequirementStatus{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "certsLastUpdated": { + SchemaProps: spec.SchemaProps{ + Description: "Last time the owned APIService certs were updated", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + "certsRotateAt": { + SchemaProps: spec.SchemaProps{ + Description: "Time the owned APIService certs will rotate next", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + "cleanup": { + SchemaProps: spec.SchemaProps{ + Description: "CleanupStatus represents information about the status of cleanup while a CSV is pending deletion", + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.CleanupStatus{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + Dependencies: []string{ + v1alpha1.CleanupStatus{}.OpenAPIModelName(), v1alpha1.ClusterServiceVersionCondition{}.OpenAPIModelName(), v1alpha1.RequirementStatus{}.OpenAPIModelName(), "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, + } +} + +func schema_api_pkg_operators_v1alpha1_ConfigMapResourceReference(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "name": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "namespace": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "uid": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "resourceVersion": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "lastUpdateTime": { + SchemaProps: spec.SchemaProps{ + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + }, + Required: []string{"name", "namespace"}, + }, + }, + Dependencies: []string{ + "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, + } +} + +func schema_api_pkg_operators_v1alpha1_CustomResourceDefinitions(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "CustomResourceDefinitions declares all of the CRDs managed or required by an operator being ran by ClusterServiceVersion.\n\nIf the CRD is present in the Owned list, it is implicitly required.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "owned": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.CRDDescription{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "required": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.CRDDescription{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + }, + }, + }, + Dependencies: []string{ + v1alpha1.CRDDescription{}.OpenAPIModelName()}, + } +} + +func schema_api_pkg_operators_v1alpha1_DependentStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "DependentStatus is the status for a dependent requirement (to prevent infinite nesting)", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "group": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "version": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "kind": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "uuid": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "message": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"group", "version", "kind", "status"}, + }, + }, + } +} + +func schema_api_pkg_operators_v1alpha1_ExtractContentConfig(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "ExtractContentConfig configures context extraction from a file-based catalog index image.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "cacheDir": { + SchemaProps: spec.SchemaProps{ + Description: "CacheDir is the (optional) directory storing the pre-calculated API cache.", + Type: []string{"string"}, + Format: "", + }, + }, + "catalogDir": { + SchemaProps: spec.SchemaProps{ + Description: "CatalogDir is the directory storing the file-based catalog contents.", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"catalogDir"}, + }, + }, + } +} + +func schema_api_pkg_operators_v1alpha1_GRPCConnectionState(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "address": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "lastObservedState": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "lastConnect": { + SchemaProps: spec.SchemaProps{ + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + }, + Required: []string{"lastObservedState"}, + }, + }, + Dependencies: []string{ + "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, + } +} + +func schema_api_pkg_operators_v1alpha1_GrpcPodConfig(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "GrpcPodConfig contains configuration specified for a catalog source", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "nodeSelector": { + SchemaProps: spec.SchemaProps{ + Description: "NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node's labels for the pod to be scheduled on that node.", + Type: []string{"object"}, + AdditionalProperties: &spec.SchemaOrBool{ + Allows: true, + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "tolerations": { + SchemaProps: spec.SchemaProps{ + Description: "Tolerations are the catalog source's pod's tolerations.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/api/core/v1.Toleration"), + }, + }, + }, + }, + }, + "affinity": { + SchemaProps: spec.SchemaProps{ + Description: "Affinity is the catalog source's pod's affinity.", + Ref: ref("k8s.io/api/core/v1.Affinity"), + }, + }, + "priorityClassName": { + SchemaProps: spec.SchemaProps{ + Description: "If specified, indicates the pod's priority. If not specified, the pod priority will be default or zero if there is no default.", + Type: []string{"string"}, + Format: "", + }, + }, + "securityContextConfig": { + SchemaProps: spec.SchemaProps{ + Description: "SecurityContextConfig can be one of `legacy` or `restricted`. The CatalogSource's pod is either injected with the right pod.spec.securityContext and pod.spec.container[*].securityContext values to allow the pod to run in Pod Security Admission (PSA) `restricted` mode, or doesn't set these values at all, in which case the pod can only be run in PSA `baseline` or `privileged` namespaces. If the SecurityContextConfig is unspecified, the mode will be determined by the namespace's PSA configuration. If the namespace is enforcing `restricted` mode, then the pod will be configured as if `restricted` was specified. Otherwise, it will be configured as if `legacy` was specified. Specifying a value other than `legacy` or `restricted` result in a validation error. When using older catalog images, which can not run in `restricted` mode, the SecurityContextConfig should be set to `legacy`.\n\nMore information about PSA can be found here: https://kubernetes.io/docs/concepts/security/pod-security-admission/", + Type: []string{"string"}, + Format: "", + }, + }, + "memoryTarget": { + SchemaProps: spec.SchemaProps{ + Description: "MemoryTarget configures the $GOMEMLIMIT value for the gRPC catalog Pod. This is a soft memory limit for the server, which the runtime will attempt to meet but makes no guarantees that it will do so. If this value is set, the Pod will have the following modifications made to the container running the server: - the $GOMEMLIMIT environment variable will be set to this value in bytes - the memory request will be set to this value\n\nThis field should be set if it's desired to reduce the footprint of a catalog server as much as possible, or if a catalog being served is very large and needs more than the default allocation. If your index image has a file- system cache, determine a good approximation for this value by doubling the size of the package cache at /tmp/cache/cache/packages.json in the index image.\n\nThis field is best-effort; if unset, no default will be used and no Pod memory limit or $GOMEMLIMIT value will be set.", + Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), + }, + }, + "extractContent": { + SchemaProps: spec.SchemaProps{ + Description: "ExtractContent configures the gRPC catalog Pod to extract catalog metadata from the provided index image and use a well-known version of the `opm` server to expose it. The catalog index image that this CatalogSource is configured to use *must* be using the file-based catalogs in order to utilize this feature.", + Ref: ref(v1alpha1.ExtractContentConfig{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + Dependencies: []string{ + v1alpha1.ExtractContentConfig{}.OpenAPIModelName(), "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.Toleration", "k8s.io/apimachinery/pkg/api/resource.Quantity"}, + } +} + +func schema_api_pkg_operators_v1alpha1_Icon(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "base64data": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "mediatype": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"base64data", "mediatype"}, + }, + }, + } +} + +func schema_api_pkg_operators_v1alpha1_InstallMode(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "InstallMode associates an InstallModeType with a flag representing if the CSV supports it", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "type": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "supported": { + SchemaProps: spec.SchemaProps{ + Default: false, + Type: []string{"boolean"}, + Format: "", + }, + }, + }, + Required: []string{"type", "supported"}, + }, + }, + } +} + +func schema_api_pkg_operators_v1alpha1_InstallPlan(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "InstallPlan defines the installation of a set of operators.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "kind": { + SchemaProps: spec.SchemaProps{ + Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + Type: []string{"string"}, + Format: "", + }, + }, + "apiVersion": { + SchemaProps: spec.SchemaProps{ + Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + Type: []string{"string"}, + Format: "", + }, + }, + "metadata": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), + }, + }, + "spec": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.InstallPlanSpec{}.OpenAPIModelName()), + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.InstallPlanStatus{}.OpenAPIModelName()), + }, + }, + }, + Required: []string{"metadata", "spec"}, + }, + }, + Dependencies: []string{ + v1alpha1.InstallPlanSpec{}.OpenAPIModelName(), v1alpha1.InstallPlanStatus{}.OpenAPIModelName(), "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, + } +} + +func schema_api_pkg_operators_v1alpha1_InstallPlanCondition(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "InstallPlanCondition represents the overall status of the execution of an InstallPlan.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "type": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "lastUpdateTime": { + SchemaProps: spec.SchemaProps{ + Description: "True, False, or Unknown", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + "lastTransitionTime": { + SchemaProps: spec.SchemaProps{ + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + "reason": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "message": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + Dependencies: []string{ + "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, + } +} + +func schema_api_pkg_operators_v1alpha1_InstallPlanList(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "InstallPlanList is a list of InstallPlan resources.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "kind": { + SchemaProps: spec.SchemaProps{ + Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + Type: []string{"string"}, + Format: "", + }, + }, + "apiVersion": { + SchemaProps: spec.SchemaProps{ + Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + Type: []string{"string"}, + Format: "", + }, + }, + "metadata": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), + }, + }, + "items": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.InstallPlan{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + }, + Required: []string{"metadata", "items"}, + }, + }, + Dependencies: []string{ + v1alpha1.InstallPlan{}.OpenAPIModelName(), "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, + } +} + +func schema_api_pkg_operators_v1alpha1_InstallPlanReference(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "apiVersion": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "kind": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "name": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "uuid": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"apiVersion", "kind", "name", "uuid"}, + }, + }, + } +} + +func schema_api_pkg_operators_v1alpha1_InstallPlanSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "InstallPlanSpec defines a set of Application resources to be installed", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "source": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "sourceNamespace": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "clusterServiceVersionNames": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "approval": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "approved": { + SchemaProps: spec.SchemaProps{ + Default: false, + Type: []string{"boolean"}, + Format: "", + }, + }, + "generation": { + SchemaProps: spec.SchemaProps{ + Type: []string{"integer"}, + Format: "int32", + }, + }, + }, + Required: []string{"clusterServiceVersionNames", "approval", "approved"}, + }, + }, + } +} + +func schema_api_pkg_operators_v1alpha1_InstallPlanStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "InstallPlanStatus represents the information about the status of steps required to complete installation.\n\nStatus may trail the actual state of a system.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "phase": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "conditions": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.InstallPlanCondition{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "catalogSources": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "plan": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Ref: ref(v1alpha1.Step{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "bundleLookups": { + SchemaProps: spec.SchemaProps{ + Description: "BundleLookups is the set of in-progress requests to pull and unpackage bundle content to the cluster.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.BundleLookup{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "attenuatedServiceAccountRef": { + SchemaProps: spec.SchemaProps{ + Description: "AttenuatedServiceAccountRef references the service account that is used to do scoped operator install.", + Ref: ref("k8s.io/api/core/v1.ObjectReference"), + }, + }, + "startTime": { + SchemaProps: spec.SchemaProps{ + Description: "StartTime is the time when the controller began applying the resources listed in the plan to the cluster.", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + "message": { + SchemaProps: spec.SchemaProps{ + Description: "Message is a human-readable message containing detailed information that may be important to understanding why the plan has its current status.", + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"phase", "catalogSources"}, + }, + }, + Dependencies: []string{ + v1alpha1.BundleLookup{}.OpenAPIModelName(), v1alpha1.InstallPlanCondition{}.OpenAPIModelName(), v1alpha1.Step{}.OpenAPIModelName(), "k8s.io/api/core/v1.ObjectReference", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, + } +} + +func schema_api_pkg_operators_v1alpha1_Maintainer(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "name": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "email": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + } +} + +func schema_api_pkg_operators_v1alpha1_NamedInstallStrategy(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "NamedInstallStrategy represents the block of an ClusterServiceVersion resource where the install strategy is specified.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "strategy": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "spec": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.StrategyDetailsDeployment{}.OpenAPIModelName()), + }, + }, + }, + Required: []string{"strategy"}, + }, + }, + Dependencies: []string{ + v1alpha1.StrategyDetailsDeployment{}.OpenAPIModelName()}, + } +} + +func schema_api_pkg_operators_v1alpha1_RegistryPoll(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "interval": { + SchemaProps: spec.SchemaProps{ + Description: "Interval is used to determine the time interval between checks of the latest catalog source version. The catalog operator polls to see if a new version of the catalog source is available. If available, the latest image is pulled and gRPC traffic is directed to the latest catalog source.", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + } +} + +func schema_api_pkg_operators_v1alpha1_RegistryServiceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "protocol": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "serviceName": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "serviceNamespace": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "port": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "createdAt": { + SchemaProps: spec.SchemaProps{ + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + }, + }, + }, + Dependencies: []string{ + "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, + } +} + +func schema_api_pkg_operators_v1alpha1_RelatedImage(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "name": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "image": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"name", "image"}, + }, + }, + } +} + +func schema_api_pkg_operators_v1alpha1_RequirementStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "group": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "version": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "kind": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "name": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "message": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "uuid": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "dependents": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.DependentStatus{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + }, + Required: []string{"group", "version", "kind", "name", "status", "message"}, + }, + }, + Dependencies: []string{ + v1alpha1.DependentStatus{}.OpenAPIModelName()}, + } +} + +func schema_api_pkg_operators_v1alpha1_ResourceInstance(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "name": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "namespace": { + SchemaProps: spec.SchemaProps{ + Description: "Namespace can be empty for cluster-scoped resources", + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"name"}, + }, + }, + } +} + +func schema_api_pkg_operators_v1alpha1_ResourceList(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "ResourceList represents a list of resources which are of the same Group/Kind", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "group": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "kind": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "instances": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.ResourceInstance{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + }, + Required: []string{"group", "kind", "instances"}, + }, + }, + Dependencies: []string{ + v1alpha1.ResourceInstance{}.OpenAPIModelName()}, + } +} + +func schema_api_pkg_operators_v1alpha1_SpecDescriptor(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "SpecDescriptor describes a field in a spec block of a CRD so that OLM can consume it", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "path": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "displayName": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "description": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "x-descriptors": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "value": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "byte", + }, + }, + }, + Required: []string{"path"}, + }, + }, + } +} + +func schema_api_pkg_operators_v1alpha1_StatusDescriptor(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "StatusDescriptor describes a field in a status block of a CRD so that OLM can consume it", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "path": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "displayName": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "description": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "x-descriptors": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "value": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "byte", + }, + }, + }, + Required: []string{"path"}, + }, + }, + } +} + +func schema_api_pkg_operators_v1alpha1_Step(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "Step represents the status of an individual step in an InstallPlan.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "resolving": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "resource": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.StepResource{}.OpenAPIModelName()), + }, + }, + "optional": { + SchemaProps: spec.SchemaProps{ + Type: []string{"boolean"}, + Format: "", + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"resolving", "resource", "status"}, + }, + }, + Dependencies: []string{ + v1alpha1.StepResource{}.OpenAPIModelName()}, + } +} + +func schema_api_pkg_operators_v1alpha1_StepResource(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "StepResource represents the status of a resource to be tracked by an InstallPlan.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "sourceName": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "sourceNamespace": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "group": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "version": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "kind": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "name": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "manifest": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"sourceName", "sourceNamespace", "group", "version", "kind", "name"}, + }, + }, + } +} + +func schema_api_pkg_operators_v1alpha1_StrategyDeploymentPermissions(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "StrategyDeploymentPermissions describe the rbac rules and service account needed by the install strategy", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "serviceAccountName": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "rules": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/api/rbac/v1.PolicyRule"), + }, + }, + }, + }, + }, + }, + Required: []string{"serviceAccountName", "rules"}, + }, + }, + Dependencies: []string{ + "k8s.io/api/rbac/v1.PolicyRule"}, + } +} + +func schema_api_pkg_operators_v1alpha1_StrategyDeploymentSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "StrategyDeploymentSpec contains the name, spec and labels for the deployment ALM should create", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "name": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "spec": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/api/apps/v1.DeploymentSpec"), + }, + }, + "label": { + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + AdditionalProperties: &spec.SchemaOrBool{ + Allows: true, + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + }, + Required: []string{"name", "spec"}, + }, + }, + Dependencies: []string{ + "k8s.io/api/apps/v1.DeploymentSpec"}, + } +} + +func schema_api_pkg_operators_v1alpha1_StrategyDetailsDeployment(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "StrategyDetailsDeployment represents the parsed details of a Deployment InstallStrategy.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "deployments": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.StrategyDeploymentSpec{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "permissions": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.StrategyDeploymentPermissions{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "clusterPermissions": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.StrategyDeploymentPermissions{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + }, + Required: []string{"deployments"}, + }, + }, + Dependencies: []string{ + v1alpha1.StrategyDeploymentPermissions{}.OpenAPIModelName(), v1alpha1.StrategyDeploymentSpec{}.OpenAPIModelName()}, + } +} + +func schema_api_pkg_operators_v1alpha1_Subscription(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "Subscription keeps operators up to date by tracking changes to Catalogs.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "kind": { + SchemaProps: spec.SchemaProps{ + Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + Type: []string{"string"}, + Format: "", + }, + }, + "apiVersion": { + SchemaProps: spec.SchemaProps{ + Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + Type: []string{"string"}, + Format: "", + }, + }, + "metadata": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), + }, + }, + "spec": { + SchemaProps: spec.SchemaProps{ + Ref: ref(v1alpha1.SubscriptionSpec{}.OpenAPIModelName()), + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.SubscriptionStatus{}.OpenAPIModelName()), + }, + }, + }, + Required: []string{"metadata", "spec"}, + }, + }, + Dependencies: []string{ + v1alpha1.SubscriptionSpec{}.OpenAPIModelName(), v1alpha1.SubscriptionStatus{}.OpenAPIModelName(), "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, + } +} + +func schema_api_pkg_operators_v1alpha1_SubscriptionCatalogHealth(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "SubscriptionCatalogHealth describes the health of a CatalogSource the Subscription knows about.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "catalogSourceRef": { + SchemaProps: spec.SchemaProps{ + Description: "CatalogSourceRef is a reference to a CatalogSource.", + Ref: ref("k8s.io/api/core/v1.ObjectReference"), + }, + }, + "lastUpdated": { + SchemaProps: spec.SchemaProps{ + Description: "LastUpdated represents the last time that the CatalogSourceHealth changed", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + "healthy": { + SchemaProps: spec.SchemaProps{ + Description: "Healthy is true if the CatalogSource is healthy; false otherwise.", + Default: false, + Type: []string{"boolean"}, + Format: "", + }, + }, + }, + Required: []string{"catalogSourceRef", "lastUpdated", "healthy"}, + }, + }, + Dependencies: []string{ + "k8s.io/api/core/v1.ObjectReference", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, + } +} + +func schema_api_pkg_operators_v1alpha1_SubscriptionCondition(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "SubscriptionCondition represents the latest available observations of a Subscription's state.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "type": { + SchemaProps: spec.SchemaProps{ + Description: "Type is the type of Subscription condition.", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Description: "Status is the status of the condition, one of True, False, Unknown.", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "reason": { + SchemaProps: spec.SchemaProps{ + Description: "Reason is a one-word CamelCase reason for the condition's last transition.", + Type: []string{"string"}, + Format: "", + }, + }, + "message": { + SchemaProps: spec.SchemaProps{ + Description: "Message is a human-readable message indicating details about last transition.", + Type: []string{"string"}, + Format: "", + }, + }, + "lastHeartbeatTime": { + SchemaProps: spec.SchemaProps{ + Description: "LastHeartbeatTime is the last time we got an update on a given condition", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + "lastTransitionTime": { + SchemaProps: spec.SchemaProps{ + Description: "LastTransitionTime is the last time the condition transit from one status to another", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + }, + Required: []string{"type", "status"}, + }, + }, + Dependencies: []string{ + "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, + } +} + +func schema_api_pkg_operators_v1alpha1_SubscriptionConfig(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "SubscriptionConfig contains configuration specified for a subscription.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "selector": { + SchemaProps: spec.SchemaProps{ + Description: "Selector is the label selector for pods to be configured. Existing ReplicaSets whose pods are selected by this will be the ones affected by this deployment. It must match the pod template's labels.", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), + }, + }, + "nodeSelector": { + SchemaProps: spec.SchemaProps{ + Description: "NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node's labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/", + Type: []string{"object"}, + AdditionalProperties: &spec.SchemaOrBool{ + Allows: true, + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "tolerations": { + SchemaProps: spec.SchemaProps{ + Description: "Tolerations are the pod's tolerations.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/api/core/v1.Toleration"), + }, + }, + }, + }, + }, + "resources": { + SchemaProps: spec.SchemaProps{ + Description: "Resources represents compute resources required by this container. Immutable. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/", + Ref: ref("k8s.io/api/core/v1.ResourceRequirements"), + }, + }, + "envFrom": { + SchemaProps: spec.SchemaProps{ + Description: "EnvFrom is a list of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Immutable.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/api/core/v1.EnvFromSource"), + }, + }, + }, + }, + }, + "env": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-patch-merge-key": "name", + "x-kubernetes-patch-strategy": "merge", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "Env is a list of environment variables to set in the container. Cannot be updated.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/api/core/v1.EnvVar"), + }, + }, + }, + }, + }, + "volumes": { + SchemaProps: spec.SchemaProps{ + Description: "List of Volumes to set in the podSpec.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/api/core/v1.Volume"), + }, + }, + }, + }, + }, + "volumeMounts": { + SchemaProps: spec.SchemaProps{ + Description: "List of VolumeMounts to set in the container.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/api/core/v1.VolumeMount"), + }, + }, + }, + }, + }, + "affinity": { + SchemaProps: spec.SchemaProps{ + Description: "If specified, overrides the pod's scheduling constraints. nil sub-attributes will *not* override the original values in the pod.spec for those sub-attributes. Use empty object ({}) to erase original sub-attribute values.", + Ref: ref("k8s.io/api/core/v1.Affinity"), + }, + }, + "annotations": { + SchemaProps: spec.SchemaProps{ + Description: "Annotations is an unstructured key value map stored with each Deployment, Pod, APIService in the Operator. Typically, annotations may be set by external tools to store and retrieve arbitrary metadata. Use this field to pre-define annotations that OLM should add to each of the Subscription's deployments, pods, and apiservices.", + Type: []string{"object"}, + AdditionalProperties: &spec.SchemaOrBool{ + Allows: true, + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + }, + }, + }, + Dependencies: []string{ + "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.EnvFromSource", "k8s.io/api/core/v1.EnvVar", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.Toleration", "k8s.io/api/core/v1.Volume", "k8s.io/api/core/v1.VolumeMount", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, + } +} + +func schema_api_pkg_operators_v1alpha1_SubscriptionList(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "SubscriptionList is a list of Subscription resources.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "kind": { + SchemaProps: spec.SchemaProps{ + Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + Type: []string{"string"}, + Format: "", + }, + }, + "apiVersion": { + SchemaProps: spec.SchemaProps{ + Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + Type: []string{"string"}, + Format: "", + }, + }, + "metadata": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), + }, + }, + "items": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.Subscription{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + }, + Required: []string{"metadata", "items"}, + }, + }, + Dependencies: []string{ + v1alpha1.Subscription{}.OpenAPIModelName(), "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, + } +} + +func schema_api_pkg_operators_v1alpha1_SubscriptionSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "SubscriptionSpec defines an Application that can be installed", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "source": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "sourceNamespace": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "name": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "channel": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "startingCSV": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "installPlanApproval": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "config": { + SchemaProps: spec.SchemaProps{ + Ref: ref(v1alpha1.SubscriptionConfig{}.OpenAPIModelName()), + }, + }, + }, + Required: []string{"source", "sourceNamespace", "name"}, + }, + }, + Dependencies: []string{ + v1alpha1.SubscriptionConfig{}.OpenAPIModelName()}, + } +} + +func schema_api_pkg_operators_v1alpha1_SubscriptionStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "currentCSV": { + SchemaProps: spec.SchemaProps{ + Description: "CurrentCSV is the CSV the Subscription is progressing to.", + Type: []string{"string"}, + Format: "", + }, + }, + "installedCSV": { + SchemaProps: spec.SchemaProps{ + Description: "InstalledCSV is the CSV currently installed by the Subscription.", + Type: []string{"string"}, + Format: "", + }, + }, + "installplan": { + SchemaProps: spec.SchemaProps{ + Description: "Install is a reference to the latest InstallPlan generated for the Subscription. DEPRECATED: InstallPlanRef", + Ref: ref(v1alpha1.InstallPlanReference{}.OpenAPIModelName()), + }, + }, + "state": { + SchemaProps: spec.SchemaProps{ + Description: "State represents the current state of the Subscription", + Type: []string{"string"}, + Format: "", + }, + }, + "reason": { + SchemaProps: spec.SchemaProps{ + Description: "Reason is the reason the Subscription was transitioned to its current state.", + Type: []string{"string"}, + Format: "", + }, + }, + "installPlanGeneration": { + SchemaProps: spec.SchemaProps{ + Description: "InstallPlanGeneration is the current generation of the installplan", + Type: []string{"integer"}, + Format: "int32", + }, + }, + "installPlanRef": { + SchemaProps: spec.SchemaProps{ + Description: "InstallPlanRef is a reference to the latest InstallPlan that contains the Subscription's current CSV.", + Ref: ref("k8s.io/api/core/v1.ObjectReference"), + }, + }, + "catalogHealth": { + SchemaProps: spec.SchemaProps{ + Description: "CatalogHealth contains the Subscription's view of its relevant CatalogSources' status. It is used to determine SubscriptionStatusConditions related to CatalogSources.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.SubscriptionCatalogHealth{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "conditions": { + SchemaProps: spec.SchemaProps{ + Description: "Conditions is a list of the latest available observations about a Subscription's current state.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.SubscriptionCondition{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "lastUpdated": { + SchemaProps: spec.SchemaProps{ + Description: "LastUpdated represents the last time that the Subscription status was updated.", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + }, + Required: []string{"lastUpdated"}, + }, + }, + Dependencies: []string{ + v1alpha1.InstallPlanReference{}.OpenAPIModelName(), v1alpha1.SubscriptionCatalogHealth{}.OpenAPIModelName(), v1alpha1.SubscriptionCondition{}.OpenAPIModelName(), "k8s.io/api/core/v1.ObjectReference", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, + } +} + +func schema_api_pkg_operators_v1alpha1_UpdateStrategy(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "UpdateStrategy holds all the different types of catalog source update strategies Currently only registry polling strategy is implemented", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "registryPoll": { + SchemaProps: spec.SchemaProps{ + Ref: ref(v1alpha1.RegistryPoll{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + Dependencies: []string{ + v1alpha1.RegistryPoll{}.OpenAPIModelName()}, + } +} + +func schema_api_pkg_operators_v1alpha1_WebhookDescription(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "WebhookDescription provides details to OLM about required webhooks", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "generateName": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "type": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "deploymentName": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "containerPort": { + SchemaProps: spec.SchemaProps{ + Type: []string{"integer"}, + Format: "int32", + }, + }, + "targetPort": { + SchemaProps: spec.SchemaProps{ + Ref: ref("k8s.io/apimachinery/pkg/util/intstr.IntOrString"), + }, + }, + "rules": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/api/admissionregistration/v1.RuleWithOperations"), + }, + }, + }, + }, + }, + "failurePolicy": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "matchPolicy": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "objectSelector": { + SchemaProps: spec.SchemaProps{ + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), + }, + }, + "sideEffects": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "timeoutSeconds": { + SchemaProps: spec.SchemaProps{ + Type: []string{"integer"}, + Format: "int32", + }, + }, + "admissionReviewVersions": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "reinvocationPolicy": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "webhookPath": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "conversionCRDs": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + }, + Required: []string{"generateName", "type", "sideEffects", "admissionReviewVersions"}, + }, + }, + Dependencies: []string{ + "k8s.io/api/admissionregistration/v1.RuleWithOperations", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector", "k8s.io/apimachinery/pkg/util/intstr.IntOrString"}, + } +} diff --git a/staging/api/pkg/lib/version/doc.go b/staging/api/pkg/lib/version/doc.go new file mode 100644 index 0000000000..7318ee6d19 --- /dev/null +++ b/staging/api/pkg/lib/version/doc.go @@ -0,0 +1,5 @@ +// +k8s:openapi-gen=true +// +k8s:openapi-model-package=com.github.operator-framework.api.pkg.operators.lib.version + +// Package version contains the OperatorVersion type. +package version diff --git a/staging/api/pkg/lib/version/zz_generated.model_name.go b/staging/api/pkg/lib/version/zz_generated.model_name.go new file mode 100644 index 0000000000..1fd31307ba --- /dev/null +++ b/staging/api/pkg/lib/version/zz_generated.model_name.go @@ -0,0 +1,26 @@ +//go:build !ignore_autogenerated +// +build !ignore_autogenerated + +/* + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by openapi-gen-v0.0. DO NOT EDIT. + +package version + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in OperatorVersion) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.lib.version.OperatorVersion" +} diff --git a/staging/api/pkg/operators/v1alpha1/doc.go b/staging/api/pkg/operators/v1alpha1/doc.go index 74bc9b819a..fd9d1d8490 100644 --- a/staging/api/pkg/operators/v1alpha1/doc.go +++ b/staging/api/pkg/operators/v1alpha1/doc.go @@ -1,6 +1,8 @@ // +groupName=operators.coreos.com // +k8s:deepcopy-gen=package // +k8s:conversion-gen=github.com/operator-framework/operator-lifecycle-manager/pkg/api/apis/operators +// +k8s:openapi-gen=true +// +k8s:openapi-model-package=com.github.operator-framework.api.pkg.operators.v1alpha1 // Package v1alpha1 contains resources types for version v1alpha1 of the operators.coreos.com API group. package v1alpha1 diff --git a/staging/api/pkg/operators/v1alpha1/subscription_types.go b/staging/api/pkg/operators/v1alpha1/subscription_types.go index 7aa854f596..292fedf9b9 100644 --- a/staging/api/pkg/operators/v1alpha1/subscription_types.go +++ b/staging/api/pkg/operators/v1alpha1/subscription_types.go @@ -232,8 +232,6 @@ type SubscriptionStatus struct { // CatalogHealth contains the Subscription's view of its relevant CatalogSources' status. // It is used to determine SubscriptionStatusConditions related to CatalogSources. // +optional - // +patchMergeKey= - // +patchStrategy=merge CatalogHealth []SubscriptionCatalogHealth `json:"catalogHealth,omitempty"` // Conditions is a list of the latest available observations about a Subscription's current state. diff --git a/staging/api/pkg/operators/v1alpha1/zz_generated.model_name.go b/staging/api/pkg/operators/v1alpha1/zz_generated.model_name.go new file mode 100644 index 0000000000..555d6d7f09 --- /dev/null +++ b/staging/api/pkg/operators/v1alpha1/zz_generated.model_name.go @@ -0,0 +1,306 @@ +//go:build !ignore_autogenerated +// +build !ignore_autogenerated + +/* + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by openapi-gen-v0.0. DO NOT EDIT. + +package v1alpha1 + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in APIResourceReference) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.APIResourceReference" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in APIServiceDefinitions) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.APIServiceDefinitions" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in APIServiceDescription) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.APIServiceDescription" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in ActionDescriptor) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.ActionDescriptor" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in AppLink) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.AppLink" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in BundleLookup) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.BundleLookup" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in BundleLookupCondition) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.BundleLookupCondition" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in CRDDescription) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.CRDDescription" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in CatalogSource) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.CatalogSource" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in CatalogSourceList) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.CatalogSourceList" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in CatalogSourceSpec) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.CatalogSourceSpec" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in CatalogSourceStatus) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.CatalogSourceStatus" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in CleanupSpec) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.CleanupSpec" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in CleanupStatus) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.CleanupStatus" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in ClusterServiceVersion) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.ClusterServiceVersion" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in ClusterServiceVersionCondition) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.ClusterServiceVersionCondition" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in ClusterServiceVersionList) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.ClusterServiceVersionList" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in ClusterServiceVersionSpec) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.ClusterServiceVersionSpec" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in ClusterServiceVersionStatus) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.ClusterServiceVersionStatus" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in ConfigMapResourceReference) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.ConfigMapResourceReference" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in CustomResourceDefinitions) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.CustomResourceDefinitions" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in DependentStatus) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.DependentStatus" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in ExtractContentConfig) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.ExtractContentConfig" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in GRPCConnectionState) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.GRPCConnectionState" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in GrpcPodConfig) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.GrpcPodConfig" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in Icon) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.Icon" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in InstallMode) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.InstallMode" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in InstallPlan) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.InstallPlan" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in InstallPlanCondition) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.InstallPlanCondition" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in InstallPlanList) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.InstallPlanList" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in InstallPlanReference) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.InstallPlanReference" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in InstallPlanSpec) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.InstallPlanSpec" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in InstallPlanStatus) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.InstallPlanStatus" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in Maintainer) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.Maintainer" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in NamedInstallStrategy) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.NamedInstallStrategy" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in RegistryPoll) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.RegistryPoll" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in RegistryServiceStatus) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.RegistryServiceStatus" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in RelatedImage) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.RelatedImage" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in RequirementStatus) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.RequirementStatus" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in ResourceInstance) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.ResourceInstance" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in ResourceList) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.ResourceList" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in SpecDescriptor) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.SpecDescriptor" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in StatusDescriptor) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.StatusDescriptor" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in Step) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.Step" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in StepResource) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.StepResource" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in StrategyDeploymentPermissions) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.StrategyDeploymentPermissions" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in StrategyDeploymentSpec) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.StrategyDeploymentSpec" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in StrategyDetailsDeployment) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.StrategyDetailsDeployment" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in Subscription) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.Subscription" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in SubscriptionCatalogHealth) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.SubscriptionCatalogHealth" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in SubscriptionCondition) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.SubscriptionCondition" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in SubscriptionConfig) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.SubscriptionConfig" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in SubscriptionList) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.SubscriptionList" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in SubscriptionSpec) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.SubscriptionSpec" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in SubscriptionStatus) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.SubscriptionStatus" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in UpdateStrategy) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.UpdateStrategy" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in WebhookDescription) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.WebhookDescription" +} diff --git a/staging/api/pkg/validation/internal/bundle.go b/staging/api/pkg/validation/internal/bundle.go index c5f7ba18d5..8e4e22019b 100644 --- a/staging/api/pkg/validation/internal/bundle.go +++ b/staging/api/pkg/validation/internal/bundle.go @@ -8,6 +8,7 @@ import ( operatorsv1alpha1 "github.com/operator-framework/api/pkg/operators/v1alpha1" "github.com/operator-framework/api/pkg/validation/errors" interfaces "github.com/operator-framework/api/pkg/validation/interfaces" + "go.podman.io/image/v5/docker/reference" v1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" @@ -46,6 +47,10 @@ func validateBundle(bundle *manifests.Bundle) (result errors.ManifestResult) { if nameErrors != nil { result.Add(nameErrors...) } + relatedImagesErrors := validateRelatedImages(bundle) + if relatedImagesErrors != nil { + result.Add(relatedImagesErrors...) + } return result } @@ -62,6 +67,30 @@ func validateBundleName(bundle *manifests.Bundle) []errors.Error { return errs } +// validateRelatedImages checks that all relatedImages[].image pullspecs are valid +// using github.com/distribution/reference.ParseNormalizedNamed +func validateRelatedImages(bundle *manifests.Bundle) []errors.Error { + var errs []errors.Error + + for i, relatedImage := range bundle.CSV.Spec.RelatedImages { + if relatedImage.Image == "" { + errs = append(errs, errors.ErrInvalidBundle( + fmt.Sprintf("relatedImages[%d] has an empty image field", i), + fmt.Sprintf("spec.relatedImages[%d].image", i))) + continue + } + + // Parse and validate the image reference + if _, err := reference.ParseNormalizedNamed(relatedImage.Image); err != nil { + errs = append(errs, errors.ErrInvalidBundle( + fmt.Sprintf("relatedImages[%d] has an invalid image pullspec %q: %v", i, relatedImage.Image, err), + fmt.Sprintf("spec.relatedImages[%d].image", i))) + } + } + + return errs +} + func validateServiceAccounts(bundle *manifests.Bundle) []errors.Error { // get service account names defined in the csv saNamesFromCSV := make(map[string]struct{}, 0) diff --git a/staging/api/pkg/validation/internal/bundle_test.go b/staging/api/pkg/validation/internal/bundle_test.go index 4bb9ad5973..b0b7ef65a8 100644 --- a/staging/api/pkg/validation/internal/bundle_test.go +++ b/staging/api/pkg/validation/internal/bundle_test.go @@ -2,6 +2,7 @@ package internal import ( "fmt" + "strings" "testing" "github.com/stretchr/testify/require" @@ -302,3 +303,152 @@ func Test_EnsureGetBundleSizeValue(t *testing.T) { }) } } + +func TestValidateRelatedImages(t *testing.T) { + tests := []struct { + name string + relatedImages []v1alpha1.RelatedImage + wantError bool + errCount int + errContains []string + }{ + { + name: "no related images should pass", + relatedImages: []v1alpha1.RelatedImage{}, + wantError: false, + }, + { + name: "valid image with tag should pass", + relatedImages: []v1alpha1.RelatedImage{ + {Name: "operator", Image: "quay.io/operator-framework/my-operator:v1.0.0"}, + }, + wantError: false, + }, + { + name: "valid image with digest should pass", + relatedImages: []v1alpha1.RelatedImage{ + {Name: "operator", Image: "quay.io/operator-framework/my-operator@sha256:abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234"}, + }, + wantError: false, + }, + { + name: "valid image with tag and digest should pass", + relatedImages: []v1alpha1.RelatedImage{ + {Name: "operator", Image: "quay.io/operator-framework/my-operator:v1.0.0@sha256:abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234"}, + }, + wantError: false, + }, + { + name: "valid image without tag (latest implied) should pass", + relatedImages: []v1alpha1.RelatedImage{ + {Name: "operator", Image: "quay.io/operator-framework/my-operator"}, + }, + wantError: false, + }, + { + name: "multiple valid images should pass", + relatedImages: []v1alpha1.RelatedImage{ + {Name: "operator", Image: "quay.io/operator-framework/my-operator:v1.0.0"}, + {Name: "operand", Image: "gcr.io/my-project/my-operand@sha256:abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234"}, + {Name: "init", Image: "docker.io/library/busybox:latest"}, + }, + wantError: false, + }, + { + name: "empty image field should error", + relatedImages: []v1alpha1.RelatedImage{ + {Name: "operator", Image: ""}, + }, + wantError: true, + errCount: 1, + errContains: []string{"empty image field"}, + }, + { + name: "invalid image with spaces should error", + relatedImages: []v1alpha1.RelatedImage{ + {Name: "operator", Image: "invalid image name"}, + }, + wantError: true, + errCount: 1, + errContains: []string{"invalid image pullspec"}, + }, + { + name: "invalid image with uppercase should error", + relatedImages: []v1alpha1.RelatedImage{ + {Name: "operator", Image: "quay.io/Operator-Framework/my-operator:v1.0.0"}, + }, + wantError: true, + errCount: 1, + errContains: []string{"invalid image pullspec", "Operator-Framework"}, + }, + { + name: "invalid image with special characters should error", + relatedImages: []v1alpha1.RelatedImage{ + {Name: "operator", Image: "quay.io/operator-framework/my-operator:v1.0.0!"}, + }, + wantError: true, + errCount: 1, + errContains: []string{"invalid image pullspec"}, + }, + { + name: "invalid digest algorithm should error", + relatedImages: []v1alpha1.RelatedImage{ + {Name: "operator", Image: "quay.io/operator-framework/my-operator@ssha256:abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234"}, + }, + wantError: true, + errCount: 1, + errContains: []string{"invalid image pullspec"}, + }, + { + name: "multiple errors should all be reported", + relatedImages: []v1alpha1.RelatedImage{ + {Name: "operator", Image: ""}, + {Name: "operand", Image: "invalid image"}, + }, + wantError: true, + errCount: 2, + errContains: []string{"relatedImages[0]", "relatedImages[1]"}, + }, + { + name: "mixed valid and invalid images should error", + relatedImages: []v1alpha1.RelatedImage{ + {Name: "operator", Image: "quay.io/operator-framework/my-operator:v1.0.0"}, + {Name: "bad", Image: "invalid image"}, + }, + wantError: true, + errCount: 1, + errContains: []string{"relatedImages[1]", "invalid image pullspec"}, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + bundle := &manifests.Bundle{ + CSV: &v1alpha1.ClusterServiceVersion{ + Spec: v1alpha1.ClusterServiceVersionSpec{ + RelatedImages: tt.relatedImages, + }, + }, + } + + errs := validateRelatedImages(bundle) + + if tt.wantError { + require.Equal(t, tt.errCount, len(errs), "expected %d errors but got %d", tt.errCount, len(errs)) + // Check that each expected string appears in at least one error + for _, expectedStr := range tt.errContains { + found := false + for _, err := range errs { + if strings.Contains(err.Error(), expectedStr) { + found = true + break + } + } + require.True(t, found, "expected to find %q in error messages", expectedStr) + } + } else { + require.Equal(t, 0, len(errs), "expected no errors but got: %v", errs) + } + }) + } +} diff --git a/staging/operator-lifecycle-manager/.github/workflows/goreleaser.yaml b/staging/operator-lifecycle-manager/.github/workflows/goreleaser.yaml index 91b6bb8bcc..57cb63ff6b 100644 --- a/staging/operator-lifecycle-manager/.github/workflows/goreleaser.yaml +++ b/staging/operator-lifecycle-manager/.github/workflows/goreleaser.yaml @@ -39,7 +39,7 @@ jobs: password: ${{ secrets.QUAY_PASSWORD }} - name: Run GoReleaser - uses: goreleaser/goreleaser-action@v6 + uses: goreleaser/goreleaser-action@v7 with: version: 0.177.0 args: release --rm-dist ${{ github.event_name == 'pull_request' && '--snapshot' || '' }} diff --git a/staging/operator-lifecycle-manager/go.mod b/staging/operator-lifecycle-manager/go.mod index 08b90957ce..15d036901e 100644 --- a/staging/operator-lifecycle-manager/go.mod +++ b/staging/operator-lifecycle-manager/go.mod @@ -1,6 +1,6 @@ module github.com/operator-framework/operator-lifecycle-manager -go 1.25.3 +go 1.25.7 require ( github.com/blang/semver/v4 v4.0.0 @@ -21,8 +21,8 @@ require ( github.com/openshift/api v0.0.0-20260204104751-e09e5a4ebcd0 github.com/openshift/client-go v0.0.0-20260108185524-48f4ccfc4e13 github.com/openshift/library-go v0.0.0-20260204111611-b7d4fa0e292a - github.com/operator-framework/api v0.39.0 - github.com/operator-framework/operator-registry v1.63.0 + github.com/operator-framework/api v0.41.0 + github.com/operator-framework/operator-registry v1.64.0 github.com/otiai10/copy v1.14.1 github.com/pkg/errors v0.9.1 github.com/prometheus/client_golang v1.23.2 @@ -131,7 +131,7 @@ require ( github.com/kylelemons/godebug v1.1.0 // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.20 // indirect - github.com/mattn/go-sqlite3 v1.14.33 // indirect + github.com/mattn/go-sqlite3 v1.14.34 // indirect github.com/moby/locker v1.0.1 // indirect github.com/moby/sys/capability v0.4.0 // indirect github.com/moby/sys/mountinfo v0.7.2 // indirect @@ -163,7 +163,7 @@ require ( go.opentelemetry.io/otel/sdk v1.40.0 // indirect go.opentelemetry.io/otel/trace v1.40.0 // indirect go.opentelemetry.io/proto/otlp v1.9.0 // indirect - go.podman.io/common v0.66.1 // indirect + go.podman.io/common v0.67.0 // indirect go.podman.io/storage v1.62.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.1 // indirect @@ -171,7 +171,7 @@ require ( go.yaml.in/yaml/v3 v3.0.4 // indirect golang.org/x/crypto v0.48.0 // indirect golang.org/x/exp v0.0.0-20260112195511-716be5621a96 // indirect - golang.org/x/mod v0.32.0 // indirect + golang.org/x/mod v0.33.0 // indirect golang.org/x/oauth2 v0.34.0 // indirect golang.org/x/sys v0.41.0 // indirect golang.org/x/term v0.40.0 // indirect diff --git a/staging/operator-lifecycle-manager/go.sum b/staging/operator-lifecycle-manager/go.sum index 32f4fc5020..9dbbc3d180 100644 --- a/staging/operator-lifecycle-manager/go.sum +++ b/staging/operator-lifecycle-manager/go.sum @@ -291,8 +291,8 @@ github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWE github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-runewidth v0.0.19 h1:v++JhqYnZuu5jSKrk9RbgF5v4CGUjqRfBm05byFGLdw= github.com/mattn/go-runewidth v0.0.19/go.mod h1:XBkDxAl56ILZc9knddidhrOlY5R/pDhgLpndooCuJAs= -github.com/mattn/go-sqlite3 v1.14.33 h1:A5blZ5ulQo2AtayQ9/limgHEkFreKj1Dv226a1K73s0= -github.com/mattn/go-sqlite3 v1.14.33/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y= +github.com/mattn/go-sqlite3 v1.14.34 h1:3NtcvcUnFBPsuRcno8pUtupspG/GM+9nZ88zgJcp6Zk= +github.com/mattn/go-sqlite3 v1.14.34/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y= github.com/maxbrunsfeld/counterfeiter/v6 v6.12.1 h1:D4O2wLxB384TS3ohBJMfolnxb4qGmoZ1PnWNtit8LYo= github.com/maxbrunsfeld/counterfeiter/v6 v6.12.1/go.mod h1:RuJdxo0oI6dClIaMzdl3hewq3a065RH65dofJP03h8I= github.com/mfridman/tparse v0.18.0 h1:wh6dzOKaIwkUGyKgOntDW4liXSo37qg5AXbIhkMV3vE= @@ -343,10 +343,10 @@ github.com/openshift/client-go v0.0.0-20260108185524-48f4ccfc4e13 h1:6rd4zSo2UaW github.com/openshift/client-go v0.0.0-20260108185524-48f4ccfc4e13/go.mod h1:YvOmPmV7wcJxpfhTDuFqqs2Xpb3M3ovsM6Qs/i2ptq4= github.com/openshift/library-go v0.0.0-20260204111611-b7d4fa0e292a h1:YLnZtVfqGUfTbQ+M06QAslEmP4WrnRoPrk4AtoBJdm8= github.com/openshift/library-go v0.0.0-20260204111611-b7d4fa0e292a/go.mod h1:DCRz1EgdayEmr9b6KXKDL+DWBN0rGHu/VYADeHzPoOk= -github.com/operator-framework/api v0.39.0 h1:9h7aVufeQ+l2ACXJE51hkMFcqrQwJOLM6/vwgGu6tgI= -github.com/operator-framework/api v0.39.0/go.mod h1:tcYIwuznZzfo4HKUTu0dbquIHqxiewnKW/ZmhHKzMH8= -github.com/operator-framework/operator-registry v1.63.0 h1:UIahnpjkH7y98A8AgPw3DUXVsM1yQr36JajRaJ/00nQ= -github.com/operator-framework/operator-registry v1.63.0/go.mod h1:A1w3zzvxx1h5rvkuQG2FgHq6lTMHASLb/YPelq7AmxQ= +github.com/operator-framework/api v0.41.0 h1:B0nutndl95elbLXJGRlkFNTI8OuZIjSqvTEeORPhTKo= +github.com/operator-framework/api v0.41.0/go.mod h1:Ouud+eqruzll9X3iv8wuAOTNAyyEncYXp4IVgbIlIdg= +github.com/operator-framework/operator-registry v1.64.0 h1:aEz8ERg+p9U50LCk2Lda4kuhFrSnqDu37yLFs0ex0qE= +github.com/operator-framework/operator-registry v1.64.0/go.mod h1:6PjoJsunu617xp7sGMxLGLFb6xvnmz6NHi+cUGH8oOY= github.com/otiai10/copy v1.14.1 h1:5/7E6qsUMBaH5AnQ0sSLzzTg1oTECmcCmT6lvF45Na8= github.com/otiai10/copy v1.14.1/go.mod h1:oQwrEDDOci3IM8dJF0d8+jnbfPDllW6vUjNc3DoZm9I= github.com/otiai10/mint v1.6.3 h1:87qsV/aw1F5as1eH1zS/yqHY85ANKVMgkDrf9rcxbQs= @@ -500,8 +500,8 @@ go.opentelemetry.io/otel/trace v1.40.0 h1:WA4etStDttCSYuhwvEa8OP8I5EWu24lkOzp+ZY go.opentelemetry.io/otel/trace v1.40.0/go.mod h1:zeAhriXecNGP/s2SEG3+Y8X9ujcJOTqQ5RgdEJcawiA= go.opentelemetry.io/proto/otlp v1.9.0 h1:l706jCMITVouPOqEnii2fIAuO3IVGBRPV5ICjceRb/A= go.opentelemetry.io/proto/otlp v1.9.0/go.mod h1:xE+Cx5E/eEHw+ISFkwPLwCZefwVjY+pqKg1qcK03+/4= -go.podman.io/common v0.66.1 h1:zDyd4HhVgQAN8LupBHCnhtM3FEOJ9DwmThjulXZq2qA= -go.podman.io/common v0.66.1/go.mod h1:aNd2a0S7pY+fx1X5kpQYuF4hbwLU8ZOccuVrhu7h1Xc= +go.podman.io/common v0.67.0 h1:6Ci5oU1ek08OAxBLkHEqSyWmjNh5zf03PRqZ04cPdwU= +go.podman.io/common v0.67.0/go.mod h1:sB9L8LMtmf5Hpek2qkEyRrcSzpb+gYpG3vq5Khima3U= go.podman.io/image/v5 v5.39.1 h1:loIw4qHzZzBlUguYZau40u8HbR5MrTPQhwT4Hy6sCm0= go.podman.io/image/v5 v5.39.1/go.mod h1:SlaR6Pra1ATIx4BcuZ16oafb3QcCHISaKcJbtlN/G/0= go.podman.io/storage v1.62.0 h1:0QjX1XlzVmbiaulb+aR/CG6p9+pzaqwIeZPe3tEjHbY= @@ -531,8 +531,8 @@ golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvx golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.32.0 h1:9F4d3PHLljb6x//jOyokMv3eX+YDeepZSEo3mFJy93c= -golang.org/x/mod v0.32.0/go.mod h1:SgipZ/3h2Ci89DlEtEXWUk/HteuRin+HHhN+WbNhguU= +golang.org/x/mod v0.33.0 h1:tHFzIWbBifEmbwtGz65eaWyGiGZatSrT9prnU8DbVL8= +golang.org/x/mod v0.33.0/go.mod h1:swjeQEj+6r7fODbD2cqrnje9PnziFuw4bmLbBZFrQ5w= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= diff --git a/staging/operator-lifecycle-manager/pkg/package-server/client/openapi/zz_generated.openapi.go b/staging/operator-lifecycle-manager/pkg/package-server/client/openapi/zz_generated.openapi.go index 0e3e9985f0..38cf1b474e 100644 --- a/staging/operator-lifecycle-manager/pkg/package-server/client/openapi/zz_generated.openapi.go +++ b/staging/operator-lifecycle-manager/pkg/package-server/client/openapi/zz_generated.openapi.go @@ -20,111 +20,142 @@ limitations under the License. package openapi import ( - libversion "github.com/operator-framework/api/pkg/lib/version" + version "github.com/operator-framework/api/pkg/lib/version" + v1alpha1 "github.com/operator-framework/api/pkg/operators/v1alpha1" v1 "github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/apis/operators/v1" resource "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" - version "k8s.io/apimachinery/pkg/version" + pkgversion "k8s.io/apimachinery/pkg/version" common "k8s.io/kube-openapi/pkg/common" spec "k8s.io/kube-openapi/pkg/validation/spec" ) func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenAPIDefinition { return map[string]common.OpenAPIDefinition{ - "github.com/operator-framework/api/pkg/lib/version.OperatorVersion": schema_api_pkg_lib_version_OperatorVersion(ref), - "github.com/operator-framework/api/pkg/operators/v1alpha1.APIResourceReference": schema_api_pkg_operators_v1alpha1_APIResourceReference(ref), - "github.com/operator-framework/api/pkg/operators/v1alpha1.APIServiceDefinitions": schema_api_pkg_operators_v1alpha1_APIServiceDefinitions(ref), - "github.com/operator-framework/api/pkg/operators/v1alpha1.APIServiceDescription": schema_api_pkg_operators_v1alpha1_APIServiceDescription(ref), - "github.com/operator-framework/api/pkg/operators/v1alpha1.ActionDescriptor": schema_api_pkg_operators_v1alpha1_ActionDescriptor(ref), - "github.com/operator-framework/api/pkg/operators/v1alpha1.AppLink": schema_api_pkg_operators_v1alpha1_AppLink(ref), - "github.com/operator-framework/api/pkg/operators/v1alpha1.CRDDescription": schema_api_pkg_operators_v1alpha1_CRDDescription(ref), - "github.com/operator-framework/api/pkg/operators/v1alpha1.CleanupSpec": schema_api_pkg_operators_v1alpha1_CleanupSpec(ref), - "github.com/operator-framework/api/pkg/operators/v1alpha1.CleanupStatus": schema_api_pkg_operators_v1alpha1_CleanupStatus(ref), - "github.com/operator-framework/api/pkg/operators/v1alpha1.ClusterServiceVersionCondition": schema_api_pkg_operators_v1alpha1_ClusterServiceVersionCondition(ref), - "github.com/operator-framework/api/pkg/operators/v1alpha1.ClusterServiceVersionSpec": schema_api_pkg_operators_v1alpha1_ClusterServiceVersionSpec(ref), - "github.com/operator-framework/api/pkg/operators/v1alpha1.ClusterServiceVersionStatus": schema_api_pkg_operators_v1alpha1_ClusterServiceVersionStatus(ref), - "github.com/operator-framework/api/pkg/operators/v1alpha1.CustomResourceDefinitions": schema_api_pkg_operators_v1alpha1_CustomResourceDefinitions(ref), - "github.com/operator-framework/api/pkg/operators/v1alpha1.DependentStatus": schema_api_pkg_operators_v1alpha1_DependentStatus(ref), - "github.com/operator-framework/api/pkg/operators/v1alpha1.Icon": schema_api_pkg_operators_v1alpha1_Icon(ref), - "github.com/operator-framework/api/pkg/operators/v1alpha1.InstallMode": schema_api_pkg_operators_v1alpha1_InstallMode(ref), - "github.com/operator-framework/api/pkg/operators/v1alpha1.Maintainer": schema_api_pkg_operators_v1alpha1_Maintainer(ref), - "github.com/operator-framework/api/pkg/operators/v1alpha1.NamedInstallStrategy": schema_api_pkg_operators_v1alpha1_NamedInstallStrategy(ref), - "github.com/operator-framework/api/pkg/operators/v1alpha1.RelatedImage": schema_api_pkg_operators_v1alpha1_RelatedImage(ref), - "github.com/operator-framework/api/pkg/operators/v1alpha1.RequirementStatus": schema_api_pkg_operators_v1alpha1_RequirementStatus(ref), - "github.com/operator-framework/api/pkg/operators/v1alpha1.ResourceInstance": schema_api_pkg_operators_v1alpha1_ResourceInstance(ref), - "github.com/operator-framework/api/pkg/operators/v1alpha1.ResourceList": schema_api_pkg_operators_v1alpha1_ResourceList(ref), - "github.com/operator-framework/api/pkg/operators/v1alpha1.SpecDescriptor": schema_api_pkg_operators_v1alpha1_SpecDescriptor(ref), - "github.com/operator-framework/api/pkg/operators/v1alpha1.StatusDescriptor": schema_api_pkg_operators_v1alpha1_StatusDescriptor(ref), - "github.com/operator-framework/api/pkg/operators/v1alpha1.StrategyDeploymentPermissions": schema_api_pkg_operators_v1alpha1_StrategyDeploymentPermissions(ref), - "github.com/operator-framework/api/pkg/operators/v1alpha1.StrategyDeploymentSpec": schema_api_pkg_operators_v1alpha1_StrategyDeploymentSpec(ref), - "github.com/operator-framework/api/pkg/operators/v1alpha1.StrategyDetailsDeployment": schema_api_pkg_operators_v1alpha1_StrategyDetailsDeployment(ref), - "github.com/operator-framework/api/pkg/operators/v1alpha1.WebhookDescription": schema_api_pkg_operators_v1alpha1_WebhookDescription(ref), - v1.AppLink{}.OpenAPIModelName(): schema_package_server_apis_operators_v1_AppLink(ref), - v1.CSVDescription{}.OpenAPIModelName(): schema_package_server_apis_operators_v1_CSVDescription(ref), - v1.ChannelEntry{}.OpenAPIModelName(): schema_package_server_apis_operators_v1_ChannelEntry(ref), - v1.Deprecation{}.OpenAPIModelName(): schema_package_server_apis_operators_v1_Deprecation(ref), - v1.Icon{}.OpenAPIModelName(): schema_package_server_apis_operators_v1_Icon(ref), - v1.Maintainer{}.OpenAPIModelName(): schema_package_server_apis_operators_v1_Maintainer(ref), - v1.PackageChannel{}.OpenAPIModelName(): schema_package_server_apis_operators_v1_PackageChannel(ref), - v1.PackageManifest{}.OpenAPIModelName(): schema_package_server_apis_operators_v1_PackageManifest(ref), - v1.PackageManifestList{}.OpenAPIModelName(): schema_package_server_apis_operators_v1_PackageManifestList(ref), - v1.PackageManifestSpec{}.OpenAPIModelName(): schema_package_server_apis_operators_v1_PackageManifestSpec(ref), - v1.PackageManifestStatus{}.OpenAPIModelName(): schema_package_server_apis_operators_v1_PackageManifestStatus(ref), - resource.Quantity{}.OpenAPIModelName(): schema_apimachinery_pkg_api_resource_Quantity(ref), - metav1.APIGroup{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_APIGroup(ref), - metav1.APIGroupList{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_APIGroupList(ref), - metav1.APIResource{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_APIResource(ref), - metav1.APIResourceList{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_APIResourceList(ref), - metav1.APIVersions{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_APIVersions(ref), - metav1.ApplyOptions{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_ApplyOptions(ref), - metav1.Condition{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_Condition(ref), - metav1.CreateOptions{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_CreateOptions(ref), - metav1.DeleteOptions{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_DeleteOptions(ref), - metav1.Duration{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_Duration(ref), - metav1.FieldSelectorRequirement{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_FieldSelectorRequirement(ref), - metav1.FieldsV1{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_FieldsV1(ref), - metav1.GetOptions{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_GetOptions(ref), - metav1.GroupKind{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_GroupKind(ref), - metav1.GroupResource{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_GroupResource(ref), - metav1.GroupVersion{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_GroupVersion(ref), - metav1.GroupVersionForDiscovery{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_GroupVersionForDiscovery(ref), - metav1.GroupVersionKind{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_GroupVersionKind(ref), - metav1.GroupVersionResource{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_GroupVersionResource(ref), - metav1.InternalEvent{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_InternalEvent(ref), - metav1.LabelSelector{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_LabelSelector(ref), - metav1.LabelSelectorRequirement{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_LabelSelectorRequirement(ref), - metav1.List{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_List(ref), - metav1.ListMeta{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_ListMeta(ref), - metav1.ListOptions{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_ListOptions(ref), - metav1.ManagedFieldsEntry{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_ManagedFieldsEntry(ref), - metav1.MicroTime{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_MicroTime(ref), - metav1.ObjectMeta{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_ObjectMeta(ref), - metav1.OwnerReference{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_OwnerReference(ref), - metav1.PartialObjectMetadata{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_PartialObjectMetadata(ref), - metav1.PartialObjectMetadataList{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_PartialObjectMetadataList(ref), - metav1.Patch{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_Patch(ref), - metav1.PatchOptions{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_PatchOptions(ref), - metav1.Preconditions{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_Preconditions(ref), - metav1.RootPaths{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_RootPaths(ref), - metav1.ServerAddressByClientCIDR{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_ServerAddressByClientCIDR(ref), - metav1.Status{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_Status(ref), - metav1.StatusCause{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_StatusCause(ref), - metav1.StatusDetails{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_StatusDetails(ref), - metav1.Table{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_Table(ref), - metav1.TableColumnDefinition{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_TableColumnDefinition(ref), - metav1.TableOptions{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_TableOptions(ref), - metav1.TableRow{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_TableRow(ref), - metav1.TableRowCondition{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_TableRowCondition(ref), - metav1.Time{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_Time(ref), - metav1.Timestamp{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_Timestamp(ref), - metav1.TypeMeta{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_TypeMeta(ref), - metav1.UpdateOptions{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_UpdateOptions(ref), - metav1.WatchEvent{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_WatchEvent(ref), - runtime.RawExtension{}.OpenAPIModelName(): schema_k8sio_apimachinery_pkg_runtime_RawExtension(ref), - runtime.TypeMeta{}.OpenAPIModelName(): schema_k8sio_apimachinery_pkg_runtime_TypeMeta(ref), - runtime.Unknown{}.OpenAPIModelName(): schema_k8sio_apimachinery_pkg_runtime_Unknown(ref), - version.Info{}.OpenAPIModelName(): schema_k8sio_apimachinery_pkg_version_Info(ref), + version.OperatorVersion{}.OpenAPIModelName(): schema_api_pkg_lib_version_OperatorVersion(ref), + v1alpha1.APIResourceReference{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_APIResourceReference(ref), + v1alpha1.APIServiceDefinitions{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_APIServiceDefinitions(ref), + v1alpha1.APIServiceDescription{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_APIServiceDescription(ref), + v1alpha1.ActionDescriptor{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_ActionDescriptor(ref), + v1alpha1.AppLink{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_AppLink(ref), + v1alpha1.BundleLookup{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_BundleLookup(ref), + v1alpha1.BundleLookupCondition{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_BundleLookupCondition(ref), + v1alpha1.CRDDescription{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_CRDDescription(ref), + v1alpha1.CatalogSource{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_CatalogSource(ref), + v1alpha1.CatalogSourceList{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_CatalogSourceList(ref), + v1alpha1.CatalogSourceSpec{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_CatalogSourceSpec(ref), + v1alpha1.CatalogSourceStatus{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_CatalogSourceStatus(ref), + v1alpha1.CleanupSpec{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_CleanupSpec(ref), + v1alpha1.CleanupStatus{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_CleanupStatus(ref), + v1alpha1.ClusterServiceVersion{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_ClusterServiceVersion(ref), + v1alpha1.ClusterServiceVersionCondition{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_ClusterServiceVersionCondition(ref), + v1alpha1.ClusterServiceVersionList{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_ClusterServiceVersionList(ref), + v1alpha1.ClusterServiceVersionSpec{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_ClusterServiceVersionSpec(ref), + v1alpha1.ClusterServiceVersionStatus{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_ClusterServiceVersionStatus(ref), + v1alpha1.ConfigMapResourceReference{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_ConfigMapResourceReference(ref), + v1alpha1.CustomResourceDefinitions{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_CustomResourceDefinitions(ref), + v1alpha1.DependentStatus{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_DependentStatus(ref), + v1alpha1.ExtractContentConfig{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_ExtractContentConfig(ref), + v1alpha1.GRPCConnectionState{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_GRPCConnectionState(ref), + v1alpha1.GrpcPodConfig{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_GrpcPodConfig(ref), + v1alpha1.Icon{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_Icon(ref), + v1alpha1.InstallMode{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_InstallMode(ref), + v1alpha1.InstallPlan{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_InstallPlan(ref), + v1alpha1.InstallPlanCondition{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_InstallPlanCondition(ref), + v1alpha1.InstallPlanList{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_InstallPlanList(ref), + v1alpha1.InstallPlanReference{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_InstallPlanReference(ref), + v1alpha1.InstallPlanSpec{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_InstallPlanSpec(ref), + v1alpha1.InstallPlanStatus{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_InstallPlanStatus(ref), + v1alpha1.Maintainer{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_Maintainer(ref), + v1alpha1.NamedInstallStrategy{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_NamedInstallStrategy(ref), + v1alpha1.RegistryPoll{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_RegistryPoll(ref), + v1alpha1.RegistryServiceStatus{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_RegistryServiceStatus(ref), + v1alpha1.RelatedImage{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_RelatedImage(ref), + v1alpha1.RequirementStatus{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_RequirementStatus(ref), + v1alpha1.ResourceInstance{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_ResourceInstance(ref), + v1alpha1.ResourceList{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_ResourceList(ref), + v1alpha1.SpecDescriptor{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_SpecDescriptor(ref), + v1alpha1.StatusDescriptor{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_StatusDescriptor(ref), + v1alpha1.Step{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_Step(ref), + v1alpha1.StepResource{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_StepResource(ref), + v1alpha1.StrategyDeploymentPermissions{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_StrategyDeploymentPermissions(ref), + v1alpha1.StrategyDeploymentSpec{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_StrategyDeploymentSpec(ref), + v1alpha1.StrategyDetailsDeployment{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_StrategyDetailsDeployment(ref), + v1alpha1.Subscription{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_Subscription(ref), + v1alpha1.SubscriptionCatalogHealth{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_SubscriptionCatalogHealth(ref), + v1alpha1.SubscriptionCondition{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_SubscriptionCondition(ref), + v1alpha1.SubscriptionConfig{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_SubscriptionConfig(ref), + v1alpha1.SubscriptionList{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_SubscriptionList(ref), + v1alpha1.SubscriptionSpec{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_SubscriptionSpec(ref), + v1alpha1.SubscriptionStatus{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_SubscriptionStatus(ref), + v1alpha1.UpdateStrategy{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_UpdateStrategy(ref), + v1alpha1.WebhookDescription{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_WebhookDescription(ref), + v1.AppLink{}.OpenAPIModelName(): schema_package_server_apis_operators_v1_AppLink(ref), + v1.CSVDescription{}.OpenAPIModelName(): schema_package_server_apis_operators_v1_CSVDescription(ref), + v1.ChannelEntry{}.OpenAPIModelName(): schema_package_server_apis_operators_v1_ChannelEntry(ref), + v1.Deprecation{}.OpenAPIModelName(): schema_package_server_apis_operators_v1_Deprecation(ref), + v1.Icon{}.OpenAPIModelName(): schema_package_server_apis_operators_v1_Icon(ref), + v1.Maintainer{}.OpenAPIModelName(): schema_package_server_apis_operators_v1_Maintainer(ref), + v1.PackageChannel{}.OpenAPIModelName(): schema_package_server_apis_operators_v1_PackageChannel(ref), + v1.PackageManifest{}.OpenAPIModelName(): schema_package_server_apis_operators_v1_PackageManifest(ref), + v1.PackageManifestList{}.OpenAPIModelName(): schema_package_server_apis_operators_v1_PackageManifestList(ref), + v1.PackageManifestSpec{}.OpenAPIModelName(): schema_package_server_apis_operators_v1_PackageManifestSpec(ref), + v1.PackageManifestStatus{}.OpenAPIModelName(): schema_package_server_apis_operators_v1_PackageManifestStatus(ref), + resource.Quantity{}.OpenAPIModelName(): schema_apimachinery_pkg_api_resource_Quantity(ref), + metav1.APIGroup{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_APIGroup(ref), + metav1.APIGroupList{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_APIGroupList(ref), + metav1.APIResource{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_APIResource(ref), + metav1.APIResourceList{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_APIResourceList(ref), + metav1.APIVersions{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_APIVersions(ref), + metav1.ApplyOptions{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_ApplyOptions(ref), + metav1.Condition{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_Condition(ref), + metav1.CreateOptions{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_CreateOptions(ref), + metav1.DeleteOptions{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_DeleteOptions(ref), + metav1.Duration{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_Duration(ref), + metav1.FieldSelectorRequirement{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_FieldSelectorRequirement(ref), + metav1.FieldsV1{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_FieldsV1(ref), + metav1.GetOptions{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_GetOptions(ref), + metav1.GroupKind{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_GroupKind(ref), + metav1.GroupResource{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_GroupResource(ref), + metav1.GroupVersion{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_GroupVersion(ref), + metav1.GroupVersionForDiscovery{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_GroupVersionForDiscovery(ref), + metav1.GroupVersionKind{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_GroupVersionKind(ref), + metav1.GroupVersionResource{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_GroupVersionResource(ref), + metav1.InternalEvent{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_InternalEvent(ref), + metav1.LabelSelector{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_LabelSelector(ref), + metav1.LabelSelectorRequirement{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_LabelSelectorRequirement(ref), + metav1.List{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_List(ref), + metav1.ListMeta{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_ListMeta(ref), + metav1.ListOptions{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_ListOptions(ref), + metav1.ManagedFieldsEntry{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_ManagedFieldsEntry(ref), + metav1.MicroTime{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_MicroTime(ref), + metav1.ObjectMeta{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_ObjectMeta(ref), + metav1.OwnerReference{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_OwnerReference(ref), + metav1.PartialObjectMetadata{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_PartialObjectMetadata(ref), + metav1.PartialObjectMetadataList{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_PartialObjectMetadataList(ref), + metav1.Patch{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_Patch(ref), + metav1.PatchOptions{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_PatchOptions(ref), + metav1.Preconditions{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_Preconditions(ref), + metav1.RootPaths{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_RootPaths(ref), + metav1.ServerAddressByClientCIDR{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_ServerAddressByClientCIDR(ref), + metav1.Status{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_Status(ref), + metav1.StatusCause{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_StatusCause(ref), + metav1.StatusDetails{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_StatusDetails(ref), + metav1.Table{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_Table(ref), + metav1.TableColumnDefinition{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_TableColumnDefinition(ref), + metav1.TableOptions{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_TableOptions(ref), + metav1.TableRow{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_TableRow(ref), + metav1.TableRowCondition{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_TableRowCondition(ref), + metav1.Time{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_Time(ref), + metav1.Timestamp{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_Timestamp(ref), + metav1.TypeMeta{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_TypeMeta(ref), + metav1.UpdateOptions{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_UpdateOptions(ref), + metav1.WatchEvent{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_WatchEvent(ref), + runtime.RawExtension{}.OpenAPIModelName(): schema_k8sio_apimachinery_pkg_runtime_RawExtension(ref), + runtime.TypeMeta{}.OpenAPIModelName(): schema_k8sio_apimachinery_pkg_runtime_TypeMeta(ref), + runtime.Unknown{}.OpenAPIModelName(): schema_k8sio_apimachinery_pkg_runtime_Unknown(ref), + pkgversion.Info{}.OpenAPIModelName(): schema_k8sio_apimachinery_pkg_version_Info(ref), } } @@ -133,8 +164,8 @@ func schema_api_pkg_lib_version_OperatorVersion(ref common.ReferenceCallback) co Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ Description: "OperatorVersion is a wrapper around semver.Version which supports correct marshaling to YAML and JSON.", - Type: libversion.OperatorVersion{}.OpenAPISchemaType(), - Format: libversion.OperatorVersion{}.OpenAPISchemaFormat(), + Type: version.OperatorVersion{}.OpenAPISchemaType(), + Format: version.OperatorVersion{}.OpenAPISchemaFormat(), }, }, } @@ -192,7 +223,7 @@ func schema_api_pkg_operators_v1alpha1_APIServiceDefinitions(ref common.Referenc Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.APIServiceDescription"), + Ref: ref(v1alpha1.APIServiceDescription{}.OpenAPIModelName()), }, }, }, @@ -205,7 +236,7 @@ func schema_api_pkg_operators_v1alpha1_APIServiceDefinitions(ref common.Referenc Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.APIServiceDescription"), + Ref: ref(v1alpha1.APIServiceDescription{}.OpenAPIModelName()), }, }, }, @@ -215,7 +246,7 @@ func schema_api_pkg_operators_v1alpha1_APIServiceDefinitions(ref common.Referenc }, }, Dependencies: []string{ - "github.com/operator-framework/api/pkg/operators/v1alpha1.APIServiceDescription"}, + v1alpha1.APIServiceDescription{}.OpenAPIModelName()}, } } @@ -285,7 +316,7 @@ func schema_api_pkg_operators_v1alpha1_APIServiceDescription(ref common.Referenc Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.APIResourceReference"), + Ref: ref(v1alpha1.APIResourceReference{}.OpenAPIModelName()), }, }, }, @@ -298,7 +329,7 @@ func schema_api_pkg_operators_v1alpha1_APIServiceDescription(ref common.Referenc Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.StatusDescriptor"), + Ref: ref(v1alpha1.StatusDescriptor{}.OpenAPIModelName()), }, }, }, @@ -311,7 +342,7 @@ func schema_api_pkg_operators_v1alpha1_APIServiceDescription(ref common.Referenc Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.SpecDescriptor"), + Ref: ref(v1alpha1.SpecDescriptor{}.OpenAPIModelName()), }, }, }, @@ -324,7 +355,7 @@ func schema_api_pkg_operators_v1alpha1_APIServiceDescription(ref common.Referenc Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.ActionDescriptor"), + Ref: ref(v1alpha1.ActionDescriptor{}.OpenAPIModelName()), }, }, }, @@ -335,7 +366,7 @@ func schema_api_pkg_operators_v1alpha1_APIServiceDescription(ref common.Referenc }, }, Dependencies: []string{ - "github.com/operator-framework/api/pkg/operators/v1alpha1.APIResourceReference", "github.com/operator-framework/api/pkg/operators/v1alpha1.ActionDescriptor", "github.com/operator-framework/api/pkg/operators/v1alpha1.SpecDescriptor", "github.com/operator-framework/api/pkg/operators/v1alpha1.StatusDescriptor"}, + v1alpha1.APIResourceReference{}.OpenAPIModelName(), v1alpha1.ActionDescriptor{}.OpenAPIModelName(), v1alpha1.SpecDescriptor{}.OpenAPIModelName(), v1alpha1.StatusDescriptor{}.OpenAPIModelName()}, } } @@ -416,6 +447,136 @@ func schema_api_pkg_operators_v1alpha1_AppLink(ref common.ReferenceCallback) com } } +func schema_api_pkg_operators_v1alpha1_BundleLookup(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "BundleLookup is a request to pull and unpackage the content of a bundle to the cluster.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "path": { + SchemaProps: spec.SchemaProps{ + Description: "Path refers to the location of a bundle to pull. It's typically an image reference.", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "identifier": { + SchemaProps: spec.SchemaProps{ + Description: "Identifier is the catalog-unique name of the operator (the name of the CSV for bundles that contain CSVs)", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "replaces": { + SchemaProps: spec.SchemaProps{ + Description: "Replaces is the name of the bundle to replace with the one found at Path.", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "catalogSourceRef": { + SchemaProps: spec.SchemaProps{ + Description: "CatalogSourceRef is a reference to the CatalogSource the bundle path was resolved from.", + Ref: ref("k8s.io/api/core/v1.ObjectReference"), + }, + }, + "conditions": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "Conditions represents the overall state of a BundleLookup.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.BundleLookupCondition{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "properties": { + SchemaProps: spec.SchemaProps{ + Description: "The effective properties of the unpacked bundle.", + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"path", "identifier", "replaces", "catalogSourceRef"}, + }, + }, + Dependencies: []string{ + v1alpha1.BundleLookupCondition{}.OpenAPIModelName(), "k8s.io/api/core/v1.ObjectReference"}, + } +} + +func schema_api_pkg_operators_v1alpha1_BundleLookupCondition(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "type": { + SchemaProps: spec.SchemaProps{ + Description: "Type of condition.", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Description: "Status of the condition, one of True, False, Unknown.", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "reason": { + SchemaProps: spec.SchemaProps{ + Description: "The reason for the condition's last transition.", + Type: []string{"string"}, + Format: "", + }, + }, + "message": { + SchemaProps: spec.SchemaProps{ + Description: "A human readable message indicating details about the transition.", + Type: []string{"string"}, + Format: "", + }, + }, + "lastUpdateTime": { + SchemaProps: spec.SchemaProps{ + Description: "Last time the condition was probed.", + Ref: ref(metav1.Time{}.OpenAPIModelName()), + }, + }, + "lastTransitionTime": { + SchemaProps: spec.SchemaProps{ + Description: "Last time the condition transitioned from one status to another.", + Ref: ref(metav1.Time{}.OpenAPIModelName()), + }, + }, + }, + Required: []string{"type", "status"}, + }, + }, + Dependencies: []string{ + metav1.Time{}.OpenAPIModelName()}, + } +} + func schema_api_pkg_operators_v1alpha1_CRDDescription(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ @@ -463,7 +624,7 @@ func schema_api_pkg_operators_v1alpha1_CRDDescription(ref common.ReferenceCallba Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.APIResourceReference"), + Ref: ref(v1alpha1.APIResourceReference{}.OpenAPIModelName()), }, }, }, @@ -476,7 +637,7 @@ func schema_api_pkg_operators_v1alpha1_CRDDescription(ref common.ReferenceCallba Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.StatusDescriptor"), + Ref: ref(v1alpha1.StatusDescriptor{}.OpenAPIModelName()), }, }, }, @@ -489,7 +650,7 @@ func schema_api_pkg_operators_v1alpha1_CRDDescription(ref common.ReferenceCallba Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.SpecDescriptor"), + Ref: ref(v1alpha1.SpecDescriptor{}.OpenAPIModelName()), }, }, }, @@ -502,7 +663,7 @@ func schema_api_pkg_operators_v1alpha1_CRDDescription(ref common.ReferenceCallba Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.ActionDescriptor"), + Ref: ref(v1alpha1.ActionDescriptor{}.OpenAPIModelName()), }, }, }, @@ -513,374 +674,393 @@ func schema_api_pkg_operators_v1alpha1_CRDDescription(ref common.ReferenceCallba }, }, Dependencies: []string{ - "github.com/operator-framework/api/pkg/operators/v1alpha1.APIResourceReference", "github.com/operator-framework/api/pkg/operators/v1alpha1.ActionDescriptor", "github.com/operator-framework/api/pkg/operators/v1alpha1.SpecDescriptor", "github.com/operator-framework/api/pkg/operators/v1alpha1.StatusDescriptor"}, + v1alpha1.APIResourceReference{}.OpenAPIModelName(), v1alpha1.ActionDescriptor{}.OpenAPIModelName(), v1alpha1.SpecDescriptor{}.OpenAPIModelName(), v1alpha1.StatusDescriptor{}.OpenAPIModelName()}, } } -func schema_api_pkg_operators_v1alpha1_CleanupSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_api_pkg_operators_v1alpha1_CatalogSource(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, + Description: "CatalogSource is a repository of CSVs, CRDs, and operator packages.", + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "enabled": { + "kind": { SchemaProps: spec.SchemaProps{ - Default: false, - Type: []string{"boolean"}, - Format: "", + Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + Type: []string{"string"}, + Format: "", }, }, - }, - Required: []string{"enabled"}, - }, - }, - } -} - -func schema_api_pkg_operators_v1alpha1_CleanupStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "CleanupStatus represents information about the status of cleanup while a CSV is pending deletion", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "pendingDeletion": { + "apiVersion": { SchemaProps: spec.SchemaProps{ - Description: "PendingDeletion is the list of custom resource objects that are pending deletion and blocked on finalizers. This indicates the progress of cleanup that is blocking CSV deletion or operator uninstall.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.ResourceList"), - }, - }, - }, + Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + Type: []string{"string"}, + Format: "", + }, + }, + "metadata": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(metav1.ObjectMeta{}.OpenAPIModelName()), + }, + }, + "spec": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.CatalogSourceSpec{}.OpenAPIModelName()), + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.CatalogSourceStatus{}.OpenAPIModelName()), }, }, }, + Required: []string{"metadata", "spec"}, }, }, Dependencies: []string{ - "github.com/operator-framework/api/pkg/operators/v1alpha1.ResourceList"}, + v1alpha1.CatalogSourceSpec{}.OpenAPIModelName(), v1alpha1.CatalogSourceStatus{}.OpenAPIModelName(), metav1.ObjectMeta{}.OpenAPIModelName()}, } } -func schema_api_pkg_operators_v1alpha1_ClusterServiceVersionCondition(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_api_pkg_operators_v1alpha1_CatalogSourceList(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "Conditions appear in the status as a record of state transitions on the ClusterServiceVersion", + Description: "CatalogSourceList is a repository of CSVs, CRDs, and operator packages.", Type: []string{"object"}, Properties: map[string]spec.Schema{ - "phase": { - SchemaProps: spec.SchemaProps{ - Description: "Condition of the ClusterServiceVersion", - Type: []string{"string"}, - Format: "", - }, - }, - "message": { + "kind": { SchemaProps: spec.SchemaProps{ - Description: "A human readable message indicating details about why the ClusterServiceVersion is in this condition.", + Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", Type: []string{"string"}, Format: "", }, }, - "reason": { + "apiVersion": { SchemaProps: spec.SchemaProps{ - Description: "A brief CamelCase message indicating details about why the ClusterServiceVersion is in this state. e.g. 'RequirementsNotMet'", + Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", Type: []string{"string"}, Format: "", }, }, - "lastUpdateTime": { + "metadata": { SchemaProps: spec.SchemaProps{ - Description: "Last time we updated the status", - Ref: ref(metav1.Time{}.OpenAPIModelName()), + Default: map[string]interface{}{}, + Ref: ref(metav1.ListMeta{}.OpenAPIModelName()), }, }, - "lastTransitionTime": { + "items": { SchemaProps: spec.SchemaProps{ - Description: "Last time the status transitioned from one status to another.", - Ref: ref(metav1.Time{}.OpenAPIModelName()), + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.CatalogSource{}.OpenAPIModelName()), + }, + }, + }, }, }, }, + Required: []string{"metadata", "items"}, }, }, Dependencies: []string{ - metav1.Time{}.OpenAPIModelName()}, + v1alpha1.CatalogSource{}.OpenAPIModelName(), metav1.ListMeta{}.OpenAPIModelName()}, } } -func schema_api_pkg_operators_v1alpha1_ClusterServiceVersionSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_api_pkg_operators_v1alpha1_CatalogSourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "ClusterServiceVersionSpec declarations tell OLM how to install an operator that can manage apps for a given version.", - Type: []string{"object"}, + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "install": { + "sourceType": { SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.NamedInstallStrategy"), + Description: "SourceType is the type of source", + Default: "", + Type: []string{"string"}, + Format: "", }, }, - "version": { + "priority": { SchemaProps: spec.SchemaProps{ - Ref: ref("github.com/operator-framework/api/pkg/lib/version.OperatorVersion"), + Description: "Priority field assigns a weight to the catalog source to prioritize them so that it can be consumed by the dependency resolver. Usage: Higher weight indicates that this catalog source is preferred over lower weighted catalog sources during dependency resolution. The range of the priority value can go from positive to negative in the range of int32. The default value to a catalog source with unassigned priority would be 0. The catalog source with the same priority values will be ranked lexicographically based on its name.", + Type: []string{"integer"}, + Format: "int32", }, }, - "release": { + "configMap": { SchemaProps: spec.SchemaProps{ - Description: "release specifies the packaging version of the operator, defaulting to empty release is optional\n\nA ClusterServiceVersion's release field is used to distinguish between different builds of the same operator version This is useful for operators that need to make changes to the CSV which don't affect their functionality, for example: - to fix a typo in their description - to add/amend annotations or labels - to amend examples or documentation - to produce different builds for different environments\n\nIt is up to operator authors to determine the semantics of release versions they use for their operator. All release versions must conform to the semver prerelease format (dot-separated identifiers containing only alphanumerics and hyphens) and are limited to a maximum length of 20 characters.", - Ref: ref("github.com/operator-framework/api/pkg/lib/release.OperatorRelease"), + Description: "ConfigMap is the name of the ConfigMap to be used to back a configmap-server registry. Only used when SourceType = SourceTypeConfigmap or SourceTypeInternal.", + Type: []string{"string"}, + Format: "", }, }, - "maturity": { + "address": { SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", + Description: "Address is a host that OLM can use to connect to a pre-existing registry. Format: : Only used when SourceType = SourceTypeGrpc. Ignored when the Image field is set.", + Type: []string{"string"}, + Format: "", }, }, - "customresourcedefinitions": { + "image": { SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.CustomResourceDefinitions"), + Description: "Image is an operator-registry container image to instantiate a registry-server with. Only used when SourceType = SourceTypeGrpc. If present, the address field is ignored.", + Type: []string{"string"}, + Format: "", }, }, - "apiservicedefinitions": { + "grpcPodConfig": { SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.APIServiceDefinitions"), + Description: "GrpcPodConfig exposes different overrides for the pod spec of the CatalogSource Pod. Only used when SourceType = SourceTypeGrpc and Image is set.", + Ref: ref(v1alpha1.GrpcPodConfig{}.OpenAPIModelName()), }, }, - "webhookdefinitions": { + "updateStrategy": { SchemaProps: spec.SchemaProps{ - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.WebhookDescription"), - }, - }, - }, + Description: "UpdateStrategy defines how updated catalog source images can be discovered Consists of an interval that defines polling duration and an embedded strategy type", + Ref: ref(v1alpha1.UpdateStrategy{}.OpenAPIModelName()), }, }, - "nativeAPIs": { + "secrets": { SchemaProps: spec.SchemaProps{ - Type: []string{"array"}, + Description: "Secrets represent set of secrets that can be used to access the contents of the catalog. It is best to keep this list small, since each will need to be tried for every catalog entry.", + Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref(metav1.GroupVersionKind{}.OpenAPIModelName()), + Default: "", + Type: []string{"string"}, + Format: "", }, }, }, }, }, - "minKubeVersion": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, "displayName": { SchemaProps: spec.SchemaProps{ - Description: "The name of the operator in display format.", - Default: "", + Description: "Metadata", Type: []string{"string"}, Format: "", }, }, "description": { SchemaProps: spec.SchemaProps{ - Description: "Description of the operator. Can include the features, limitations or use-cases of the operator.", - Type: []string{"string"}, + Type: []string{"string"}, + Format: "", + }, + }, + "publisher": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "icon": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.Icon{}.OpenAPIModelName()), + }, + }, + }, + Required: []string{"sourceType"}, + }, + }, + Dependencies: []string{ + v1alpha1.GrpcPodConfig{}.OpenAPIModelName(), v1alpha1.Icon{}.OpenAPIModelName(), v1alpha1.UpdateStrategy{}.OpenAPIModelName()}, + } +} + +func schema_api_pkg_operators_v1alpha1_CatalogSourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "message": { + SchemaProps: spec.SchemaProps{ + Description: "A human readable message indicating details about why the CatalogSource is in this condition.", + Type: []string{"string"}, Format: "", }, }, - "keywords": { + "reason": { SchemaProps: spec.SchemaProps{ - Description: "A list of keywords describing the operator.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, + Description: "Reason is the reason the CatalogSource was transitioned to its current state.", + Type: []string{"string"}, + Format: "", }, }, - "maintainers": { + "latestImageRegistryPoll": { SchemaProps: spec.SchemaProps{ - Description: "A list of organizational entities maintaining the operator.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.Maintainer"), - }, - }, - }, + Description: "The last time the CatalogSource image registry has been polled to ensure the image is up-to-date", + Ref: ref(metav1.Time{}.OpenAPIModelName()), }, }, - "provider": { + "configMapReference": { SchemaProps: spec.SchemaProps{ - Description: "The publishing entity behind the operator.", - Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.AppLink"), + Description: "ConfigMapReference (deprecated) is the reference to the ConfigMap containing the catalog source's configuration, when the catalog source is a ConfigMap", + Ref: ref(v1alpha1.ConfigMapResourceReference{}.OpenAPIModelName()), }, }, - "links": { + "registryService": { SchemaProps: spec.SchemaProps{ - Description: "A list of links related to the operator.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.AppLink"), - }, - }, - }, + Description: "RegistryService represents the current state of the GRPC service used to serve the catalog", + Ref: ref(v1alpha1.RegistryServiceStatus{}.OpenAPIModelName()), }, }, - "icon": { + "connectionState": { SchemaProps: spec.SchemaProps{ - Description: "The icon for this operator.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.Icon"), - }, + Description: "ConnectionState represents the current state of the CatalogSource's connection to the registry", + Ref: ref(v1alpha1.GRPCConnectionState{}.OpenAPIModelName()), + }, + }, + "conditions": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "type", }, + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge", }, }, - }, - "installModes": { SchemaProps: spec.SchemaProps{ - Description: "InstallModes specify supported installation types", + Description: "Represents the state of a CatalogSource. Note that Message and Reason represent the original status information, which may be migrated to be conditions based in the future. Any new features introduced will use conditions.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.InstallMode"), + Ref: ref(metav1.Condition{}.OpenAPIModelName()), }, }, }, }, }, - "replaces": { + }, + }, + }, + Dependencies: []string{ + v1alpha1.ConfigMapResourceReference{}.OpenAPIModelName(), v1alpha1.GRPCConnectionState{}.OpenAPIModelName(), v1alpha1.RegistryServiceStatus{}.OpenAPIModelName(), metav1.Condition{}.OpenAPIModelName(), metav1.Time{}.OpenAPIModelName()}, + } +} + +func schema_api_pkg_operators_v1alpha1_CleanupSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "enabled": { SchemaProps: spec.SchemaProps{ - Description: "The name of a CSV this one replaces. Should match the `metadata.Name` field of the old CSV.", - Type: []string{"string"}, - Format: "", + Default: false, + Type: []string{"boolean"}, + Format: "", }, }, - "labels": { + }, + Required: []string{"enabled"}, + }, + }, + } +} + +func schema_api_pkg_operators_v1alpha1_CleanupStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "CleanupStatus represents information about the status of cleanup while a CSV is pending deletion", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "pendingDeletion": { SchemaProps: spec.SchemaProps{ - Description: "Map of string keys and values that can be used to organize and categorize (scope and select) objects.", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, + Description: "PendingDeletion is the list of custom resource objects that are pending deletion and blocked on finalizers. This indicates the progress of cleanup that is blocking CSV deletion or operator uninstall.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.ResourceList{}.OpenAPIModelName()), }, }, }, }, }, - "annotations": { + }, + }, + }, + Dependencies: []string{ + v1alpha1.ResourceList{}.OpenAPIModelName()}, + } +} + +func schema_api_pkg_operators_v1alpha1_ClusterServiceVersion(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "ClusterServiceVersion is a Custom Resource of type `ClusterServiceVersionSpec`.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "kind": { SchemaProps: spec.SchemaProps{ - Description: "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata.", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, + Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + Type: []string{"string"}, + Format: "", }, }, - "selector": { + "apiVersion": { SchemaProps: spec.SchemaProps{ - Description: "Label selector for related resources.", - Ref: ref(metav1.LabelSelector{}.OpenAPIModelName()), + Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + Type: []string{"string"}, + Format: "", }, }, - "cleanup": { + "metadata": { SchemaProps: spec.SchemaProps{ - Description: "Cleanup specifies the cleanup behaviour when the CSV gets deleted", - Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.CleanupSpec"), + Default: map[string]interface{}{}, + Ref: ref(metav1.ObjectMeta{}.OpenAPIModelName()), }, }, - "skips": { + "spec": { SchemaProps: spec.SchemaProps{ - Description: "The name(s) of one or more CSV(s) that should be skipped in the upgrade graph. Should match the `metadata.Name` field of the CSV that should be skipped. This field is only used during catalog creation and plays no part in cluster runtime.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.ClusterServiceVersionSpec{}.OpenAPIModelName()), }, }, - "relatedImages": { + "status": { SchemaProps: spec.SchemaProps{ - Description: "List any related images, or other container images that your Operator might require to perform their functions. This list should also include operand images as well. All image references should be specified by digest (SHA) and not by tag. This field is only used during catalog creation and plays no part in cluster runtime.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.RelatedImage"), - }, - }, - }, + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.ClusterServiceVersionStatus{}.OpenAPIModelName()), }, }, }, - Required: []string{"install", "displayName"}, + Required: []string{"metadata", "spec"}, }, }, Dependencies: []string{ - "github.com/operator-framework/api/pkg/lib/release.OperatorRelease", "github.com/operator-framework/api/pkg/lib/version.OperatorVersion", "github.com/operator-framework/api/pkg/operators/v1alpha1.APIServiceDefinitions", "github.com/operator-framework/api/pkg/operators/v1alpha1.AppLink", "github.com/operator-framework/api/pkg/operators/v1alpha1.CleanupSpec", "github.com/operator-framework/api/pkg/operators/v1alpha1.CustomResourceDefinitions", "github.com/operator-framework/api/pkg/operators/v1alpha1.Icon", "github.com/operator-framework/api/pkg/operators/v1alpha1.InstallMode", "github.com/operator-framework/api/pkg/operators/v1alpha1.Maintainer", "github.com/operator-framework/api/pkg/operators/v1alpha1.NamedInstallStrategy", "github.com/operator-framework/api/pkg/operators/v1alpha1.RelatedImage", "github.com/operator-framework/api/pkg/operators/v1alpha1.WebhookDescription", metav1.GroupVersionKind{}.OpenAPIModelName(), metav1.LabelSelector{}.OpenAPIModelName()}, + v1alpha1.ClusterServiceVersionSpec{}.OpenAPIModelName(), v1alpha1.ClusterServiceVersionStatus{}.OpenAPIModelName(), metav1.ObjectMeta{}.OpenAPIModelName()}, } } -func schema_api_pkg_operators_v1alpha1_ClusterServiceVersionStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_api_pkg_operators_v1alpha1_ClusterServiceVersionCondition(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "ClusterServiceVersionStatus represents information about the status of a CSV. Status may trail the actual state of a system.", + Description: "Conditions appear in the status as a record of state transitions on the ClusterServiceVersion", Type: []string{"object"}, Properties: map[string]spec.Schema{ "phase": { SchemaProps: spec.SchemaProps{ - Description: "Current condition of the ClusterServiceVersion", + Description: "Condition of the ClusterServiceVersion", Type: []string{"string"}, Format: "", }, @@ -911,675 +1091,2230 @@ func schema_api_pkg_operators_v1alpha1_ClusterServiceVersionStatus(ref common.Re Ref: ref(metav1.Time{}.OpenAPIModelName()), }, }, - "conditions": { + }, + }, + }, + Dependencies: []string{ + metav1.Time{}.OpenAPIModelName()}, + } +} + +func schema_api_pkg_operators_v1alpha1_ClusterServiceVersionList(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "ClusterServiceVersionList represents a list of ClusterServiceVersions.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "kind": { SchemaProps: spec.SchemaProps{ - Description: "List of conditions, a history of state transitions", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.ClusterServiceVersionCondition"), - }, - }, - }, + Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + Type: []string{"string"}, + Format: "", }, }, - "requirementStatus": { + "apiVersion": { SchemaProps: spec.SchemaProps{ - Description: "The status of each requirement for this CSV", - Type: []string{"array"}, + Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + Type: []string{"string"}, + Format: "", + }, + }, + "metadata": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(metav1.ListMeta{}.OpenAPIModelName()), + }, + }, + "items": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.RequirementStatus"), + Ref: ref(v1alpha1.ClusterServiceVersion{}.OpenAPIModelName()), }, }, }, }, }, - "certsLastUpdated": { + }, + Required: []string{"metadata", "items"}, + }, + }, + Dependencies: []string{ + v1alpha1.ClusterServiceVersion{}.OpenAPIModelName(), metav1.ListMeta{}.OpenAPIModelName()}, + } +} + +func schema_api_pkg_operators_v1alpha1_ClusterServiceVersionSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "ClusterServiceVersionSpec declarations tell OLM how to install an operator that can manage apps for a given version.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "install": { SchemaProps: spec.SchemaProps{ - Description: "Last time the owned APIService certs were updated", - Ref: ref(metav1.Time{}.OpenAPIModelName()), + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.NamedInstallStrategy{}.OpenAPIModelName()), }, }, - "certsRotateAt": { + "version": { SchemaProps: spec.SchemaProps{ - Description: "Time the owned APIService certs will rotate next", - Ref: ref(metav1.Time{}.OpenAPIModelName()), + Ref: ref(version.OperatorVersion{}.OpenAPIModelName()), + }, + }, + "release": { + SchemaProps: spec.SchemaProps{ + Description: "release specifies the packaging version of the operator, defaulting to empty release is optional\n\nA ClusterServiceVersion's release field is used to distinguish between different builds of the same operator version This is useful for operators that need to make changes to the CSV which don't affect their functionality, for example: - to fix a typo in their description - to add/amend annotations or labels - to amend examples or documentation - to produce different builds for different environments\n\nIt is up to operator authors to determine the semantics of release versions they use for their operator. All release versions must conform to the semver prerelease format (dot-separated identifiers containing only alphanumerics and hyphens) and are limited to a maximum length of 20 characters.", + Ref: ref("github.com/operator-framework/api/pkg/lib/release.OperatorRelease"), + }, + }, + "maturity": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "customresourcedefinitions": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.CustomResourceDefinitions{}.OpenAPIModelName()), + }, + }, + "apiservicedefinitions": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.APIServiceDefinitions{}.OpenAPIModelName()), + }, + }, + "webhookdefinitions": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.WebhookDescription{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "nativeAPIs": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(metav1.GroupVersionKind{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "minKubeVersion": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "displayName": { + SchemaProps: spec.SchemaProps{ + Description: "The name of the operator in display format.", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "description": { + SchemaProps: spec.SchemaProps{ + Description: "Description of the operator. Can include the features, limitations or use-cases of the operator.", + Type: []string{"string"}, + Format: "", + }, + }, + "keywords": { + SchemaProps: spec.SchemaProps{ + Description: "A list of keywords describing the operator.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "maintainers": { + SchemaProps: spec.SchemaProps{ + Description: "A list of organizational entities maintaining the operator.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.Maintainer{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "provider": { + SchemaProps: spec.SchemaProps{ + Description: "The publishing entity behind the operator.", + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.AppLink{}.OpenAPIModelName()), + }, + }, + "links": { + SchemaProps: spec.SchemaProps{ + Description: "A list of links related to the operator.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.AppLink{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "icon": { + SchemaProps: spec.SchemaProps{ + Description: "The icon for this operator.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.Icon{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "installModes": { + SchemaProps: spec.SchemaProps{ + Description: "InstallModes specify supported installation types", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.InstallMode{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "replaces": { + SchemaProps: spec.SchemaProps{ + Description: "The name of a CSV this one replaces. Should match the `metadata.Name` field of the old CSV.", + Type: []string{"string"}, + Format: "", + }, + }, + "labels": { + SchemaProps: spec.SchemaProps{ + Description: "Map of string keys and values that can be used to organize and categorize (scope and select) objects.", + Type: []string{"object"}, + AdditionalProperties: &spec.SchemaOrBool{ + Allows: true, + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "annotations": { + SchemaProps: spec.SchemaProps{ + Description: "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata.", + Type: []string{"object"}, + AdditionalProperties: &spec.SchemaOrBool{ + Allows: true, + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "selector": { + SchemaProps: spec.SchemaProps{ + Description: "Label selector for related resources.", + Ref: ref(metav1.LabelSelector{}.OpenAPIModelName()), }, }, "cleanup": { SchemaProps: spec.SchemaProps{ - Description: "CleanupStatus represents information about the status of cleanup while a CSV is pending deletion", + Description: "Cleanup specifies the cleanup behaviour when the CSV gets deleted", Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.CleanupStatus"), + Ref: ref(v1alpha1.CleanupSpec{}.OpenAPIModelName()), + }, + }, + "skips": { + SchemaProps: spec.SchemaProps{ + Description: "The name(s) of one or more CSV(s) that should be skipped in the upgrade graph. Should match the `metadata.Name` field of the CSV that should be skipped. This field is only used during catalog creation and plays no part in cluster runtime.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "relatedImages": { + SchemaProps: spec.SchemaProps{ + Description: "List any related images, or other container images that your Operator might require to perform their functions. This list should also include operand images as well. All image references should be specified by digest (SHA) and not by tag. This field is only used during catalog creation and plays no part in cluster runtime.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.RelatedImage{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + }, + Required: []string{"install", "displayName"}, + }, + }, + Dependencies: []string{ + "github.com/operator-framework/api/pkg/lib/release.OperatorRelease", version.OperatorVersion{}.OpenAPIModelName(), v1alpha1.APIServiceDefinitions{}.OpenAPIModelName(), v1alpha1.AppLink{}.OpenAPIModelName(), v1alpha1.CleanupSpec{}.OpenAPIModelName(), v1alpha1.CustomResourceDefinitions{}.OpenAPIModelName(), v1alpha1.Icon{}.OpenAPIModelName(), v1alpha1.InstallMode{}.OpenAPIModelName(), v1alpha1.Maintainer{}.OpenAPIModelName(), v1alpha1.NamedInstallStrategy{}.OpenAPIModelName(), v1alpha1.RelatedImage{}.OpenAPIModelName(), v1alpha1.WebhookDescription{}.OpenAPIModelName(), metav1.GroupVersionKind{}.OpenAPIModelName(), metav1.LabelSelector{}.OpenAPIModelName()}, + } +} + +func schema_api_pkg_operators_v1alpha1_ClusterServiceVersionStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "ClusterServiceVersionStatus represents information about the status of a CSV. Status may trail the actual state of a system.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "phase": { + SchemaProps: spec.SchemaProps{ + Description: "Current condition of the ClusterServiceVersion", + Type: []string{"string"}, + Format: "", + }, + }, + "message": { + SchemaProps: spec.SchemaProps{ + Description: "A human readable message indicating details about why the ClusterServiceVersion is in this condition.", + Type: []string{"string"}, + Format: "", + }, + }, + "reason": { + SchemaProps: spec.SchemaProps{ + Description: "A brief CamelCase message indicating details about why the ClusterServiceVersion is in this state. e.g. 'RequirementsNotMet'", + Type: []string{"string"}, + Format: "", + }, + }, + "lastUpdateTime": { + SchemaProps: spec.SchemaProps{ + Description: "Last time we updated the status", + Ref: ref(metav1.Time{}.OpenAPIModelName()), + }, + }, + "lastTransitionTime": { + SchemaProps: spec.SchemaProps{ + Description: "Last time the status transitioned from one status to another.", + Ref: ref(metav1.Time{}.OpenAPIModelName()), + }, + }, + "conditions": { + SchemaProps: spec.SchemaProps{ + Description: "List of conditions, a history of state transitions", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.ClusterServiceVersionCondition{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "requirementStatus": { + SchemaProps: spec.SchemaProps{ + Description: "The status of each requirement for this CSV", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.RequirementStatus{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "certsLastUpdated": { + SchemaProps: spec.SchemaProps{ + Description: "Last time the owned APIService certs were updated", + Ref: ref(metav1.Time{}.OpenAPIModelName()), + }, + }, + "certsRotateAt": { + SchemaProps: spec.SchemaProps{ + Description: "Time the owned APIService certs will rotate next", + Ref: ref(metav1.Time{}.OpenAPIModelName()), + }, + }, + "cleanup": { + SchemaProps: spec.SchemaProps{ + Description: "CleanupStatus represents information about the status of cleanup while a CSV is pending deletion", + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.CleanupStatus{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + Dependencies: []string{ + v1alpha1.CleanupStatus{}.OpenAPIModelName(), v1alpha1.ClusterServiceVersionCondition{}.OpenAPIModelName(), v1alpha1.RequirementStatus{}.OpenAPIModelName(), metav1.Time{}.OpenAPIModelName()}, + } +} + +func schema_api_pkg_operators_v1alpha1_ConfigMapResourceReference(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "name": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "namespace": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "uid": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "resourceVersion": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "lastUpdateTime": { + SchemaProps: spec.SchemaProps{ + Ref: ref(metav1.Time{}.OpenAPIModelName()), + }, + }, + }, + Required: []string{"name", "namespace"}, + }, + }, + Dependencies: []string{ + metav1.Time{}.OpenAPIModelName()}, + } +} + +func schema_api_pkg_operators_v1alpha1_CustomResourceDefinitions(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "CustomResourceDefinitions declares all of the CRDs managed or required by an operator being ran by ClusterServiceVersion.\n\nIf the CRD is present in the Owned list, it is implicitly required.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "owned": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.CRDDescription{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "required": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.CRDDescription{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + }, + }, + }, + Dependencies: []string{ + v1alpha1.CRDDescription{}.OpenAPIModelName()}, + } +} + +func schema_api_pkg_operators_v1alpha1_DependentStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "DependentStatus is the status for a dependent requirement (to prevent infinite nesting)", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "group": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "version": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "kind": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "uuid": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "message": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"group", "version", "kind", "status"}, + }, + }, + } +} + +func schema_api_pkg_operators_v1alpha1_ExtractContentConfig(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "ExtractContentConfig configures context extraction from a file-based catalog index image.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "cacheDir": { + SchemaProps: spec.SchemaProps{ + Description: "CacheDir is the (optional) directory storing the pre-calculated API cache.", + Type: []string{"string"}, + Format: "", + }, + }, + "catalogDir": { + SchemaProps: spec.SchemaProps{ + Description: "CatalogDir is the directory storing the file-based catalog contents.", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"catalogDir"}, + }, + }, + } +} + +func schema_api_pkg_operators_v1alpha1_GRPCConnectionState(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "address": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "lastObservedState": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "lastConnect": { + SchemaProps: spec.SchemaProps{ + Ref: ref(metav1.Time{}.OpenAPIModelName()), + }, + }, + }, + Required: []string{"lastObservedState"}, + }, + }, + Dependencies: []string{ + metav1.Time{}.OpenAPIModelName()}, + } +} + +func schema_api_pkg_operators_v1alpha1_GrpcPodConfig(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "GrpcPodConfig contains configuration specified for a catalog source", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "nodeSelector": { + SchemaProps: spec.SchemaProps{ + Description: "NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node's labels for the pod to be scheduled on that node.", + Type: []string{"object"}, + AdditionalProperties: &spec.SchemaOrBool{ + Allows: true, + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "tolerations": { + SchemaProps: spec.SchemaProps{ + Description: "Tolerations are the catalog source's pod's tolerations.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/api/core/v1.Toleration"), + }, + }, + }, + }, + }, + "affinity": { + SchemaProps: spec.SchemaProps{ + Description: "Affinity is the catalog source's pod's affinity.", + Ref: ref("k8s.io/api/core/v1.Affinity"), + }, + }, + "priorityClassName": { + SchemaProps: spec.SchemaProps{ + Description: "If specified, indicates the pod's priority. If not specified, the pod priority will be default or zero if there is no default.", + Type: []string{"string"}, + Format: "", + }, + }, + "securityContextConfig": { + SchemaProps: spec.SchemaProps{ + Description: "SecurityContextConfig can be one of `legacy` or `restricted`. The CatalogSource's pod is either injected with the right pod.spec.securityContext and pod.spec.container[*].securityContext values to allow the pod to run in Pod Security Admission (PSA) `restricted` mode, or doesn't set these values at all, in which case the pod can only be run in PSA `baseline` or `privileged` namespaces. If the SecurityContextConfig is unspecified, the mode will be determined by the namespace's PSA configuration. If the namespace is enforcing `restricted` mode, then the pod will be configured as if `restricted` was specified. Otherwise, it will be configured as if `legacy` was specified. Specifying a value other than `legacy` or `restricted` result in a validation error. When using older catalog images, which can not run in `restricted` mode, the SecurityContextConfig should be set to `legacy`.\n\nMore information about PSA can be found here: https://kubernetes.io/docs/concepts/security/pod-security-admission/", + Type: []string{"string"}, + Format: "", + }, + }, + "memoryTarget": { + SchemaProps: spec.SchemaProps{ + Description: "MemoryTarget configures the $GOMEMLIMIT value for the gRPC catalog Pod. This is a soft memory limit for the server, which the runtime will attempt to meet but makes no guarantees that it will do so. If this value is set, the Pod will have the following modifications made to the container running the server: - the $GOMEMLIMIT environment variable will be set to this value in bytes - the memory request will be set to this value\n\nThis field should be set if it's desired to reduce the footprint of a catalog server as much as possible, or if a catalog being served is very large and needs more than the default allocation. If your index image has a file- system cache, determine a good approximation for this value by doubling the size of the package cache at /tmp/cache/cache/packages.json in the index image.\n\nThis field is best-effort; if unset, no default will be used and no Pod memory limit or $GOMEMLIMIT value will be set.", + Ref: ref(resource.Quantity{}.OpenAPIModelName()), + }, + }, + "extractContent": { + SchemaProps: spec.SchemaProps{ + Description: "ExtractContent configures the gRPC catalog Pod to extract catalog metadata from the provided index image and use a well-known version of the `opm` server to expose it. The catalog index image that this CatalogSource is configured to use *must* be using the file-based catalogs in order to utilize this feature.", + Ref: ref(v1alpha1.ExtractContentConfig{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + Dependencies: []string{ + v1alpha1.ExtractContentConfig{}.OpenAPIModelName(), "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.Toleration", resource.Quantity{}.OpenAPIModelName()}, + } +} + +func schema_api_pkg_operators_v1alpha1_Icon(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "base64data": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "mediatype": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"base64data", "mediatype"}, + }, + }, + } +} + +func schema_api_pkg_operators_v1alpha1_InstallMode(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "InstallMode associates an InstallModeType with a flag representing if the CSV supports it", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "type": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "supported": { + SchemaProps: spec.SchemaProps{ + Default: false, + Type: []string{"boolean"}, + Format: "", + }, + }, + }, + Required: []string{"type", "supported"}, + }, + }, + } +} + +func schema_api_pkg_operators_v1alpha1_InstallPlan(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "InstallPlan defines the installation of a set of operators.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "kind": { + SchemaProps: spec.SchemaProps{ + Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + Type: []string{"string"}, + Format: "", + }, + }, + "apiVersion": { + SchemaProps: spec.SchemaProps{ + Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + Type: []string{"string"}, + Format: "", + }, + }, + "metadata": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(metav1.ObjectMeta{}.OpenAPIModelName()), + }, + }, + "spec": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.InstallPlanSpec{}.OpenAPIModelName()), + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.InstallPlanStatus{}.OpenAPIModelName()), + }, + }, + }, + Required: []string{"metadata", "spec"}, + }, + }, + Dependencies: []string{ + v1alpha1.InstallPlanSpec{}.OpenAPIModelName(), v1alpha1.InstallPlanStatus{}.OpenAPIModelName(), metav1.ObjectMeta{}.OpenAPIModelName()}, + } +} + +func schema_api_pkg_operators_v1alpha1_InstallPlanCondition(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "InstallPlanCondition represents the overall status of the execution of an InstallPlan.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "type": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "lastUpdateTime": { + SchemaProps: spec.SchemaProps{ + Description: "True, False, or Unknown", + Ref: ref(metav1.Time{}.OpenAPIModelName()), + }, + }, + "lastTransitionTime": { + SchemaProps: spec.SchemaProps{ + Ref: ref(metav1.Time{}.OpenAPIModelName()), + }, + }, + "reason": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "message": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + Dependencies: []string{ + metav1.Time{}.OpenAPIModelName()}, + } +} + +func schema_api_pkg_operators_v1alpha1_InstallPlanList(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "InstallPlanList is a list of InstallPlan resources.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "kind": { + SchemaProps: spec.SchemaProps{ + Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + Type: []string{"string"}, + Format: "", + }, + }, + "apiVersion": { + SchemaProps: spec.SchemaProps{ + Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + Type: []string{"string"}, + Format: "", + }, + }, + "metadata": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(metav1.ListMeta{}.OpenAPIModelName()), + }, + }, + "items": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.InstallPlan{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + }, + Required: []string{"metadata", "items"}, + }, + }, + Dependencies: []string{ + v1alpha1.InstallPlan{}.OpenAPIModelName(), metav1.ListMeta{}.OpenAPIModelName()}, + } +} + +func schema_api_pkg_operators_v1alpha1_InstallPlanReference(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "apiVersion": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "kind": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "name": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "uuid": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"apiVersion", "kind", "name", "uuid"}, + }, + }, + } +} + +func schema_api_pkg_operators_v1alpha1_InstallPlanSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "InstallPlanSpec defines a set of Application resources to be installed", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "source": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "sourceNamespace": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "clusterServiceVersionNames": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "approval": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "approved": { + SchemaProps: spec.SchemaProps{ + Default: false, + Type: []string{"boolean"}, + Format: "", + }, + }, + "generation": { + SchemaProps: spec.SchemaProps{ + Type: []string{"integer"}, + Format: "int32", + }, + }, + }, + Required: []string{"clusterServiceVersionNames", "approval", "approved"}, + }, + }, + } +} + +func schema_api_pkg_operators_v1alpha1_InstallPlanStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "InstallPlanStatus represents the information about the status of steps required to complete installation.\n\nStatus may trail the actual state of a system.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "phase": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "conditions": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.InstallPlanCondition{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "catalogSources": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "plan": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Ref: ref(v1alpha1.Step{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "bundleLookups": { + SchemaProps: spec.SchemaProps{ + Description: "BundleLookups is the set of in-progress requests to pull and unpackage bundle content to the cluster.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.BundleLookup{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "attenuatedServiceAccountRef": { + SchemaProps: spec.SchemaProps{ + Description: "AttenuatedServiceAccountRef references the service account that is used to do scoped operator install.", + Ref: ref("k8s.io/api/core/v1.ObjectReference"), + }, + }, + "startTime": { + SchemaProps: spec.SchemaProps{ + Description: "StartTime is the time when the controller began applying the resources listed in the plan to the cluster.", + Ref: ref(metav1.Time{}.OpenAPIModelName()), + }, + }, + "message": { + SchemaProps: spec.SchemaProps{ + Description: "Message is a human-readable message containing detailed information that may be important to understanding why the plan has its current status.", + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"phase", "catalogSources"}, + }, + }, + Dependencies: []string{ + v1alpha1.BundleLookup{}.OpenAPIModelName(), v1alpha1.InstallPlanCondition{}.OpenAPIModelName(), v1alpha1.Step{}.OpenAPIModelName(), "k8s.io/api/core/v1.ObjectReference", metav1.Time{}.OpenAPIModelName()}, + } +} + +func schema_api_pkg_operators_v1alpha1_Maintainer(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "name": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "email": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + } +} + +func schema_api_pkg_operators_v1alpha1_NamedInstallStrategy(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "NamedInstallStrategy represents the block of an ClusterServiceVersion resource where the install strategy is specified.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "strategy": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "spec": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.StrategyDetailsDeployment{}.OpenAPIModelName()), + }, + }, + }, + Required: []string{"strategy"}, + }, + }, + Dependencies: []string{ + v1alpha1.StrategyDetailsDeployment{}.OpenAPIModelName()}, + } +} + +func schema_api_pkg_operators_v1alpha1_RegistryPoll(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "interval": { + SchemaProps: spec.SchemaProps{ + Description: "Interval is used to determine the time interval between checks of the latest catalog source version. The catalog operator polls to see if a new version of the catalog source is available. If available, the latest image is pulled and gRPC traffic is directed to the latest catalog source.", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + } +} + +func schema_api_pkg_operators_v1alpha1_RegistryServiceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "protocol": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "serviceName": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "serviceNamespace": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "port": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "createdAt": { + SchemaProps: spec.SchemaProps{ + Ref: ref(metav1.Time{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + Dependencies: []string{ + metav1.Time{}.OpenAPIModelName()}, + } +} + +func schema_api_pkg_operators_v1alpha1_RelatedImage(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "name": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "image": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"name", "image"}, + }, + }, + } +} + +func schema_api_pkg_operators_v1alpha1_RequirementStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "group": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "version": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "kind": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "name": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "message": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "uuid": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "dependents": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.DependentStatus{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + }, + Required: []string{"group", "version", "kind", "name", "status", "message"}, + }, + }, + Dependencies: []string{ + v1alpha1.DependentStatus{}.OpenAPIModelName()}, + } +} + +func schema_api_pkg_operators_v1alpha1_ResourceInstance(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "name": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "namespace": { + SchemaProps: spec.SchemaProps{ + Description: "Namespace can be empty for cluster-scoped resources", + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"name"}, + }, + }, + } +} + +func schema_api_pkg_operators_v1alpha1_ResourceList(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "ResourceList represents a list of resources which are of the same Group/Kind", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "group": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "kind": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "instances": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.ResourceInstance{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + }, + Required: []string{"group", "kind", "instances"}, + }, + }, + Dependencies: []string{ + v1alpha1.ResourceInstance{}.OpenAPIModelName()}, + } +} + +func schema_api_pkg_operators_v1alpha1_SpecDescriptor(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "SpecDescriptor describes a field in a spec block of a CRD so that OLM can consume it", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "path": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "displayName": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "description": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "x-descriptors": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "value": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "byte", + }, + }, + }, + Required: []string{"path"}, + }, + }, + } +} + +func schema_api_pkg_operators_v1alpha1_StatusDescriptor(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "StatusDescriptor describes a field in a status block of a CRD so that OLM can consume it", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "path": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "displayName": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "description": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "x-descriptors": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "value": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "byte", + }, + }, + }, + Required: []string{"path"}, + }, + }, + } +} + +func schema_api_pkg_operators_v1alpha1_Step(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "Step represents the status of an individual step in an InstallPlan.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "resolving": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "resource": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.StepResource{}.OpenAPIModelName()), + }, + }, + "optional": { + SchemaProps: spec.SchemaProps{ + Type: []string{"boolean"}, + Format: "", + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"resolving", "resource", "status"}, + }, + }, + Dependencies: []string{ + v1alpha1.StepResource{}.OpenAPIModelName()}, + } +} + +func schema_api_pkg_operators_v1alpha1_StepResource(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "StepResource represents the status of a resource to be tracked by an InstallPlan.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "sourceName": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "sourceNamespace": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "group": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "version": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "kind": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "name": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "manifest": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"sourceName", "sourceNamespace", "group", "version", "kind", "name"}, + }, + }, + } +} + +func schema_api_pkg_operators_v1alpha1_StrategyDeploymentPermissions(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "StrategyDeploymentPermissions describe the rbac rules and service account needed by the install strategy", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "serviceAccountName": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "rules": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/api/rbac/v1.PolicyRule"), + }, + }, + }, + }, + }, + }, + Required: []string{"serviceAccountName", "rules"}, + }, + }, + Dependencies: []string{ + "k8s.io/api/rbac/v1.PolicyRule"}, + } +} + +func schema_api_pkg_operators_v1alpha1_StrategyDeploymentSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "StrategyDeploymentSpec contains the name, spec and labels for the deployment ALM should create", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "name": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "spec": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/api/apps/v1.DeploymentSpec"), + }, + }, + "label": { + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + AdditionalProperties: &spec.SchemaOrBool{ + Allows: true, + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, }, }, }, + Required: []string{"name", "spec"}, }, }, Dependencies: []string{ - "github.com/operator-framework/api/pkg/operators/v1alpha1.CleanupStatus", "github.com/operator-framework/api/pkg/operators/v1alpha1.ClusterServiceVersionCondition", "github.com/operator-framework/api/pkg/operators/v1alpha1.RequirementStatus", metav1.Time{}.OpenAPIModelName()}, + "k8s.io/api/apps/v1.DeploymentSpec"}, } } -func schema_api_pkg_operators_v1alpha1_CustomResourceDefinitions(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_api_pkg_operators_v1alpha1_StrategyDetailsDeployment(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "CustomResourceDefinitions declares all of the CRDs managed or required by an operator being ran by ClusterServiceVersion.\n\nIf the CRD is present in the Owned list, it is implicitly required.", + Description: "StrategyDetailsDeployment represents the parsed details of a Deployment InstallStrategy.", Type: []string{"object"}, Properties: map[string]spec.Schema{ - "owned": { + "deployments": { SchemaProps: spec.SchemaProps{ Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.CRDDescription"), + Ref: ref(v1alpha1.StrategyDeploymentSpec{}.OpenAPIModelName()), }, }, }, }, }, - "required": { + "permissions": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.StrategyDeploymentPermissions{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "clusterPermissions": { SchemaProps: spec.SchemaProps{ Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.CRDDescription"), + Ref: ref(v1alpha1.StrategyDeploymentPermissions{}.OpenAPIModelName()), }, }, }, }, }, }, + Required: []string{"deployments"}, }, }, Dependencies: []string{ - "github.com/operator-framework/api/pkg/operators/v1alpha1.CRDDescription"}, + v1alpha1.StrategyDeploymentPermissions{}.OpenAPIModelName(), v1alpha1.StrategyDeploymentSpec{}.OpenAPIModelName()}, } } -func schema_api_pkg_operators_v1alpha1_DependentStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_api_pkg_operators_v1alpha1_Subscription(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "DependentStatus is the status for a dependent requirement (to prevent infinite nesting)", + Description: "Subscription keeps operators up to date by tracking changes to Catalogs.", Type: []string{"object"}, Properties: map[string]spec.Schema{ - "group": { - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - "version": { + "kind": { SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", + Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + Type: []string{"string"}, + Format: "", }, }, - "kind": { + "apiVersion": { SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", + Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + Type: []string{"string"}, + Format: "", }, }, - "status": { + "metadata": { SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", + Default: map[string]interface{}{}, + Ref: ref(metav1.ObjectMeta{}.OpenAPIModelName()), }, }, - "uuid": { + "spec": { SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", + Ref: ref(v1alpha1.SubscriptionSpec{}.OpenAPIModelName()), }, }, - "message": { + "status": { SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.SubscriptionStatus{}.OpenAPIModelName()), }, }, }, - Required: []string{"group", "version", "kind", "status"}, + Required: []string{"metadata", "spec"}, }, }, + Dependencies: []string{ + v1alpha1.SubscriptionSpec{}.OpenAPIModelName(), v1alpha1.SubscriptionStatus{}.OpenAPIModelName(), metav1.ObjectMeta{}.OpenAPIModelName()}, } } -func schema_api_pkg_operators_v1alpha1_Icon(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_api_pkg_operators_v1alpha1_SubscriptionCatalogHealth(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, + Description: "SubscriptionCatalogHealth describes the health of a CatalogSource the Subscription knows about.", + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "base64data": { + "catalogSourceRef": { SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", + Description: "CatalogSourceRef is a reference to a CatalogSource.", + Ref: ref("k8s.io/api/core/v1.ObjectReference"), }, }, - "mediatype": { + "lastUpdated": { SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", + Description: "LastUpdated represents the last time that the CatalogSourceHealth changed", + Ref: ref(metav1.Time{}.OpenAPIModelName()), + }, + }, + "healthy": { + SchemaProps: spec.SchemaProps{ + Description: "Healthy is true if the CatalogSource is healthy; false otherwise.", + Default: false, + Type: []string{"boolean"}, + Format: "", }, }, }, - Required: []string{"base64data", "mediatype"}, + Required: []string{"catalogSourceRef", "lastUpdated", "healthy"}, }, }, + Dependencies: []string{ + "k8s.io/api/core/v1.ObjectReference", metav1.Time{}.OpenAPIModelName()}, } } -func schema_api_pkg_operators_v1alpha1_InstallMode(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_api_pkg_operators_v1alpha1_SubscriptionCondition(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "InstallMode associates an InstallModeType with a flag representing if the CSV supports it", + Description: "SubscriptionCondition represents the latest available observations of a Subscription's state.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "type": { SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", + Description: "Type is the type of Subscription condition.", + Default: "", + Type: []string{"string"}, + Format: "", }, }, - "supported": { + "status": { SchemaProps: spec.SchemaProps{ - Default: false, - Type: []string{"boolean"}, - Format: "", + Description: "Status is the status of the condition, one of True, False, Unknown.", + Default: "", + Type: []string{"string"}, + Format: "", }, }, - }, - Required: []string{"type", "supported"}, - }, - }, - } -} - -func schema_api_pkg_operators_v1alpha1_Maintainer(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { + "reason": { SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", + Description: "Reason is a one-word CamelCase reason for the condition's last transition.", + Type: []string{"string"}, + Format: "", }, }, - "email": { + "message": { SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", + Description: "Message is a human-readable message indicating details about last transition.", + Type: []string{"string"}, + Format: "", }, }, - }, - }, - }, - } -} - -func schema_api_pkg_operators_v1alpha1_NamedInstallStrategy(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "NamedInstallStrategy represents the block of an ClusterServiceVersion resource where the install strategy is specified.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "strategy": { + "lastHeartbeatTime": { SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", + Description: "LastHeartbeatTime is the last time we got an update on a given condition", + Ref: ref(metav1.Time{}.OpenAPIModelName()), }, }, - "spec": { + "lastTransitionTime": { SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.StrategyDetailsDeployment"), + Description: "LastTransitionTime is the last time the condition transit from one status to another", + Ref: ref(metav1.Time{}.OpenAPIModelName()), }, }, }, - Required: []string{"strategy"}, + Required: []string{"type", "status"}, }, }, Dependencies: []string{ - "github.com/operator-framework/api/pkg/operators/v1alpha1.StrategyDetailsDeployment"}, + metav1.Time{}.OpenAPIModelName()}, } } -func schema_api_pkg_operators_v1alpha1_RelatedImage(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_api_pkg_operators_v1alpha1_SubscriptionConfig(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, + Description: "SubscriptionConfig contains configuration specified for a subscription.", + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "name": { + "selector": { SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", + Description: "Selector is the label selector for pods to be configured. Existing ReplicaSets whose pods are selected by this will be the ones affected by this deployment. It must match the pod template's labels.", + Ref: ref(metav1.LabelSelector{}.OpenAPIModelName()), }, }, - "image": { + "nodeSelector": { SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", + Description: "NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node's labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/", + Type: []string{"object"}, + AdditionalProperties: &spec.SchemaOrBool{ + Allows: true, + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, }, }, - }, - Required: []string{"name", "image"}, - }, - }, - } -} - -func schema_api_pkg_operators_v1alpha1_RequirementStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "group": { + "tolerations": { SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", + Description: "Tolerations are the pod's tolerations.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/api/core/v1.Toleration"), + }, + }, + }, }, }, - "version": { + "resources": { SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", + Description: "Resources represents compute resources required by this container. Immutable. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/", + Ref: ref("k8s.io/api/core/v1.ResourceRequirements"), }, }, - "kind": { + "envFrom": { SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", + Description: "EnvFrom is a list of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Immutable.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/api/core/v1.EnvFromSource"), + }, + }, + }, }, }, - "name": { + "env": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-patch-merge-key": "name", + "x-kubernetes-patch-strategy": "merge", + }, + }, SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", + Description: "Env is a list of environment variables to set in the container. Cannot be updated.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/api/core/v1.EnvVar"), + }, + }, + }, }, }, - "status": { + "volumes": { SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", + Description: "List of Volumes to set in the podSpec.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/api/core/v1.Volume"), + }, + }, + }, }, }, - "message": { + "volumeMounts": { SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", + Description: "List of VolumeMounts to set in the container.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/api/core/v1.VolumeMount"), + }, + }, + }, }, }, - "uuid": { + "affinity": { SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", + Description: "If specified, overrides the pod's scheduling constraints. nil sub-attributes will *not* override the original values in the pod.spec for those sub-attributes. Use empty object ({}) to erase original sub-attribute values.", + Ref: ref("k8s.io/api/core/v1.Affinity"), }, }, - "dependents": { + "annotations": { SchemaProps: spec.SchemaProps{ - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ + Description: "Annotations is an unstructured key value map stored with each Deployment, Pod, APIService in the Operator. Typically, annotations may be set by external tools to store and retrieve arbitrary metadata. Use this field to pre-define annotations that OLM should add to each of the Subscription's deployments, pods, and apiservices.", + Type: []string{"object"}, + AdditionalProperties: &spec.SchemaOrBool{ + Allows: true, Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.DependentStatus"), + Default: "", + Type: []string{"string"}, + Format: "", }, }, }, }, }, }, - Required: []string{"group", "version", "kind", "name", "status", "message"}, }, }, Dependencies: []string{ - "github.com/operator-framework/api/pkg/operators/v1alpha1.DependentStatus"}, + "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.EnvFromSource", "k8s.io/api/core/v1.EnvVar", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.Toleration", "k8s.io/api/core/v1.Volume", "k8s.io/api/core/v1.VolumeMount", metav1.LabelSelector{}.OpenAPIModelName()}, } } -func schema_api_pkg_operators_v1alpha1_ResourceInstance(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_api_pkg_operators_v1alpha1_SubscriptionList(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, + Description: "SubscriptionList is a list of Subscription resources.", + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - "namespace": { + "kind": { SchemaProps: spec.SchemaProps{ - Description: "Namespace can be empty for cluster-scoped resources", + Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", Type: []string{"string"}, Format: "", }, }, - }, - Required: []string{"name"}, - }, - }, - } -} - -func schema_api_pkg_operators_v1alpha1_ResourceList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ResourceList represents a list of resources which are of the same Group/Kind", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "group": { + "apiVersion": { SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", + Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + Type: []string{"string"}, + Format: "", }, }, - "kind": { + "metadata": { SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", + Default: map[string]interface{}{}, + Ref: ref(metav1.ListMeta{}.OpenAPIModelName()), }, }, - "instances": { + "items": { SchemaProps: spec.SchemaProps{ Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.ResourceInstance"), + Ref: ref(v1alpha1.Subscription{}.OpenAPIModelName()), }, }, }, }, }, }, - Required: []string{"group", "kind", "instances"}, + Required: []string{"metadata", "items"}, }, }, Dependencies: []string{ - "github.com/operator-framework/api/pkg/operators/v1alpha1.ResourceInstance"}, + v1alpha1.Subscription{}.OpenAPIModelName(), metav1.ListMeta{}.OpenAPIModelName()}, } } -func schema_api_pkg_operators_v1alpha1_SpecDescriptor(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_api_pkg_operators_v1alpha1_SubscriptionSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "SpecDescriptor describes a field in a spec block of a CRD so that OLM can consume it", + Description: "SubscriptionSpec defines an Application that can be installed", Type: []string{"object"}, Properties: map[string]spec.Schema{ - "path": { + "source": { SchemaProps: spec.SchemaProps{ Default: "", Type: []string{"string"}, Format: "", }, }, - "displayName": { + "sourceNamespace": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "name": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "channel": { SchemaProps: spec.SchemaProps{ Type: []string{"string"}, Format: "", }, }, - "description": { + "startingCSV": { SchemaProps: spec.SchemaProps{ Type: []string{"string"}, Format: "", }, }, - "x-descriptors": { + "installPlanApproval": { SchemaProps: spec.SchemaProps{ - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, + Type: []string{"string"}, + Format: "", }, }, - "value": { + "config": { SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "byte", + Ref: ref(v1alpha1.SubscriptionConfig{}.OpenAPIModelName()), }, }, }, - Required: []string{"path"}, + Required: []string{"source", "sourceNamespace", "name"}, }, }, + Dependencies: []string{ + v1alpha1.SubscriptionConfig{}.OpenAPIModelName()}, } } -func schema_api_pkg_operators_v1alpha1_StatusDescriptor(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_api_pkg_operators_v1alpha1_SubscriptionStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "StatusDescriptor describes a field in a status block of a CRD so that OLM can consume it", - Type: []string{"object"}, + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "path": { + "currentCSV": { SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", + Description: "CurrentCSV is the CSV the Subscription is progressing to.", + Type: []string{"string"}, + Format: "", }, }, - "displayName": { + "installedCSV": { SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", + Description: "InstalledCSV is the CSV currently installed by the Subscription.", + Type: []string{"string"}, + Format: "", }, }, - "description": { + "installplan": { SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", + Description: "Install is a reference to the latest InstallPlan generated for the Subscription. DEPRECATED: InstallPlanRef", + Ref: ref(v1alpha1.InstallPlanReference{}.OpenAPIModelName()), }, }, - "x-descriptors": { + "state": { SchemaProps: spec.SchemaProps{ - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, + Description: "State represents the current state of the Subscription", + Type: []string{"string"}, + Format: "", }, }, - "value": { + "reason": { SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "byte", + Description: "Reason is the reason the Subscription was transitioned to its current state.", + Type: []string{"string"}, + Format: "", }, }, - }, - Required: []string{"path"}, - }, - }, - } -} - -func schema_api_pkg_operators_v1alpha1_StrategyDeploymentPermissions(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "StrategyDeploymentPermissions describe the rbac rules and service account needed by the install strategy", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "serviceAccountName": { + "installPlanGeneration": { SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", + Description: "InstallPlanGeneration is the current generation of the installplan", + Type: []string{"integer"}, + Format: "int32", }, }, - "rules": { + "installPlanRef": { SchemaProps: spec.SchemaProps{ - Type: []string{"array"}, + Description: "InstallPlanRef is a reference to the latest InstallPlan that contains the Subscription's current CSV.", + Ref: ref("k8s.io/api/core/v1.ObjectReference"), + }, + }, + "catalogHealth": { + SchemaProps: spec.SchemaProps{ + Description: "CatalogHealth contains the Subscription's view of its relevant CatalogSources' status. It is used to determine SubscriptionStatusConditions related to CatalogSources.", + Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("k8s.io/api/rbac/v1.PolicyRule"), + Ref: ref(v1alpha1.SubscriptionCatalogHealth{}.OpenAPIModelName()), }, }, }, }, }, - }, - Required: []string{"serviceAccountName", "rules"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/rbac/v1.PolicyRule"}, - } -} - -func schema_api_pkg_operators_v1alpha1_StrategyDeploymentSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "StrategyDeploymentSpec contains the name, spec and labels for the deployment ALM should create", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("k8s.io/api/apps/v1.DeploymentSpec"), - }, - }, - "label": { + "conditions": { SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, + Description: "Conditions is a list of the latest available observations about a Subscription's current state.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.SubscriptionCondition{}.OpenAPIModelName()), }, }, }, }, }, + "lastUpdated": { + SchemaProps: spec.SchemaProps{ + Description: "LastUpdated represents the last time that the Subscription status was updated.", + Ref: ref(metav1.Time{}.OpenAPIModelName()), + }, + }, }, - Required: []string{"name", "spec"}, + Required: []string{"lastUpdated"}, }, }, Dependencies: []string{ - "k8s.io/api/apps/v1.DeploymentSpec"}, + v1alpha1.InstallPlanReference{}.OpenAPIModelName(), v1alpha1.SubscriptionCatalogHealth{}.OpenAPIModelName(), v1alpha1.SubscriptionCondition{}.OpenAPIModelName(), "k8s.io/api/core/v1.ObjectReference", metav1.Time{}.OpenAPIModelName()}, } } -func schema_api_pkg_operators_v1alpha1_StrategyDetailsDeployment(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_api_pkg_operators_v1alpha1_UpdateStrategy(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "StrategyDetailsDeployment represents the parsed details of a Deployment InstallStrategy.", + Description: "UpdateStrategy holds all the different types of catalog source update strategies Currently only registry polling strategy is implemented", Type: []string{"object"}, Properties: map[string]spec.Schema{ - "deployments": { - SchemaProps: spec.SchemaProps{ - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.StrategyDeploymentSpec"), - }, - }, - }, - }, - }, - "permissions": { - SchemaProps: spec.SchemaProps{ - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.StrategyDeploymentPermissions"), - }, - }, - }, - }, - }, - "clusterPermissions": { + "registryPoll": { SchemaProps: spec.SchemaProps{ - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.StrategyDeploymentPermissions"), - }, - }, - }, + Ref: ref(v1alpha1.RegistryPoll{}.OpenAPIModelName()), }, }, }, - Required: []string{"deployments"}, }, }, Dependencies: []string{ - "github.com/operator-framework/api/pkg/operators/v1alpha1.StrategyDeploymentPermissions", "github.com/operator-framework/api/pkg/operators/v1alpha1.StrategyDeploymentSpec"}, + v1alpha1.RegistryPoll{}.OpenAPIModelName()}, } } @@ -1773,7 +3508,7 @@ func schema_package_server_apis_operators_v1_CSVDescription(ref common.Reference "version": { SchemaProps: spec.SchemaProps{ Description: "Version is the CSV's semantic version", - Ref: ref("github.com/operator-framework/api/pkg/lib/version.OperatorVersion"), + Ref: ref(version.OperatorVersion{}.OpenAPIModelName()), }, }, "provider": { @@ -1884,7 +3619,7 @@ func schema_package_server_apis_operators_v1_CSVDescription(ref common.Reference Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.InstallMode"), + Ref: ref(v1alpha1.InstallMode{}.OpenAPIModelName()), }, }, }, @@ -1893,13 +3628,13 @@ func schema_package_server_apis_operators_v1_CSVDescription(ref common.Reference "customresourcedefinitions": { SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.CustomResourceDefinitions"), + Ref: ref(v1alpha1.CustomResourceDefinitions{}.OpenAPIModelName()), }, }, "apiservicedefinitions": { SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.APIServiceDefinitions"), + Ref: ref(v1alpha1.APIServiceDefinitions{}.OpenAPIModelName()), }, }, "nativeApis": { @@ -1941,7 +3676,7 @@ func schema_package_server_apis_operators_v1_CSVDescription(ref common.Reference }, }, Dependencies: []string{ - "github.com/operator-framework/api/pkg/lib/version.OperatorVersion", "github.com/operator-framework/api/pkg/operators/v1alpha1.APIServiceDefinitions", "github.com/operator-framework/api/pkg/operators/v1alpha1.CustomResourceDefinitions", "github.com/operator-framework/api/pkg/operators/v1alpha1.InstallMode", v1.AppLink{}.OpenAPIModelName(), v1.Icon{}.OpenAPIModelName(), v1.Maintainer{}.OpenAPIModelName(), metav1.GroupVersionKind{}.OpenAPIModelName()}, + version.OperatorVersion{}.OpenAPIModelName(), v1alpha1.APIServiceDefinitions{}.OpenAPIModelName(), v1alpha1.CustomResourceDefinitions{}.OpenAPIModelName(), v1alpha1.InstallMode{}.OpenAPIModelName(), v1.AppLink{}.OpenAPIModelName(), v1.Icon{}.OpenAPIModelName(), v1.Maintainer{}.OpenAPIModelName(), metav1.GroupVersionKind{}.OpenAPIModelName()}, } } diff --git a/staging/operator-lifecycle-manager/scripts/codegen_violation_exceptions.list b/staging/operator-lifecycle-manager/scripts/codegen_violation_exceptions.list index ba2f1c0ca2..45b1f0c292 100644 --- a/staging/operator-lifecycle-manager/scripts/codegen_violation_exceptions.list +++ b/staging/operator-lifecycle-manager/scripts/codegen_violation_exceptions.list @@ -5,10 +5,12 @@ API rule violation: list_type_missing,github.com/operator-framework/api/pkg/oper API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,APIServiceDescription,SpecDescriptors API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,APIServiceDescription,StatusDescriptors API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,ActionDescriptor,XDescriptors +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,BundleLookup,Conditions API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,CRDDescription,ActionDescriptor API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,CRDDescription,Resources API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,CRDDescription,SpecDescriptors API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,CRDDescription,StatusDescriptors +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,CatalogSourceSpec,Secrets API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,CleanupStatus,PendingDeletion API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,ClusterServiceVersionSpec,Icon API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,ClusterServiceVersionSpec,InstallModes @@ -23,6 +25,12 @@ API rule violation: list_type_missing,github.com/operator-framework/api/pkg/oper API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,ClusterServiceVersionStatus,RequirementStatus API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,CustomResourceDefinitions,Owned API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,CustomResourceDefinitions,Required +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,GrpcPodConfig,Tolerations +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,InstallPlanSpec,ClusterServiceVersionNames +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,InstallPlanStatus,BundleLookups +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,InstallPlanStatus,CatalogSources +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,InstallPlanStatus,Conditions +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,InstallPlanStatus,Plan API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,RequirementStatus,Dependents API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,ResourceList,Instances API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,SpecDescriptor,XDescriptors @@ -31,6 +39,13 @@ API rule violation: list_type_missing,github.com/operator-framework/api/pkg/oper API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,StrategyDetailsDeployment,ClusterPermissions API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,StrategyDetailsDeployment,DeploymentSpecs API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,StrategyDetailsDeployment,Permissions +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,SubscriptionConfig,Env +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,SubscriptionConfig,EnvFrom +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,SubscriptionConfig,Tolerations +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,SubscriptionConfig,VolumeMounts +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,SubscriptionConfig,Volumes +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,SubscriptionStatus,CatalogHealth +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,SubscriptionStatus,Conditions API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,WebhookDescription,AdmissionReviewVersions API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,WebhookDescription,ConversionCRDs API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,WebhookDescription,Rules @@ -41,17 +56,31 @@ API rule violation: list_type_missing,github.com/operator-framework/operator-lif API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,APIServiceDescription,ActionDescriptor API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,ActionDescriptor,XDescriptors API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,CRDDescription,ActionDescriptor +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,CatalogSourceStatus,ConfigMapResource +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,CatalogSourceStatus,GRPCConnectionState +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,CatalogSourceStatus,RegistryServiceStatus API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,ClusterServiceVersionSpec,APIServiceDefinitions API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,ClusterServiceVersionSpec,CustomResourceDefinitions API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,ClusterServiceVersionSpec,InstallStrategy API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,ClusterServiceVersionSpec,WebhookDefinitions +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,GRPCConnectionState,LastConnectTime API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,Icon,Data API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,Icon,MediaType +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,InstallPlanReference,UID +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,InstallPlanSpec,CatalogSource +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,InstallPlanSpec,CatalogSourceNamespace API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,NamedInstallStrategy,StrategyName API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,NamedInstallStrategy,StrategySpec +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,RegistryPoll,RawInterval API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,SpecDescriptor,XDescriptors API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,StatusDescriptor,XDescriptors +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,StepResource,CatalogSource +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,StepResource,CatalogSourceNamespace API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,StrategyDetailsDeployment,DeploymentSpecs +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,SubscriptionSpec,CatalogSource +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,SubscriptionSpec,CatalogSourceNamespace +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,SubscriptionSpec,Package +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,SubscriptionStatus,Install API rule violation: names_match,github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/apis/operators/v1,CSVDescription,APIServiceDefinitions API rule violation: names_match,github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/apis/operators/v1,CSVDescription,CustomResourceDefinitions API rule violation: names_match,github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/apis/operators/v1,CSVDescription,LongDescription @@ -72,3 +101,7 @@ API rule violation: names_match,k8s.io/apimachinery/pkg/apis/meta/v1,StatusCause API rule violation: names_match,k8s.io/apimachinery/pkg/apis/meta/v1,Time,Time API rule violation: names_match,k8s.io/apimachinery/pkg/runtime,Unknown,ContentEncoding API rule violation: names_match,k8s.io/apimachinery/pkg/runtime,Unknown,ContentType +API rule violation: streaming_list_type_json_tags,github.com/operator-framework/api/pkg/operators/v1alpha1,CatalogSourceList,ListMeta +API rule violation: streaming_list_type_json_tags,github.com/operator-framework/api/pkg/operators/v1alpha1,ClusterServiceVersionList,ListMeta +API rule violation: streaming_list_type_json_tags,github.com/operator-framework/api/pkg/operators/v1alpha1,InstallPlanList,ListMeta +API rule violation: streaming_list_type_json_tags,github.com/operator-framework/api/pkg/operators/v1alpha1,SubscriptionList,ListMeta diff --git a/staging/operator-registry/.github/workflows/goreleaser.yaml b/staging/operator-registry/.github/workflows/goreleaser.yaml index 85703681d1..8b19a1ebc4 100644 --- a/staging/operator-registry/.github/workflows/goreleaser.yaml +++ b/staging/operator-registry/.github/workflows/goreleaser.yaml @@ -20,7 +20,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 - - uses: actions/download-artifact@v7 + - uses: actions/download-artifact@v8 - run: | for dist in dist-*; do @@ -64,7 +64,7 @@ jobs: RELEASE_ARGS: release --verbose --skip=validate --clean -f release/goreleaser.windows.yaml ${{ github.event_name == 'pull_request' && '--snapshot' || '' }} - run: tar -cvf dist-windows.tar dist - - uses: actions/upload-artifact@v6 + - uses: actions/upload-artifact@v7 with: name: dist-windows path: dist-windows.tar @@ -88,7 +88,7 @@ jobs: RELEASE_ARGS: release --verbose --clean -f release/goreleaser.darwin.yaml --skip=validate ${{ github.event_name == 'pull_request' && '--snapshot' || '' }} - run: gtar -cvf dist-darwin.tar dist - - uses: actions/upload-artifact@v6 + - uses: actions/upload-artifact@v7 with: name: dist-darwin path: dist-darwin.tar @@ -146,7 +146,7 @@ jobs: RELEASE_ARGS: release --verbose --clean -f release/goreleaser.linux.yaml --skip=validate ${{ github.event_name == 'pull_request' && '--snapshot' || '' }} - run: tar -cvf dist-linux.tar dist - - uses: actions/upload-artifact@v6 + - uses: actions/upload-artifact@v7 with: name: dist-linux path: dist-linux.tar diff --git a/staging/operator-registry/OWNERS b/staging/operator-registry/OWNERS index b6e9920a0d..3e77b32529 100644 --- a/staging/operator-registry/OWNERS +++ b/staging/operator-registry/OWNERS @@ -5,6 +5,7 @@ approvers: - joelanford - kevinrizza - oceanc80 + - pedjak - perdasilva - tmshort # review == this code is good /lgtm @@ -16,6 +17,7 @@ reviewers: - joelanford - kevinrizza - oceanc80 + - pedjak - perdasilva - rashmigottipati - tmshort diff --git a/staging/operator-registry/alpha/declcfg/declcfg_to_model.go b/staging/operator-registry/alpha/declcfg/declcfg_to_model.go index 62dfd13ca7..68e04b0f21 100644 --- a/staging/operator-registry/alpha/declcfg/declcfg_to_model.go +++ b/staging/operator-registry/alpha/declcfg/declcfg_to_model.go @@ -4,6 +4,7 @@ import ( "fmt" "github.com/blang/semver/v4" + "go.podman.io/image/v5/docker/reference" "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/util/validation" @@ -128,6 +129,15 @@ func ConvertToModel(cfg DeclarativeConfig) (model.Model, error) { return nil, fmt.Errorf("package %q does not match %q property %q", b.Package, property.TypePackage, props.Packages[0].PackageName) } + if err := validateImagePullSpec(b.Image, "package %q bundle %q image", b.Package, b.Name); err != nil { + return nil, err + } + for i, rel := range b.RelatedImages { + if err := validateImagePullSpec(rel.Image, "package %q bundle %q relatedImages[%d].image", b.Package, b.Name, i); err != nil { + return nil, err + } + } + // Parse version from the package property. rawVersion := props.Packages[0].Version ver, err := semver.Parse(rawVersion) @@ -269,3 +279,15 @@ func relatedImagesToModelRelatedImages(in []RelatedImage) []model.RelatedImage { } return out } + +// validateImagePullSpec checks that a non-empty image pull spec is valid +// Empty pull specs are not validated. +func validateImagePullSpec(pullSpec, errFormat string, errArgs ...interface{}) error { + if pullSpec == "" { + return nil + } + if _, err := reference.ParseNormalizedNamed(pullSpec); err != nil { + return fmt.Errorf(errFormat+": invalid image pull spec %q: %w", append(errArgs, pullSpec, err)...) + } + return nil +} diff --git a/staging/operator-registry/alpha/declcfg/declcfg_to_model_test.go b/staging/operator-registry/alpha/declcfg/declcfg_to_model_test.go index 7a5b363774..2e176ba24c 100644 --- a/staging/operator-registry/alpha/declcfg/declcfg_to_model_test.go +++ b/staging/operator-registry/alpha/declcfg/declcfg_to_model_test.go @@ -506,6 +506,71 @@ func TestConvertToModel(t *testing.T) { })}, }, }, + { + name: "Error/BundleImageInvalidPullSpecUnsupportedDigestSsha256", + assertion: hasErrorContaining("invalid image pull spec"), + cfg: DeclarativeConfig{ + Packages: []Package{newTestPackage("foo", "alpha", svgSmallCircle)}, + Channels: []Channel{newTestChannel("foo", "alpha", ChannelEntry{Name: testBundleName("foo", "0.1.0")})}, + Bundles: []Bundle{newTestBundle("foo", "0.1.0", func(b *Bundle) { + // Misspelled digest algorithm: ssha256 instead of sha256 (unsupported hash type) + b.Image = "quay.io/operator-framework/foo-bundle@ssha256:abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234" + })}, + }, + }, + { + name: "Error/BundleImageInvalidPullSpecUnsupportedDigestMd5", + assertion: hasErrorContaining("invalid image pull spec"), + cfg: DeclarativeConfig{ + Packages: []Package{newTestPackage("foo", "alpha", svgSmallCircle)}, + Channels: []Channel{newTestChannel("foo", "alpha", ChannelEntry{Name: testBundleName("foo", "0.1.0")})}, + Bundles: []Bundle{newTestBundle("foo", "0.1.0", func(b *Bundle) { + b.Image = "quay.io/operator-framework/foo-bundle@md5:abcd1234abcd1234abcd1234abcd1234" + })}, + }, + }, + { + name: "Error/BundleRelatedImageInvalidPullSpecSsha256", + assertion: hasErrorContaining("invalid image pull spec"), + cfg: DeclarativeConfig{ + Packages: []Package{newTestPackage("foo", "alpha", svgSmallCircle)}, + Channels: []Channel{newTestChannel("foo", "alpha", ChannelEntry{Name: testBundleName("foo", "0.1.0")})}, + Bundles: []Bundle{newTestBundle("foo", "0.1.0", func(b *Bundle) { + b.RelatedImages = []RelatedImage{ + {Name: "bundle", Image: testBundleImage("foo", "0.1.0")}, + {Name: "operator", Image: "quay.io/operator-framework/my-operator@ssha256:abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234"}, + } + })}, + }, + }, + { + name: "Success/BundleImageValidSha256Digest", + assertion: require.NoError, + cfg: DeclarativeConfig{ + Packages: []Package{newTestPackage("foo", "alpha", svgSmallCircle)}, + Channels: []Channel{newTestChannel("foo", "alpha", ChannelEntry{Name: testBundleName("foo", "0.1.0")})}, + Bundles: []Bundle{newTestBundle("foo", "0.1.0", func(b *Bundle) { + b.Image = "quay.io/operator-framework/foo-bundle@sha256:abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234" + b.RelatedImages = []RelatedImage{ + {Name: "bundle", Image: "quay.io/operator-framework/foo-bundle@sha256:abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234"}, + } + })}, + }, + }, + { + name: "Success/BundleImageValidTagWithDigest", + assertion: require.NoError, + cfg: DeclarativeConfig{ + Packages: []Package{newTestPackage("foo", "alpha", svgSmallCircle)}, + Channels: []Channel{newTestChannel("foo", "alpha", ChannelEntry{Name: testBundleName("foo", "0.1.0")})}, + Bundles: []Bundle{newTestBundle("foo", "0.1.0", func(b *Bundle) { + b.Image = "quay.io/operator-framework/foo-bundle:v0.1.0@sha256:abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234" + b.RelatedImages = []RelatedImage{ + {Name: "bundle", Image: "quay.io/operator-framework/foo-bundle:v0.1.0@sha256:abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234"}, + } + })}, + }, + }, } for _, s := range specs { @@ -577,3 +642,14 @@ func hasError(expectedError string) require.ErrorAssertionFunc { t.FailNow() } } + +// hasErrorContaining returns an ErrorAssertionFunc that passes when the error message contains the given substring. +func hasErrorContaining(substring string) require.ErrorAssertionFunc { + return func(t require.TestingT, actualError error, args ...interface{}) { + if stdt, ok := t.(*testing.T); ok { + stdt.Helper() + } + require.Error(t, actualError) + require.Contains(t, actualError.Error(), substring, "expected error to contain %q", substring) + } +} diff --git a/staging/operator-registry/go.mod b/staging/operator-registry/go.mod index 051c0c2e10..c3de54805a 100644 --- a/staging/operator-registry/go.mod +++ b/staging/operator-registry/go.mod @@ -1,6 +1,6 @@ module github.com/operator-framework/operator-registry -go 1.25.3 +go 1.25.7 require ( github.com/akrylysov/pogreb v0.10.2 @@ -14,17 +14,17 @@ require ( github.com/golang/mock v1.7.0-rc.1 github.com/google/go-cmp v0.7.0 github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.3.3 - github.com/grpc-ecosystem/grpc-health-probe v0.4.44 + github.com/grpc-ecosystem/grpc-health-probe v0.4.45 github.com/h2non/filetype v1.1.3 github.com/h2non/go-is-svg v0.0.0-20160927212452-35e8c4b0612c github.com/joelanford/ignore v0.1.1 - github.com/mattn/go-sqlite3 v1.14.33 + github.com/mattn/go-sqlite3 v1.14.34 github.com/maxbrunsfeld/counterfeiter/v6 v6.12.1 github.com/onsi/ginkgo/v2 v2.28.1 github.com/onsi/gomega v1.39.1 github.com/opencontainers/go-digest v1.0.0 github.com/opencontainers/image-spec v1.1.1 - github.com/operator-framework/api v0.39.0 + github.com/operator-framework/api v0.41.0 github.com/otiai10/copy v1.14.1 github.com/pkg/errors v0.9.1 github.com/sirupsen/logrus v1.9.4 @@ -33,21 +33,21 @@ require ( github.com/stretchr/testify v1.11.1 github.com/tidwall/btree v1.8.1 go.etcd.io/bbolt v1.4.3 - go.podman.io/common v0.66.1 - go.podman.io/image/v5 v5.38.0 + go.podman.io/common v0.67.0 + go.podman.io/image/v5 v5.39.1 golang.org/x/exp v0.0.0-20260112195511-716be5621a96 - golang.org/x/mod v0.32.0 + golang.org/x/mod v0.33.0 golang.org/x/sync v0.19.0 - golang.org/x/sys v0.40.0 - golang.org/x/text v0.33.0 - google.golang.org/grpc v1.78.0 - google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.6.0 + golang.org/x/sys v0.41.0 + golang.org/x/text v0.34.0 + google.golang.org/grpc v1.79.1 + google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.6.1 google.golang.org/protobuf v1.36.11 gopkg.in/yaml.v2 v2.4.0 - k8s.io/api v0.35.0 - k8s.io/apiextensions-apiserver v0.35.0 - k8s.io/apimachinery v0.35.0 - k8s.io/client-go v0.35.0 + k8s.io/api v0.35.1 + k8s.io/apiextensions-apiserver v0.35.1 + k8s.io/apimachinery v0.35.1 + k8s.io/client-go v0.35.1 k8s.io/kubectl v0.35.0 oras.land/oras-go/v2 v2.6.0 sigs.k8s.io/controller-runtime v0.23.1 @@ -200,7 +200,7 @@ require ( go.opentelemetry.io/otel/sdk/metric v1.40.0 // indirect go.opentelemetry.io/otel/trace v1.40.0 // indirect go.opentelemetry.io/proto/otlp v1.9.0 // indirect - go.podman.io/storage v1.61.0 // indirect + go.podman.io/storage v1.62.0 // indirect go.yaml.in/yaml/v2 v2.4.3 // indirect go.yaml.in/yaml/v3 v3.0.4 // indirect golang.org/x/crypto v0.47.0 // indirect @@ -216,9 +216,9 @@ require ( gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/apiserver v0.35.0 // indirect + k8s.io/apiserver v0.35.1 // indirect k8s.io/cli-runtime v0.35.0 // indirect - k8s.io/component-base v0.35.0 // indirect + k8s.io/component-base v0.35.1 // indirect k8s.io/klog/v2 v2.130.1 // indirect k8s.io/kube-openapi v0.0.0-20260127142750-a19766b6e2d4 // indirect k8s.io/utils v0.0.0-20260108192941-914a6e750570 // indirect diff --git a/staging/operator-registry/go.sum b/staging/operator-registry/go.sum index d2a71be6b4..e4642d6534 100644 --- a/staging/operator-registry/go.sum +++ b/staging/operator-registry/go.sum @@ -244,8 +244,8 @@ github.com/grpc-ecosystem/go-grpc-prometheus v1.2.1-0.20210315223345-82c243799c9 github.com/grpc-ecosystem/go-grpc-prometheus v1.2.1-0.20210315223345-82c243799c99/go.mod h1:3bDW6wMZJB7tiONtC/1Xpicra6Wp5GgbTbQWCbI5fkc= github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.7 h1:X+2YciYSxvMQK0UZ7sg45ZVabVZBeBuvMkmuI2V3Fak= github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.7/go.mod h1:lW34nIZuQ8UDPdkon5fmfp2l3+ZkQ2me/+oecHYLOII= -github.com/grpc-ecosystem/grpc-health-probe v0.4.44 h1:UL/D651ntWGhnAR8MwhdzPM0tHhWFrXToL+9uX+YXRs= -github.com/grpc-ecosystem/grpc-health-probe v0.4.44/go.mod h1:omGa1rvwXOYzLpaxeOAHruRqdCYGJUSVds++SpkF5iQ= +github.com/grpc-ecosystem/grpc-health-probe v0.4.45 h1:MShozNmU62P19s8ectkSDecdGfzmYlvphvD/4wxRjF8= +github.com/grpc-ecosystem/grpc-health-probe v0.4.45/go.mod h1:Amn2YzmUFN8Usb0kffD18fQ005c7C3sCn92kBxiOm5E= github.com/h2non/filetype v1.1.3 h1:FKkx9QbD7HR/zjK1Ia5XiBsq9zdLi5Kf3zGyFTAFkGg= github.com/h2non/filetype v1.1.3/go.mod h1:319b3zT68BvV+WRj7cwy856M2ehB3HqNOt6sy1HndBY= github.com/h2non/go-is-svg v0.0.0-20160927212452-35e8c4b0612c h1:fEE5/5VNnYUoBOj2I9TP8Jc+a7lge3QWn9DKE7NCwfc= @@ -291,8 +291,8 @@ github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWE github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-runewidth v0.0.19 h1:v++JhqYnZuu5jSKrk9RbgF5v4CGUjqRfBm05byFGLdw= github.com/mattn/go-runewidth v0.0.19/go.mod h1:XBkDxAl56ILZc9knddidhrOlY5R/pDhgLpndooCuJAs= -github.com/mattn/go-sqlite3 v1.14.33 h1:A5blZ5ulQo2AtayQ9/limgHEkFreKj1Dv226a1K73s0= -github.com/mattn/go-sqlite3 v1.14.33/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y= +github.com/mattn/go-sqlite3 v1.14.34 h1:3NtcvcUnFBPsuRcno8pUtupspG/GM+9nZ88zgJcp6Zk= +github.com/mattn/go-sqlite3 v1.14.34/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/maxbrunsfeld/counterfeiter/v6 v6.12.1 h1:D4O2wLxB384TS3ohBJMfolnxb4qGmoZ1PnWNtit8LYo= github.com/maxbrunsfeld/counterfeiter/v6 v6.12.1/go.mod h1:RuJdxo0oI6dClIaMzdl3hewq3a065RH65dofJP03h8I= @@ -337,8 +337,8 @@ github.com/opencontainers/image-spec v1.1.1 h1:y0fUlFfIZhPF1W537XOLg0/fcx6zcHCJw github.com/opencontainers/image-spec v1.1.1/go.mod h1:qpqAh3Dmcf36wStyyWU+kCeDgrGnAve2nCC8+7h8Q0M= github.com/opencontainers/runtime-spec v1.3.0 h1:YZupQUdctfhpZy3TM39nN9Ika5CBWT5diQ8ibYCRkxg= github.com/opencontainers/runtime-spec v1.3.0/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/operator-framework/api v0.39.0 h1:9h7aVufeQ+l2ACXJE51hkMFcqrQwJOLM6/vwgGu6tgI= -github.com/operator-framework/api v0.39.0/go.mod h1:tcYIwuznZzfo4HKUTu0dbquIHqxiewnKW/ZmhHKzMH8= +github.com/operator-framework/api v0.41.0 h1:B0nutndl95elbLXJGRlkFNTI8OuZIjSqvTEeORPhTKo= +github.com/operator-framework/api v0.41.0/go.mod h1:Ouud+eqruzll9X3iv8wuAOTNAyyEncYXp4IVgbIlIdg= github.com/otiai10/copy v1.14.1 h1:5/7E6qsUMBaH5AnQ0sSLzzTg1oTECmcCmT6lvF45Na8= github.com/otiai10/copy v1.14.1/go.mod h1:oQwrEDDOci3IM8dJF0d8+jnbfPDllW6vUjNc3DoZm9I= github.com/otiai10/mint v1.6.3 h1:87qsV/aw1F5as1eH1zS/yqHY85ANKVMgkDrf9rcxbQs= @@ -505,12 +505,12 @@ go.opentelemetry.io/otel/trace v1.40.0 h1:WA4etStDttCSYuhwvEa8OP8I5EWu24lkOzp+ZY go.opentelemetry.io/otel/trace v1.40.0/go.mod h1:zeAhriXecNGP/s2SEG3+Y8X9ujcJOTqQ5RgdEJcawiA= go.opentelemetry.io/proto/otlp v1.9.0 h1:l706jCMITVouPOqEnii2fIAuO3IVGBRPV5ICjceRb/A= go.opentelemetry.io/proto/otlp v1.9.0/go.mod h1:xE+Cx5E/eEHw+ISFkwPLwCZefwVjY+pqKg1qcK03+/4= -go.podman.io/common v0.66.1 h1:zDyd4HhVgQAN8LupBHCnhtM3FEOJ9DwmThjulXZq2qA= -go.podman.io/common v0.66.1/go.mod h1:aNd2a0S7pY+fx1X5kpQYuF4hbwLU8ZOccuVrhu7h1Xc= -go.podman.io/image/v5 v5.38.0 h1:aUKrCANkPvze1bnhLJsaubcfz0d9v/bSDLnwsXJm6G4= -go.podman.io/image/v5 v5.38.0/go.mod h1:hSIoIUzgBnmc4DjoIdzk63aloqVbD7QXDMkSE/cvG90= -go.podman.io/storage v1.61.0 h1:5hD/oyRYt1f1gxgvect+8syZBQhGhV28dCw2+CZpx0Q= -go.podman.io/storage v1.61.0/go.mod h1:A3UBK0XypjNZ6pghRhuxg62+2NIm5lcUGv/7XyMhMUI= +go.podman.io/common v0.67.0 h1:6Ci5oU1ek08OAxBLkHEqSyWmjNh5zf03PRqZ04cPdwU= +go.podman.io/common v0.67.0/go.mod h1:sB9L8LMtmf5Hpek2qkEyRrcSzpb+gYpG3vq5Khima3U= +go.podman.io/image/v5 v5.39.1 h1:loIw4qHzZzBlUguYZau40u8HbR5MrTPQhwT4Hy6sCm0= +go.podman.io/image/v5 v5.39.1/go.mod h1:SlaR6Pra1ATIx4BcuZ16oafb3QcCHISaKcJbtlN/G/0= +go.podman.io/storage v1.62.0 h1:0QjX1XlzVmbiaulb+aR/CG6p9+pzaqwIeZPe3tEjHbY= +go.podman.io/storage v1.62.0/go.mod h1:A3UBK0XypjNZ6pghRhuxg62+2NIm5lcUGv/7XyMhMUI= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= @@ -546,8 +546,8 @@ golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= -golang.org/x/mod v0.32.0 h1:9F4d3PHLljb6x//jOyokMv3eX+YDeepZSEo3mFJy93c= -golang.org/x/mod v0.32.0/go.mod h1:SgipZ/3h2Ci89DlEtEXWUk/HteuRin+HHhN+WbNhguU= +golang.org/x/mod v0.33.0 h1:tHFzIWbBifEmbwtGz65eaWyGiGZatSrT9prnU8DbVL8= +golang.org/x/mod v0.33.0/go.mod h1:swjeQEj+6r7fODbD2cqrnje9PnziFuw4bmLbBZFrQ5w= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -608,8 +608,8 @@ golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.40.0 h1:DBZZqJ2Rkml6QMQsZywtnjnnGvHza6BTfYFWY9kjEWQ= -golang.org/x/sys v0.40.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= +golang.org/x/sys v0.41.0 h1:Ivj+2Cp/ylzLiEU89QhWblYnOE9zerudt9Ftecq2C6k= +golang.org/x/sys v0.41.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= @@ -631,8 +631,8 @@ golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY= -golang.org/x/text v0.33.0 h1:B3njUFyqtHDUI5jMn1YIr5B0IE2U0qck04r6d4KPAxE= -golang.org/x/text v0.33.0/go.mod h1:LuMebE6+rBincTi9+xWTY8TztLzKHc/9C1uBCG27+q8= +golang.org/x/text v0.34.0 h1:oL/Qq0Kdaqxa1KbNeMKwQq0reLCCaFtqu2eNuSeNHbk= +golang.org/x/text v0.34.0/go.mod h1:homfLqTYRFyVYemLBFl5GgL/DWEiH5wcsQ5gSh1yziA= golang.org/x/time v0.14.0 h1:MRx4UaLrDotUKUdCIqzPC48t1Y9hANFKIRpNx+Te8PI= golang.org/x/time v0.14.0/go.mod h1:eL/Oa2bBBK0TkX57Fyni+NgnyQQN4LitPmob2Hjnqw4= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -672,10 +672,10 @@ google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyac google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= -google.golang.org/grpc v1.78.0 h1:K1XZG/yGDJnzMdd/uZHAkVqJE+xIDOcmdSFZkBUicNc= -google.golang.org/grpc v1.78.0/go.mod h1:I47qjTo4OKbMkjA/aOOwxDIiPSBofUtQUI5EfpWvW7U= -google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.6.0 h1:6Al3kEFFP9VJhRz3DID6quisgPnTeZVr4lep9kkxdPA= -google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.6.0/go.mod h1:QLvsjh0OIR0TYBeiu2bkWGTJBUNQ64st52iWj/yA93I= +google.golang.org/grpc v1.79.1 h1:zGhSi45ODB9/p3VAawt9a+O/MULLl9dpizzNNpq7flY= +google.golang.org/grpc v1.79.1/go.mod h1:KmT0Kjez+0dde/v2j9vzwoAScgEPx/Bw1CYChhHLrHQ= +google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.6.1 h1:/WILD1UcXj/ujCxgoL/DvRgt2CP3txG8+FwkUbb9110= +google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.6.1/go.mod h1:YNKnb2OAApgYn2oYY47Rn7alMr1zWjb2U8Q0aoGWiNc= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -707,20 +707,20 @@ gotest.tools/v3 v3.5.2 h1:7koQfIKdy+I8UTetycgUqXWSDwpgv193Ka+qRsmBY8Q= gotest.tools/v3 v3.5.2/go.mod h1:LtdLGcnqToBH83WByAAi/wiwSFCArdFIUV/xxN4pcjA= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -k8s.io/api v0.35.0 h1:iBAU5LTyBI9vw3L5glmat1njFK34srdLmktWwLTprlY= -k8s.io/api v0.35.0/go.mod h1:AQ0SNTzm4ZAczM03QH42c7l3bih1TbAXYo0DkF8ktnA= -k8s.io/apiextensions-apiserver v0.35.0 h1:3xHk2rTOdWXXJM+RDQZJvdx0yEOgC0FgQ1PlJatA5T4= -k8s.io/apiextensions-apiserver v0.35.0/go.mod h1:E1Ahk9SADaLQ4qtzYFkwUqusXTcaV2uw3l14aqpL2LU= -k8s.io/apimachinery v0.35.0 h1:Z2L3IHvPVv/MJ7xRxHEtk6GoJElaAqDCCU0S6ncYok8= -k8s.io/apimachinery v0.35.0/go.mod h1:jQCgFZFR1F4Ik7hvr2g84RTJSZegBc8yHgFWKn//hns= -k8s.io/apiserver v0.35.0 h1:CUGo5o+7hW9GcAEF3x3usT3fX4f9r8xmgQeCBDaOgX4= -k8s.io/apiserver v0.35.0/go.mod h1:QUy1U4+PrzbJaM3XGu2tQ7U9A4udRRo5cyxkFX0GEds= +k8s.io/api v0.35.1 h1:0PO/1FhlK/EQNVK5+txc4FuhQibV25VLSdLMmGpDE/Q= +k8s.io/api v0.35.1/go.mod h1:28uR9xlXWml9eT0uaGo6y71xK86JBELShLy4wR1XtxM= +k8s.io/apiextensions-apiserver v0.35.1 h1:p5vvALkknlOcAqARwjS20kJffgzHqwyQRM8vHLwgU7w= +k8s.io/apiextensions-apiserver v0.35.1/go.mod h1:2CN4fe1GZ3HMe4wBr25qXyJnJyZaquy4nNlNmb3R7AQ= +k8s.io/apimachinery v0.35.1 h1:yxO6gV555P1YV0SANtnTjXYfiivaTPvCTKX6w6qdDsU= +k8s.io/apimachinery v0.35.1/go.mod h1:jQCgFZFR1F4Ik7hvr2g84RTJSZegBc8yHgFWKn//hns= +k8s.io/apiserver v0.35.1 h1:potxdhhTL4i6AYAa2QCwtlhtB1eCdWQFvJV6fXgJzxs= +k8s.io/apiserver v0.35.1/go.mod h1:BiL6Dd3A2I/0lBnteXfWmCFobHM39vt5+hJQd7Lbpi4= k8s.io/cli-runtime v0.35.0 h1:PEJtYS/Zr4p20PfZSLCbY6YvaoLrfByd6THQzPworUE= k8s.io/cli-runtime v0.35.0/go.mod h1:VBRvHzosVAoVdP3XwUQn1Oqkvaa8facnokNkD7jOTMY= -k8s.io/client-go v0.35.0 h1:IAW0ifFbfQQwQmga0UdoH0yvdqrbwMdq9vIFEhRpxBE= -k8s.io/client-go v0.35.0/go.mod h1:q2E5AAyqcbeLGPdoRB+Nxe3KYTfPce1Dnu1myQdqz9o= -k8s.io/component-base v0.35.0 h1:+yBrOhzri2S1BVqyVSvcM3PtPyx5GUxCK2tinZz1G94= -k8s.io/component-base v0.35.0/go.mod h1:85SCX4UCa6SCFt6p3IKAPej7jSnF3L8EbfSyMZayJR0= +k8s.io/client-go v0.35.1 h1:+eSfZHwuo/I19PaSxqumjqZ9l5XiTEKbIaJ+j1wLcLM= +k8s.io/client-go v0.35.1/go.mod h1:1p1KxDt3a0ruRfc/pG4qT/3oHmUj1AhSHEcxNSGg+OA= +k8s.io/component-base v0.35.1 h1:XgvpRf4srp037QWfGBLFsYMUQJkE5yMa94UsJU7pmcE= +k8s.io/component-base v0.35.1/go.mod h1:HI/6jXlwkiOL5zL9bqA3en1Ygv60F03oEpnuU1G56Bs= k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= k8s.io/kube-openapi v0.0.0-20260127142750-a19766b6e2d4 h1:HhDfevmPS+OalTjQRKbTHppRIz01AWi8s45TMXStgYY= diff --git a/staging/operator-registry/pkg/registry/csv.go b/staging/operator-registry/pkg/registry/csv.go index fec3d2907b..26766f6b60 100644 --- a/staging/operator-registry/pkg/registry/csv.go +++ b/staging/operator-registry/pkg/registry/csv.go @@ -187,6 +187,7 @@ func (csv *ClusterServiceVersion) GetVersion() (string, error) { // GetRelease returns the release of the CSV // // If not defined, the function returns an empty string. +// The release field can be either a string or a number. func (csv *ClusterServiceVersion) GetRelease() (string, error) { var objmap map[string]*json.RawMessage if err := json.Unmarshal(csv.Spec, &objmap); err != nil { @@ -198,12 +199,24 @@ func (csv *ClusterServiceVersion) GetRelease() (string, error) { return "", nil } + // Try to unmarshal as string first (the expected type) var r string - if err := json.Unmarshal(*rawValue, &r); err != nil { - return "", err + if err := json.Unmarshal(*rawValue, &r); err == nil { + return r, nil + } + + // If string unmarshal fails, try as a number and convert to string + var num float64 + if err := json.Unmarshal(*rawValue, &num); err == nil { + // Format as integer if it's a whole number, otherwise as float + if num == float64(int64(num)) { + return fmt.Sprintf("%d", int64(num)), nil + } + return fmt.Sprintf("%g", num), nil } - return r, nil + // If both attempts fail, return an error + return "", fmt.Errorf("release field must be a string or number") } // GetSkipRange returns the skiprange of the CSV diff --git a/staging/operator-registry/pkg/registry/csv_test.go b/staging/operator-registry/pkg/registry/csv_test.go index 59a64cc8a7..b0553eef43 100644 --- a/staging/operator-registry/pkg/registry/csv_test.go +++ b/staging/operator-registry/pkg/registry/csv_test.go @@ -465,6 +465,101 @@ func TestClusterServiceVersion_GetVersion(t *testing.T) { } } +func TestClusterServiceVersion_GetRelease(t *testing.T) { + type fields struct { + TypeMeta metav1.TypeMeta + ObjectMeta metav1.ObjectMeta + Spec json.RawMessage + } + tests := []struct { + name string + fields fields + want string + wantErr bool + }{ + { + name: "string release", + fields: fields{ + TypeMeta: metav1.TypeMeta{}, + ObjectMeta: metav1.ObjectMeta{}, + Spec: json.RawMessage(`{"release": "1.0.0"}`), + }, + want: "1.0.0", + }, + { + name: "integer numeric release", + fields: fields{ + TypeMeta: metav1.TypeMeta{}, + ObjectMeta: metav1.ObjectMeta{}, + Spec: json.RawMessage(`{"release": 20250104}`), + }, + want: "20250104", + }, + { + name: "float numeric release", + fields: fields{ + TypeMeta: metav1.TypeMeta{}, + ObjectMeta: metav1.ObjectMeta{}, + Spec: json.RawMessage(`{"release": 0.20250104}`), + }, + want: "0.20250104", + }, + { + name: "large integer release", + fields: fields{ + TypeMeta: metav1.TypeMeta{}, + ObjectMeta: metav1.ObjectMeta{}, + Spec: json.RawMessage(`{"release": 20250104235959}`), + }, + want: "20250104235959", + }, + { + name: "no release field", + fields: fields{ + TypeMeta: metav1.TypeMeta{}, + ObjectMeta: metav1.ObjectMeta{}, + Spec: json.RawMessage(`{"other": "field"}`), + }, + want: "", + }, + { + name: "null release", + fields: fields{ + TypeMeta: metav1.TypeMeta{}, + ObjectMeta: metav1.ObjectMeta{}, + Spec: json.RawMessage(`{"release": null}`), + }, + want: "", + }, + { + name: "invalid release type", + fields: fields{ + TypeMeta: metav1.TypeMeta{}, + ObjectMeta: metav1.ObjectMeta{}, + Spec: json.RawMessage(`{"release": true}`), + }, + wantErr: true, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + csv := &ClusterServiceVersion{ + TypeMeta: tt.fields.TypeMeta, + ObjectMeta: tt.fields.ObjectMeta, + Spec: tt.fields.Spec, + } + got, err := csv.GetRelease() + if (err != nil) != tt.wantErr { + t.Errorf("GetRelease() error = %v, wantErr %v", err, tt.wantErr) + return + } + if got != tt.want { + t.Errorf("GetRelease() got = %v, want %v", got, tt.want) + } + }) + } +} + func TestClusterServiceVersion_GetRelatedImages(t *testing.T) { type fields struct { TypeMeta metav1.TypeMeta diff --git a/vendor/github.com/mattn/go-sqlite3/README.md b/vendor/github.com/mattn/go-sqlite3/README.md index 76f49bacc9..5c4dd54326 100644 --- a/vendor/github.com/mattn/go-sqlite3/README.md +++ b/vendor/github.com/mattn/go-sqlite3/README.md @@ -174,6 +174,7 @@ go build -tags "icu json1 fts5 secure_delete" | JSON SQL Functions | sqlite_json | When this option is defined in the amalgamation, the JSON SQL functions are added to the build automatically | | Math Functions | sqlite_math_functions | This compile-time option enables built-in scalar math functions. For more information see [Built-In Mathematical SQL Functions](https://www.sqlite.org/lang_mathfunc.html) | | OS Trace | sqlite_os_trace | This option enables OSTRACE() debug logging. This can be verbose and should not be used in production. | +| Percentile | sqlite_percentile | This option enables [The Percentile Extension](sqlite.org/percentile.html). | | Pre Update Hook | sqlite_preupdate_hook | Registers a callback function that is invoked prior to each INSERT, UPDATE, and DELETE operation on a database table. | | Secure Delete | sqlite_secure_delete | This compile-time option changes the default setting of the secure_delete pragma.

When this option is not used, secure_delete defaults to off. When this option is present, secure_delete defaults to on.

The secure_delete setting causes deleted content to be overwritten with zeros. There is a small performance penalty since additional I/O must occur.

On the other hand, secure_delete can prevent fragments of sensitive information from lingering in unused parts of the database file after it has been deleted. See the documentation on the secure_delete pragma for additional information | | Secure Delete (FAST) | sqlite_secure_delete_fast | For more information see [PRAGMA secure_delete](https://www.sqlite.org/pragma.html#pragma_secure_delete) | diff --git a/vendor/github.com/mattn/go-sqlite3/sqlite3-binding.c b/vendor/github.com/mattn/go-sqlite3/sqlite3-binding.c index 387a5e9655..41a0c9ef84 100644 --- a/vendor/github.com/mattn/go-sqlite3/sqlite3-binding.c +++ b/vendor/github.com/mattn/go-sqlite3/sqlite3-binding.c @@ -1,7 +1,7 @@ #ifndef USE_LIBSQLITE3 /****************************************************************************** ** This file is an amalgamation of many separate C source files from SQLite -** version 3.51.1. By combining all the individual C code files into this +** version 3.51.2. By combining all the individual C code files into this ** single large file, the entire code can be compiled as a single translation ** unit. This allows many compilers to do optimizations that would not be ** possible if the files were compiled separately. Performance improvements @@ -19,7 +19,7 @@ ** separate file. This file contains only code for the core SQLite library. ** ** The content in this amalgamation comes from Fossil check-in -** 281fc0e9afc38674b9b0991943b9e9d1e64c with changes in files: +** b270f8339eb13b504d0b2ba154ebca966b7d with changes in files: ** ** */ @@ -468,12 +468,12 @@ extern "C" { ** [sqlite3_libversion_number()], [sqlite3_sourceid()], ** [sqlite_version()] and [sqlite_source_id()]. */ -#define SQLITE_VERSION "3.51.1" -#define SQLITE_VERSION_NUMBER 3051001 -#define SQLITE_SOURCE_ID "2025-11-28 17:28:25 281fc0e9afc38674b9b0991943b9e9d1e64c6cbdb133d35f6f5c87ff6af38a88" +#define SQLITE_VERSION "3.51.2" +#define SQLITE_VERSION_NUMBER 3051002 +#define SQLITE_SOURCE_ID "2026-01-09 17:27:48 b270f8339eb13b504d0b2ba154ebca966b7dde08e40c3ed7d559749818cb2075" #define SQLITE_SCM_BRANCH "branch-3.51" -#define SQLITE_SCM_TAGS "release version-3.51.1" -#define SQLITE_SCM_DATETIME "2025-11-28T17:28:25.933Z" +#define SQLITE_SCM_TAGS "release version-3.51.2" +#define SQLITE_SCM_DATETIME "2026-01-09T17:27:48.405Z" /* ** CAPI3REF: Run-Time Library Version Numbers @@ -41229,12 +41229,18 @@ static int unixLock(sqlite3_file *id, int eFileLock){ pInode->nLock++; pInode->nShared = 1; } - }else if( (eFileLock==EXCLUSIVE_LOCK && pInode->nShared>1) - || unixIsSharingShmNode(pFile) - ){ + }else if( eFileLock==EXCLUSIVE_LOCK && pInode->nShared>1 ){ /* We are trying for an exclusive lock but another thread in this ** same process is still holding a shared lock. */ rc = SQLITE_BUSY; + }else if( unixIsSharingShmNode(pFile) ){ + /* We are in WAL mode and attempting to delete the SHM and WAL + ** files due to closing the connection or changing out of WAL mode, + ** but another process still holds locks on the SHM file, thus + ** indicating that database locks have been broken, perhaps due + ** to a rogue close(open(dbFile)) or similar. + */ + rc = SQLITE_BUSY; }else{ /* The request was for a RESERVED or EXCLUSIVE lock. It is ** assumed that there is a SHARED or greater lock on the file @@ -43873,26 +43879,21 @@ static int unixFcntlExternalReader(unixFile *pFile, int *piOut){ ** still not a disaster. */ static int unixIsSharingShmNode(unixFile *pFile){ - int rc; unixShmNode *pShmNode; + struct flock lock; if( pFile->pShm==0 ) return 0; if( pFile->ctrlFlags & UNIXFILE_EXCL ) return 0; pShmNode = pFile->pShm->pShmNode; - rc = 1; - unixEnterMutex(); - if( ALWAYS(pShmNode->nRef==1) ){ - struct flock lock; - lock.l_whence = SEEK_SET; - lock.l_start = UNIX_SHM_DMS; - lock.l_len = 1; - lock.l_type = F_WRLCK; - osFcntl(pShmNode->hShm, F_GETLK, &lock); - if( lock.l_type==F_UNLCK ){ - rc = 0; - } - } - unixLeaveMutex(); - return rc; +#if SQLITE_ATOMIC_INTRINSICS + assert( AtomicLoad(&pShmNode->nRef)==1 ); +#endif + memset(&lock, 0, sizeof(lock)); + lock.l_whence = SEEK_SET; + lock.l_start = UNIX_SHM_DMS; + lock.l_len = 1; + lock.l_type = F_WRLCK; + osFcntl(pShmNode->hShm, F_GETLK, &lock); + return (lock.l_type!=F_UNLCK); } /* @@ -115317,9 +115318,22 @@ SQLITE_PRIVATE int sqlite3CodeSubselect(Parse *pParse, Expr *pExpr){ pParse->nMem += nReg; if( pExpr->op==TK_SELECT ){ dest.eDest = SRT_Mem; - dest.iSdst = dest.iSDParm; + if( (pSel->selFlags&SF_Distinct) && pSel->pLimit && pSel->pLimit->pRight ){ + /* If there is both a DISTINCT and an OFFSET clause, then allocate + ** a separate dest.iSdst array for sqlite3Select() and other + ** routines to populate. In this case results will be copied over + ** into the dest.iSDParm array only after OFFSET processing. This + ** ensures that in the case where OFFSET excludes all rows, the + ** dest.iSDParm array is not left populated with the contents of the + ** last row visited - it should be all NULLs if all rows were + ** excluded by OFFSET. */ + dest.iSdst = pParse->nMem+1; + pParse->nMem += nReg; + }else{ + dest.iSdst = dest.iSDParm; + } dest.nSdst = nReg; - sqlite3VdbeAddOp3(v, OP_Null, 0, dest.iSDParm, dest.iSDParm+nReg-1); + sqlite3VdbeAddOp3(v, OP_Null, 0, dest.iSDParm, pParse->nMem); VdbeComment((v, "Init subquery result")); }else{ dest.eDest = SRT_Exists; @@ -148187,9 +148201,14 @@ static void selectInnerLoop( assert( nResultCol<=pDest->nSdst ); pushOntoSorter( pParse, pSort, p, regResult, regOrig, nResultCol, nPrefixReg); + pDest->iSDParm = regResult; }else{ assert( nResultCol==pDest->nSdst ); - assert( regResult==iParm ); + if( regResult!=iParm ){ + /* This occurs in cases where the SELECT had both a DISTINCT and + ** an OFFSET clause. */ + sqlite3VdbeAddOp3(v, OP_Copy, regResult, iParm, nResultCol-1); + } /* The LIMIT clause will jump out of the loop for us */ } break; @@ -154204,12 +154223,24 @@ static SQLITE_NOINLINE void existsToJoin( && (pSub->selFlags & SF_Aggregate)==0 && !pSub->pSrc->a[0].fg.isSubquery && pSub->pLimit==0 + && pSub->pPrior==0 ){ + /* Before combining the sub-select with the parent, renumber the + ** cursor used by the subselect. This is because the EXISTS expression + ** might be a copy of another EXISTS expression from somewhere + ** else in the tree, and in this case it is important that it use + ** a unique cursor number. */ + sqlite3 *db = pParse->db; + int *aCsrMap = sqlite3DbMallocZero(db, (pParse->nTab+2)*sizeof(int)); + if( aCsrMap==0 ) return; + aCsrMap[0] = (pParse->nTab+1); + renumberCursors(pParse, pSub, -1, aCsrMap); + sqlite3DbFree(db, aCsrMap); + memset(pWhere, 0, sizeof(*pWhere)); pWhere->op = TK_INTEGER; pWhere->u.iValue = 1; ExprSetProperty(pWhere, EP_IntValue); - assert( p->pWhere!=0 ); pSub->pSrc->a[0].fg.fromExists = 1; pSub->pSrc->a[0].fg.jointype |= JT_CROSS; @@ -174002,6 +174033,9 @@ SQLITE_PRIVATE void sqlite3WhereEnd(WhereInfo *pWInfo){ sqlite3 *db = pParse->db; int iEnd = sqlite3VdbeCurrentAddr(v); int nRJ = 0; +#ifndef SQLITE_DISABLE_SKIPAHEAD_DISTINCT + int addrSeek = 0; +#endif /* Generate loop termination code. */ @@ -174014,7 +174048,10 @@ SQLITE_PRIVATE void sqlite3WhereEnd(WhereInfo *pWInfo){ ** the RIGHT JOIN table */ WhereRightJoin *pRJ = pLevel->pRJ; sqlite3VdbeResolveLabel(v, pLevel->addrCont); - pLevel->addrCont = 0; + /* Replace addrCont with a new label that will never be used, just so + ** the subsequent call to resolve pLevel->addrCont will have something + ** to resolve. */ + pLevel->addrCont = sqlite3VdbeMakeLabel(pParse); pRJ->endSubrtn = sqlite3VdbeCurrentAddr(v); sqlite3VdbeAddOp3(v, OP_Return, pRJ->regReturn, pRJ->addrSubrtn, 1); VdbeCoverage(v); @@ -174023,7 +174060,6 @@ SQLITE_PRIVATE void sqlite3WhereEnd(WhereInfo *pWInfo){ pLoop = pLevel->pWLoop; if( pLevel->op!=OP_Noop ){ #ifndef SQLITE_DISABLE_SKIPAHEAD_DISTINCT - int addrSeek = 0; Index *pIdx; int n; if( pWInfo->eDistinct==WHERE_DISTINCT_ORDERED @@ -174046,25 +174082,26 @@ SQLITE_PRIVATE void sqlite3WhereEnd(WhereInfo *pWInfo){ sqlite3VdbeAddOp2(v, OP_Goto, 1, pLevel->p2); } #endif /* SQLITE_DISABLE_SKIPAHEAD_DISTINCT */ - if( pTabList->a[pLevel->iFrom].fg.fromExists && i==pWInfo->nLevel-1 ){ - /* If the EXISTS-to-JOIN optimization was applied, then the EXISTS - ** loop(s) will be the inner-most loops of the join. There might be - ** multiple EXISTS loops, but they will all be nested, and the join - ** order will not have been changed by the query planner. If the - ** inner-most EXISTS loop sees a single successful row, it should - ** break out of *all* EXISTS loops. But only the inner-most of the - ** nested EXISTS loops should do this breakout. */ - int nOuter = 0; /* Nr of outer EXISTS that this one is nested within */ - while( nOutera[pLevel[-nOuter-1].iFrom].fg.fromExists ) break; - nOuter++; - } - testcase( nOuter>0 ); - sqlite3VdbeAddOp2(v, OP_Goto, 0, pLevel[-nOuter].addrBrk); - VdbeComment((v, "EXISTS break")); - } - /* The common case: Advance to the next row */ - if( pLevel->addrCont ) sqlite3VdbeResolveLabel(v, pLevel->addrCont); + } + if( pTabList->a[pLevel->iFrom].fg.fromExists && i==pWInfo->nLevel-1 ){ + /* If the EXISTS-to-JOIN optimization was applied, then the EXISTS + ** loop(s) will be the inner-most loops of the join. There might be + ** multiple EXISTS loops, but they will all be nested, and the join + ** order will not have been changed by the query planner. If the + ** inner-most EXISTS loop sees a single successful row, it should + ** break out of *all* EXISTS loops. But only the inner-most of the + ** nested EXISTS loops should do this breakout. */ + int nOuter = 0; /* Nr of outer EXISTS that this one is nested within */ + while( nOutera[pLevel[-nOuter-1].iFrom].fg.fromExists ) break; + nOuter++; + } + testcase( nOuter>0 ); + sqlite3VdbeAddOp2(v, OP_Goto, 0, pLevel[-nOuter].addrBrk); + VdbeComment((v, "EXISTS break")); + } + sqlite3VdbeResolveLabel(v, pLevel->addrCont); + if( pLevel->op!=OP_Noop ){ sqlite3VdbeAddOp3(v, pLevel->op, pLevel->p1, pLevel->p2, pLevel->p3); sqlite3VdbeChangeP5(v, pLevel->p5); VdbeCoverage(v); @@ -174077,10 +174114,11 @@ SQLITE_PRIVATE void sqlite3WhereEnd(WhereInfo *pWInfo){ VdbeCoverage(v); } #ifndef SQLITE_DISABLE_SKIPAHEAD_DISTINCT - if( addrSeek ) sqlite3VdbeJumpHere(v, addrSeek); + if( addrSeek ){ + sqlite3VdbeJumpHere(v, addrSeek); + addrSeek = 0; + } #endif - }else if( pLevel->addrCont ){ - sqlite3VdbeResolveLabel(v, pLevel->addrCont); } if( (pLoop->wsFlags & WHERE_IN_ABLE)!=0 && pLevel->u.in.nIn>0 ){ struct InLoop *pIn; @@ -219454,7 +219492,7 @@ static void rtreenode(sqlite3_context *ctx, int nArg, sqlite3_value **apArg){ if( node.zData==0 ) return; nData = sqlite3_value_bytes(apArg[1]); if( nData<4 ) return; - if( nDatanLevel ){ if( fts5IndexMerge(p, &pStruct, nMerge, nMin) ){ @@ -260305,7 +260349,7 @@ static void fts5SourceIdFunc( ){ assert( nArg==0 ); UNUSED_PARAM2(nArg, apUnused); - sqlite3_result_text(pCtx, "fts5: 2025-11-28 17:28:25 281fc0e9afc38674b9b0991943b9e9d1e64c6cbdb133d35f6f5c87ff6af38a88", -1, SQLITE_TRANSIENT); + sqlite3_result_text(pCtx, "fts5: 2026-01-09 17:27:48 b270f8339eb13b504d0b2ba154ebca966b7dde08e40c3ed7d559749818cb2075", -1, SQLITE_TRANSIENT); } /* diff --git a/vendor/github.com/mattn/go-sqlite3/sqlite3-binding.h b/vendor/github.com/mattn/go-sqlite3/sqlite3-binding.h index fcb9c45394..78ef0b7af2 100644 --- a/vendor/github.com/mattn/go-sqlite3/sqlite3-binding.h +++ b/vendor/github.com/mattn/go-sqlite3/sqlite3-binding.h @@ -147,12 +147,12 @@ extern "C" { ** [sqlite3_libversion_number()], [sqlite3_sourceid()], ** [sqlite_version()] and [sqlite_source_id()]. */ -#define SQLITE_VERSION "3.51.1" -#define SQLITE_VERSION_NUMBER 3051001 -#define SQLITE_SOURCE_ID "2025-11-28 17:28:25 281fc0e9afc38674b9b0991943b9e9d1e64c6cbdb133d35f6f5c87ff6af38a88" +#define SQLITE_VERSION "3.51.2" +#define SQLITE_VERSION_NUMBER 3051002 +#define SQLITE_SOURCE_ID "2026-01-09 17:27:48 b270f8339eb13b504d0b2ba154ebca966b7dde08e40c3ed7d559749818cb2075" #define SQLITE_SCM_BRANCH "branch-3.51" -#define SQLITE_SCM_TAGS "release version-3.51.1" -#define SQLITE_SCM_DATETIME "2025-11-28T17:28:25.933Z" +#define SQLITE_SCM_TAGS "release version-3.51.2" +#define SQLITE_SCM_DATETIME "2026-01-09T17:27:48.405Z" /* ** CAPI3REF: Run-Time Library Version Numbers diff --git a/vendor/github.com/mattn/go-sqlite3/sqlite3_opt_percentile.go b/vendor/github.com/mattn/go-sqlite3/sqlite3_opt_percentile.go new file mode 100644 index 0000000000..3461d9a557 --- /dev/null +++ b/vendor/github.com/mattn/go-sqlite3/sqlite3_opt_percentile.go @@ -0,0 +1,15 @@ +// Copyright (C) 2019 Yasuhiro Matsumoto . +// Copyright (C) 2018 G.J.R. Timmer . +// +// Use of this source code is governed by an MIT-style +// license that can be found in the LICENSE file. + +//go:build sqlite_percentile +// +build sqlite_percentile + +package sqlite3 + +/* +#cgo CFLAGS: -DSQLITE_ENABLE_PERCENTILE +*/ +import "C" diff --git a/vendor/github.com/operator-framework/api/pkg/lib/version/doc.go b/vendor/github.com/operator-framework/api/pkg/lib/version/doc.go new file mode 100644 index 0000000000..7318ee6d19 --- /dev/null +++ b/vendor/github.com/operator-framework/api/pkg/lib/version/doc.go @@ -0,0 +1,5 @@ +// +k8s:openapi-gen=true +// +k8s:openapi-model-package=com.github.operator-framework.api.pkg.operators.lib.version + +// Package version contains the OperatorVersion type. +package version diff --git a/vendor/github.com/operator-framework/api/pkg/lib/version/zz_generated.model_name.go b/vendor/github.com/operator-framework/api/pkg/lib/version/zz_generated.model_name.go new file mode 100644 index 0000000000..1fd31307ba --- /dev/null +++ b/vendor/github.com/operator-framework/api/pkg/lib/version/zz_generated.model_name.go @@ -0,0 +1,26 @@ +//go:build !ignore_autogenerated +// +build !ignore_autogenerated + +/* + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by openapi-gen-v0.0. DO NOT EDIT. + +package version + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in OperatorVersion) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.lib.version.OperatorVersion" +} diff --git a/vendor/github.com/operator-framework/api/pkg/operators/v1alpha1/doc.go b/vendor/github.com/operator-framework/api/pkg/operators/v1alpha1/doc.go index 74bc9b819a..fd9d1d8490 100644 --- a/vendor/github.com/operator-framework/api/pkg/operators/v1alpha1/doc.go +++ b/vendor/github.com/operator-framework/api/pkg/operators/v1alpha1/doc.go @@ -1,6 +1,8 @@ // +groupName=operators.coreos.com // +k8s:deepcopy-gen=package // +k8s:conversion-gen=github.com/operator-framework/operator-lifecycle-manager/pkg/api/apis/operators +// +k8s:openapi-gen=true +// +k8s:openapi-model-package=com.github.operator-framework.api.pkg.operators.v1alpha1 // Package v1alpha1 contains resources types for version v1alpha1 of the operators.coreos.com API group. package v1alpha1 diff --git a/vendor/github.com/operator-framework/api/pkg/operators/v1alpha1/subscription_types.go b/vendor/github.com/operator-framework/api/pkg/operators/v1alpha1/subscription_types.go index 7aa854f596..292fedf9b9 100644 --- a/vendor/github.com/operator-framework/api/pkg/operators/v1alpha1/subscription_types.go +++ b/vendor/github.com/operator-framework/api/pkg/operators/v1alpha1/subscription_types.go @@ -232,8 +232,6 @@ type SubscriptionStatus struct { // CatalogHealth contains the Subscription's view of its relevant CatalogSources' status. // It is used to determine SubscriptionStatusConditions related to CatalogSources. // +optional - // +patchMergeKey= - // +patchStrategy=merge CatalogHealth []SubscriptionCatalogHealth `json:"catalogHealth,omitempty"` // Conditions is a list of the latest available observations about a Subscription's current state. diff --git a/vendor/github.com/operator-framework/api/pkg/operators/v1alpha1/zz_generated.model_name.go b/vendor/github.com/operator-framework/api/pkg/operators/v1alpha1/zz_generated.model_name.go new file mode 100644 index 0000000000..555d6d7f09 --- /dev/null +++ b/vendor/github.com/operator-framework/api/pkg/operators/v1alpha1/zz_generated.model_name.go @@ -0,0 +1,306 @@ +//go:build !ignore_autogenerated +// +build !ignore_autogenerated + +/* + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by openapi-gen-v0.0. DO NOT EDIT. + +package v1alpha1 + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in APIResourceReference) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.APIResourceReference" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in APIServiceDefinitions) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.APIServiceDefinitions" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in APIServiceDescription) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.APIServiceDescription" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in ActionDescriptor) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.ActionDescriptor" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in AppLink) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.AppLink" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in BundleLookup) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.BundleLookup" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in BundleLookupCondition) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.BundleLookupCondition" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in CRDDescription) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.CRDDescription" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in CatalogSource) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.CatalogSource" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in CatalogSourceList) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.CatalogSourceList" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in CatalogSourceSpec) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.CatalogSourceSpec" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in CatalogSourceStatus) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.CatalogSourceStatus" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in CleanupSpec) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.CleanupSpec" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in CleanupStatus) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.CleanupStatus" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in ClusterServiceVersion) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.ClusterServiceVersion" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in ClusterServiceVersionCondition) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.ClusterServiceVersionCondition" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in ClusterServiceVersionList) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.ClusterServiceVersionList" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in ClusterServiceVersionSpec) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.ClusterServiceVersionSpec" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in ClusterServiceVersionStatus) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.ClusterServiceVersionStatus" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in ConfigMapResourceReference) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.ConfigMapResourceReference" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in CustomResourceDefinitions) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.CustomResourceDefinitions" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in DependentStatus) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.DependentStatus" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in ExtractContentConfig) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.ExtractContentConfig" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in GRPCConnectionState) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.GRPCConnectionState" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in GrpcPodConfig) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.GrpcPodConfig" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in Icon) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.Icon" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in InstallMode) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.InstallMode" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in InstallPlan) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.InstallPlan" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in InstallPlanCondition) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.InstallPlanCondition" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in InstallPlanList) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.InstallPlanList" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in InstallPlanReference) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.InstallPlanReference" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in InstallPlanSpec) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.InstallPlanSpec" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in InstallPlanStatus) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.InstallPlanStatus" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in Maintainer) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.Maintainer" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in NamedInstallStrategy) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.NamedInstallStrategy" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in RegistryPoll) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.RegistryPoll" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in RegistryServiceStatus) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.RegistryServiceStatus" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in RelatedImage) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.RelatedImage" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in RequirementStatus) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.RequirementStatus" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in ResourceInstance) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.ResourceInstance" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in ResourceList) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.ResourceList" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in SpecDescriptor) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.SpecDescriptor" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in StatusDescriptor) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.StatusDescriptor" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in Step) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.Step" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in StepResource) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.StepResource" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in StrategyDeploymentPermissions) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.StrategyDeploymentPermissions" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in StrategyDeploymentSpec) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.StrategyDeploymentSpec" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in StrategyDetailsDeployment) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.StrategyDetailsDeployment" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in Subscription) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.Subscription" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in SubscriptionCatalogHealth) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.SubscriptionCatalogHealth" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in SubscriptionCondition) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.SubscriptionCondition" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in SubscriptionConfig) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.SubscriptionConfig" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in SubscriptionList) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.SubscriptionList" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in SubscriptionSpec) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.SubscriptionSpec" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in SubscriptionStatus) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.SubscriptionStatus" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in UpdateStrategy) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.UpdateStrategy" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in WebhookDescription) OpenAPIModelName() string { + return "com.github.operator-framework.api.pkg.operators.v1alpha1.WebhookDescription" +} diff --git a/vendor/github.com/operator-framework/api/pkg/validation/internal/bundle.go b/vendor/github.com/operator-framework/api/pkg/validation/internal/bundle.go index c5f7ba18d5..8e4e22019b 100644 --- a/vendor/github.com/operator-framework/api/pkg/validation/internal/bundle.go +++ b/vendor/github.com/operator-framework/api/pkg/validation/internal/bundle.go @@ -8,6 +8,7 @@ import ( operatorsv1alpha1 "github.com/operator-framework/api/pkg/operators/v1alpha1" "github.com/operator-framework/api/pkg/validation/errors" interfaces "github.com/operator-framework/api/pkg/validation/interfaces" + "go.podman.io/image/v5/docker/reference" v1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" @@ -46,6 +47,10 @@ func validateBundle(bundle *manifests.Bundle) (result errors.ManifestResult) { if nameErrors != nil { result.Add(nameErrors...) } + relatedImagesErrors := validateRelatedImages(bundle) + if relatedImagesErrors != nil { + result.Add(relatedImagesErrors...) + } return result } @@ -62,6 +67,30 @@ func validateBundleName(bundle *manifests.Bundle) []errors.Error { return errs } +// validateRelatedImages checks that all relatedImages[].image pullspecs are valid +// using github.com/distribution/reference.ParseNormalizedNamed +func validateRelatedImages(bundle *manifests.Bundle) []errors.Error { + var errs []errors.Error + + for i, relatedImage := range bundle.CSV.Spec.RelatedImages { + if relatedImage.Image == "" { + errs = append(errs, errors.ErrInvalidBundle( + fmt.Sprintf("relatedImages[%d] has an empty image field", i), + fmt.Sprintf("spec.relatedImages[%d].image", i))) + continue + } + + // Parse and validate the image reference + if _, err := reference.ParseNormalizedNamed(relatedImage.Image); err != nil { + errs = append(errs, errors.ErrInvalidBundle( + fmt.Sprintf("relatedImages[%d] has an invalid image pullspec %q: %v", i, relatedImage.Image, err), + fmt.Sprintf("spec.relatedImages[%d].image", i))) + } + } + + return errs +} + func validateServiceAccounts(bundle *manifests.Bundle) []errors.Error { // get service account names defined in the csv saNamesFromCSV := make(map[string]struct{}, 0) diff --git a/vendor/github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/client/openapi/zz_generated.openapi.go b/vendor/github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/client/openapi/zz_generated.openapi.go index 0e3e9985f0..38cf1b474e 100644 --- a/vendor/github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/client/openapi/zz_generated.openapi.go +++ b/vendor/github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/client/openapi/zz_generated.openapi.go @@ -20,111 +20,142 @@ limitations under the License. package openapi import ( - libversion "github.com/operator-framework/api/pkg/lib/version" + version "github.com/operator-framework/api/pkg/lib/version" + v1alpha1 "github.com/operator-framework/api/pkg/operators/v1alpha1" v1 "github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/apis/operators/v1" resource "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" - version "k8s.io/apimachinery/pkg/version" + pkgversion "k8s.io/apimachinery/pkg/version" common "k8s.io/kube-openapi/pkg/common" spec "k8s.io/kube-openapi/pkg/validation/spec" ) func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenAPIDefinition { return map[string]common.OpenAPIDefinition{ - "github.com/operator-framework/api/pkg/lib/version.OperatorVersion": schema_api_pkg_lib_version_OperatorVersion(ref), - "github.com/operator-framework/api/pkg/operators/v1alpha1.APIResourceReference": schema_api_pkg_operators_v1alpha1_APIResourceReference(ref), - "github.com/operator-framework/api/pkg/operators/v1alpha1.APIServiceDefinitions": schema_api_pkg_operators_v1alpha1_APIServiceDefinitions(ref), - "github.com/operator-framework/api/pkg/operators/v1alpha1.APIServiceDescription": schema_api_pkg_operators_v1alpha1_APIServiceDescription(ref), - "github.com/operator-framework/api/pkg/operators/v1alpha1.ActionDescriptor": schema_api_pkg_operators_v1alpha1_ActionDescriptor(ref), - "github.com/operator-framework/api/pkg/operators/v1alpha1.AppLink": schema_api_pkg_operators_v1alpha1_AppLink(ref), - "github.com/operator-framework/api/pkg/operators/v1alpha1.CRDDescription": schema_api_pkg_operators_v1alpha1_CRDDescription(ref), - "github.com/operator-framework/api/pkg/operators/v1alpha1.CleanupSpec": schema_api_pkg_operators_v1alpha1_CleanupSpec(ref), - "github.com/operator-framework/api/pkg/operators/v1alpha1.CleanupStatus": schema_api_pkg_operators_v1alpha1_CleanupStatus(ref), - "github.com/operator-framework/api/pkg/operators/v1alpha1.ClusterServiceVersionCondition": schema_api_pkg_operators_v1alpha1_ClusterServiceVersionCondition(ref), - "github.com/operator-framework/api/pkg/operators/v1alpha1.ClusterServiceVersionSpec": schema_api_pkg_operators_v1alpha1_ClusterServiceVersionSpec(ref), - "github.com/operator-framework/api/pkg/operators/v1alpha1.ClusterServiceVersionStatus": schema_api_pkg_operators_v1alpha1_ClusterServiceVersionStatus(ref), - "github.com/operator-framework/api/pkg/operators/v1alpha1.CustomResourceDefinitions": schema_api_pkg_operators_v1alpha1_CustomResourceDefinitions(ref), - "github.com/operator-framework/api/pkg/operators/v1alpha1.DependentStatus": schema_api_pkg_operators_v1alpha1_DependentStatus(ref), - "github.com/operator-framework/api/pkg/operators/v1alpha1.Icon": schema_api_pkg_operators_v1alpha1_Icon(ref), - "github.com/operator-framework/api/pkg/operators/v1alpha1.InstallMode": schema_api_pkg_operators_v1alpha1_InstallMode(ref), - "github.com/operator-framework/api/pkg/operators/v1alpha1.Maintainer": schema_api_pkg_operators_v1alpha1_Maintainer(ref), - "github.com/operator-framework/api/pkg/operators/v1alpha1.NamedInstallStrategy": schema_api_pkg_operators_v1alpha1_NamedInstallStrategy(ref), - "github.com/operator-framework/api/pkg/operators/v1alpha1.RelatedImage": schema_api_pkg_operators_v1alpha1_RelatedImage(ref), - "github.com/operator-framework/api/pkg/operators/v1alpha1.RequirementStatus": schema_api_pkg_operators_v1alpha1_RequirementStatus(ref), - "github.com/operator-framework/api/pkg/operators/v1alpha1.ResourceInstance": schema_api_pkg_operators_v1alpha1_ResourceInstance(ref), - "github.com/operator-framework/api/pkg/operators/v1alpha1.ResourceList": schema_api_pkg_operators_v1alpha1_ResourceList(ref), - "github.com/operator-framework/api/pkg/operators/v1alpha1.SpecDescriptor": schema_api_pkg_operators_v1alpha1_SpecDescriptor(ref), - "github.com/operator-framework/api/pkg/operators/v1alpha1.StatusDescriptor": schema_api_pkg_operators_v1alpha1_StatusDescriptor(ref), - "github.com/operator-framework/api/pkg/operators/v1alpha1.StrategyDeploymentPermissions": schema_api_pkg_operators_v1alpha1_StrategyDeploymentPermissions(ref), - "github.com/operator-framework/api/pkg/operators/v1alpha1.StrategyDeploymentSpec": schema_api_pkg_operators_v1alpha1_StrategyDeploymentSpec(ref), - "github.com/operator-framework/api/pkg/operators/v1alpha1.StrategyDetailsDeployment": schema_api_pkg_operators_v1alpha1_StrategyDetailsDeployment(ref), - "github.com/operator-framework/api/pkg/operators/v1alpha1.WebhookDescription": schema_api_pkg_operators_v1alpha1_WebhookDescription(ref), - v1.AppLink{}.OpenAPIModelName(): schema_package_server_apis_operators_v1_AppLink(ref), - v1.CSVDescription{}.OpenAPIModelName(): schema_package_server_apis_operators_v1_CSVDescription(ref), - v1.ChannelEntry{}.OpenAPIModelName(): schema_package_server_apis_operators_v1_ChannelEntry(ref), - v1.Deprecation{}.OpenAPIModelName(): schema_package_server_apis_operators_v1_Deprecation(ref), - v1.Icon{}.OpenAPIModelName(): schema_package_server_apis_operators_v1_Icon(ref), - v1.Maintainer{}.OpenAPIModelName(): schema_package_server_apis_operators_v1_Maintainer(ref), - v1.PackageChannel{}.OpenAPIModelName(): schema_package_server_apis_operators_v1_PackageChannel(ref), - v1.PackageManifest{}.OpenAPIModelName(): schema_package_server_apis_operators_v1_PackageManifest(ref), - v1.PackageManifestList{}.OpenAPIModelName(): schema_package_server_apis_operators_v1_PackageManifestList(ref), - v1.PackageManifestSpec{}.OpenAPIModelName(): schema_package_server_apis_operators_v1_PackageManifestSpec(ref), - v1.PackageManifestStatus{}.OpenAPIModelName(): schema_package_server_apis_operators_v1_PackageManifestStatus(ref), - resource.Quantity{}.OpenAPIModelName(): schema_apimachinery_pkg_api_resource_Quantity(ref), - metav1.APIGroup{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_APIGroup(ref), - metav1.APIGroupList{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_APIGroupList(ref), - metav1.APIResource{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_APIResource(ref), - metav1.APIResourceList{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_APIResourceList(ref), - metav1.APIVersions{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_APIVersions(ref), - metav1.ApplyOptions{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_ApplyOptions(ref), - metav1.Condition{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_Condition(ref), - metav1.CreateOptions{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_CreateOptions(ref), - metav1.DeleteOptions{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_DeleteOptions(ref), - metav1.Duration{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_Duration(ref), - metav1.FieldSelectorRequirement{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_FieldSelectorRequirement(ref), - metav1.FieldsV1{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_FieldsV1(ref), - metav1.GetOptions{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_GetOptions(ref), - metav1.GroupKind{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_GroupKind(ref), - metav1.GroupResource{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_GroupResource(ref), - metav1.GroupVersion{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_GroupVersion(ref), - metav1.GroupVersionForDiscovery{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_GroupVersionForDiscovery(ref), - metav1.GroupVersionKind{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_GroupVersionKind(ref), - metav1.GroupVersionResource{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_GroupVersionResource(ref), - metav1.InternalEvent{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_InternalEvent(ref), - metav1.LabelSelector{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_LabelSelector(ref), - metav1.LabelSelectorRequirement{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_LabelSelectorRequirement(ref), - metav1.List{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_List(ref), - metav1.ListMeta{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_ListMeta(ref), - metav1.ListOptions{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_ListOptions(ref), - metav1.ManagedFieldsEntry{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_ManagedFieldsEntry(ref), - metav1.MicroTime{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_MicroTime(ref), - metav1.ObjectMeta{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_ObjectMeta(ref), - metav1.OwnerReference{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_OwnerReference(ref), - metav1.PartialObjectMetadata{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_PartialObjectMetadata(ref), - metav1.PartialObjectMetadataList{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_PartialObjectMetadataList(ref), - metav1.Patch{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_Patch(ref), - metav1.PatchOptions{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_PatchOptions(ref), - metav1.Preconditions{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_Preconditions(ref), - metav1.RootPaths{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_RootPaths(ref), - metav1.ServerAddressByClientCIDR{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_ServerAddressByClientCIDR(ref), - metav1.Status{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_Status(ref), - metav1.StatusCause{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_StatusCause(ref), - metav1.StatusDetails{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_StatusDetails(ref), - metav1.Table{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_Table(ref), - metav1.TableColumnDefinition{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_TableColumnDefinition(ref), - metav1.TableOptions{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_TableOptions(ref), - metav1.TableRow{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_TableRow(ref), - metav1.TableRowCondition{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_TableRowCondition(ref), - metav1.Time{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_Time(ref), - metav1.Timestamp{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_Timestamp(ref), - metav1.TypeMeta{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_TypeMeta(ref), - metav1.UpdateOptions{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_UpdateOptions(ref), - metav1.WatchEvent{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_WatchEvent(ref), - runtime.RawExtension{}.OpenAPIModelName(): schema_k8sio_apimachinery_pkg_runtime_RawExtension(ref), - runtime.TypeMeta{}.OpenAPIModelName(): schema_k8sio_apimachinery_pkg_runtime_TypeMeta(ref), - runtime.Unknown{}.OpenAPIModelName(): schema_k8sio_apimachinery_pkg_runtime_Unknown(ref), - version.Info{}.OpenAPIModelName(): schema_k8sio_apimachinery_pkg_version_Info(ref), + version.OperatorVersion{}.OpenAPIModelName(): schema_api_pkg_lib_version_OperatorVersion(ref), + v1alpha1.APIResourceReference{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_APIResourceReference(ref), + v1alpha1.APIServiceDefinitions{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_APIServiceDefinitions(ref), + v1alpha1.APIServiceDescription{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_APIServiceDescription(ref), + v1alpha1.ActionDescriptor{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_ActionDescriptor(ref), + v1alpha1.AppLink{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_AppLink(ref), + v1alpha1.BundleLookup{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_BundleLookup(ref), + v1alpha1.BundleLookupCondition{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_BundleLookupCondition(ref), + v1alpha1.CRDDescription{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_CRDDescription(ref), + v1alpha1.CatalogSource{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_CatalogSource(ref), + v1alpha1.CatalogSourceList{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_CatalogSourceList(ref), + v1alpha1.CatalogSourceSpec{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_CatalogSourceSpec(ref), + v1alpha1.CatalogSourceStatus{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_CatalogSourceStatus(ref), + v1alpha1.CleanupSpec{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_CleanupSpec(ref), + v1alpha1.CleanupStatus{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_CleanupStatus(ref), + v1alpha1.ClusterServiceVersion{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_ClusterServiceVersion(ref), + v1alpha1.ClusterServiceVersionCondition{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_ClusterServiceVersionCondition(ref), + v1alpha1.ClusterServiceVersionList{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_ClusterServiceVersionList(ref), + v1alpha1.ClusterServiceVersionSpec{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_ClusterServiceVersionSpec(ref), + v1alpha1.ClusterServiceVersionStatus{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_ClusterServiceVersionStatus(ref), + v1alpha1.ConfigMapResourceReference{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_ConfigMapResourceReference(ref), + v1alpha1.CustomResourceDefinitions{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_CustomResourceDefinitions(ref), + v1alpha1.DependentStatus{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_DependentStatus(ref), + v1alpha1.ExtractContentConfig{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_ExtractContentConfig(ref), + v1alpha1.GRPCConnectionState{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_GRPCConnectionState(ref), + v1alpha1.GrpcPodConfig{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_GrpcPodConfig(ref), + v1alpha1.Icon{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_Icon(ref), + v1alpha1.InstallMode{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_InstallMode(ref), + v1alpha1.InstallPlan{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_InstallPlan(ref), + v1alpha1.InstallPlanCondition{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_InstallPlanCondition(ref), + v1alpha1.InstallPlanList{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_InstallPlanList(ref), + v1alpha1.InstallPlanReference{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_InstallPlanReference(ref), + v1alpha1.InstallPlanSpec{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_InstallPlanSpec(ref), + v1alpha1.InstallPlanStatus{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_InstallPlanStatus(ref), + v1alpha1.Maintainer{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_Maintainer(ref), + v1alpha1.NamedInstallStrategy{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_NamedInstallStrategy(ref), + v1alpha1.RegistryPoll{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_RegistryPoll(ref), + v1alpha1.RegistryServiceStatus{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_RegistryServiceStatus(ref), + v1alpha1.RelatedImage{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_RelatedImage(ref), + v1alpha1.RequirementStatus{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_RequirementStatus(ref), + v1alpha1.ResourceInstance{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_ResourceInstance(ref), + v1alpha1.ResourceList{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_ResourceList(ref), + v1alpha1.SpecDescriptor{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_SpecDescriptor(ref), + v1alpha1.StatusDescriptor{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_StatusDescriptor(ref), + v1alpha1.Step{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_Step(ref), + v1alpha1.StepResource{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_StepResource(ref), + v1alpha1.StrategyDeploymentPermissions{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_StrategyDeploymentPermissions(ref), + v1alpha1.StrategyDeploymentSpec{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_StrategyDeploymentSpec(ref), + v1alpha1.StrategyDetailsDeployment{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_StrategyDetailsDeployment(ref), + v1alpha1.Subscription{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_Subscription(ref), + v1alpha1.SubscriptionCatalogHealth{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_SubscriptionCatalogHealth(ref), + v1alpha1.SubscriptionCondition{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_SubscriptionCondition(ref), + v1alpha1.SubscriptionConfig{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_SubscriptionConfig(ref), + v1alpha1.SubscriptionList{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_SubscriptionList(ref), + v1alpha1.SubscriptionSpec{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_SubscriptionSpec(ref), + v1alpha1.SubscriptionStatus{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_SubscriptionStatus(ref), + v1alpha1.UpdateStrategy{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_UpdateStrategy(ref), + v1alpha1.WebhookDescription{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_WebhookDescription(ref), + v1.AppLink{}.OpenAPIModelName(): schema_package_server_apis_operators_v1_AppLink(ref), + v1.CSVDescription{}.OpenAPIModelName(): schema_package_server_apis_operators_v1_CSVDescription(ref), + v1.ChannelEntry{}.OpenAPIModelName(): schema_package_server_apis_operators_v1_ChannelEntry(ref), + v1.Deprecation{}.OpenAPIModelName(): schema_package_server_apis_operators_v1_Deprecation(ref), + v1.Icon{}.OpenAPIModelName(): schema_package_server_apis_operators_v1_Icon(ref), + v1.Maintainer{}.OpenAPIModelName(): schema_package_server_apis_operators_v1_Maintainer(ref), + v1.PackageChannel{}.OpenAPIModelName(): schema_package_server_apis_operators_v1_PackageChannel(ref), + v1.PackageManifest{}.OpenAPIModelName(): schema_package_server_apis_operators_v1_PackageManifest(ref), + v1.PackageManifestList{}.OpenAPIModelName(): schema_package_server_apis_operators_v1_PackageManifestList(ref), + v1.PackageManifestSpec{}.OpenAPIModelName(): schema_package_server_apis_operators_v1_PackageManifestSpec(ref), + v1.PackageManifestStatus{}.OpenAPIModelName(): schema_package_server_apis_operators_v1_PackageManifestStatus(ref), + resource.Quantity{}.OpenAPIModelName(): schema_apimachinery_pkg_api_resource_Quantity(ref), + metav1.APIGroup{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_APIGroup(ref), + metav1.APIGroupList{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_APIGroupList(ref), + metav1.APIResource{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_APIResource(ref), + metav1.APIResourceList{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_APIResourceList(ref), + metav1.APIVersions{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_APIVersions(ref), + metav1.ApplyOptions{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_ApplyOptions(ref), + metav1.Condition{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_Condition(ref), + metav1.CreateOptions{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_CreateOptions(ref), + metav1.DeleteOptions{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_DeleteOptions(ref), + metav1.Duration{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_Duration(ref), + metav1.FieldSelectorRequirement{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_FieldSelectorRequirement(ref), + metav1.FieldsV1{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_FieldsV1(ref), + metav1.GetOptions{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_GetOptions(ref), + metav1.GroupKind{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_GroupKind(ref), + metav1.GroupResource{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_GroupResource(ref), + metav1.GroupVersion{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_GroupVersion(ref), + metav1.GroupVersionForDiscovery{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_GroupVersionForDiscovery(ref), + metav1.GroupVersionKind{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_GroupVersionKind(ref), + metav1.GroupVersionResource{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_GroupVersionResource(ref), + metav1.InternalEvent{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_InternalEvent(ref), + metav1.LabelSelector{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_LabelSelector(ref), + metav1.LabelSelectorRequirement{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_LabelSelectorRequirement(ref), + metav1.List{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_List(ref), + metav1.ListMeta{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_ListMeta(ref), + metav1.ListOptions{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_ListOptions(ref), + metav1.ManagedFieldsEntry{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_ManagedFieldsEntry(ref), + metav1.MicroTime{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_MicroTime(ref), + metav1.ObjectMeta{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_ObjectMeta(ref), + metav1.OwnerReference{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_OwnerReference(ref), + metav1.PartialObjectMetadata{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_PartialObjectMetadata(ref), + metav1.PartialObjectMetadataList{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_PartialObjectMetadataList(ref), + metav1.Patch{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_Patch(ref), + metav1.PatchOptions{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_PatchOptions(ref), + metav1.Preconditions{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_Preconditions(ref), + metav1.RootPaths{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_RootPaths(ref), + metav1.ServerAddressByClientCIDR{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_ServerAddressByClientCIDR(ref), + metav1.Status{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_Status(ref), + metav1.StatusCause{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_StatusCause(ref), + metav1.StatusDetails{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_StatusDetails(ref), + metav1.Table{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_Table(ref), + metav1.TableColumnDefinition{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_TableColumnDefinition(ref), + metav1.TableOptions{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_TableOptions(ref), + metav1.TableRow{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_TableRow(ref), + metav1.TableRowCondition{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_TableRowCondition(ref), + metav1.Time{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_Time(ref), + metav1.Timestamp{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_Timestamp(ref), + metav1.TypeMeta{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_TypeMeta(ref), + metav1.UpdateOptions{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_UpdateOptions(ref), + metav1.WatchEvent{}.OpenAPIModelName(): schema_pkg_apis_meta_v1_WatchEvent(ref), + runtime.RawExtension{}.OpenAPIModelName(): schema_k8sio_apimachinery_pkg_runtime_RawExtension(ref), + runtime.TypeMeta{}.OpenAPIModelName(): schema_k8sio_apimachinery_pkg_runtime_TypeMeta(ref), + runtime.Unknown{}.OpenAPIModelName(): schema_k8sio_apimachinery_pkg_runtime_Unknown(ref), + pkgversion.Info{}.OpenAPIModelName(): schema_k8sio_apimachinery_pkg_version_Info(ref), } } @@ -133,8 +164,8 @@ func schema_api_pkg_lib_version_OperatorVersion(ref common.ReferenceCallback) co Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ Description: "OperatorVersion is a wrapper around semver.Version which supports correct marshaling to YAML and JSON.", - Type: libversion.OperatorVersion{}.OpenAPISchemaType(), - Format: libversion.OperatorVersion{}.OpenAPISchemaFormat(), + Type: version.OperatorVersion{}.OpenAPISchemaType(), + Format: version.OperatorVersion{}.OpenAPISchemaFormat(), }, }, } @@ -192,7 +223,7 @@ func schema_api_pkg_operators_v1alpha1_APIServiceDefinitions(ref common.Referenc Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.APIServiceDescription"), + Ref: ref(v1alpha1.APIServiceDescription{}.OpenAPIModelName()), }, }, }, @@ -205,7 +236,7 @@ func schema_api_pkg_operators_v1alpha1_APIServiceDefinitions(ref common.Referenc Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.APIServiceDescription"), + Ref: ref(v1alpha1.APIServiceDescription{}.OpenAPIModelName()), }, }, }, @@ -215,7 +246,7 @@ func schema_api_pkg_operators_v1alpha1_APIServiceDefinitions(ref common.Referenc }, }, Dependencies: []string{ - "github.com/operator-framework/api/pkg/operators/v1alpha1.APIServiceDescription"}, + v1alpha1.APIServiceDescription{}.OpenAPIModelName()}, } } @@ -285,7 +316,7 @@ func schema_api_pkg_operators_v1alpha1_APIServiceDescription(ref common.Referenc Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.APIResourceReference"), + Ref: ref(v1alpha1.APIResourceReference{}.OpenAPIModelName()), }, }, }, @@ -298,7 +329,7 @@ func schema_api_pkg_operators_v1alpha1_APIServiceDescription(ref common.Referenc Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.StatusDescriptor"), + Ref: ref(v1alpha1.StatusDescriptor{}.OpenAPIModelName()), }, }, }, @@ -311,7 +342,7 @@ func schema_api_pkg_operators_v1alpha1_APIServiceDescription(ref common.Referenc Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.SpecDescriptor"), + Ref: ref(v1alpha1.SpecDescriptor{}.OpenAPIModelName()), }, }, }, @@ -324,7 +355,7 @@ func schema_api_pkg_operators_v1alpha1_APIServiceDescription(ref common.Referenc Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.ActionDescriptor"), + Ref: ref(v1alpha1.ActionDescriptor{}.OpenAPIModelName()), }, }, }, @@ -335,7 +366,7 @@ func schema_api_pkg_operators_v1alpha1_APIServiceDescription(ref common.Referenc }, }, Dependencies: []string{ - "github.com/operator-framework/api/pkg/operators/v1alpha1.APIResourceReference", "github.com/operator-framework/api/pkg/operators/v1alpha1.ActionDescriptor", "github.com/operator-framework/api/pkg/operators/v1alpha1.SpecDescriptor", "github.com/operator-framework/api/pkg/operators/v1alpha1.StatusDescriptor"}, + v1alpha1.APIResourceReference{}.OpenAPIModelName(), v1alpha1.ActionDescriptor{}.OpenAPIModelName(), v1alpha1.SpecDescriptor{}.OpenAPIModelName(), v1alpha1.StatusDescriptor{}.OpenAPIModelName()}, } } @@ -416,6 +447,136 @@ func schema_api_pkg_operators_v1alpha1_AppLink(ref common.ReferenceCallback) com } } +func schema_api_pkg_operators_v1alpha1_BundleLookup(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "BundleLookup is a request to pull and unpackage the content of a bundle to the cluster.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "path": { + SchemaProps: spec.SchemaProps{ + Description: "Path refers to the location of a bundle to pull. It's typically an image reference.", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "identifier": { + SchemaProps: spec.SchemaProps{ + Description: "Identifier is the catalog-unique name of the operator (the name of the CSV for bundles that contain CSVs)", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "replaces": { + SchemaProps: spec.SchemaProps{ + Description: "Replaces is the name of the bundle to replace with the one found at Path.", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "catalogSourceRef": { + SchemaProps: spec.SchemaProps{ + Description: "CatalogSourceRef is a reference to the CatalogSource the bundle path was resolved from.", + Ref: ref("k8s.io/api/core/v1.ObjectReference"), + }, + }, + "conditions": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "Conditions represents the overall state of a BundleLookup.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.BundleLookupCondition{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "properties": { + SchemaProps: spec.SchemaProps{ + Description: "The effective properties of the unpacked bundle.", + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"path", "identifier", "replaces", "catalogSourceRef"}, + }, + }, + Dependencies: []string{ + v1alpha1.BundleLookupCondition{}.OpenAPIModelName(), "k8s.io/api/core/v1.ObjectReference"}, + } +} + +func schema_api_pkg_operators_v1alpha1_BundleLookupCondition(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "type": { + SchemaProps: spec.SchemaProps{ + Description: "Type of condition.", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Description: "Status of the condition, one of True, False, Unknown.", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "reason": { + SchemaProps: spec.SchemaProps{ + Description: "The reason for the condition's last transition.", + Type: []string{"string"}, + Format: "", + }, + }, + "message": { + SchemaProps: spec.SchemaProps{ + Description: "A human readable message indicating details about the transition.", + Type: []string{"string"}, + Format: "", + }, + }, + "lastUpdateTime": { + SchemaProps: spec.SchemaProps{ + Description: "Last time the condition was probed.", + Ref: ref(metav1.Time{}.OpenAPIModelName()), + }, + }, + "lastTransitionTime": { + SchemaProps: spec.SchemaProps{ + Description: "Last time the condition transitioned from one status to another.", + Ref: ref(metav1.Time{}.OpenAPIModelName()), + }, + }, + }, + Required: []string{"type", "status"}, + }, + }, + Dependencies: []string{ + metav1.Time{}.OpenAPIModelName()}, + } +} + func schema_api_pkg_operators_v1alpha1_CRDDescription(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ @@ -463,7 +624,7 @@ func schema_api_pkg_operators_v1alpha1_CRDDescription(ref common.ReferenceCallba Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.APIResourceReference"), + Ref: ref(v1alpha1.APIResourceReference{}.OpenAPIModelName()), }, }, }, @@ -476,7 +637,7 @@ func schema_api_pkg_operators_v1alpha1_CRDDescription(ref common.ReferenceCallba Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.StatusDescriptor"), + Ref: ref(v1alpha1.StatusDescriptor{}.OpenAPIModelName()), }, }, }, @@ -489,7 +650,7 @@ func schema_api_pkg_operators_v1alpha1_CRDDescription(ref common.ReferenceCallba Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.SpecDescriptor"), + Ref: ref(v1alpha1.SpecDescriptor{}.OpenAPIModelName()), }, }, }, @@ -502,7 +663,7 @@ func schema_api_pkg_operators_v1alpha1_CRDDescription(ref common.ReferenceCallba Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.ActionDescriptor"), + Ref: ref(v1alpha1.ActionDescriptor{}.OpenAPIModelName()), }, }, }, @@ -513,374 +674,393 @@ func schema_api_pkg_operators_v1alpha1_CRDDescription(ref common.ReferenceCallba }, }, Dependencies: []string{ - "github.com/operator-framework/api/pkg/operators/v1alpha1.APIResourceReference", "github.com/operator-framework/api/pkg/operators/v1alpha1.ActionDescriptor", "github.com/operator-framework/api/pkg/operators/v1alpha1.SpecDescriptor", "github.com/operator-framework/api/pkg/operators/v1alpha1.StatusDescriptor"}, + v1alpha1.APIResourceReference{}.OpenAPIModelName(), v1alpha1.ActionDescriptor{}.OpenAPIModelName(), v1alpha1.SpecDescriptor{}.OpenAPIModelName(), v1alpha1.StatusDescriptor{}.OpenAPIModelName()}, } } -func schema_api_pkg_operators_v1alpha1_CleanupSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_api_pkg_operators_v1alpha1_CatalogSource(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, + Description: "CatalogSource is a repository of CSVs, CRDs, and operator packages.", + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "enabled": { + "kind": { SchemaProps: spec.SchemaProps{ - Default: false, - Type: []string{"boolean"}, - Format: "", + Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + Type: []string{"string"}, + Format: "", }, }, - }, - Required: []string{"enabled"}, - }, - }, - } -} - -func schema_api_pkg_operators_v1alpha1_CleanupStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "CleanupStatus represents information about the status of cleanup while a CSV is pending deletion", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "pendingDeletion": { + "apiVersion": { SchemaProps: spec.SchemaProps{ - Description: "PendingDeletion is the list of custom resource objects that are pending deletion and blocked on finalizers. This indicates the progress of cleanup that is blocking CSV deletion or operator uninstall.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.ResourceList"), - }, - }, - }, + Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + Type: []string{"string"}, + Format: "", + }, + }, + "metadata": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(metav1.ObjectMeta{}.OpenAPIModelName()), + }, + }, + "spec": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.CatalogSourceSpec{}.OpenAPIModelName()), + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.CatalogSourceStatus{}.OpenAPIModelName()), }, }, }, + Required: []string{"metadata", "spec"}, }, }, Dependencies: []string{ - "github.com/operator-framework/api/pkg/operators/v1alpha1.ResourceList"}, + v1alpha1.CatalogSourceSpec{}.OpenAPIModelName(), v1alpha1.CatalogSourceStatus{}.OpenAPIModelName(), metav1.ObjectMeta{}.OpenAPIModelName()}, } } -func schema_api_pkg_operators_v1alpha1_ClusterServiceVersionCondition(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_api_pkg_operators_v1alpha1_CatalogSourceList(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "Conditions appear in the status as a record of state transitions on the ClusterServiceVersion", + Description: "CatalogSourceList is a repository of CSVs, CRDs, and operator packages.", Type: []string{"object"}, Properties: map[string]spec.Schema{ - "phase": { - SchemaProps: spec.SchemaProps{ - Description: "Condition of the ClusterServiceVersion", - Type: []string{"string"}, - Format: "", - }, - }, - "message": { + "kind": { SchemaProps: spec.SchemaProps{ - Description: "A human readable message indicating details about why the ClusterServiceVersion is in this condition.", + Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", Type: []string{"string"}, Format: "", }, }, - "reason": { + "apiVersion": { SchemaProps: spec.SchemaProps{ - Description: "A brief CamelCase message indicating details about why the ClusterServiceVersion is in this state. e.g. 'RequirementsNotMet'", + Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", Type: []string{"string"}, Format: "", }, }, - "lastUpdateTime": { + "metadata": { SchemaProps: spec.SchemaProps{ - Description: "Last time we updated the status", - Ref: ref(metav1.Time{}.OpenAPIModelName()), + Default: map[string]interface{}{}, + Ref: ref(metav1.ListMeta{}.OpenAPIModelName()), }, }, - "lastTransitionTime": { + "items": { SchemaProps: spec.SchemaProps{ - Description: "Last time the status transitioned from one status to another.", - Ref: ref(metav1.Time{}.OpenAPIModelName()), + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.CatalogSource{}.OpenAPIModelName()), + }, + }, + }, }, }, }, + Required: []string{"metadata", "items"}, }, }, Dependencies: []string{ - metav1.Time{}.OpenAPIModelName()}, + v1alpha1.CatalogSource{}.OpenAPIModelName(), metav1.ListMeta{}.OpenAPIModelName()}, } } -func schema_api_pkg_operators_v1alpha1_ClusterServiceVersionSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_api_pkg_operators_v1alpha1_CatalogSourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "ClusterServiceVersionSpec declarations tell OLM how to install an operator that can manage apps for a given version.", - Type: []string{"object"}, + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "install": { + "sourceType": { SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.NamedInstallStrategy"), + Description: "SourceType is the type of source", + Default: "", + Type: []string{"string"}, + Format: "", }, }, - "version": { + "priority": { SchemaProps: spec.SchemaProps{ - Ref: ref("github.com/operator-framework/api/pkg/lib/version.OperatorVersion"), + Description: "Priority field assigns a weight to the catalog source to prioritize them so that it can be consumed by the dependency resolver. Usage: Higher weight indicates that this catalog source is preferred over lower weighted catalog sources during dependency resolution. The range of the priority value can go from positive to negative in the range of int32. The default value to a catalog source with unassigned priority would be 0. The catalog source with the same priority values will be ranked lexicographically based on its name.", + Type: []string{"integer"}, + Format: "int32", }, }, - "release": { + "configMap": { SchemaProps: spec.SchemaProps{ - Description: "release specifies the packaging version of the operator, defaulting to empty release is optional\n\nA ClusterServiceVersion's release field is used to distinguish between different builds of the same operator version This is useful for operators that need to make changes to the CSV which don't affect their functionality, for example: - to fix a typo in their description - to add/amend annotations or labels - to amend examples or documentation - to produce different builds for different environments\n\nIt is up to operator authors to determine the semantics of release versions they use for their operator. All release versions must conform to the semver prerelease format (dot-separated identifiers containing only alphanumerics and hyphens) and are limited to a maximum length of 20 characters.", - Ref: ref("github.com/operator-framework/api/pkg/lib/release.OperatorRelease"), + Description: "ConfigMap is the name of the ConfigMap to be used to back a configmap-server registry. Only used when SourceType = SourceTypeConfigmap or SourceTypeInternal.", + Type: []string{"string"}, + Format: "", }, }, - "maturity": { + "address": { SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", + Description: "Address is a host that OLM can use to connect to a pre-existing registry. Format: : Only used when SourceType = SourceTypeGrpc. Ignored when the Image field is set.", + Type: []string{"string"}, + Format: "", }, }, - "customresourcedefinitions": { + "image": { SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.CustomResourceDefinitions"), + Description: "Image is an operator-registry container image to instantiate a registry-server with. Only used when SourceType = SourceTypeGrpc. If present, the address field is ignored.", + Type: []string{"string"}, + Format: "", }, }, - "apiservicedefinitions": { + "grpcPodConfig": { SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.APIServiceDefinitions"), + Description: "GrpcPodConfig exposes different overrides for the pod spec of the CatalogSource Pod. Only used when SourceType = SourceTypeGrpc and Image is set.", + Ref: ref(v1alpha1.GrpcPodConfig{}.OpenAPIModelName()), }, }, - "webhookdefinitions": { + "updateStrategy": { SchemaProps: spec.SchemaProps{ - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.WebhookDescription"), - }, - }, - }, + Description: "UpdateStrategy defines how updated catalog source images can be discovered Consists of an interval that defines polling duration and an embedded strategy type", + Ref: ref(v1alpha1.UpdateStrategy{}.OpenAPIModelName()), }, }, - "nativeAPIs": { + "secrets": { SchemaProps: spec.SchemaProps{ - Type: []string{"array"}, + Description: "Secrets represent set of secrets that can be used to access the contents of the catalog. It is best to keep this list small, since each will need to be tried for every catalog entry.", + Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref(metav1.GroupVersionKind{}.OpenAPIModelName()), + Default: "", + Type: []string{"string"}, + Format: "", }, }, }, }, }, - "minKubeVersion": { - SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", - }, - }, "displayName": { SchemaProps: spec.SchemaProps{ - Description: "The name of the operator in display format.", - Default: "", + Description: "Metadata", Type: []string{"string"}, Format: "", }, }, "description": { SchemaProps: spec.SchemaProps{ - Description: "Description of the operator. Can include the features, limitations or use-cases of the operator.", - Type: []string{"string"}, + Type: []string{"string"}, + Format: "", + }, + }, + "publisher": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "icon": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.Icon{}.OpenAPIModelName()), + }, + }, + }, + Required: []string{"sourceType"}, + }, + }, + Dependencies: []string{ + v1alpha1.GrpcPodConfig{}.OpenAPIModelName(), v1alpha1.Icon{}.OpenAPIModelName(), v1alpha1.UpdateStrategy{}.OpenAPIModelName()}, + } +} + +func schema_api_pkg_operators_v1alpha1_CatalogSourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "message": { + SchemaProps: spec.SchemaProps{ + Description: "A human readable message indicating details about why the CatalogSource is in this condition.", + Type: []string{"string"}, Format: "", }, }, - "keywords": { + "reason": { SchemaProps: spec.SchemaProps{ - Description: "A list of keywords describing the operator.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, + Description: "Reason is the reason the CatalogSource was transitioned to its current state.", + Type: []string{"string"}, + Format: "", }, }, - "maintainers": { + "latestImageRegistryPoll": { SchemaProps: spec.SchemaProps{ - Description: "A list of organizational entities maintaining the operator.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.Maintainer"), - }, - }, - }, + Description: "The last time the CatalogSource image registry has been polled to ensure the image is up-to-date", + Ref: ref(metav1.Time{}.OpenAPIModelName()), }, }, - "provider": { + "configMapReference": { SchemaProps: spec.SchemaProps{ - Description: "The publishing entity behind the operator.", - Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.AppLink"), + Description: "ConfigMapReference (deprecated) is the reference to the ConfigMap containing the catalog source's configuration, when the catalog source is a ConfigMap", + Ref: ref(v1alpha1.ConfigMapResourceReference{}.OpenAPIModelName()), }, }, - "links": { + "registryService": { SchemaProps: spec.SchemaProps{ - Description: "A list of links related to the operator.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.AppLink"), - }, - }, - }, + Description: "RegistryService represents the current state of the GRPC service used to serve the catalog", + Ref: ref(v1alpha1.RegistryServiceStatus{}.OpenAPIModelName()), }, }, - "icon": { + "connectionState": { SchemaProps: spec.SchemaProps{ - Description: "The icon for this operator.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.Icon"), - }, + Description: "ConnectionState represents the current state of the CatalogSource's connection to the registry", + Ref: ref(v1alpha1.GRPCConnectionState{}.OpenAPIModelName()), + }, + }, + "conditions": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "type", }, + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge", }, }, - }, - "installModes": { SchemaProps: spec.SchemaProps{ - Description: "InstallModes specify supported installation types", + Description: "Represents the state of a CatalogSource. Note that Message and Reason represent the original status information, which may be migrated to be conditions based in the future. Any new features introduced will use conditions.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.InstallMode"), + Ref: ref(metav1.Condition{}.OpenAPIModelName()), }, }, }, }, }, - "replaces": { + }, + }, + }, + Dependencies: []string{ + v1alpha1.ConfigMapResourceReference{}.OpenAPIModelName(), v1alpha1.GRPCConnectionState{}.OpenAPIModelName(), v1alpha1.RegistryServiceStatus{}.OpenAPIModelName(), metav1.Condition{}.OpenAPIModelName(), metav1.Time{}.OpenAPIModelName()}, + } +} + +func schema_api_pkg_operators_v1alpha1_CleanupSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "enabled": { SchemaProps: spec.SchemaProps{ - Description: "The name of a CSV this one replaces. Should match the `metadata.Name` field of the old CSV.", - Type: []string{"string"}, - Format: "", + Default: false, + Type: []string{"boolean"}, + Format: "", }, }, - "labels": { + }, + Required: []string{"enabled"}, + }, + }, + } +} + +func schema_api_pkg_operators_v1alpha1_CleanupStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "CleanupStatus represents information about the status of cleanup while a CSV is pending deletion", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "pendingDeletion": { SchemaProps: spec.SchemaProps{ - Description: "Map of string keys and values that can be used to organize and categorize (scope and select) objects.", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, + Description: "PendingDeletion is the list of custom resource objects that are pending deletion and blocked on finalizers. This indicates the progress of cleanup that is blocking CSV deletion or operator uninstall.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.ResourceList{}.OpenAPIModelName()), }, }, }, }, }, - "annotations": { + }, + }, + }, + Dependencies: []string{ + v1alpha1.ResourceList{}.OpenAPIModelName()}, + } +} + +func schema_api_pkg_operators_v1alpha1_ClusterServiceVersion(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "ClusterServiceVersion is a Custom Resource of type `ClusterServiceVersionSpec`.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "kind": { SchemaProps: spec.SchemaProps{ - Description: "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata.", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, + Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + Type: []string{"string"}, + Format: "", }, }, - "selector": { + "apiVersion": { SchemaProps: spec.SchemaProps{ - Description: "Label selector for related resources.", - Ref: ref(metav1.LabelSelector{}.OpenAPIModelName()), + Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + Type: []string{"string"}, + Format: "", }, }, - "cleanup": { + "metadata": { SchemaProps: spec.SchemaProps{ - Description: "Cleanup specifies the cleanup behaviour when the CSV gets deleted", - Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.CleanupSpec"), + Default: map[string]interface{}{}, + Ref: ref(metav1.ObjectMeta{}.OpenAPIModelName()), }, }, - "skips": { + "spec": { SchemaProps: spec.SchemaProps{ - Description: "The name(s) of one or more CSV(s) that should be skipped in the upgrade graph. Should match the `metadata.Name` field of the CSV that should be skipped. This field is only used during catalog creation and plays no part in cluster runtime.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.ClusterServiceVersionSpec{}.OpenAPIModelName()), }, }, - "relatedImages": { + "status": { SchemaProps: spec.SchemaProps{ - Description: "List any related images, or other container images that your Operator might require to perform their functions. This list should also include operand images as well. All image references should be specified by digest (SHA) and not by tag. This field is only used during catalog creation and plays no part in cluster runtime.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.RelatedImage"), - }, - }, - }, + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.ClusterServiceVersionStatus{}.OpenAPIModelName()), }, }, }, - Required: []string{"install", "displayName"}, + Required: []string{"metadata", "spec"}, }, }, Dependencies: []string{ - "github.com/operator-framework/api/pkg/lib/release.OperatorRelease", "github.com/operator-framework/api/pkg/lib/version.OperatorVersion", "github.com/operator-framework/api/pkg/operators/v1alpha1.APIServiceDefinitions", "github.com/operator-framework/api/pkg/operators/v1alpha1.AppLink", "github.com/operator-framework/api/pkg/operators/v1alpha1.CleanupSpec", "github.com/operator-framework/api/pkg/operators/v1alpha1.CustomResourceDefinitions", "github.com/operator-framework/api/pkg/operators/v1alpha1.Icon", "github.com/operator-framework/api/pkg/operators/v1alpha1.InstallMode", "github.com/operator-framework/api/pkg/operators/v1alpha1.Maintainer", "github.com/operator-framework/api/pkg/operators/v1alpha1.NamedInstallStrategy", "github.com/operator-framework/api/pkg/operators/v1alpha1.RelatedImage", "github.com/operator-framework/api/pkg/operators/v1alpha1.WebhookDescription", metav1.GroupVersionKind{}.OpenAPIModelName(), metav1.LabelSelector{}.OpenAPIModelName()}, + v1alpha1.ClusterServiceVersionSpec{}.OpenAPIModelName(), v1alpha1.ClusterServiceVersionStatus{}.OpenAPIModelName(), metav1.ObjectMeta{}.OpenAPIModelName()}, } } -func schema_api_pkg_operators_v1alpha1_ClusterServiceVersionStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_api_pkg_operators_v1alpha1_ClusterServiceVersionCondition(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "ClusterServiceVersionStatus represents information about the status of a CSV. Status may trail the actual state of a system.", + Description: "Conditions appear in the status as a record of state transitions on the ClusterServiceVersion", Type: []string{"object"}, Properties: map[string]spec.Schema{ "phase": { SchemaProps: spec.SchemaProps{ - Description: "Current condition of the ClusterServiceVersion", + Description: "Condition of the ClusterServiceVersion", Type: []string{"string"}, Format: "", }, @@ -911,675 +1091,2230 @@ func schema_api_pkg_operators_v1alpha1_ClusterServiceVersionStatus(ref common.Re Ref: ref(metav1.Time{}.OpenAPIModelName()), }, }, - "conditions": { + }, + }, + }, + Dependencies: []string{ + metav1.Time{}.OpenAPIModelName()}, + } +} + +func schema_api_pkg_operators_v1alpha1_ClusterServiceVersionList(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "ClusterServiceVersionList represents a list of ClusterServiceVersions.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "kind": { SchemaProps: spec.SchemaProps{ - Description: "List of conditions, a history of state transitions", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.ClusterServiceVersionCondition"), - }, - }, - }, + Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + Type: []string{"string"}, + Format: "", }, }, - "requirementStatus": { + "apiVersion": { SchemaProps: spec.SchemaProps{ - Description: "The status of each requirement for this CSV", - Type: []string{"array"}, + Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + Type: []string{"string"}, + Format: "", + }, + }, + "metadata": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(metav1.ListMeta{}.OpenAPIModelName()), + }, + }, + "items": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.RequirementStatus"), + Ref: ref(v1alpha1.ClusterServiceVersion{}.OpenAPIModelName()), }, }, }, }, }, - "certsLastUpdated": { + }, + Required: []string{"metadata", "items"}, + }, + }, + Dependencies: []string{ + v1alpha1.ClusterServiceVersion{}.OpenAPIModelName(), metav1.ListMeta{}.OpenAPIModelName()}, + } +} + +func schema_api_pkg_operators_v1alpha1_ClusterServiceVersionSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "ClusterServiceVersionSpec declarations tell OLM how to install an operator that can manage apps for a given version.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "install": { SchemaProps: spec.SchemaProps{ - Description: "Last time the owned APIService certs were updated", - Ref: ref(metav1.Time{}.OpenAPIModelName()), + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.NamedInstallStrategy{}.OpenAPIModelName()), }, }, - "certsRotateAt": { + "version": { SchemaProps: spec.SchemaProps{ - Description: "Time the owned APIService certs will rotate next", - Ref: ref(metav1.Time{}.OpenAPIModelName()), + Ref: ref(version.OperatorVersion{}.OpenAPIModelName()), + }, + }, + "release": { + SchemaProps: spec.SchemaProps{ + Description: "release specifies the packaging version of the operator, defaulting to empty release is optional\n\nA ClusterServiceVersion's release field is used to distinguish between different builds of the same operator version This is useful for operators that need to make changes to the CSV which don't affect their functionality, for example: - to fix a typo in their description - to add/amend annotations or labels - to amend examples or documentation - to produce different builds for different environments\n\nIt is up to operator authors to determine the semantics of release versions they use for their operator. All release versions must conform to the semver prerelease format (dot-separated identifiers containing only alphanumerics and hyphens) and are limited to a maximum length of 20 characters.", + Ref: ref("github.com/operator-framework/api/pkg/lib/release.OperatorRelease"), + }, + }, + "maturity": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "customresourcedefinitions": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.CustomResourceDefinitions{}.OpenAPIModelName()), + }, + }, + "apiservicedefinitions": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.APIServiceDefinitions{}.OpenAPIModelName()), + }, + }, + "webhookdefinitions": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.WebhookDescription{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "nativeAPIs": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(metav1.GroupVersionKind{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "minKubeVersion": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "displayName": { + SchemaProps: spec.SchemaProps{ + Description: "The name of the operator in display format.", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "description": { + SchemaProps: spec.SchemaProps{ + Description: "Description of the operator. Can include the features, limitations or use-cases of the operator.", + Type: []string{"string"}, + Format: "", + }, + }, + "keywords": { + SchemaProps: spec.SchemaProps{ + Description: "A list of keywords describing the operator.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "maintainers": { + SchemaProps: spec.SchemaProps{ + Description: "A list of organizational entities maintaining the operator.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.Maintainer{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "provider": { + SchemaProps: spec.SchemaProps{ + Description: "The publishing entity behind the operator.", + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.AppLink{}.OpenAPIModelName()), + }, + }, + "links": { + SchemaProps: spec.SchemaProps{ + Description: "A list of links related to the operator.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.AppLink{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "icon": { + SchemaProps: spec.SchemaProps{ + Description: "The icon for this operator.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.Icon{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "installModes": { + SchemaProps: spec.SchemaProps{ + Description: "InstallModes specify supported installation types", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.InstallMode{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "replaces": { + SchemaProps: spec.SchemaProps{ + Description: "The name of a CSV this one replaces. Should match the `metadata.Name` field of the old CSV.", + Type: []string{"string"}, + Format: "", + }, + }, + "labels": { + SchemaProps: spec.SchemaProps{ + Description: "Map of string keys and values that can be used to organize and categorize (scope and select) objects.", + Type: []string{"object"}, + AdditionalProperties: &spec.SchemaOrBool{ + Allows: true, + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "annotations": { + SchemaProps: spec.SchemaProps{ + Description: "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata.", + Type: []string{"object"}, + AdditionalProperties: &spec.SchemaOrBool{ + Allows: true, + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "selector": { + SchemaProps: spec.SchemaProps{ + Description: "Label selector for related resources.", + Ref: ref(metav1.LabelSelector{}.OpenAPIModelName()), }, }, "cleanup": { SchemaProps: spec.SchemaProps{ - Description: "CleanupStatus represents information about the status of cleanup while a CSV is pending deletion", + Description: "Cleanup specifies the cleanup behaviour when the CSV gets deleted", Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.CleanupStatus"), + Ref: ref(v1alpha1.CleanupSpec{}.OpenAPIModelName()), + }, + }, + "skips": { + SchemaProps: spec.SchemaProps{ + Description: "The name(s) of one or more CSV(s) that should be skipped in the upgrade graph. Should match the `metadata.Name` field of the CSV that should be skipped. This field is only used during catalog creation and plays no part in cluster runtime.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "relatedImages": { + SchemaProps: spec.SchemaProps{ + Description: "List any related images, or other container images that your Operator might require to perform their functions. This list should also include operand images as well. All image references should be specified by digest (SHA) and not by tag. This field is only used during catalog creation and plays no part in cluster runtime.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.RelatedImage{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + }, + Required: []string{"install", "displayName"}, + }, + }, + Dependencies: []string{ + "github.com/operator-framework/api/pkg/lib/release.OperatorRelease", version.OperatorVersion{}.OpenAPIModelName(), v1alpha1.APIServiceDefinitions{}.OpenAPIModelName(), v1alpha1.AppLink{}.OpenAPIModelName(), v1alpha1.CleanupSpec{}.OpenAPIModelName(), v1alpha1.CustomResourceDefinitions{}.OpenAPIModelName(), v1alpha1.Icon{}.OpenAPIModelName(), v1alpha1.InstallMode{}.OpenAPIModelName(), v1alpha1.Maintainer{}.OpenAPIModelName(), v1alpha1.NamedInstallStrategy{}.OpenAPIModelName(), v1alpha1.RelatedImage{}.OpenAPIModelName(), v1alpha1.WebhookDescription{}.OpenAPIModelName(), metav1.GroupVersionKind{}.OpenAPIModelName(), metav1.LabelSelector{}.OpenAPIModelName()}, + } +} + +func schema_api_pkg_operators_v1alpha1_ClusterServiceVersionStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "ClusterServiceVersionStatus represents information about the status of a CSV. Status may trail the actual state of a system.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "phase": { + SchemaProps: spec.SchemaProps{ + Description: "Current condition of the ClusterServiceVersion", + Type: []string{"string"}, + Format: "", + }, + }, + "message": { + SchemaProps: spec.SchemaProps{ + Description: "A human readable message indicating details about why the ClusterServiceVersion is in this condition.", + Type: []string{"string"}, + Format: "", + }, + }, + "reason": { + SchemaProps: spec.SchemaProps{ + Description: "A brief CamelCase message indicating details about why the ClusterServiceVersion is in this state. e.g. 'RequirementsNotMet'", + Type: []string{"string"}, + Format: "", + }, + }, + "lastUpdateTime": { + SchemaProps: spec.SchemaProps{ + Description: "Last time we updated the status", + Ref: ref(metav1.Time{}.OpenAPIModelName()), + }, + }, + "lastTransitionTime": { + SchemaProps: spec.SchemaProps{ + Description: "Last time the status transitioned from one status to another.", + Ref: ref(metav1.Time{}.OpenAPIModelName()), + }, + }, + "conditions": { + SchemaProps: spec.SchemaProps{ + Description: "List of conditions, a history of state transitions", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.ClusterServiceVersionCondition{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "requirementStatus": { + SchemaProps: spec.SchemaProps{ + Description: "The status of each requirement for this CSV", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.RequirementStatus{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "certsLastUpdated": { + SchemaProps: spec.SchemaProps{ + Description: "Last time the owned APIService certs were updated", + Ref: ref(metav1.Time{}.OpenAPIModelName()), + }, + }, + "certsRotateAt": { + SchemaProps: spec.SchemaProps{ + Description: "Time the owned APIService certs will rotate next", + Ref: ref(metav1.Time{}.OpenAPIModelName()), + }, + }, + "cleanup": { + SchemaProps: spec.SchemaProps{ + Description: "CleanupStatus represents information about the status of cleanup while a CSV is pending deletion", + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.CleanupStatus{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + Dependencies: []string{ + v1alpha1.CleanupStatus{}.OpenAPIModelName(), v1alpha1.ClusterServiceVersionCondition{}.OpenAPIModelName(), v1alpha1.RequirementStatus{}.OpenAPIModelName(), metav1.Time{}.OpenAPIModelName()}, + } +} + +func schema_api_pkg_operators_v1alpha1_ConfigMapResourceReference(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "name": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "namespace": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "uid": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "resourceVersion": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "lastUpdateTime": { + SchemaProps: spec.SchemaProps{ + Ref: ref(metav1.Time{}.OpenAPIModelName()), + }, + }, + }, + Required: []string{"name", "namespace"}, + }, + }, + Dependencies: []string{ + metav1.Time{}.OpenAPIModelName()}, + } +} + +func schema_api_pkg_operators_v1alpha1_CustomResourceDefinitions(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "CustomResourceDefinitions declares all of the CRDs managed or required by an operator being ran by ClusterServiceVersion.\n\nIf the CRD is present in the Owned list, it is implicitly required.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "owned": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.CRDDescription{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "required": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.CRDDescription{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + }, + }, + }, + Dependencies: []string{ + v1alpha1.CRDDescription{}.OpenAPIModelName()}, + } +} + +func schema_api_pkg_operators_v1alpha1_DependentStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "DependentStatus is the status for a dependent requirement (to prevent infinite nesting)", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "group": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "version": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "kind": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "uuid": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "message": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"group", "version", "kind", "status"}, + }, + }, + } +} + +func schema_api_pkg_operators_v1alpha1_ExtractContentConfig(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "ExtractContentConfig configures context extraction from a file-based catalog index image.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "cacheDir": { + SchemaProps: spec.SchemaProps{ + Description: "CacheDir is the (optional) directory storing the pre-calculated API cache.", + Type: []string{"string"}, + Format: "", + }, + }, + "catalogDir": { + SchemaProps: spec.SchemaProps{ + Description: "CatalogDir is the directory storing the file-based catalog contents.", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"catalogDir"}, + }, + }, + } +} + +func schema_api_pkg_operators_v1alpha1_GRPCConnectionState(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "address": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "lastObservedState": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "lastConnect": { + SchemaProps: spec.SchemaProps{ + Ref: ref(metav1.Time{}.OpenAPIModelName()), + }, + }, + }, + Required: []string{"lastObservedState"}, + }, + }, + Dependencies: []string{ + metav1.Time{}.OpenAPIModelName()}, + } +} + +func schema_api_pkg_operators_v1alpha1_GrpcPodConfig(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "GrpcPodConfig contains configuration specified for a catalog source", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "nodeSelector": { + SchemaProps: spec.SchemaProps{ + Description: "NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node's labels for the pod to be scheduled on that node.", + Type: []string{"object"}, + AdditionalProperties: &spec.SchemaOrBool{ + Allows: true, + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "tolerations": { + SchemaProps: spec.SchemaProps{ + Description: "Tolerations are the catalog source's pod's tolerations.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/api/core/v1.Toleration"), + }, + }, + }, + }, + }, + "affinity": { + SchemaProps: spec.SchemaProps{ + Description: "Affinity is the catalog source's pod's affinity.", + Ref: ref("k8s.io/api/core/v1.Affinity"), + }, + }, + "priorityClassName": { + SchemaProps: spec.SchemaProps{ + Description: "If specified, indicates the pod's priority. If not specified, the pod priority will be default or zero if there is no default.", + Type: []string{"string"}, + Format: "", + }, + }, + "securityContextConfig": { + SchemaProps: spec.SchemaProps{ + Description: "SecurityContextConfig can be one of `legacy` or `restricted`. The CatalogSource's pod is either injected with the right pod.spec.securityContext and pod.spec.container[*].securityContext values to allow the pod to run in Pod Security Admission (PSA) `restricted` mode, or doesn't set these values at all, in which case the pod can only be run in PSA `baseline` or `privileged` namespaces. If the SecurityContextConfig is unspecified, the mode will be determined by the namespace's PSA configuration. If the namespace is enforcing `restricted` mode, then the pod will be configured as if `restricted` was specified. Otherwise, it will be configured as if `legacy` was specified. Specifying a value other than `legacy` or `restricted` result in a validation error. When using older catalog images, which can not run in `restricted` mode, the SecurityContextConfig should be set to `legacy`.\n\nMore information about PSA can be found here: https://kubernetes.io/docs/concepts/security/pod-security-admission/", + Type: []string{"string"}, + Format: "", + }, + }, + "memoryTarget": { + SchemaProps: spec.SchemaProps{ + Description: "MemoryTarget configures the $GOMEMLIMIT value for the gRPC catalog Pod. This is a soft memory limit for the server, which the runtime will attempt to meet but makes no guarantees that it will do so. If this value is set, the Pod will have the following modifications made to the container running the server: - the $GOMEMLIMIT environment variable will be set to this value in bytes - the memory request will be set to this value\n\nThis field should be set if it's desired to reduce the footprint of a catalog server as much as possible, or if a catalog being served is very large and needs more than the default allocation. If your index image has a file- system cache, determine a good approximation for this value by doubling the size of the package cache at /tmp/cache/cache/packages.json in the index image.\n\nThis field is best-effort; if unset, no default will be used and no Pod memory limit or $GOMEMLIMIT value will be set.", + Ref: ref(resource.Quantity{}.OpenAPIModelName()), + }, + }, + "extractContent": { + SchemaProps: spec.SchemaProps{ + Description: "ExtractContent configures the gRPC catalog Pod to extract catalog metadata from the provided index image and use a well-known version of the `opm` server to expose it. The catalog index image that this CatalogSource is configured to use *must* be using the file-based catalogs in order to utilize this feature.", + Ref: ref(v1alpha1.ExtractContentConfig{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + Dependencies: []string{ + v1alpha1.ExtractContentConfig{}.OpenAPIModelName(), "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.Toleration", resource.Quantity{}.OpenAPIModelName()}, + } +} + +func schema_api_pkg_operators_v1alpha1_Icon(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "base64data": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "mediatype": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"base64data", "mediatype"}, + }, + }, + } +} + +func schema_api_pkg_operators_v1alpha1_InstallMode(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "InstallMode associates an InstallModeType with a flag representing if the CSV supports it", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "type": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "supported": { + SchemaProps: spec.SchemaProps{ + Default: false, + Type: []string{"boolean"}, + Format: "", + }, + }, + }, + Required: []string{"type", "supported"}, + }, + }, + } +} + +func schema_api_pkg_operators_v1alpha1_InstallPlan(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "InstallPlan defines the installation of a set of operators.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "kind": { + SchemaProps: spec.SchemaProps{ + Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + Type: []string{"string"}, + Format: "", + }, + }, + "apiVersion": { + SchemaProps: spec.SchemaProps{ + Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + Type: []string{"string"}, + Format: "", + }, + }, + "metadata": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(metav1.ObjectMeta{}.OpenAPIModelName()), + }, + }, + "spec": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.InstallPlanSpec{}.OpenAPIModelName()), + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.InstallPlanStatus{}.OpenAPIModelName()), + }, + }, + }, + Required: []string{"metadata", "spec"}, + }, + }, + Dependencies: []string{ + v1alpha1.InstallPlanSpec{}.OpenAPIModelName(), v1alpha1.InstallPlanStatus{}.OpenAPIModelName(), metav1.ObjectMeta{}.OpenAPIModelName()}, + } +} + +func schema_api_pkg_operators_v1alpha1_InstallPlanCondition(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "InstallPlanCondition represents the overall status of the execution of an InstallPlan.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "type": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "lastUpdateTime": { + SchemaProps: spec.SchemaProps{ + Description: "True, False, or Unknown", + Ref: ref(metav1.Time{}.OpenAPIModelName()), + }, + }, + "lastTransitionTime": { + SchemaProps: spec.SchemaProps{ + Ref: ref(metav1.Time{}.OpenAPIModelName()), + }, + }, + "reason": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "message": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + Dependencies: []string{ + metav1.Time{}.OpenAPIModelName()}, + } +} + +func schema_api_pkg_operators_v1alpha1_InstallPlanList(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "InstallPlanList is a list of InstallPlan resources.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "kind": { + SchemaProps: spec.SchemaProps{ + Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + Type: []string{"string"}, + Format: "", + }, + }, + "apiVersion": { + SchemaProps: spec.SchemaProps{ + Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + Type: []string{"string"}, + Format: "", + }, + }, + "metadata": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(metav1.ListMeta{}.OpenAPIModelName()), + }, + }, + "items": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.InstallPlan{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + }, + Required: []string{"metadata", "items"}, + }, + }, + Dependencies: []string{ + v1alpha1.InstallPlan{}.OpenAPIModelName(), metav1.ListMeta{}.OpenAPIModelName()}, + } +} + +func schema_api_pkg_operators_v1alpha1_InstallPlanReference(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "apiVersion": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "kind": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "name": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "uuid": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"apiVersion", "kind", "name", "uuid"}, + }, + }, + } +} + +func schema_api_pkg_operators_v1alpha1_InstallPlanSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "InstallPlanSpec defines a set of Application resources to be installed", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "source": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "sourceNamespace": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "clusterServiceVersionNames": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "approval": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "approved": { + SchemaProps: spec.SchemaProps{ + Default: false, + Type: []string{"boolean"}, + Format: "", + }, + }, + "generation": { + SchemaProps: spec.SchemaProps{ + Type: []string{"integer"}, + Format: "int32", + }, + }, + }, + Required: []string{"clusterServiceVersionNames", "approval", "approved"}, + }, + }, + } +} + +func schema_api_pkg_operators_v1alpha1_InstallPlanStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "InstallPlanStatus represents the information about the status of steps required to complete installation.\n\nStatus may trail the actual state of a system.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "phase": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "conditions": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.InstallPlanCondition{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "catalogSources": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "plan": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Ref: ref(v1alpha1.Step{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "bundleLookups": { + SchemaProps: spec.SchemaProps{ + Description: "BundleLookups is the set of in-progress requests to pull and unpackage bundle content to the cluster.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.BundleLookup{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "attenuatedServiceAccountRef": { + SchemaProps: spec.SchemaProps{ + Description: "AttenuatedServiceAccountRef references the service account that is used to do scoped operator install.", + Ref: ref("k8s.io/api/core/v1.ObjectReference"), + }, + }, + "startTime": { + SchemaProps: spec.SchemaProps{ + Description: "StartTime is the time when the controller began applying the resources listed in the plan to the cluster.", + Ref: ref(metav1.Time{}.OpenAPIModelName()), + }, + }, + "message": { + SchemaProps: spec.SchemaProps{ + Description: "Message is a human-readable message containing detailed information that may be important to understanding why the plan has its current status.", + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"phase", "catalogSources"}, + }, + }, + Dependencies: []string{ + v1alpha1.BundleLookup{}.OpenAPIModelName(), v1alpha1.InstallPlanCondition{}.OpenAPIModelName(), v1alpha1.Step{}.OpenAPIModelName(), "k8s.io/api/core/v1.ObjectReference", metav1.Time{}.OpenAPIModelName()}, + } +} + +func schema_api_pkg_operators_v1alpha1_Maintainer(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "name": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "email": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + } +} + +func schema_api_pkg_operators_v1alpha1_NamedInstallStrategy(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "NamedInstallStrategy represents the block of an ClusterServiceVersion resource where the install strategy is specified.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "strategy": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "spec": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.StrategyDetailsDeployment{}.OpenAPIModelName()), + }, + }, + }, + Required: []string{"strategy"}, + }, + }, + Dependencies: []string{ + v1alpha1.StrategyDetailsDeployment{}.OpenAPIModelName()}, + } +} + +func schema_api_pkg_operators_v1alpha1_RegistryPoll(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "interval": { + SchemaProps: spec.SchemaProps{ + Description: "Interval is used to determine the time interval between checks of the latest catalog source version. The catalog operator polls to see if a new version of the catalog source is available. If available, the latest image is pulled and gRPC traffic is directed to the latest catalog source.", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + } +} + +func schema_api_pkg_operators_v1alpha1_RegistryServiceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "protocol": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "serviceName": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "serviceNamespace": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "port": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "createdAt": { + SchemaProps: spec.SchemaProps{ + Ref: ref(metav1.Time{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + Dependencies: []string{ + metav1.Time{}.OpenAPIModelName()}, + } +} + +func schema_api_pkg_operators_v1alpha1_RelatedImage(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "name": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "image": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"name", "image"}, + }, + }, + } +} + +func schema_api_pkg_operators_v1alpha1_RequirementStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "group": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "version": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "kind": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "name": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "message": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "uuid": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "dependents": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.DependentStatus{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + }, + Required: []string{"group", "version", "kind", "name", "status", "message"}, + }, + }, + Dependencies: []string{ + v1alpha1.DependentStatus{}.OpenAPIModelName()}, + } +} + +func schema_api_pkg_operators_v1alpha1_ResourceInstance(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "name": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "namespace": { + SchemaProps: spec.SchemaProps{ + Description: "Namespace can be empty for cluster-scoped resources", + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"name"}, + }, + }, + } +} + +func schema_api_pkg_operators_v1alpha1_ResourceList(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "ResourceList represents a list of resources which are of the same Group/Kind", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "group": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "kind": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "instances": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.ResourceInstance{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + }, + Required: []string{"group", "kind", "instances"}, + }, + }, + Dependencies: []string{ + v1alpha1.ResourceInstance{}.OpenAPIModelName()}, + } +} + +func schema_api_pkg_operators_v1alpha1_SpecDescriptor(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "SpecDescriptor describes a field in a spec block of a CRD so that OLM can consume it", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "path": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "displayName": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "description": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "x-descriptors": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "value": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "byte", + }, + }, + }, + Required: []string{"path"}, + }, + }, + } +} + +func schema_api_pkg_operators_v1alpha1_StatusDescriptor(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "StatusDescriptor describes a field in a status block of a CRD so that OLM can consume it", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "path": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "displayName": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "description": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "x-descriptors": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "value": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "byte", + }, + }, + }, + Required: []string{"path"}, + }, + }, + } +} + +func schema_api_pkg_operators_v1alpha1_Step(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "Step represents the status of an individual step in an InstallPlan.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "resolving": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "resource": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.StepResource{}.OpenAPIModelName()), + }, + }, + "optional": { + SchemaProps: spec.SchemaProps{ + Type: []string{"boolean"}, + Format: "", + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"resolving", "resource", "status"}, + }, + }, + Dependencies: []string{ + v1alpha1.StepResource{}.OpenAPIModelName()}, + } +} + +func schema_api_pkg_operators_v1alpha1_StepResource(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "StepResource represents the status of a resource to be tracked by an InstallPlan.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "sourceName": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "sourceNamespace": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "group": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "version": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "kind": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "name": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "manifest": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"sourceName", "sourceNamespace", "group", "version", "kind", "name"}, + }, + }, + } +} + +func schema_api_pkg_operators_v1alpha1_StrategyDeploymentPermissions(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "StrategyDeploymentPermissions describe the rbac rules and service account needed by the install strategy", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "serviceAccountName": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "rules": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/api/rbac/v1.PolicyRule"), + }, + }, + }, + }, + }, + }, + Required: []string{"serviceAccountName", "rules"}, + }, + }, + Dependencies: []string{ + "k8s.io/api/rbac/v1.PolicyRule"}, + } +} + +func schema_api_pkg_operators_v1alpha1_StrategyDeploymentSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "StrategyDeploymentSpec contains the name, spec and labels for the deployment ALM should create", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "name": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "spec": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/api/apps/v1.DeploymentSpec"), + }, + }, + "label": { + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + AdditionalProperties: &spec.SchemaOrBool{ + Allows: true, + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, }, }, }, + Required: []string{"name", "spec"}, }, }, Dependencies: []string{ - "github.com/operator-framework/api/pkg/operators/v1alpha1.CleanupStatus", "github.com/operator-framework/api/pkg/operators/v1alpha1.ClusterServiceVersionCondition", "github.com/operator-framework/api/pkg/operators/v1alpha1.RequirementStatus", metav1.Time{}.OpenAPIModelName()}, + "k8s.io/api/apps/v1.DeploymentSpec"}, } } -func schema_api_pkg_operators_v1alpha1_CustomResourceDefinitions(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_api_pkg_operators_v1alpha1_StrategyDetailsDeployment(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "CustomResourceDefinitions declares all of the CRDs managed or required by an operator being ran by ClusterServiceVersion.\n\nIf the CRD is present in the Owned list, it is implicitly required.", + Description: "StrategyDetailsDeployment represents the parsed details of a Deployment InstallStrategy.", Type: []string{"object"}, Properties: map[string]spec.Schema{ - "owned": { + "deployments": { SchemaProps: spec.SchemaProps{ Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.CRDDescription"), + Ref: ref(v1alpha1.StrategyDeploymentSpec{}.OpenAPIModelName()), }, }, }, }, }, - "required": { + "permissions": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.StrategyDeploymentPermissions{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "clusterPermissions": { SchemaProps: spec.SchemaProps{ Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.CRDDescription"), + Ref: ref(v1alpha1.StrategyDeploymentPermissions{}.OpenAPIModelName()), }, }, }, }, }, }, + Required: []string{"deployments"}, }, }, Dependencies: []string{ - "github.com/operator-framework/api/pkg/operators/v1alpha1.CRDDescription"}, + v1alpha1.StrategyDeploymentPermissions{}.OpenAPIModelName(), v1alpha1.StrategyDeploymentSpec{}.OpenAPIModelName()}, } } -func schema_api_pkg_operators_v1alpha1_DependentStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_api_pkg_operators_v1alpha1_Subscription(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "DependentStatus is the status for a dependent requirement (to prevent infinite nesting)", + Description: "Subscription keeps operators up to date by tracking changes to Catalogs.", Type: []string{"object"}, Properties: map[string]spec.Schema{ - "group": { - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - "version": { + "kind": { SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", + Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + Type: []string{"string"}, + Format: "", }, }, - "kind": { + "apiVersion": { SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", + Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + Type: []string{"string"}, + Format: "", }, }, - "status": { + "metadata": { SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", + Default: map[string]interface{}{}, + Ref: ref(metav1.ObjectMeta{}.OpenAPIModelName()), }, }, - "uuid": { + "spec": { SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", + Ref: ref(v1alpha1.SubscriptionSpec{}.OpenAPIModelName()), }, }, - "message": { + "status": { SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.SubscriptionStatus{}.OpenAPIModelName()), }, }, }, - Required: []string{"group", "version", "kind", "status"}, + Required: []string{"metadata", "spec"}, }, }, + Dependencies: []string{ + v1alpha1.SubscriptionSpec{}.OpenAPIModelName(), v1alpha1.SubscriptionStatus{}.OpenAPIModelName(), metav1.ObjectMeta{}.OpenAPIModelName()}, } } -func schema_api_pkg_operators_v1alpha1_Icon(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_api_pkg_operators_v1alpha1_SubscriptionCatalogHealth(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, + Description: "SubscriptionCatalogHealth describes the health of a CatalogSource the Subscription knows about.", + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "base64data": { + "catalogSourceRef": { SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", + Description: "CatalogSourceRef is a reference to a CatalogSource.", + Ref: ref("k8s.io/api/core/v1.ObjectReference"), }, }, - "mediatype": { + "lastUpdated": { SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", + Description: "LastUpdated represents the last time that the CatalogSourceHealth changed", + Ref: ref(metav1.Time{}.OpenAPIModelName()), + }, + }, + "healthy": { + SchemaProps: spec.SchemaProps{ + Description: "Healthy is true if the CatalogSource is healthy; false otherwise.", + Default: false, + Type: []string{"boolean"}, + Format: "", }, }, }, - Required: []string{"base64data", "mediatype"}, + Required: []string{"catalogSourceRef", "lastUpdated", "healthy"}, }, }, + Dependencies: []string{ + "k8s.io/api/core/v1.ObjectReference", metav1.Time{}.OpenAPIModelName()}, } } -func schema_api_pkg_operators_v1alpha1_InstallMode(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_api_pkg_operators_v1alpha1_SubscriptionCondition(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "InstallMode associates an InstallModeType with a flag representing if the CSV supports it", + Description: "SubscriptionCondition represents the latest available observations of a Subscription's state.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "type": { SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", + Description: "Type is the type of Subscription condition.", + Default: "", + Type: []string{"string"}, + Format: "", }, }, - "supported": { + "status": { SchemaProps: spec.SchemaProps{ - Default: false, - Type: []string{"boolean"}, - Format: "", + Description: "Status is the status of the condition, one of True, False, Unknown.", + Default: "", + Type: []string{"string"}, + Format: "", }, }, - }, - Required: []string{"type", "supported"}, - }, - }, - } -} - -func schema_api_pkg_operators_v1alpha1_Maintainer(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { + "reason": { SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", + Description: "Reason is a one-word CamelCase reason for the condition's last transition.", + Type: []string{"string"}, + Format: "", }, }, - "email": { + "message": { SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", + Description: "Message is a human-readable message indicating details about last transition.", + Type: []string{"string"}, + Format: "", }, }, - }, - }, - }, - } -} - -func schema_api_pkg_operators_v1alpha1_NamedInstallStrategy(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "NamedInstallStrategy represents the block of an ClusterServiceVersion resource where the install strategy is specified.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "strategy": { + "lastHeartbeatTime": { SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", + Description: "LastHeartbeatTime is the last time we got an update on a given condition", + Ref: ref(metav1.Time{}.OpenAPIModelName()), }, }, - "spec": { + "lastTransitionTime": { SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.StrategyDetailsDeployment"), + Description: "LastTransitionTime is the last time the condition transit from one status to another", + Ref: ref(metav1.Time{}.OpenAPIModelName()), }, }, }, - Required: []string{"strategy"}, + Required: []string{"type", "status"}, }, }, Dependencies: []string{ - "github.com/operator-framework/api/pkg/operators/v1alpha1.StrategyDetailsDeployment"}, + metav1.Time{}.OpenAPIModelName()}, } } -func schema_api_pkg_operators_v1alpha1_RelatedImage(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_api_pkg_operators_v1alpha1_SubscriptionConfig(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, + Description: "SubscriptionConfig contains configuration specified for a subscription.", + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "name": { + "selector": { SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", + Description: "Selector is the label selector for pods to be configured. Existing ReplicaSets whose pods are selected by this will be the ones affected by this deployment. It must match the pod template's labels.", + Ref: ref(metav1.LabelSelector{}.OpenAPIModelName()), }, }, - "image": { + "nodeSelector": { SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", + Description: "NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node's labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/", + Type: []string{"object"}, + AdditionalProperties: &spec.SchemaOrBool{ + Allows: true, + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, }, }, - }, - Required: []string{"name", "image"}, - }, - }, - } -} - -func schema_api_pkg_operators_v1alpha1_RequirementStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "group": { + "tolerations": { SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", + Description: "Tolerations are the pod's tolerations.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/api/core/v1.Toleration"), + }, + }, + }, }, }, - "version": { + "resources": { SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", + Description: "Resources represents compute resources required by this container. Immutable. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/", + Ref: ref("k8s.io/api/core/v1.ResourceRequirements"), }, }, - "kind": { + "envFrom": { SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", + Description: "EnvFrom is a list of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Immutable.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/api/core/v1.EnvFromSource"), + }, + }, + }, }, }, - "name": { + "env": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-patch-merge-key": "name", + "x-kubernetes-patch-strategy": "merge", + }, + }, SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", + Description: "Env is a list of environment variables to set in the container. Cannot be updated.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/api/core/v1.EnvVar"), + }, + }, + }, }, }, - "status": { + "volumes": { SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", + Description: "List of Volumes to set in the podSpec.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/api/core/v1.Volume"), + }, + }, + }, }, }, - "message": { + "volumeMounts": { SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", + Description: "List of VolumeMounts to set in the container.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/api/core/v1.VolumeMount"), + }, + }, + }, }, }, - "uuid": { + "affinity": { SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", + Description: "If specified, overrides the pod's scheduling constraints. nil sub-attributes will *not* override the original values in the pod.spec for those sub-attributes. Use empty object ({}) to erase original sub-attribute values.", + Ref: ref("k8s.io/api/core/v1.Affinity"), }, }, - "dependents": { + "annotations": { SchemaProps: spec.SchemaProps{ - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ + Description: "Annotations is an unstructured key value map stored with each Deployment, Pod, APIService in the Operator. Typically, annotations may be set by external tools to store and retrieve arbitrary metadata. Use this field to pre-define annotations that OLM should add to each of the Subscription's deployments, pods, and apiservices.", + Type: []string{"object"}, + AdditionalProperties: &spec.SchemaOrBool{ + Allows: true, Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.DependentStatus"), + Default: "", + Type: []string{"string"}, + Format: "", }, }, }, }, }, }, - Required: []string{"group", "version", "kind", "name", "status", "message"}, }, }, Dependencies: []string{ - "github.com/operator-framework/api/pkg/operators/v1alpha1.DependentStatus"}, + "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.EnvFromSource", "k8s.io/api/core/v1.EnvVar", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.Toleration", "k8s.io/api/core/v1.Volume", "k8s.io/api/core/v1.VolumeMount", metav1.LabelSelector{}.OpenAPIModelName()}, } } -func schema_api_pkg_operators_v1alpha1_ResourceInstance(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_api_pkg_operators_v1alpha1_SubscriptionList(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, + Description: "SubscriptionList is a list of Subscription resources.", + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - "namespace": { + "kind": { SchemaProps: spec.SchemaProps{ - Description: "Namespace can be empty for cluster-scoped resources", + Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", Type: []string{"string"}, Format: "", }, }, - }, - Required: []string{"name"}, - }, - }, - } -} - -func schema_api_pkg_operators_v1alpha1_ResourceList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ResourceList represents a list of resources which are of the same Group/Kind", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "group": { + "apiVersion": { SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", + Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + Type: []string{"string"}, + Format: "", }, }, - "kind": { + "metadata": { SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", + Default: map[string]interface{}{}, + Ref: ref(metav1.ListMeta{}.OpenAPIModelName()), }, }, - "instances": { + "items": { SchemaProps: spec.SchemaProps{ Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.ResourceInstance"), + Ref: ref(v1alpha1.Subscription{}.OpenAPIModelName()), }, }, }, }, }, }, - Required: []string{"group", "kind", "instances"}, + Required: []string{"metadata", "items"}, }, }, Dependencies: []string{ - "github.com/operator-framework/api/pkg/operators/v1alpha1.ResourceInstance"}, + v1alpha1.Subscription{}.OpenAPIModelName(), metav1.ListMeta{}.OpenAPIModelName()}, } } -func schema_api_pkg_operators_v1alpha1_SpecDescriptor(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_api_pkg_operators_v1alpha1_SubscriptionSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "SpecDescriptor describes a field in a spec block of a CRD so that OLM can consume it", + Description: "SubscriptionSpec defines an Application that can be installed", Type: []string{"object"}, Properties: map[string]spec.Schema{ - "path": { + "source": { SchemaProps: spec.SchemaProps{ Default: "", Type: []string{"string"}, Format: "", }, }, - "displayName": { + "sourceNamespace": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "name": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "channel": { SchemaProps: spec.SchemaProps{ Type: []string{"string"}, Format: "", }, }, - "description": { + "startingCSV": { SchemaProps: spec.SchemaProps{ Type: []string{"string"}, Format: "", }, }, - "x-descriptors": { + "installPlanApproval": { SchemaProps: spec.SchemaProps{ - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, + Type: []string{"string"}, + Format: "", }, }, - "value": { + "config": { SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "byte", + Ref: ref(v1alpha1.SubscriptionConfig{}.OpenAPIModelName()), }, }, }, - Required: []string{"path"}, + Required: []string{"source", "sourceNamespace", "name"}, }, }, + Dependencies: []string{ + v1alpha1.SubscriptionConfig{}.OpenAPIModelName()}, } } -func schema_api_pkg_operators_v1alpha1_StatusDescriptor(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_api_pkg_operators_v1alpha1_SubscriptionStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "StatusDescriptor describes a field in a status block of a CRD so that OLM can consume it", - Type: []string{"object"}, + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "path": { + "currentCSV": { SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", + Description: "CurrentCSV is the CSV the Subscription is progressing to.", + Type: []string{"string"}, + Format: "", }, }, - "displayName": { + "installedCSV": { SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", + Description: "InstalledCSV is the CSV currently installed by the Subscription.", + Type: []string{"string"}, + Format: "", }, }, - "description": { + "installplan": { SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "", + Description: "Install is a reference to the latest InstallPlan generated for the Subscription. DEPRECATED: InstallPlanRef", + Ref: ref(v1alpha1.InstallPlanReference{}.OpenAPIModelName()), }, }, - "x-descriptors": { + "state": { SchemaProps: spec.SchemaProps{ - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, + Description: "State represents the current state of the Subscription", + Type: []string{"string"}, + Format: "", }, }, - "value": { + "reason": { SchemaProps: spec.SchemaProps{ - Type: []string{"string"}, - Format: "byte", + Description: "Reason is the reason the Subscription was transitioned to its current state.", + Type: []string{"string"}, + Format: "", }, }, - }, - Required: []string{"path"}, - }, - }, - } -} - -func schema_api_pkg_operators_v1alpha1_StrategyDeploymentPermissions(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "StrategyDeploymentPermissions describe the rbac rules and service account needed by the install strategy", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "serviceAccountName": { + "installPlanGeneration": { SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", + Description: "InstallPlanGeneration is the current generation of the installplan", + Type: []string{"integer"}, + Format: "int32", }, }, - "rules": { + "installPlanRef": { SchemaProps: spec.SchemaProps{ - Type: []string{"array"}, + Description: "InstallPlanRef is a reference to the latest InstallPlan that contains the Subscription's current CSV.", + Ref: ref("k8s.io/api/core/v1.ObjectReference"), + }, + }, + "catalogHealth": { + SchemaProps: spec.SchemaProps{ + Description: "CatalogHealth contains the Subscription's view of its relevant CatalogSources' status. It is used to determine SubscriptionStatusConditions related to CatalogSources.", + Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("k8s.io/api/rbac/v1.PolicyRule"), + Ref: ref(v1alpha1.SubscriptionCatalogHealth{}.OpenAPIModelName()), }, }, }, }, }, - }, - Required: []string{"serviceAccountName", "rules"}, - }, - }, - Dependencies: []string{ - "k8s.io/api/rbac/v1.PolicyRule"}, - } -} - -func schema_api_pkg_operators_v1alpha1_StrategyDeploymentSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "StrategyDeploymentSpec contains the name, spec and labels for the deployment ALM should create", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("k8s.io/api/apps/v1.DeploymentSpec"), - }, - }, - "label": { + "conditions": { SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, + Description: "Conditions is a list of the latest available observations about a Subscription's current state.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.SubscriptionCondition{}.OpenAPIModelName()), }, }, }, }, }, + "lastUpdated": { + SchemaProps: spec.SchemaProps{ + Description: "LastUpdated represents the last time that the Subscription status was updated.", + Ref: ref(metav1.Time{}.OpenAPIModelName()), + }, + }, }, - Required: []string{"name", "spec"}, + Required: []string{"lastUpdated"}, }, }, Dependencies: []string{ - "k8s.io/api/apps/v1.DeploymentSpec"}, + v1alpha1.InstallPlanReference{}.OpenAPIModelName(), v1alpha1.SubscriptionCatalogHealth{}.OpenAPIModelName(), v1alpha1.SubscriptionCondition{}.OpenAPIModelName(), "k8s.io/api/core/v1.ObjectReference", metav1.Time{}.OpenAPIModelName()}, } } -func schema_api_pkg_operators_v1alpha1_StrategyDetailsDeployment(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_api_pkg_operators_v1alpha1_UpdateStrategy(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "StrategyDetailsDeployment represents the parsed details of a Deployment InstallStrategy.", + Description: "UpdateStrategy holds all the different types of catalog source update strategies Currently only registry polling strategy is implemented", Type: []string{"object"}, Properties: map[string]spec.Schema{ - "deployments": { - SchemaProps: spec.SchemaProps{ - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.StrategyDeploymentSpec"), - }, - }, - }, - }, - }, - "permissions": { - SchemaProps: spec.SchemaProps{ - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.StrategyDeploymentPermissions"), - }, - }, - }, - }, - }, - "clusterPermissions": { + "registryPoll": { SchemaProps: spec.SchemaProps{ - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.StrategyDeploymentPermissions"), - }, - }, - }, + Ref: ref(v1alpha1.RegistryPoll{}.OpenAPIModelName()), }, }, }, - Required: []string{"deployments"}, }, }, Dependencies: []string{ - "github.com/operator-framework/api/pkg/operators/v1alpha1.StrategyDeploymentPermissions", "github.com/operator-framework/api/pkg/operators/v1alpha1.StrategyDeploymentSpec"}, + v1alpha1.RegistryPoll{}.OpenAPIModelName()}, } } @@ -1773,7 +3508,7 @@ func schema_package_server_apis_operators_v1_CSVDescription(ref common.Reference "version": { SchemaProps: spec.SchemaProps{ Description: "Version is the CSV's semantic version", - Ref: ref("github.com/operator-framework/api/pkg/lib/version.OperatorVersion"), + Ref: ref(version.OperatorVersion{}.OpenAPIModelName()), }, }, "provider": { @@ -1884,7 +3619,7 @@ func schema_package_server_apis_operators_v1_CSVDescription(ref common.Reference Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.InstallMode"), + Ref: ref(v1alpha1.InstallMode{}.OpenAPIModelName()), }, }, }, @@ -1893,13 +3628,13 @@ func schema_package_server_apis_operators_v1_CSVDescription(ref common.Reference "customresourcedefinitions": { SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.CustomResourceDefinitions"), + Ref: ref(v1alpha1.CustomResourceDefinitions{}.OpenAPIModelName()), }, }, "apiservicedefinitions": { SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/operator-framework/api/pkg/operators/v1alpha1.APIServiceDefinitions"), + Ref: ref(v1alpha1.APIServiceDefinitions{}.OpenAPIModelName()), }, }, "nativeApis": { @@ -1941,7 +3676,7 @@ func schema_package_server_apis_operators_v1_CSVDescription(ref common.Reference }, }, Dependencies: []string{ - "github.com/operator-framework/api/pkg/lib/version.OperatorVersion", "github.com/operator-framework/api/pkg/operators/v1alpha1.APIServiceDefinitions", "github.com/operator-framework/api/pkg/operators/v1alpha1.CustomResourceDefinitions", "github.com/operator-framework/api/pkg/operators/v1alpha1.InstallMode", v1.AppLink{}.OpenAPIModelName(), v1.Icon{}.OpenAPIModelName(), v1.Maintainer{}.OpenAPIModelName(), metav1.GroupVersionKind{}.OpenAPIModelName()}, + version.OperatorVersion{}.OpenAPIModelName(), v1alpha1.APIServiceDefinitions{}.OpenAPIModelName(), v1alpha1.CustomResourceDefinitions{}.OpenAPIModelName(), v1alpha1.InstallMode{}.OpenAPIModelName(), v1.AppLink{}.OpenAPIModelName(), v1.Icon{}.OpenAPIModelName(), v1.Maintainer{}.OpenAPIModelName(), metav1.GroupVersionKind{}.OpenAPIModelName()}, } } diff --git a/vendor/github.com/operator-framework/operator-registry/alpha/declcfg/declcfg_to_model.go b/vendor/github.com/operator-framework/operator-registry/alpha/declcfg/declcfg_to_model.go index 62dfd13ca7..68e04b0f21 100644 --- a/vendor/github.com/operator-framework/operator-registry/alpha/declcfg/declcfg_to_model.go +++ b/vendor/github.com/operator-framework/operator-registry/alpha/declcfg/declcfg_to_model.go @@ -4,6 +4,7 @@ import ( "fmt" "github.com/blang/semver/v4" + "go.podman.io/image/v5/docker/reference" "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/util/validation" @@ -128,6 +129,15 @@ func ConvertToModel(cfg DeclarativeConfig) (model.Model, error) { return nil, fmt.Errorf("package %q does not match %q property %q", b.Package, property.TypePackage, props.Packages[0].PackageName) } + if err := validateImagePullSpec(b.Image, "package %q bundle %q image", b.Package, b.Name); err != nil { + return nil, err + } + for i, rel := range b.RelatedImages { + if err := validateImagePullSpec(rel.Image, "package %q bundle %q relatedImages[%d].image", b.Package, b.Name, i); err != nil { + return nil, err + } + } + // Parse version from the package property. rawVersion := props.Packages[0].Version ver, err := semver.Parse(rawVersion) @@ -269,3 +279,15 @@ func relatedImagesToModelRelatedImages(in []RelatedImage) []model.RelatedImage { } return out } + +// validateImagePullSpec checks that a non-empty image pull spec is valid +// Empty pull specs are not validated. +func validateImagePullSpec(pullSpec, errFormat string, errArgs ...interface{}) error { + if pullSpec == "" { + return nil + } + if _, err := reference.ParseNormalizedNamed(pullSpec); err != nil { + return fmt.Errorf(errFormat+": invalid image pull spec %q: %w", append(errArgs, pullSpec, err)...) + } + return nil +} diff --git a/vendor/github.com/operator-framework/operator-registry/pkg/registry/csv.go b/vendor/github.com/operator-framework/operator-registry/pkg/registry/csv.go index fec3d2907b..26766f6b60 100644 --- a/vendor/github.com/operator-framework/operator-registry/pkg/registry/csv.go +++ b/vendor/github.com/operator-framework/operator-registry/pkg/registry/csv.go @@ -187,6 +187,7 @@ func (csv *ClusterServiceVersion) GetVersion() (string, error) { // GetRelease returns the release of the CSV // // If not defined, the function returns an empty string. +// The release field can be either a string or a number. func (csv *ClusterServiceVersion) GetRelease() (string, error) { var objmap map[string]*json.RawMessage if err := json.Unmarshal(csv.Spec, &objmap); err != nil { @@ -198,12 +199,24 @@ func (csv *ClusterServiceVersion) GetRelease() (string, error) { return "", nil } + // Try to unmarshal as string first (the expected type) var r string - if err := json.Unmarshal(*rawValue, &r); err != nil { - return "", err + if err := json.Unmarshal(*rawValue, &r); err == nil { + return r, nil + } + + // If string unmarshal fails, try as a number and convert to string + var num float64 + if err := json.Unmarshal(*rawValue, &num); err == nil { + // Format as integer if it's a whole number, otherwise as float + if num == float64(int64(num)) { + return fmt.Sprintf("%d", int64(num)), nil + } + return fmt.Sprintf("%g", num), nil } - return r, nil + // If both attempts fail, return an error + return "", fmt.Errorf("release field must be a string or number") } // GetSkipRange returns the skiprange of the CSV diff --git a/vendor/google.golang.org/grpc/cmd/protoc-gen-go-grpc/main.go b/vendor/google.golang.org/grpc/cmd/protoc-gen-go-grpc/main.go index b3f69223ab..83bff58e0c 100644 --- a/vendor/google.golang.org/grpc/cmd/protoc-gen-go-grpc/main.go +++ b/vendor/google.golang.org/grpc/cmd/protoc-gen-go-grpc/main.go @@ -42,7 +42,7 @@ import ( "google.golang.org/protobuf/types/pluginpb" ) -const version = "1.6.0" +const version = "1.6.1" var requireUnimplemented *bool var useGenericStreams *bool diff --git a/vendor/modules.txt b/vendor/modules.txt index 696e8977f3..3e03a8bfa8 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -454,7 +454,7 @@ github.com/grpc-ecosystem/grpc-gateway/v2/internal/httprule github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2/options github.com/grpc-ecosystem/grpc-gateway/v2/runtime github.com/grpc-ecosystem/grpc-gateway/v2/utilities -# github.com/grpc-ecosystem/grpc-health-probe v0.4.44 +# github.com/grpc-ecosystem/grpc-health-probe v0.4.45 ## explicit; go 1.24.0 github.com/grpc-ecosystem/grpc-health-probe # github.com/h2non/filetype v1.1.3 @@ -517,7 +517,7 @@ github.com/mattn/go-isatty # github.com/mattn/go-runewidth v0.0.19 ## explicit; go 1.20 github.com/mattn/go-runewidth -# github.com/mattn/go-sqlite3 v1.14.33 +# github.com/mattn/go-sqlite3 v1.14.34 ## explicit; go 1.19 github.com/mattn/go-sqlite3 # github.com/maxbrunsfeld/counterfeiter/v6 v6.12.1 @@ -638,8 +638,8 @@ github.com/openshift/client-go/config/listers/config/v1alpha2 # github.com/openshift/library-go v0.0.0-20260204111611-b7d4fa0e292a ## explicit; go 1.24.0 github.com/openshift/library-go/pkg/crypto -# github.com/operator-framework/api v0.39.0 => ./staging/api -## explicit; go 1.25.3 +# github.com/operator-framework/api v0.41.0 => ./staging/api +## explicit; go 1.25.7 github.com/operator-framework/api/crds github.com/operator-framework/api/pkg/constraints github.com/operator-framework/api/pkg/encoding @@ -658,7 +658,7 @@ github.com/operator-framework/api/pkg/validation/errors github.com/operator-framework/api/pkg/validation/interfaces github.com/operator-framework/api/pkg/validation/internal # github.com/operator-framework/operator-lifecycle-manager v0.0.0-00010101000000-000000000000 => ./staging/operator-lifecycle-manager -## explicit; go 1.25.3 +## explicit; go 1.25.7 github.com/operator-framework/operator-lifecycle-manager/cmd/catalog github.com/operator-framework/operator-lifecycle-manager/cmd/copy-content github.com/operator-framework/operator-lifecycle-manager/cmd/olm @@ -756,8 +756,8 @@ github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/stor github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/version github.com/operator-framework/operator-lifecycle-manager/pkg/version github.com/operator-framework/operator-lifecycle-manager/util/cpb -# github.com/operator-framework/operator-registry v1.63.0 => ./staging/operator-registry -## explicit; go 1.25.3 +# github.com/operator-framework/operator-registry v1.64.0 => ./staging/operator-registry +## explicit; go 1.25.7 github.com/operator-framework/operator-registry/alpha/action github.com/operator-framework/operator-registry/alpha/action/migrations github.com/operator-framework/operator-registry/alpha/declcfg @@ -1045,7 +1045,7 @@ go.opentelemetry.io/proto/otlp/collector/trace/v1 go.opentelemetry.io/proto/otlp/common/v1 go.opentelemetry.io/proto/otlp/resource/v1 go.opentelemetry.io/proto/otlp/trace/v1 -# go.podman.io/common v0.66.1 +# go.podman.io/common v0.67.0 ## explicit; go 1.24.2 go.podman.io/common/pkg/auth go.podman.io/common/pkg/capabilities @@ -1174,7 +1174,7 @@ golang.org/x/exp/slices ## explicit; go 1.11 golang.org/x/lint golang.org/x/lint/golint -# golang.org/x/mod v0.32.0 +# golang.org/x/mod v0.33.0 ## explicit; go 1.24.0 golang.org/x/mod/internal/lazyregexp golang.org/x/mod/modfile @@ -1358,7 +1358,7 @@ google.golang.org/grpc/serviceconfig google.golang.org/grpc/stats google.golang.org/grpc/status google.golang.org/grpc/tap -# google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.6.0 +# google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.6.1 ## explicit; go 1.24.0 google.golang.org/grpc/cmd/protoc-gen-go-grpc # google.golang.org/protobuf v1.36.11