diff --git a/Makefile b/Makefile index 7a00b79c..adfc623d 100644 --- a/Makefile +++ b/Makefile @@ -20,8 +20,8 @@ OPERATOR_VERSION := $(subst -SNAPSHOT,,$(VERSION)) LAST_RELEASED_IMAGE_NAME := yaks-operator LAST_RELEASED_VERSION := 0.19.0 -CONTROLLER_GEN_VERSION := v0.6.1 -CODEGEN_VERSION := v0.25.6 +CONTROLLER_GEN_VERSION := v0.15.0 +CODEGEN_VERSION := v0.30.2 OPERATOR_SDK_VERSION := v1.28.0 KUSTOMIZE_VERSION := v4.5.4 DEFAULT_IMAGE := docker.io/citrusframework/yaks diff --git a/config/crd/bases/yaks.citrusframework.org_instances.yaml b/config/crd/bases/yaks.citrusframework.org_instances.yaml index f08a7bd5..674aa37d 100644 --- a/config/crd/bases/yaks.citrusframework.org_instances.yaml +++ b/config/crd/bases/yaks.citrusframework.org_instances.yaml @@ -20,8 +20,7 @@ metadata: labels: app: yaks annotations: - controller-gen.kubebuilder.io/version: v0.6.1 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.15.0 name: instances.yaks.citrusframework.org spec: group: yaks.citrusframework.org @@ -54,14 +53,19 @@ spec: description: Instance is the Schema for the yaks instance. properties: apiVersion: - 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' + 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 kind: - 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' + 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 metadata: type: object diff --git a/config/crd/bases/yaks.citrusframework.org_tests.yaml b/config/crd/bases/yaks.citrusframework.org_tests.yaml index f96a1822..6c7d2915 100644 --- a/config/crd/bases/yaks.citrusframework.org_tests.yaml +++ b/config/crd/bases/yaks.citrusframework.org_tests.yaml @@ -20,8 +20,7 @@ metadata: labels: app: yaks annotations: - controller-gen.kubebuilder.io/version: v0.6.1 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.15.0 name: tests.yaks.citrusframework.org spec: group: yaks.citrusframework.org @@ -66,14 +65,19 @@ spec: description: Test is the Schema for the tests API. properties: apiVersion: - 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' + 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 kind: - 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' + 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 metadata: type: object @@ -120,8 +124,10 @@ spec: verbose: type: boolean type: object - secret: - type: string + secrets: + items: + type: string + type: array selenium: description: SeleniumSpec --. properties: diff --git a/deploy/olm-catalog/yaks/0.20.0-snapshot/yaks.citrusframework.org_instances.yaml b/deploy/olm-catalog/yaks/0.20.0-snapshot/yaks.citrusframework.org_instances.yaml index 0add3b47..674aa37d 100644 --- a/deploy/olm-catalog/yaks/0.20.0-snapshot/yaks.citrusframework.org_instances.yaml +++ b/deploy/olm-catalog/yaks/0.20.0-snapshot/yaks.citrusframework.org_instances.yaml @@ -17,11 +17,10 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.6.1 - creationTimestamp: null labels: app: yaks + annotations: + controller-gen.kubebuilder.io/version: v0.15.0 name: instances.yaks.citrusframework.org spec: group: yaks.citrusframework.org @@ -54,14 +53,19 @@ spec: description: Instance is the Schema for the yaks instance. properties: apiVersion: - 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' + 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 kind: - 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' + 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 metadata: type: object @@ -92,9 +96,3 @@ spec: storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: null - storedVersions: null diff --git a/deploy/olm-catalog/yaks/0.20.0-snapshot/yaks.citrusframework.org_tests.yaml b/deploy/olm-catalog/yaks/0.20.0-snapshot/yaks.citrusframework.org_tests.yaml index 7d4c5f85..6c7d2915 100644 --- a/deploy/olm-catalog/yaks/0.20.0-snapshot/yaks.citrusframework.org_tests.yaml +++ b/deploy/olm-catalog/yaks/0.20.0-snapshot/yaks.citrusframework.org_tests.yaml @@ -17,11 +17,10 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.6.1 - creationTimestamp: null labels: app: yaks + annotations: + controller-gen.kubebuilder.io/version: v0.15.0 name: tests.yaks.citrusframework.org spec: group: yaks.citrusframework.org @@ -66,14 +65,19 @@ spec: description: Test is the Schema for the tests API. properties: apiVersion: - 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' + 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 kind: - 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' + 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 metadata: type: object @@ -120,8 +124,10 @@ spec: verbose: type: boolean type: object - secret: - type: string + secrets: + items: + type: string + type: array selenium: description: SeleniumSpec --. properties: @@ -206,9 +212,3 @@ spec: storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: null - storedVersions: null diff --git a/go.mod b/go.mod index 5f6e2855..b52a31ac 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/citrusframework/yaks -go 1.21 +go 1.22 require ( github.com/Masterminds/semver v1.5.0 @@ -11,30 +11,30 @@ require ( github.com/mitchellh/go-homedir v1.1.0 github.com/mitchellh/mapstructure v1.5.0 // go get github.com/openshift/api@release-4.14 - github.com/openshift/api v0.0.0-20240304080513-3e8192a10b13 + github.com/openshift/api v0.0.0-20240228005710-4511c790cc60 github.com/operator-framework/api v0.20.0 github.com/pkg/errors v0.9.1 github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring v0.67.1 - github.com/rs/xid v1.4.0 + github.com/rs/xid v1.5.0 github.com/shurcooL/httpfs v0.0.0-20190707220628-8d4bc4ba7749 github.com/shurcooL/vfsgen v0.0.0-20181202132449-6a9ea43bcacd github.com/sirupsen/logrus v1.9.3 github.com/spf13/cobra v1.8.0 github.com/spf13/pflag v1.0.5 - github.com/spf13/viper v1.18.2 + github.com/spf13/viper v1.19.0 github.com/stoewer/go-strcase v1.3.0 github.com/stretchr/testify v1.9.0 - go.uber.org/multierr v1.10.0 - go.uber.org/zap v1.26.0 + go.uber.org/multierr v1.11.0 + go.uber.org/zap v1.27.0 gopkg.in/yaml.v2 v2.4.0 - k8s.io/api v0.27.7 - k8s.io/apiextensions-apiserver v0.27.7 - k8s.io/apimachinery v0.27.7 - k8s.io/client-go v0.27.7 + k8s.io/api v0.28.8 + k8s.io/apiextensions-apiserver v0.28.8 + k8s.io/apimachinery v0.28.8 + k8s.io/client-go v0.28.8 k8s.io/klog/v2 v2.120.1 - k8s.io/kubectl v0.27.7 - knative.dev/eventing v0.39.3 - sigs.k8s.io/controller-runtime v0.15.2 + k8s.io/kubectl v0.28.8 + knative.dev/eventing v0.40.3 + sigs.k8s.io/controller-runtime v0.16.5 ) require ( @@ -49,21 +49,21 @@ require ( github.com/cloudevents/sdk-go/sql/v2 v2.13.0 // indirect github.com/cloudevents/sdk-go/v2 v2.15.2 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect - github.com/emicklei/go-restful/v3 v3.10.2 // indirect - github.com/evanphx/json-patch v4.12.0+incompatible // indirect - github.com/evanphx/json-patch/v5 v5.7.0 // indirect + github.com/emicklei/go-restful/v3 v3.11.0 // indirect + github.com/evanphx/json-patch v5.6.0+incompatible // indirect + github.com/evanphx/json-patch/v5 v5.8.0 // indirect github.com/fsnotify/fsnotify v1.7.0 // indirect github.com/go-ini/ini v1.67.0 // indirect github.com/go-kit/log v0.2.1 // indirect github.com/go-logfmt/logfmt v0.5.1 // indirect github.com/go-logr/zapr v1.2.4 // indirect github.com/go-openapi/jsonpointer v0.19.6 // indirect - github.com/go-openapi/jsonreference v0.20.1 // indirect + github.com/go-openapi/jsonreference v0.20.2 // indirect github.com/go-openapi/swag v0.22.3 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect - github.com/golang/protobuf v1.5.3 // indirect - github.com/google/gnostic v0.6.9 // indirect + github.com/golang/protobuf v1.5.4 // indirect + github.com/google/gnostic-models v0.6.8 // indirect github.com/google/go-cmp v0.6.0 // indirect github.com/google/gofuzz v1.2.0 // indirect github.com/grpc-ecosystem/grpc-gateway/v2 v2.11.3 // indirect @@ -76,18 +76,17 @@ require ( github.com/kelseyhightower/envconfig v1.4.0 // indirect github.com/magiconair/properties v1.8.7 // indirect github.com/mailru/easyjson v0.7.7 // indirect - github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect github.com/minio/minio-go v6.0.14+incompatible // indirect github.com/moby/spdystream v0.2.0 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect - github.com/pelletier/go-toml/v2 v2.1.0 // indirect + github.com/pelletier/go-toml/v2 v2.2.2 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect - github.com/prometheus/client_golang v1.17.0 // indirect - github.com/prometheus/client_model v0.4.1-0.20230718164431-9a2bf3000d16 // indirect - github.com/prometheus/common v0.44.0 // indirect - github.com/prometheus/procfs v0.11.1 // indirect + github.com/prometheus/client_golang v1.18.0 // indirect + github.com/prometheus/client_model v0.5.0 // indirect + github.com/prometheus/common v0.46.0 // indirect + github.com/prometheus/procfs v0.12.0 // indirect github.com/prometheus/statsd_exporter v0.22.7 // indirect github.com/rickb777/date v1.13.0 // indirect github.com/rickb777/plural v1.2.1 // indirect @@ -102,31 +101,31 @@ require ( go.opencensus.io v0.24.0 // indirect golang.org/x/crypto v0.21.0 // indirect golang.org/x/exp v0.0.0-20230905200255-921286631fa9 // indirect - golang.org/x/net v0.22.0 // indirect - golang.org/x/oauth2 v0.15.0 // indirect - golang.org/x/sync v0.5.0 // indirect + golang.org/x/net v0.23.0 // indirect + golang.org/x/oauth2 v0.18.0 // indirect + golang.org/x/sync v0.6.0 // indirect golang.org/x/sys v0.18.0 // indirect golang.org/x/term v0.18.0 // indirect golang.org/x/text v0.14.0 // indirect golang.org/x/time v0.5.0 // indirect gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect - google.golang.org/api v0.153.0 // indirect - google.golang.org/appengine v1.6.7 // indirect - google.golang.org/genproto v0.0.0-20231106174013-bbf56f31fb17 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20231106174013-bbf56f31fb17 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20231120223509-83a465c0220f // indirect - google.golang.org/grpc v1.59.0 // indirect + google.golang.org/api v0.171.0 // indirect + google.golang.org/appengine v1.6.8 // indirect + google.golang.org/genproto v0.0.0-20240213162025-012b6fc9bca9 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20240311132316-a219d84964c2 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240314234333-6e1732d8331c // indirect + google.golang.org/grpc v1.62.1 // indirect google.golang.org/protobuf v1.33.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/component-base v0.27.7 // indirect - k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f // indirect + k8s.io/component-base v0.28.8 // indirect + k8s.io/kube-openapi v0.0.0-20230717233707-2695361300d9 // indirect k8s.io/utils v0.0.0-20230505201702-9f6742963106 // indirect - knative.dev/pkg v0.0.0-20231023151236-29775d7c9e5c // indirect + knative.dev/pkg v0.0.0-20240116073220-b488e7be5902 // indirect sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect - sigs.k8s.io/yaml v1.3.0 // indirect + sigs.k8s.io/yaml v1.4.0 // indirect ) replace github.com/docker/docker => github.com/moby/moby v0.7.3-0.20190826074503-38ab9da00309 // Required by Helm diff --git a/go.sum b/go.sum index 97a2cff2..e43eea77 100644 --- a/go.sum +++ b/go.sum @@ -39,7 +39,6 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03 github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww= github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= -github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= @@ -60,11 +59,9 @@ github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ= github.com/blendle/zapdriver v1.3.1 h1:C3dydBOWYRiOk+B8X9IVZ5IOe+7cl+tGOexN4QqHfpE= github.com/blendle/zapdriver v1.3.1/go.mod h1:mdXfREi6u5MArG4j9fewC+FGnXaBR+T4Ox4J2u4eHCc= -github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/census-instrumentation/opencensus-proto v0.4.1 h1:iKLQ0xPNFxR/2hzXZMrBo8f1j86j5WHzznCCQxV/b8g= github.com/census-instrumentation/opencensus-proto v0.4.1/go.mod h1:4T9NM4+4Vw91VeyqjLS6ao50K5bOcLKN6Q42XnYaRYw= -github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= @@ -78,30 +75,26 @@ github.com/cloudevents/sdk-go/sql/v2 v2.13.0/go.mod h1:XZRQBCgRreddIpQrdjBJQUrRg github.com/cloudevents/sdk-go/v2 v2.15.2 h1:54+I5xQEnI73RBhWHxbI1XJcqOFOVJN85vb41+8mHUc= github.com/cloudevents/sdk-go/v2 v2.15.2/go.mod h1:lL7kSWAE/V8VI4Wh0jbL2v/jvqsm6tjmaQBSvxcv4uE= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= -github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= -github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/container-tools/snap v0.0.10 h1:osH6xx67USIME5tz0HQ/EBZc7jgbPQwBG5aFwpDKYy4= github.com/container-tools/snap v0.0.10/go.mod h1:oc/WJPTvUx+p4opnHu0S3hA0b//4zelB35lWt7xGNQ0= +github.com/coreos/go-oidc/v3 v3.9.0 h1:0J/ogVOd4y8P0f0xUh8l9t07xRP/d8tccvjHl2dcsSo= +github.com/coreos/go-oidc/v3 v3.9.0/go.mod h1:rTKz2PYwftcrtoCzV5g5kvfJoWcm0Mk8AF8y1iAQro4= github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= 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/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= -github.com/emicklei/go-restful/v3 v3.10.2 h1:hIovbnmBTLjHXkqEBUz3HGpXZdM7ZrE9fJIZIqlJLqE= -github.com/emicklei/go-restful/v3 v3.10.2/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= +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/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= -github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= -github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/evanphx/json-patch v4.12.0+incompatible h1:4onqiflcdA9EOZ4RxV643DvftH5pOlLGNtQ5lPWQu84= -github.com/evanphx/json-patch v4.12.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/evanphx/json-patch/v5 v5.7.0 h1:nJqP7uwL84RJInrohHfW0Fx3awjbm8qZeFv0nW9SYGc= -github.com/evanphx/json-patch/v5 v5.7.0/go.mod h1:VNkHZ/282BpEyt/tObQO8s5CMPmYYq14uClGH4abBuQ= -github.com/flowstack/go-jsonschema v0.1.1/go.mod h1:yL7fNggx1o8rm9RlgXv7hTBWxdBM0rVwpMwimd3F3N0= +github.com/evanphx/json-patch v5.6.0+incompatible h1:jBYDEEiFBPxA0v50tFdvOzQQTCvpL6mnFh5mB2/l16U= +github.com/evanphx/json-patch v5.6.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= +github.com/evanphx/json-patch/v5 v5.8.0 h1:lRj6N9Nci7MvzrXuX6HFzU8XjmhPiXPlsKEy1u0KQro= +github.com/evanphx/json-patch/v5 v5.8.0/go.mod h1:VNkHZ/282BpEyt/tObQO8s5CMPmYYq14uClGH4abBuQ= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= @@ -115,6 +108,8 @@ github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2 github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-ini/ini v1.67.0 h1:z6ZrTEZqSWOTyH2FlglNbNgARyHG8oLW9gMELqKr06A= github.com/go-ini/ini v1.67.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= +github.com/go-jose/go-jose/v3 v3.0.1 h1:pWmKFVtt+Jl0vBZTIpz/eAKwsm6LkIxDVVbFHKkchhA= +github.com/go-jose/go-jose/v3 v3.0.1/go.mod h1:RNkWWRld676jZEYoV3+XK8L2ZnNSvIsxFMht0mSX+u8= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= @@ -133,8 +128,8 @@ github.com/go-logr/zapr v1.2.4 h1:QHVo+6stLbfJmYGkQ7uGHUCu5hnAFAj6mDe6Ea0SeOo= github.com/go-logr/zapr v1.2.4/go.mod h1:FyHWQIzQORZ0QVE1BtVHv3cKtNLuXsbNLtpuhNapBOA= github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE= github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs= -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/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE= +github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k= github.com/go-openapi/swag v0.22.3 h1:yMBqmnQ0gyZvEb/+KzuWZOXgllrXT4SADYbvDaXHv/g= github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= @@ -144,8 +139,8 @@ github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7a github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/glog v1.1.2 h1:DVjP2PbBOzHyzA+dn3WhHIq4NdVu3Q+pvivFICf/7fo= -github.com/golang/glog v1.1.2/go.mod h1:zR+okUeTbrL6EL3xHUDxZuEtGv04p5shwip1+mL/rLQ= +github.com/golang/glog v1.2.0 h1:uCdmnmatrKCgMBlM4rMuJZWOkPDqdbZPnrMXDY4gI68= +github.com/golang/glog v1.2.0/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -174,12 +169,12 @@ github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/gnostic v0.6.9 h1:ZK/5VhkoX835RikCHpSUJV9a+S3e1zLh59YnyWeBW+0= -github.com/google/gnostic v0.6.9/go.mod h1:Nm8234We1lq6iB9OmlgNv3nH91XLLVZHCDayfA3xq+E= +github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I= +github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= @@ -191,6 +186,7 @@ github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= @@ -215,9 +211,12 @@ github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+ github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/grpc-ecosystem/grpc-gateway v1.14.6/go.mod h1:zdiPV4Yse/1gnckTHtghG4GkDEdKCRJduHpTxT3/jcw= -github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/grpc-ecosystem/grpc-gateway/v2 v2.11.3 h1:lLT7ZLSzGLI08vc9cpd+tYmNWjdKDqyr/2L+f6U12Fk= github.com/grpc-ecosystem/grpc-gateway/v2 v2.11.3/go.mod h1:o//XUCC/F+yRGJoPO/VU0GSB0f8Nhgmxx0VIRUvaC0w= +github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ= +github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48= +github.com/hashicorp/go-retryablehttp v0.6.7 h1:8/CAEZt/+F7kR7GevNHulKkUjLht3CPmn7egmhieNKo= +github.com/hashicorp/go-retryablehttp v0.6.7/go.mod h1:vAew36LZh98gCBJNLH42IQ1ER/9wtLZZ8meHqQvEYWY= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v1.0.2 h1:dV3g9Z/unq5DpblPpw+Oqcv4dU/1omnb4Ok8iPY6p1c= @@ -250,7 +249,6 @@ github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxv github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= @@ -264,8 +262,6 @@ github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0 github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/mattn/goveralls v0.0.2/go.mod h1:8d1ZMHsd7fW6IRPKQh46F2WRpyib5/X4FOpevwGNQEw= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= -github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/minio/minio-go v6.0.14+incompatible h1:fnV+GD28LeqdN6vT2XdGKW8Qe/IfjJDswNVuni6km9o= github.com/minio/minio-go v6.0.14+incompatible/go.mod h1:7guKYtitv8dktvNUGrhzmNlA5wrAABTQXCoesZdFQO8= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= @@ -289,22 +285,18 @@ github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.12.1 h1:mFwc4LvZ0xpSvDZ3E+k8Yte0hLOMxXUlP+yXtJqkYfQ= github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= -github.com/onsi/ginkgo/v2 v2.9.5 h1:+6Hr4uxzP4XIUyAkg61dWBw8lb/gc4/X5luuxN/EC+Q= -github.com/onsi/ginkgo/v2 v2.9.5/go.mod h1:tvAoo1QUJwNEU2ITftXTpR7R1RbCzoZUOs3RonqW57k= +github.com/onsi/ginkgo/v2 v2.11.0 h1:WgqUCUt/lT6yXoQ8Wef0fsNn5cAuMK7+KT9UFRz2tcU= +github.com/onsi/ginkgo/v2 v2.11.0/go.mod h1:ZhrRA5XmEE3x3rhlzamx/JJvujdZoJ2uvgI7kR0iZvM= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= -github.com/onsi/gomega v1.27.7 h1:fVih9JD6ogIiHUN6ePK7HJidyEDpWGVB5mzM7cWNXoU= -github.com/onsi/gomega v1.27.7/go.mod h1:1p8OOlwo2iUUDsHnOrjE5UKYJ+e3W8eQ3qSlRahPmr4= -github.com/openshift/api v0.0.0-20240103200955-7ca3a4634e46 h1:mnrBzHjjqYKw2uinOVXL9Eplj3+QaQwJ3SaWAs8l6cc= -github.com/openshift/api v0.0.0-20240103200955-7ca3a4634e46/go.mod h1:aQ6LDasvHMvHZXqLHnX2GRmnfTWCF/iIwz8EMTTIE9A= -github.com/openshift/api v0.0.0-20240304080513-3e8192a10b13 h1:KNaEkpcVi4XGb86cA6FMJ8Wia7KWAembCUv8blIksTY= -github.com/openshift/api v0.0.0-20240304080513-3e8192a10b13/go.mod h1:yimSGmjsI+XF1mr+AKBs2//fSXIOhhetHGbMlBEfXbs= -github.com/openshift/api v3.9.1-0.20190927182313-d4a64ec2cbd8+incompatible h1:YwFnUQ5RQ17CmkxHyjpQnWAQOGkLKXY0shOUEyqaCGk= -github.com/openshift/api v3.9.1-0.20190927182313-d4a64ec2cbd8+incompatible/go.mod h1:dh9o4Fs58gpFXGSYfnVxGR9PnV53I8TW84pQaJDdGiY= +github.com/onsi/gomega v1.27.10 h1:naR28SdDFlqrG6kScpT8VWpu1xWY5nJRCF3XaYyBjhI= +github.com/onsi/gomega v1.27.10/go.mod h1:RsS8tutOdbdgzbPtzzATp12yT7kM5I5aElG3evPbQ0M= +github.com/openshift/api v0.0.0-20240228005710-4511c790cc60 h1:BfN2JThYjmpXhULHahY1heyfct+fsj4fhkUo3tVIGH4= +github.com/openshift/api v0.0.0-20240228005710-4511c790cc60/go.mod h1:qNtV0315F+f8ld52TLtPvrfivZpdimOzTi3kn9IVbtU= github.com/operator-framework/api v0.20.0 h1:A2YCRhr+6s0k3pRJacnwjh1Ue8BqjIGuQ2jvPg9XCB4= github.com/operator-framework/api v0.20.0/go.mod h1:rXPOhrQ6mMeXqCmpDgt1ALoar9ZlHL+Iy5qut9R99a4= -github.com/pelletier/go-toml/v2 v2.1.0 h1:FnwAJ4oYMvbT/34k9zzHuZNrhlz48GB3/s6at6/MHO4= -github.com/pelletier/go-toml/v2 v2.1.0/go.mod h1:tJU2Z3ZkXwnxa4DPO899bsyIoywizdUvyaeZurnPPDc= +github.com/pelletier/go-toml/v2 v2.2.2 h1:aYUidT7k73Pcl9nb2gScu7NSrKCSHIDE89b3+6Wq+LM= +github.com/pelletier/go-toml/v2 v2.2.2/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= @@ -321,30 +313,30 @@ github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqr github.com/prometheus/client_golang v1.12.1/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= github.com/prometheus/client_golang v1.12.2/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= github.com/prometheus/client_golang v1.13.0/go.mod h1:vTeo+zgvILHsnnj/39Ou/1fPN5nJFOEMgftOUOmlvYQ= -github.com/prometheus/client_golang v1.17.0 h1:rl2sfwZMtSthVU752MqfjQozy7blglC+1SOtjMAMh+Q= -github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY= +github.com/prometheus/client_golang v1.18.0 h1:HzFfmkOzH5Q8L8G+kSJKUx5dtG87sewO+FoDDqP5Tbk= +github.com/prometheus/client_golang v1.18.0/go.mod h1:T+GXkCk5wSJyOqMIzVgvvjFDlkOQntgjkJWKrN5txjA= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.4.1-0.20230718164431-9a2bf3000d16 h1:v7DLqVdK4VrYkVD5diGdl4sxJurKJEMnODWRJlxV9oM= -github.com/prometheus/client_model v0.4.1-0.20230718164431-9a2bf3000d16/go.mod h1:oMQmHW1/JoDwqLtg57MGgP/Fb1CJEYF2imWWhWtMkYU= +github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= +github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= github.com/prometheus/common v0.35.0/go.mod h1:phzohg0JFMnBEFGxTDbfu3QyL5GI8gTQJFhYO5B3mfA= github.com/prometheus/common v0.37.0/go.mod h1:phzohg0JFMnBEFGxTDbfu3QyL5GI8gTQJFhYO5B3mfA= -github.com/prometheus/common v0.44.0 h1:+5BrQJwiBB9xsMygAB3TNvpQKOwlkc25LbISbrdOOfY= -github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY= +github.com/prometheus/common v0.46.0 h1:doXzt5ybi1HBKpsZOL0sSkaNHJJqkyfEWZGGqqScV0Y= +github.com/prometheus/common v0.46.0/go.mod h1:Tp0qkxpb9Jsg54QMe+EAmqXkSV7Evdy1BTn+g2pa/hQ= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= github.com/prometheus/procfs v0.8.0/go.mod h1:z7EfXMXOkbkqb9IINtpCn86r/to3BnA0uaxHdg830/4= -github.com/prometheus/procfs v0.11.1 h1:xRC8Iq1yyca5ypa9n1EZnWZkt7dwcoRPQwX/5gwaUuI= -github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY= +github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k6Bo= +github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo= github.com/prometheus/statsd_exporter v0.22.7 h1:7Pji/i2GuhK6Lu7DHrtTkFmNBCudCPT1pX2CziuyQR0= github.com/prometheus/statsd_exporter v0.22.7/go.mod h1:N/TevpjkIh9ccs6nuzY3jQn9dFqnUakOjnEuMPJJJnI= github.com/rickb777/date v1.13.0 h1:+8AmwLuY1d/rldzdqvqTEg7107bZ8clW37x4nsdG3Hs= @@ -355,10 +347,10 @@ github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs= github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= -github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= -github.com/rs/xid v1.4.0 h1:qd7wPTDkN6KQx2VmMBLrpHkiyQwgFXRnkOLacUiaSNY= -github.com/rs/xid v1.4.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= +github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= +github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= +github.com/rs/xid v1.5.0 h1:mKX4bl4iPYJtEIxp6CYiUuLQ/8DYMoz0PUdtGgMFRVc= +github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/sagikazarmark/locafero v0.4.0 h1:HApY1R9zGo4DBgr7dqsTH/JJxLTTsOt7u6keLGt6kNQ= github.com/sagikazarmark/locafero v0.4.0/go.mod h1:Pe1W6UlPYUk/+wc/6KFhbORCfqzgYEpgQ3O5fPuL3H4= @@ -377,7 +369,6 @@ github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/sourcegraph/conc v0.3.0 h1:OQTbbt6P72L20UqAkXXuLOj79LfEanQ+YQFNpLA9ySo= github.com/sourcegraph/conc v0.3.0/go.mod h1:Sdozi7LEKbFPqYX2/J+iBAM6HpqSLTASQIKqDmF7Mt0= -github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= github.com/spf13/cast v1.6.0 h1:GEiTHELF+vaR5dhz3VqZfFSzZjYbgeKDpBxQVS4GYJ0= @@ -386,20 +377,19 @@ github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0= github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho= 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/spf13/viper v1.18.2 h1:LUXCnvUvSM6FXAsj6nnfc8Q2tp1dIgUfY9Kc8GsSOiQ= -github.com/spf13/viper v1.18.2/go.mod h1:EKmWIqdnk5lOcmR72yw6hS+8OPYcwD0jteitLMVB+yk= +github.com/spf13/viper v1.19.0 h1:RWq5SEjt8o25SROyN3z2OrDB9l7RPd3lwTWU8EcEdcI= +github.com/spf13/viper v1.19.0/go.mod h1:GQUN9bilAbhU/jgc1bKs99f/suXKeUMct8Adx5+Ntkg= github.com/sqs/goreturns v0.0.0-20181028201513-538ac6014518/go.mod h1:CKI4AZ4XmGV240rTHfO0hfE83S6/a3/Q1siZJ/vXf7A= -github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8= github.com/stoewer/go-strcase v1.3.0 h1:g0eASXYtp+yvN9fK8sH94oCIk0fau9uV1/ZdJ0AVEzs= github.com/stoewer/go-strcase v1.3.0/go.mod h1:fAH5hQ5pehh+j3nZfvwdk2RgEgQjAoM8wodgtPmh1xo= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/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/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= @@ -413,14 +403,12 @@ github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8 github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= -github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= -github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= -github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= @@ -429,26 +417,26 @@ go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= -go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= -go.uber.org/goleak v1.2.1 h1:NBol2c7O1ZokfZ0LEU9K6Whx/KnwvepVetCUhtKja4A= -go.uber.org/goleak v1.2.1/go.mod h1:qlT2yGI9QafXHhZZLxlSuNsMw3FFLxBr+tBRlmO1xH4= +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.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= -go.uber.org/multierr v1.10.0 h1:S0h4aNzvfcFsC3dRF1jLoaov7oRaKqRGC/pUEJ2yvPQ= -go.uber.org/multierr v1.10.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= +go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= +go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg= -go.uber.org/zap v1.26.0 h1:sI7k6L95XOKS281NhVKOFCUNIvv9e0w4BF8N3u+tCRo= -go.uber.org/zap v1.26.0/go.mod h1:dtElttAiwGvoJ/vj4IwHBS/gXsEu/pZ50mUIRWuG0so= +go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= +go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA= golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -484,8 +472,9 @@ golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzB 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.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.13.0 h1:I/DsJXRlw/8l/0c24sM9yb0T4z9liZTduXvdAWYiysY= -golang.org/x/mod v0.13.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0= +golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= 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-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -519,13 +508,14 @@ golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81R golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.22.0 h1:9sGLhx7iRIHEiX0oAJ3MRZMUCElJgy7Br1nO+AMN3Tc= -golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= +golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -533,8 +523,8 @@ golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4Iltr golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= -golang.org/x/oauth2 v0.15.0 h1:s8pnnxNVzjWyrvYdFUQq5llS1PX2zhPXmccZv99h7uQ= -golang.org/x/oauth2 v0.15.0/go.mod h1:q48ptWNTY5XWf+JNten23lcvHpLJ0ZSxF5ttTHKVCAM= +golang.org/x/oauth2 v0.18.0 h1:09qnuIAgzdx1XplqJvW6CQqMCtGZykZWcXzPMPUusvI= +golang.org/x/oauth2 v0.18.0/go.mod h1:Wf7knwG0MPoWIMMBgFlEaSUDaKskp0dCfrlJRJXbBi8= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -547,8 +537,9 @@ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.5.0 h1:60k92dhOjHxJkrqnwsfl8KuaHbn/5dl0lUPUklKo3qE= -golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= +golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -596,6 +587,7 @@ golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220708085239-5a0f0661e09d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= @@ -607,9 +599,9 @@ golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -661,8 +653,9 @@ golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.14.0 h1:jvNa2pY0M4r62jkRQ6RwEZZyPcymeL9XZMLBbV7U2nc= -golang.org/x/tools v0.14.0/go.mod h1:uYBEerGOWcJyEORxN+Ek8+TT266gXkNlHdJBwexUsBg= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.17.0 h1:FvmRgNOcs3kOa+T20R1uhfP9F6HgG2mfxDv1vrx1Htc= +golang.org/x/tools v0.17.0/go.mod h1:xsh6VxdV005rRVaS6SSAf9oiAqljS7UZUacMZ8Bnsps= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -686,16 +679,16 @@ google.golang.org/api v0.25.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0M google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= -google.golang.org/api v0.153.0 h1:N1AwGhielyKFaUqH07/ZSIQR3uNPcV7NVw0vj+j4iR4= -google.golang.org/api v0.153.0/go.mod h1:3qNJX5eOmhiWYc67jRA/3GsDw97UFb5ivv7Y2PrriAY= +google.golang.org/api v0.171.0 h1:w174hnBPqut76FzW5Qaupt7zY8Kql6fiVjgys4f58sU= +google.golang.org/api v0.171.0/go.mod h1:Hnq5AHm4OTMt2BUVjael2CWZFD6vksJdWCWiUAmjC9o= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= -google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= +google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= @@ -727,13 +720,12 @@ google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7Fc google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20220107163113-42d7afdf6368/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20231106174013-bbf56f31fb17 h1:wpZ8pe2x1Q3f2KyT5f8oP/fa9rHAKgFPr/HZdNuS+PQ= -google.golang.org/genproto v0.0.0-20231106174013-bbf56f31fb17/go.mod h1:J7XzRzVy1+IPwWHZUzoD0IccYZIrXILAQpc+Qy9CMhY= -google.golang.org/genproto/googleapis/api v0.0.0-20231106174013-bbf56f31fb17 h1:JpwMPBpFN3uKhdaekDpiNlImDdkUAyiJ6ez/uxGaUSo= -google.golang.org/genproto/googleapis/api v0.0.0-20231106174013-bbf56f31fb17/go.mod h1:0xJLfVdJqpAPl8tDg1ujOCGzx6LFLttXT5NhllGOXY4= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231120223509-83a465c0220f h1:ultW7fxlIvee4HYrtnaRPon9HpEgFk5zYpmfMgtKB5I= -google.golang.org/genproto/googleapis/rpc v0.0.0-20231120223509-83a465c0220f/go.mod h1:L9KNLi232K1/xB6f7AlSX692koaRnKaWSR0stBki0Yc= +google.golang.org/genproto v0.0.0-20240213162025-012b6fc9bca9 h1:9+tzLLstTlPTRyJTh+ah5wIMsBW5c4tQwGTN3thOW9Y= +google.golang.org/genproto v0.0.0-20240213162025-012b6fc9bca9/go.mod h1:mqHbVIp48Muh7Ywss/AD6I5kNVKZMmAa/QEW58Gxp2s= +google.golang.org/genproto/googleapis/api v0.0.0-20240311132316-a219d84964c2 h1:rIo7ocm2roD9DcFIX67Ym8icoGCKSARAiPljFhh5suQ= +google.golang.org/genproto/googleapis/api v0.0.0-20240311132316-a219d84964c2/go.mod h1:O1cOfN1Cy6QEYr7VxtjOyP5AdAuR0aJ/MYZaaof623Y= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240314234333-6e1732d8331c h1:lfpJ/2rWPa/kJgxyyXM8PrNnfCzcmxJ265mADgwmvLI= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240314234333-6e1732d8331c/go.mod h1:WtryC6hu0hhx87FDGxWCDptyssuo68sk10vYjF+T9fY= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= @@ -746,12 +738,9 @@ google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKa google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= -google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= -google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk= -google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98= +google.golang.org/grpc v1.62.1 h1:B4n+nfKzOICUXMgyrNd19h/I9oH0L1pizfk1d4zSgTk= +google.golang.org/grpc v1.62.1/go.mod h1:IWTG0VlJLCh1SkC58F7np9ka9mx/WNkjl4PGJaiq+QE= 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= @@ -764,7 +753,6 @@ google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGj google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= @@ -792,7 +780,6 @@ gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0/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= @@ -803,36 +790,36 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -k8s.io/api v0.27.7 h1:7yG4D3t/q4utJe2ptlRw9aPuxcSmroTsYxsofkQNl/A= -k8s.io/api v0.27.7/go.mod h1:ZNExI/Lhrs9YrLgVWx6jjHZdoWCTXfBXuFjt1X6olro= -k8s.io/apiextensions-apiserver v0.27.7 h1:YqIOwZAUokzxJIjunmUd4zS1v3JhK34EPXn+pP0/bsU= -k8s.io/apiextensions-apiserver v0.27.7/go.mod h1:x0p+b5a955lfPz9gaDeBy43obM12s+N9dNHK6+dUL+g= -k8s.io/apimachinery v0.27.7 h1:Gxgtb7Y/Rsu8ymgmUEaiErkxa6RY4oTd8kNUI6SUR58= -k8s.io/apimachinery v0.27.7/go.mod h1:jBGQgTjkw99ef6q5hv1YurDd3BqKDk9YRxmX0Ozo0i8= -k8s.io/client-go v0.27.7 h1:+Xgh9OOKv6A3qdD4Dnl/0VOI5EvAv+0s/OseDxVVTwQ= -k8s.io/client-go v0.27.7/go.mod h1:dZ2kqcalYp5YZ2EV12XIMc77G6PxHWOJp/kclZr4+5Q= -k8s.io/component-base v0.27.7 h1:kngM58HR9W9Nqpv7e4rpdRyWnKl/ABpUhLAZ+HoliMs= -k8s.io/component-base v0.27.7/go.mod h1:YGjlCVL1oeKvG3HSciyPHFh+LCjIEqsxz4BDR3cfHRs= +k8s.io/api v0.28.8 h1:G0/G7yX1puRAcon/+XPLsKXZ9A5L7Ds6oKbDIe027xw= +k8s.io/api v0.28.8/go.mod h1:rU8f1t9CNUAXlk/1j/wMJ7XnaxkR1g1AlZGQAOOL+sw= +k8s.io/apiextensions-apiserver v0.28.8 h1:JucS9tcaMMlfFrJ09cgh1Maeb8X2wlnxcfNpplyGHXs= +k8s.io/apiextensions-apiserver v0.28.8/go.mod h1:IKpLiKmvEYq/ti8sNtB1sM3A3vVV7fILIsvdmZswhoQ= +k8s.io/apimachinery v0.28.8 h1:hi/nrxHwk4QLV+W/SHve1bypTE59HCDorLY1stBIxKQ= +k8s.io/apimachinery v0.28.8/go.mod h1:cBnwIM3fXoRo28SqbV/Ihxf/iviw85KyXOrzxvZQ83U= +k8s.io/client-go v0.28.8 h1:TE59Tjd87WKvS2FPBTfIKLFX0nQJ4SSHsnDo5IHjgOw= +k8s.io/client-go v0.28.8/go.mod h1:uDVQ/rPzWpWIy40c6lZ4mUwaEvRWGnpoqSO4FM65P3o= +k8s.io/component-base v0.28.8 h1:N/c5L6Ty5rcrFyhsMYsqRFUOVGrqGQsLfjB0yj6npqM= +k8s.io/component-base v0.28.8/go.mod h1:9PjQ4nM1Hth6WGe/O+wgLF32eSwf4oPOoN5elmFznJM= k8s.io/klog/v2 v2.120.1 h1:QXU6cPEOIslTGvZaXvFWiP9VKyeet3sawzTOvdXb4Vw= k8s.io/klog/v2 v2.120.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= -k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f h1:2kWPakN3i/k81b0gvD5C5FJ2kxm1WrQFanWchyKuqGg= -k8s.io/kube-openapi v0.0.0-20230501164219-8b0f38b5fd1f/go.mod h1:byini6yhqGC14c3ebc/QwanvYwhuMWF6yz2F8uwW8eg= -k8s.io/kubectl v0.27.7 h1:HTEDa4s/oWjB3t5ysdW1yKlcNl9bzigcqWBq0LIIe3k= -k8s.io/kubectl v0.27.7/go.mod h1:Xb1Ubc8uN1i2RvSN1HCgSHTtzgX0woihMk/gW7XbjJU= +k8s.io/kube-openapi v0.0.0-20230717233707-2695361300d9 h1:LyMgNKD2P8Wn1iAwQU5OhxCKlKJy0sHc+PcDwFB24dQ= +k8s.io/kube-openapi v0.0.0-20230717233707-2695361300d9/go.mod h1:wZK2AVp1uHCp4VamDVgBP2COHZjqD1T68Rf0CM3YjSM= +k8s.io/kubectl v0.28.8 h1:bukHhQp4f7QYBFjS3iZTHKecrRpfZsR5lCCKFpbiUQw= +k8s.io/kubectl v0.28.8/go.mod h1:X3u3VYbeWR1JirXkvtvq6b0kJ002M2ZQSk42M0ayKT8= k8s.io/utils v0.0.0-20230505201702-9f6742963106 h1:EObNQ3TW2D+WptiYXlApGNLVy0zm/JIBVY9i+M4wpAU= k8s.io/utils v0.0.0-20230505201702-9f6742963106/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= -knative.dev/eventing v0.39.3 h1:I3/56fQ3t0t1cAG/6j4f0D+FNo+9avn1Ij2N9jXKSXM= -knative.dev/eventing v0.39.3/go.mod h1:MlEiEcHALqZnu0OFMuWdJfjBzM7HlSJfk8pQbTcIy4o= -knative.dev/pkg v0.0.0-20231023151236-29775d7c9e5c h1:xyPoEToTWeBdn6tinhLxXfnhJhTNQt5WzHiTNiFphRw= -knative.dev/pkg v0.0.0-20231023151236-29775d7c9e5c/go.mod h1:HHRXEd7ZlFpthgE+rwAZ6MUVnuJOAeolnaFSthXloUQ= +knative.dev/eventing v0.40.3 h1:Fjc5QqHRSuW6sLQ848bZvVAuurQAUbgnLMnwcn44Cc0= +knative.dev/eventing v0.40.3/go.mod h1:+yUUIyvX9fn9bCSH3012kc8rG7YBbjvvxwy1Kr53dRc= +knative.dev/pkg v0.0.0-20240116073220-b488e7be5902 h1:H6+JJN23fhwYWCHY1339sY6uhIyoUwDy1a8dN233fdk= +knative.dev/pkg v0.0.0-20240116073220-b488e7be5902/go.mod h1:NYk8mMYoLkO7CQWnNkti4YGGnvLxN6MIDbUvtgeo0C0= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= -sigs.k8s.io/controller-runtime v0.15.2 h1:9V7b7SDQSJ08IIsJ6CY1CE85Okhp87dyTMNDG0FS7f4= -sigs.k8s.io/controller-runtime v0.15.2/go.mod h1:7ngYvp1MLT+9GeZ+6lH3LOlcHkp/+tzA/fmHa4iq9kk= +sigs.k8s.io/controller-runtime v0.16.5 h1:yr1cEJbX08xsTW6XEIzT13KHHmIyX8Umvme2cULvFZw= +sigs.k8s.io/controller-runtime v0.16.5/go.mod h1:j7bialYoSn142nv9sCOJmQgDXQXxnroFU4VnX/brVJ0= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= sigs.k8s.io/structured-merge-diff/v4 v4.2.3 h1:PRbqxJClWWYMNV1dhaG4NsibJbArud9kFxnAMREiWFE= sigs.k8s.io/structured-merge-diff/v4 v4.2.3/go.mod h1:qjx8mGObPmV2aSZepjQjbmb2ihdVs8cGKBraizNC69E= -sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo= -sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8= +sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= +sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= diff --git a/helm/yaks/crds/crd-instance.yaml b/helm/yaks/crds/crd-instance.yaml index f08a7bd5..674aa37d 100644 --- a/helm/yaks/crds/crd-instance.yaml +++ b/helm/yaks/crds/crd-instance.yaml @@ -20,8 +20,7 @@ metadata: labels: app: yaks annotations: - controller-gen.kubebuilder.io/version: v0.6.1 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.15.0 name: instances.yaks.citrusframework.org spec: group: yaks.citrusframework.org @@ -54,14 +53,19 @@ spec: description: Instance is the Schema for the yaks instance. properties: apiVersion: - 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' + 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 kind: - 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' + 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 metadata: type: object diff --git a/helm/yaks/crds/crd-test.yaml b/helm/yaks/crds/crd-test.yaml index f96a1822..6c7d2915 100644 --- a/helm/yaks/crds/crd-test.yaml +++ b/helm/yaks/crds/crd-test.yaml @@ -20,8 +20,7 @@ metadata: labels: app: yaks annotations: - controller-gen.kubebuilder.io/version: v0.6.1 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.15.0 name: tests.yaks.citrusframework.org spec: group: yaks.citrusframework.org @@ -66,14 +65,19 @@ spec: description: Test is the Schema for the tests API. properties: apiVersion: - 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' + 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 kind: - 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' + 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 metadata: type: object @@ -120,8 +124,10 @@ spec: verbose: type: boolean type: object - secret: - type: string + secrets: + items: + type: string + type: array selenium: description: SeleniumSpec --. properties: diff --git a/java/docs/configuration.adoc b/java/docs/configuration.adoc index c8d5969b..b2977bca 100644 --- a/java/docs/configuration.adoc +++ b/java/docs/configuration.adoc @@ -331,35 +331,37 @@ We can create a secret from that file and label it so that it will be picked up kubectl create secret generic my-secret --from-file=mysecret.properties ---- -Once the secret is created you can bind it to tests by their name. Given the test `my-test.feature` you can bind the secret to the test -by adding a label as follows: +Once the secret is created you can bind it to a test via labels on the secret. +Given the test named `my-test.feature` you can bind the secret to the test by adding a label as follows: +.Bind secret to a test via labels [source,shell script] ---- # Bind secret to the "my-test" test case kubectl label secret my-secret yaks.citrusframework.org/test=my-test ---- -For multiple secrets and variants of secrets on different environments (e.g. dev, test, staging) you can add a secret id and label that one -explicitly in addition to the test name. +When running a test the YAKS operator searches for all secrets labelled with the test name to automatically mount the secret to the test pod container. +All secret volumes get mounted to the test pod in `/etc/yaks/secrets` folder. +You can access this folder in the test in order to load the secrets and their content. -[source,shell script] ----- -# Bind secret to the named configuration "staging" of the "my-test" test case -kubectl label secret my-secret yaks.citrusframework.org/test=my-test yaks.citrusframework.org/test.configuration=staging ----- - -With that in place you just need to set the secret id in your `yaks-config.yaml` for that test. +Instead of using the label based binding you can also specify a list of secret names on the test runtime config. +Each secret gets mounted to the test pod container. +With that in place you just need to set the secret name in your `yaks-config.yaml` for that test. .yaks-config.yaml [source,yaml] ---- config: runtime: - secret: staging + secrets: + - my-secret ---- -You can now write a test and use the secret properties as normal test variables: +This assumes that there is a secret named `my-secret` available in the test namespace. +You can now write a test and load the content of the secret (e.g. files). +Also, property files in the secret get automatically loaded as test variables, +so you can reference the secret properties with the normal test variable syntax: .my-test.feature [source,gherkin] diff --git a/java/runtime/yaks-runtime-core/src/main/java/org/citrusframework/yaks/config/YaksAutoConfiguration.java b/java/runtime/yaks-runtime-core/src/main/java/org/citrusframework/yaks/config/YaksAutoConfiguration.java index e24a9b8a..759aa4c5 100644 --- a/java/runtime/yaks-runtime-core/src/main/java/org/citrusframework/yaks/config/YaksAutoConfiguration.java +++ b/java/runtime/yaks-runtime-core/src/main/java/org/citrusframework/yaks/config/YaksAutoConfiguration.java @@ -22,6 +22,7 @@ import org.citrusframework.functions.DefaultFunctionLibrary; import org.citrusframework.functions.FunctionLibrary; +import org.citrusframework.util.FileUtils; import org.citrusframework.variable.GlobalVariables; import org.citrusframework.variable.GlobalVariablesPropertyLoader; import org.citrusframework.yaks.report.SystemOutTestReporter; @@ -43,16 +44,16 @@ public GlobalVariables globalVariables() { public GlobalVariablesPropertyLoader globalVariablesPropertyLoader() { GlobalVariablesPropertyLoader propertyLoader = new GlobalVariablesPropertyLoader(); - // Load mounted secrets as global variables + // Load mounted property files from secrets as global variables URL mountedSecrets = Thread.currentThread().getContextClassLoader().getResource("secrets"); if (mountedSecrets != null) { File secretsDir = new File(mountedSecrets.getPath()); if (secretsDir.exists() && secretsDir.isDirectory()) { File[] propertyFiles = secretsDir.listFiles(); if (propertyFiles != null) { - Stream.of(propertyFiles).forEach(file -> { - propertyLoader.getPropertyFiles().add("file:" + file.getPath()); - }); + Stream.of(propertyFiles) + .filter(file -> "properties".equals(FileUtils.getFileExtension(file.getName()))) + .forEach(file -> propertyLoader.getPropertyFiles().add("file:" + file.getPath())); } } } diff --git a/pkg/apis/yaks/v1alpha1/test_types.go b/pkg/apis/yaks/v1alpha1/test_types.go index c80d4642..f48e3956 100644 --- a/pkg/apis/yaks/v1alpha1/test_types.go +++ b/pkg/apis/yaks/v1alpha1/test_types.go @@ -51,7 +51,7 @@ type TestSpec struct { Selenium SeleniumSpec `json:"selenium,omitempty"` KubeDock KubeDockSpec `json:"kubedock,omitempty"` Env []string `json:"env,omitempty"` - Secret string `json:"secret,omitempty"` + Secrets []string `json:"secrets,omitempty"` } // RuntimeSpec --. diff --git a/pkg/apis/yaks/v1alpha1/zz_generated.deepcopy.go b/pkg/apis/yaks/v1alpha1/zz_generated.deepcopy.go index d4eea08b..11640677 100644 --- a/pkg/apis/yaks/v1alpha1/zz_generated.deepcopy.go +++ b/pkg/apis/yaks/v1alpha1/zz_generated.deepcopy.go @@ -1,5 +1,4 @@ //go:build !ignore_autogenerated -// +build !ignore_autogenerated // Code generated by controller-gen. DO NOT EDIT. @@ -329,6 +328,11 @@ func (in *TestSpec) DeepCopyInto(out *TestSpec) { *out = make([]string, len(*in)) copy(*out, *in) } + if in.Secrets != nil { + in, out := &in.Secrets, &out.Secrets + *out = make([]string, len(*in)) + copy(*out, *in) + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TestSpec. diff --git a/pkg/client/yaks/clientset/versioned/clientset.go b/pkg/client/yaks/clientset/versioned/clientset.go index 3a292610..fab726e2 100644 --- a/pkg/client/yaks/clientset/versioned/clientset.go +++ b/pkg/client/yaks/clientset/versioned/clientset.go @@ -1,19 +1,18 @@ /* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You 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. -*/ + * Copyright the original author or authors. + * + * 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 client-gen. DO NOT EDIT. @@ -34,8 +33,7 @@ type Interface interface { YaksV1alpha1() yaksv1alpha1.YaksV1alpha1Interface } -// Clientset contains the clients for groups. Each group has exactly one -// version included in a Clientset. +// Clientset contains the clients for groups. type Clientset struct { *discovery.DiscoveryClient yaksV1alpha1 *yaksv1alpha1.YaksV1alpha1Client diff --git a/pkg/client/yaks/clientset/versioned/doc.go b/pkg/client/yaks/clientset/versioned/doc.go deleted file mode 100644 index c82aadf0..00000000 --- a/pkg/client/yaks/clientset/versioned/doc.go +++ /dev/null @@ -1,21 +0,0 @@ -/* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You 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 client-gen. DO NOT EDIT. - -// This package has the automatically generated clientset. -package versioned diff --git a/pkg/client/yaks/clientset/versioned/fake/clientset_generated.go b/pkg/client/yaks/clientset/versioned/fake/clientset_generated.go index 9a6a1294..08fefc48 100644 --- a/pkg/client/yaks/clientset/versioned/fake/clientset_generated.go +++ b/pkg/client/yaks/clientset/versioned/fake/clientset_generated.go @@ -1,19 +1,18 @@ /* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You 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. -*/ + * Copyright the original author or authors. + * + * 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 client-gen. DO NOT EDIT. diff --git a/pkg/client/yaks/clientset/versioned/fake/doc.go b/pkg/client/yaks/clientset/versioned/fake/doc.go index 9c6a5fa0..91d44826 100644 --- a/pkg/client/yaks/clientset/versioned/fake/doc.go +++ b/pkg/client/yaks/clientset/versioned/fake/doc.go @@ -1,19 +1,18 @@ /* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You 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. -*/ + * Copyright the original author or authors. + * + * 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 client-gen. DO NOT EDIT. diff --git a/pkg/client/yaks/clientset/versioned/fake/register.go b/pkg/client/yaks/clientset/versioned/fake/register.go index 7fdd7b80..63d29912 100644 --- a/pkg/client/yaks/clientset/versioned/fake/register.go +++ b/pkg/client/yaks/clientset/versioned/fake/register.go @@ -1,19 +1,18 @@ /* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You 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. -*/ + * Copyright the original author or authors. + * + * 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 client-gen. DO NOT EDIT. diff --git a/pkg/client/yaks/clientset/versioned/scheme/doc.go b/pkg/client/yaks/clientset/versioned/scheme/doc.go index dd7d3b58..bef75742 100644 --- a/pkg/client/yaks/clientset/versioned/scheme/doc.go +++ b/pkg/client/yaks/clientset/versioned/scheme/doc.go @@ -1,19 +1,18 @@ /* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You 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. -*/ + * Copyright the original author or authors. + * + * 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 client-gen. DO NOT EDIT. diff --git a/pkg/client/yaks/clientset/versioned/scheme/register.go b/pkg/client/yaks/clientset/versioned/scheme/register.go index 3b0c2dd1..9a3ca58a 100644 --- a/pkg/client/yaks/clientset/versioned/scheme/register.go +++ b/pkg/client/yaks/clientset/versioned/scheme/register.go @@ -1,19 +1,18 @@ /* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You 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. -*/ + * Copyright the original author or authors. + * + * 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 client-gen. DO NOT EDIT. diff --git a/pkg/client/yaks/clientset/versioned/typed/yaks/v1alpha1/doc.go b/pkg/client/yaks/clientset/versioned/typed/yaks/v1alpha1/doc.go index 9f77d247..b0eef192 100644 --- a/pkg/client/yaks/clientset/versioned/typed/yaks/v1alpha1/doc.go +++ b/pkg/client/yaks/clientset/versioned/typed/yaks/v1alpha1/doc.go @@ -1,19 +1,18 @@ /* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You 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. -*/ + * Copyright the original author or authors. + * + * 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 client-gen. DO NOT EDIT. diff --git a/pkg/client/yaks/clientset/versioned/typed/yaks/v1alpha1/fake/doc.go b/pkg/client/yaks/clientset/versioned/typed/yaks/v1alpha1/fake/doc.go index 5d1c76cc..c746d225 100644 --- a/pkg/client/yaks/clientset/versioned/typed/yaks/v1alpha1/fake/doc.go +++ b/pkg/client/yaks/clientset/versioned/typed/yaks/v1alpha1/fake/doc.go @@ -1,19 +1,18 @@ /* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You 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. -*/ + * Copyright the original author or authors. + * + * 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 client-gen. DO NOT EDIT. diff --git a/pkg/client/yaks/clientset/versioned/typed/yaks/v1alpha1/fake/fake_instance.go b/pkg/client/yaks/clientset/versioned/typed/yaks/v1alpha1/fake/fake_instance.go index 5f38fcbb..6faf72ba 100644 --- a/pkg/client/yaks/clientset/versioned/typed/yaks/v1alpha1/fake/fake_instance.go +++ b/pkg/client/yaks/clientset/versioned/typed/yaks/v1alpha1/fake/fake_instance.go @@ -1,19 +1,18 @@ /* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You 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. -*/ + * Copyright the original author or authors. + * + * 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 client-gen. DO NOT EDIT. @@ -25,7 +24,6 @@ import ( v1alpha1 "github.com/citrusframework/yaks/pkg/apis/yaks/v1alpha1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" labels "k8s.io/apimachinery/pkg/labels" - schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" testing "k8s.io/client-go/testing" @@ -37,9 +35,9 @@ type FakeInstances struct { ns string } -var instancesResource = schema.GroupVersionResource{Group: "yaks.citrusframework.org", Version: "v1alpha1", Resource: "instances"} +var instancesResource = v1alpha1.SchemeGroupVersion.WithResource("instances") -var instancesKind = schema.GroupVersionKind{Group: "yaks.citrusframework.org", Version: "v1alpha1", Kind: "Instance"} +var instancesKind = v1alpha1.SchemeGroupVersion.WithKind("Instance") // Get takes name of the instance, and returns the corresponding instance object, and an error if there is any. func (c *FakeInstances) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.Instance, err error) { diff --git a/pkg/client/yaks/clientset/versioned/typed/yaks/v1alpha1/fake/fake_tests.go b/pkg/client/yaks/clientset/versioned/typed/yaks/v1alpha1/fake/fake_tests.go index 713b2680..fab7be1a 100644 --- a/pkg/client/yaks/clientset/versioned/typed/yaks/v1alpha1/fake/fake_tests.go +++ b/pkg/client/yaks/clientset/versioned/typed/yaks/v1alpha1/fake/fake_tests.go @@ -1,19 +1,18 @@ /* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You 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. -*/ + * Copyright the original author or authors. + * + * 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 client-gen. DO NOT EDIT. @@ -25,7 +24,6 @@ import ( v1alpha1 "github.com/citrusframework/yaks/pkg/apis/yaks/v1alpha1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" labels "k8s.io/apimachinery/pkg/labels" - schema "k8s.io/apimachinery/pkg/runtime/schema" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" testing "k8s.io/client-go/testing" @@ -37,9 +35,9 @@ type FakeTests struct { ns string } -var testsResource = schema.GroupVersionResource{Group: "yaks.citrusframework.org", Version: "v1alpha1", Resource: "tests"} +var testsResource = v1alpha1.SchemeGroupVersion.WithResource("tests") -var testsKind = schema.GroupVersionKind{Group: "yaks.citrusframework.org", Version: "v1alpha1", Kind: "Test"} +var testsKind = v1alpha1.SchemeGroupVersion.WithKind("Test") // Get takes name of the test, and returns the corresponding test object, and an error if there is any. func (c *FakeTests) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.Test, err error) { diff --git a/pkg/client/yaks/clientset/versioned/typed/yaks/v1alpha1/fake/fake_yaks_client.go b/pkg/client/yaks/clientset/versioned/typed/yaks/v1alpha1/fake/fake_yaks_client.go index 5582c1fe..aaffaa9c 100644 --- a/pkg/client/yaks/clientset/versioned/typed/yaks/v1alpha1/fake/fake_yaks_client.go +++ b/pkg/client/yaks/clientset/versioned/typed/yaks/v1alpha1/fake/fake_yaks_client.go @@ -1,19 +1,18 @@ /* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You 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. -*/ + * Copyright the original author or authors. + * + * 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 client-gen. DO NOT EDIT. diff --git a/pkg/client/yaks/clientset/versioned/typed/yaks/v1alpha1/generated_expansion.go b/pkg/client/yaks/clientset/versioned/typed/yaks/v1alpha1/generated_expansion.go index 63c995c6..2d573047 100644 --- a/pkg/client/yaks/clientset/versioned/typed/yaks/v1alpha1/generated_expansion.go +++ b/pkg/client/yaks/clientset/versioned/typed/yaks/v1alpha1/generated_expansion.go @@ -1,19 +1,18 @@ /* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You 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. -*/ + * Copyright the original author or authors. + * + * 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 client-gen. DO NOT EDIT. diff --git a/pkg/client/yaks/clientset/versioned/typed/yaks/v1alpha1/instance.go b/pkg/client/yaks/clientset/versioned/typed/yaks/v1alpha1/instance.go index e00f6236..2754f921 100644 --- a/pkg/client/yaks/clientset/versioned/typed/yaks/v1alpha1/instance.go +++ b/pkg/client/yaks/clientset/versioned/typed/yaks/v1alpha1/instance.go @@ -1,19 +1,18 @@ /* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You 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. -*/ + * Copyright the original author or authors. + * + * 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 client-gen. DO NOT EDIT. diff --git a/pkg/client/yaks/clientset/versioned/typed/yaks/v1alpha1/test.go b/pkg/client/yaks/clientset/versioned/typed/yaks/v1alpha1/test.go index 6e03c42e..5df5207c 100644 --- a/pkg/client/yaks/clientset/versioned/typed/yaks/v1alpha1/test.go +++ b/pkg/client/yaks/clientset/versioned/typed/yaks/v1alpha1/test.go @@ -1,19 +1,18 @@ /* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You 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. -*/ + * Copyright the original author or authors. + * + * 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 client-gen. DO NOT EDIT. diff --git a/pkg/client/yaks/clientset/versioned/typed/yaks/v1alpha1/yaks_client.go b/pkg/client/yaks/clientset/versioned/typed/yaks/v1alpha1/yaks_client.go index 2ded791e..6f02675f 100644 --- a/pkg/client/yaks/clientset/versioned/typed/yaks/v1alpha1/yaks_client.go +++ b/pkg/client/yaks/clientset/versioned/typed/yaks/v1alpha1/yaks_client.go @@ -1,19 +1,18 @@ /* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You 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. -*/ + * Copyright the original author or authors. + * + * 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 client-gen. DO NOT EDIT. diff --git a/pkg/client/yaks/informers/externalversions/factory.go b/pkg/client/yaks/informers/externalversions/factory.go index 5b58712a..00ca733d 100644 --- a/pkg/client/yaks/informers/externalversions/factory.go +++ b/pkg/client/yaks/informers/externalversions/factory.go @@ -1,19 +1,18 @@ /* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You 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. -*/ + * Copyright the original author or authors. + * + * 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 informer-gen. DO NOT EDIT. @@ -43,11 +42,17 @@ type sharedInformerFactory struct { lock sync.Mutex defaultResync time.Duration customResync map[reflect.Type]time.Duration + transform cache.TransformFunc informers map[reflect.Type]cache.SharedIndexInformer // startedInformers is used for tracking which informers have been started. // This allows Start() to be called multiple times safely. startedInformers map[reflect.Type]bool + // wg tracks how many goroutines were started. + wg sync.WaitGroup + // shuttingDown is true when Shutdown has been called. It may still be running + // because it needs to wait for goroutines. + shuttingDown bool } // WithCustomResyncConfig sets a custom resync period for the specified informer types. @@ -76,6 +81,14 @@ func WithNamespace(namespace string) SharedInformerOption { } } +// WithTransform sets a transform on all informers. +func WithTransform(transform cache.TransformFunc) SharedInformerOption { + return func(factory *sharedInformerFactory) *sharedInformerFactory { + factory.transform = transform + return factory + } +} + // NewSharedInformerFactory constructs a new instance of sharedInformerFactory for all namespaces. func NewSharedInformerFactory(client versioned.Interface, defaultResync time.Duration) SharedInformerFactory { return NewSharedInformerFactoryWithOptions(client, defaultResync) @@ -108,20 +121,39 @@ func NewSharedInformerFactoryWithOptions(client versioned.Interface, defaultResy return factory } -// Start initializes all requested informers. func (f *sharedInformerFactory) Start(stopCh <-chan struct{}) { f.lock.Lock() defer f.lock.Unlock() + if f.shuttingDown { + return + } + for informerType, informer := range f.informers { if !f.startedInformers[informerType] { - go informer.Run(stopCh) + f.wg.Add(1) + // We need a new variable in each loop iteration, + // otherwise the goroutine would use the loop variable + // and that keeps changing. + informer := informer + go func() { + defer f.wg.Done() + informer.Run(stopCh) + }() f.startedInformers[informerType] = true } } } -// WaitForCacheSync waits for all started informers' cache were synced. +func (f *sharedInformerFactory) Shutdown() { + f.lock.Lock() + f.shuttingDown = true + f.lock.Unlock() + + // Will return immediately if there is nothing to wait for. + f.wg.Wait() +} + func (f *sharedInformerFactory) WaitForCacheSync(stopCh <-chan struct{}) map[reflect.Type]bool { informers := func() map[reflect.Type]cache.SharedIndexInformer { f.lock.Lock() @@ -143,7 +175,7 @@ func (f *sharedInformerFactory) WaitForCacheSync(stopCh <-chan struct{}) map[ref return res } -// InternalInformerFor returns the SharedIndexInformer for obj using an internal +// InformerFor returns the SharedIndexInformer for obj using an internal // client. func (f *sharedInformerFactory) InformerFor(obj runtime.Object, newFunc internalinterfaces.NewInformerFunc) cache.SharedIndexInformer { f.lock.Lock() @@ -161,6 +193,7 @@ func (f *sharedInformerFactory) InformerFor(obj runtime.Object, newFunc internal } informer = newFunc(f.client, resyncPeriod) + informer.SetTransform(f.transform) f.informers[informerType] = informer return informer @@ -168,11 +201,58 @@ func (f *sharedInformerFactory) InformerFor(obj runtime.Object, newFunc internal // SharedInformerFactory provides shared informers for resources in all known // API group versions. +// +// It is typically used like this: +// +// ctx, cancel := context.Background() +// defer cancel() +// factory := NewSharedInformerFactory(client, resyncPeriod) +// defer factory.WaitForStop() // Returns immediately if nothing was started. +// genericInformer := factory.ForResource(resource) +// typedInformer := factory.SomeAPIGroup().V1().SomeType() +// factory.Start(ctx.Done()) // Start processing these informers. +// synced := factory.WaitForCacheSync(ctx.Done()) +// for v, ok := range synced { +// if !ok { +// fmt.Fprintf(os.Stderr, "caches failed to sync: %v", v) +// return +// } +// } +// +// // Creating informers can also be created after Start, but then +// // Start must be called again: +// anotherGenericInformer := factory.ForResource(resource) +// factory.Start(ctx.Done()) type SharedInformerFactory interface { internalinterfaces.SharedInformerFactory - ForResource(resource schema.GroupVersionResource) (GenericInformer, error) + + // Start initializes all requested informers. They are handled in goroutines + // which run until the stop channel gets closed. + Start(stopCh <-chan struct{}) + + // Shutdown marks a factory as shutting down. At that point no new + // informers can be started anymore and Start will return without + // doing anything. + // + // In addition, Shutdown blocks until all goroutines have terminated. For that + // to happen, the close channel(s) that they were started with must be closed, + // either before Shutdown gets called or while it is waiting. + // + // Shutdown may be called multiple times, even concurrently. All such calls will + // block until all goroutines have terminated. + Shutdown() + + // WaitForCacheSync blocks until all started informers' caches were synced + // or the stop channel gets closed. WaitForCacheSync(stopCh <-chan struct{}) map[reflect.Type]bool + // ForResource gives generic access to a shared informer of the matching type. + ForResource(resource schema.GroupVersionResource) (GenericInformer, error) + + // InformerFor returns the SharedIndexInformer for obj using an internal + // client. + InformerFor(obj runtime.Object, newFunc internalinterfaces.NewInformerFunc) cache.SharedIndexInformer + Yaks() yaks.Interface } diff --git a/pkg/client/yaks/informers/externalversions/generic.go b/pkg/client/yaks/informers/externalversions/generic.go index 83af3c50..9fe66c5f 100644 --- a/pkg/client/yaks/informers/externalversions/generic.go +++ b/pkg/client/yaks/informers/externalversions/generic.go @@ -1,19 +1,18 @@ /* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You 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. -*/ + * Copyright the original author or authors. + * + * 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 informer-gen. DO NOT EDIT. diff --git a/pkg/client/yaks/informers/externalversions/internalinterfaces/factory_interfaces.go b/pkg/client/yaks/informers/externalversions/internalinterfaces/factory_interfaces.go index 9d03bc13..fb0403a2 100644 --- a/pkg/client/yaks/informers/externalversions/internalinterfaces/factory_interfaces.go +++ b/pkg/client/yaks/informers/externalversions/internalinterfaces/factory_interfaces.go @@ -1,19 +1,18 @@ /* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You 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. -*/ + * Copyright the original author or authors. + * + * 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 informer-gen. DO NOT EDIT. diff --git a/pkg/client/yaks/informers/externalversions/yaks/interface.go b/pkg/client/yaks/informers/externalversions/yaks/interface.go index 8348204a..d2f6300f 100644 --- a/pkg/client/yaks/informers/externalversions/yaks/interface.go +++ b/pkg/client/yaks/informers/externalversions/yaks/interface.go @@ -1,19 +1,18 @@ /* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You 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. -*/ + * Copyright the original author or authors. + * + * 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 informer-gen. DO NOT EDIT. diff --git a/pkg/client/yaks/informers/externalversions/yaks/v1alpha1/instance.go b/pkg/client/yaks/informers/externalversions/yaks/v1alpha1/instance.go index ee8c27a3..f0e0caaf 100644 --- a/pkg/client/yaks/informers/externalversions/yaks/v1alpha1/instance.go +++ b/pkg/client/yaks/informers/externalversions/yaks/v1alpha1/instance.go @@ -1,19 +1,18 @@ /* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You 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. -*/ + * Copyright the original author or authors. + * + * 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 informer-gen. DO NOT EDIT. diff --git a/pkg/client/yaks/informers/externalversions/yaks/v1alpha1/interface.go b/pkg/client/yaks/informers/externalversions/yaks/v1alpha1/interface.go index f4e0d1ee..cd820c87 100644 --- a/pkg/client/yaks/informers/externalversions/yaks/v1alpha1/interface.go +++ b/pkg/client/yaks/informers/externalversions/yaks/v1alpha1/interface.go @@ -1,19 +1,18 @@ /* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You 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. -*/ + * Copyright the original author or authors. + * + * 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 informer-gen. DO NOT EDIT. diff --git a/pkg/client/yaks/informers/externalversions/yaks/v1alpha1/test.go b/pkg/client/yaks/informers/externalversions/yaks/v1alpha1/test.go index c840bbf6..8e84cfd6 100644 --- a/pkg/client/yaks/informers/externalversions/yaks/v1alpha1/test.go +++ b/pkg/client/yaks/informers/externalversions/yaks/v1alpha1/test.go @@ -1,19 +1,18 @@ /* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You 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. -*/ + * Copyright the original author or authors. + * + * 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 informer-gen. DO NOT EDIT. diff --git a/pkg/client/yaks/listers/yaks/v1alpha1/expansion_generated.go b/pkg/client/yaks/listers/yaks/v1alpha1/expansion_generated.go index 56b82fbd..cd181619 100644 --- a/pkg/client/yaks/listers/yaks/v1alpha1/expansion_generated.go +++ b/pkg/client/yaks/listers/yaks/v1alpha1/expansion_generated.go @@ -1,19 +1,18 @@ /* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You 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. -*/ + * Copyright the original author or authors. + * + * 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 lister-gen. DO NOT EDIT. diff --git a/pkg/client/yaks/listers/yaks/v1alpha1/instance.go b/pkg/client/yaks/listers/yaks/v1alpha1/instance.go index b38e37a6..01aef81b 100644 --- a/pkg/client/yaks/listers/yaks/v1alpha1/instance.go +++ b/pkg/client/yaks/listers/yaks/v1alpha1/instance.go @@ -1,19 +1,18 @@ /* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You 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. -*/ + * Copyright the original author or authors. + * + * 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 lister-gen. DO NOT EDIT. diff --git a/pkg/client/yaks/listers/yaks/v1alpha1/test.go b/pkg/client/yaks/listers/yaks/v1alpha1/test.go index c72fe849..447876a8 100644 --- a/pkg/client/yaks/listers/yaks/v1alpha1/test.go +++ b/pkg/client/yaks/listers/yaks/v1alpha1/test.go @@ -1,19 +1,18 @@ /* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You 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. -*/ + * Copyright the original author or authors. + * + * 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 lister-gen. DO NOT EDIT. diff --git a/pkg/cmd/config/config.go b/pkg/cmd/config/config.go index 7b95398f..a981e7af 100644 --- a/pkg/cmd/config/config.go +++ b/pkg/cmd/config/config.go @@ -65,7 +65,7 @@ type RuntimeConfig struct { Resources []string `yaml:"resources"` Settings SettingsConfig `yaml:"settings"` Env []EnvConfig `yaml:"env"` - Secret string `yaml:"secret"` + Secrets []string `yaml:"secret"` ClusterType string `yaml:"clusterType"` } diff --git a/pkg/cmd/operator/operator.go b/pkg/cmd/operator/operator.go index c6fd8cca..e7d84636 100644 --- a/pkg/cmd/operator/operator.go +++ b/pkg/cmd/operator/operator.go @@ -162,23 +162,39 @@ func Run(leaderElection bool, leaderElectionID string) { hasTestLabel, err := labels.NewRequirement(v1alpha1.TestLabel, selection.Exists, []string{}) exitOnError(err, "cannot create test label selector") - selector := labels.NewSelector().Add(*hasTestLabel) + labelsSelector := labels.NewSelector().Add(*hasTestLabel) + + selector := cache.ByObject{ + Label: labelsSelector, + } + + if !envvar.IsCurrentOperatorGlobal() { + selector = cache.ByObject{ + Label: labelsSelector, + Namespaces: getNamespacesSelector(operatorNamespace, watchNamespace), + } + } + + cacheOptions := cache.Options{ + ByObject: map[k8sclient.Object]cache.ByObject{ + &corev1.Pod{}: selector, + &batchv1.Job{}: selector, + }, + } + + if !envvar.IsCurrentOperatorGlobal() { + cacheOptions.DefaultNamespaces = getNamespacesSelector(operatorNamespace, watchNamespace) + } // Create a new Cmd to provide shared dependencies and start components mgr, err := manager.New(c.GetConfig(), manager.Options{ - Namespace: watchNamespace, EventBroadcaster: broadcaster, LeaderElection: leaderElection, LeaderElectionNamespace: operatorNamespace, LeaderElectionID: leaderElectionID, LeaderElectionResourceLock: resourcelock.LeasesResourceLock, LeaderElectionReleaseOnCancel: true, - Cache: cache.Options{ - ByObject: map[k8sclient.Object]cache.ByObject{ - &corev1.Pod{}: {Label: selector}, - &batchv1.Job{}: {Label: selector}, - }, - }, + Cache: cacheOptions, }) exitOnError(err, "") @@ -216,6 +232,16 @@ func Run(leaderElection bool, leaderElectionID string) { exitOnError(err, "manager exited non-zero") } +func getNamespacesSelector(operatorNamespace string, watchNamespace string) map[string]cache.Config { + namespacesSelector := map[string]cache.Config{ + operatorNamespace: {}, + } + if operatorNamespace != watchNamespace { + namespacesSelector[watchNamespace] = cache.Config{} + } + return namespacesSelector +} + func installInstance(ctx context.Context, c client.Client, global bool, version string) error { operatorNamespace := envvar.GetOperatorNamespace() if operatorNamespace == "" { diff --git a/pkg/cmd/run.go b/pkg/cmd/run.go index ba0fe0a1..7d920b1f 100644 --- a/pkg/cmd/run.go +++ b/pkg/cmd/run.go @@ -90,6 +90,7 @@ func newCmdRun(rootCmdOptions *RootCmdOptions) (*cobra.Command, *runCmdOptions) cmd.Flags().StringP("settings", "s", "", "Path to runtime settings file. File content is added to the test runtime and can hold runtime dependency information for instance.") cmd.Flags().StringArrayP("env", "e", nil, "Set an environment variable in the integration container. E.g \"-e MY_VAR=my-value\"") cmd.Flags().StringArray("resource", nil, "Add a resource") + cmd.Flags().StringArray("secret", nil, "Bind a secret to the test") cmd.Flags().StringArray("property-file", nil, "Bind a property file to the test. E.g. \"--property-file test.properties\"") cmd.Flags().String("timeout", "", "Time to wait for individual test to complete") @@ -124,6 +125,7 @@ type runCmdOptions struct { Tags []string `mapstructure:"tag"` Features []string `mapstructure:"feature"` Resources []string `mapstructure:"resources"` + Secrets []string `mapstructure:"secrets"` PropertyFiles []string `mapstructure:"property-files"` Glue []string `mapstructure:"glue"` Options string `mapstructure:"options"` @@ -554,8 +556,12 @@ func (o *runCmdOptions) configureTest(ctx context.Context, namespace string, fil o.setupEnvSettings(&test, runConfig) - if runConfig.Config.Runtime.Secret != "" { - test.Spec.Secret = runConfig.Config.Runtime.Secret + if len(o.Secrets) > 0 { + test.Spec.Secrets = append(test.Spec.Secrets, o.Secrets...) + } + + if len(runConfig.Config.Runtime.Secrets) > 0 { + test.Spec.Secrets = append(test.Spec.Secrets, runConfig.Config.Runtime.Secrets...) } if runConfig.Config.Runtime.Selenium.Enabled { diff --git a/pkg/controller/test/start.go b/pkg/controller/test/start.go index 0c6d506c..86673d31 100644 --- a/pkg/controller/test/start.go +++ b/pkg/controller/test/start.go @@ -154,10 +154,6 @@ func (action *startAction) newTestResources(ctx context.Context, test *v1alpha1. Name: "tests", MountPath: "/etc/yaks/tests", }, - { - Name: "secrets", - MountPath: "/etc/yaks/secrets", - }, }, Env: []v1.EnvVar{ { @@ -777,34 +773,44 @@ func (action *startAction) bindSecrets(ctx context.Context, test *v1alpha1.Test, var options = metav1.ListOptions{ LabelSelector: fmt.Sprintf("%s=%s", v1alpha1.TestLabel, test.Name), } - if test.Spec.Secret != "" { - options.LabelSelector = fmt.Sprintf("%s=%s", - v1alpha1.TestConfigurationLabel, test.Spec.Secret) - } secrets, err := action.client.CoreV1().Secrets(test.Namespace).List(ctx, options) if err != nil { return err } - var found bool for _, item := range secrets.Items { - if item.Labels != nil && item.Labels[v1alpha1.TestConfigurationLabel] != test.Spec.Secret { - continue - } - job.Spec.Template.Spec.Volumes = append(job.Spec.Template.Spec.Volumes, v1.Volume{ - Name: "secrets", + Name: "secret-" + item.Name, VolumeSource: v1.VolumeSource{ Secret: &v1.SecretVolumeSource{ SecretName: item.Name, }, }, }) - found = true - break + + job.Spec.Template.Spec.Containers[0].VolumeMounts = append(job.Spec.Template.Spec.Containers[0].VolumeMounts, v1.VolumeMount{ + Name: "secret-" + item.Name, + MountPath: "/etc/yaks/secrets", + }) + } + + for _, secretName := range test.Spec.Secrets { + job.Spec.Template.Spec.Volumes = append(job.Spec.Template.Spec.Volumes, v1.Volume{ + Name: "secret-" + secretName, + VolumeSource: v1.VolumeSource{ + Secret: &v1.SecretVolumeSource{ + SecretName: secretName, + }, + }, + }) + + job.Spec.Template.Spec.Containers[0].VolumeMounts = append(job.Spec.Template.Spec.Containers[0].VolumeMounts, v1.VolumeMount{ + Name: "secret-" + secretName, + MountPath: "/etc/yaks/secrets", + }) } - if !found { + if len(test.Spec.Secrets) == 0 && len(secrets.Items) == 0 { job.Spec.Template.Spec.Volumes = append(job.Spec.Template.Spec.Volumes, v1.Volume{ Name: "secrets", VolumeSource: v1.VolumeSource{ diff --git a/pkg/resources/resources.go b/pkg/resources/resources.go index 1ceb0934..2f9f946f 100644 --- a/pkg/resources/resources.go +++ b/pkg/resources/resources.go @@ -49,16 +49,16 @@ var assets = func() http.FileSystem { "/crd/bases/yaks.citrusframework.org_instances.yaml": &vfsgen۰CompressedFileInfo{ name: "yaks.citrusframework.org_instances.yaml", modTime: time.Time{}, - uncompressedSize: 3332, + uncompressedSize: 3379, - compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xb4\x56\x5d\x8f\xdb\xb6\x12\x7d\xd7\xaf\x18\xac\x1f\x72\x2f\xb0\x96\xb3\xb9\xc0\x45\xe1\x3e\xb9\xce\xb6\x35\x92\x7a\x17\x6b\x27\x41\x1e\x29\x71\x2c\x4d\x96\x22\x59\x7e\xd8\x71\x8b\xfe\xf7\x62\x28\xc9\x6b\xd9\xde\x34\x68\x53\x3d\x49\xc3\xe1\x9c\xc3\x33\x9c\x19\x8d\x60\xfc\xed\x9e\x6c\x04\x73\x63\xf7\x8e\xaa\x3a\x40\xa8\x11\x8c\xa3\x8a\xb4\x50\x20\x62\xa8\x8d\x03\xe3\xba\x37\x9f\x67\xa3\x6c\x04\x6f\xa9\x44\xed\x51\x42\xd4\x12\x5d\xda\x32\xb3\xa2\xac\xb1\x5f\xb9\x86\xf7\xe8\x3c\x19\x0d\xaf\xf2\x97\xf0\x1f\x76\xb8\xea\x96\xae\xfe\xfb\x7d\x36\x82\xbd\x89\xd0\x88\x3d\x68\x13\x20\x7a\x84\x50\x93\x87\x0d\x29\x04\xfc\x5c\xa2\x0d\x40\x1a\x4a\xd3\x58\x45\x42\x97\x08\x3b\x0a\x75\x82\xe9\x82\xe4\xd9\x08\x3e\x76\x21\x4c\x11\x04\x69\x10\x50\x1a\xbb\x07\xb3\x39\xf6\x03\x11\x12\x61\x00\xa8\x43\xb0\xd3\xc9\x64\xb7\xdb\xe5\x22\x71\xcd\x8d\xab\x26\xaa\xf5\xf3\x93\xb7\x8b\xf9\xed\x72\x75\x3b\x7e\x95\xbf\x4c\x3b\xde\x69\x85\xde\x83\xc3\x5f\x23\x39\x94\x50\xec\x41\x58\xab\xa8\x14\x85\x42\x50\x62\x97\x44\xa9\x1c\xa2\x84\x60\x98\xee\xce\x51\x20\x5d\x5d\x83\x37\x9b\xb0\x13\x0e\xb3\x11\x48\xf2\xc1\x51\x11\xc3\x40\xab\x9e\x1c\xf9\x81\x83\xd1\x20\x34\x5c\xcd\x56\xb0\x58\x5d\xc1\x0f\xb3\xd5\x62\x75\x9d\x8d\xe0\xc3\x62\xfd\xf3\xdd\xbb\x35\x7c\x98\x3d\x3c\xcc\x96\xeb\xc5\xed\x0a\xee\x1e\x60\x7e\xb7\x7c\xbd\x58\x2f\xee\x96\x2b\xb8\xfb\x11\x66\xcb\x8f\xf0\x66\xb1\x7c\x7d\x0d\x48\xa1\x46\x07\xf8\xd9\x3a\xe6\x6f\x1c\x10\xab\x88\x92\x25\x5b\x21\x0e\x08\x6c\x4c\x4b\xc8\x5b\x2c\x69\x43\x25\x28\xa1\xab\x28\x2a\x84\xca\x6c\xd1\x69\xd2\x15\x58\x74\x0d\x79\xce\xa5\x07\xa1\x65\x36\x02\x45\x0d\x05\x11\x92\xe5\xec\x50\x0c\xf3\x2d\xaf\x66\x26\x2c\x75\x77\x69\x0a\xc2\x12\x7e\x0e\xa8\x13\x9b\xfc\xf1\x3b\x9f\x93\x99\x6c\x6f\xb2\x47\xd2\x72\x0a\xf3\xe8\x83\x69\x1e\xd0\x9b\xe8\x4a\x7c\x8d\x1b\xd2\xc4\x2c\xb3\x06\x83\x90\x22\x88\x69\x06\xa0\x44\x81\xca\xf3\x1b\x70\x42\xa7\xb0\x17\x8f\x3e\x03\x10\x5a\x9b\xee\x50\xed\x62\x69\x74\x70\x46\x29\x74\xe3\x0a\x75\xfe\x18\x0b\x2c\x22\x29\x89\x2e\x81\xf6\x94\xb6\x2f\xf3\xff\xe7\x37\x19\x40\xe9\x30\x6d\x5f\x53\x83\x3e\x88\xc6\x4e\x41\x47\xa5\x32\x00\x2d\x1a\x9c\x02\x69\x1f\xf8\x2e\xfb\x9c\x11\xf3\x92\x82\x8b\x7e\xe3\x44\x83\x3b\xe3\x1e\xf9\x32\x66\x9c\x06\x06\xaf\x9c\x89\x1d\xb3\x8b\x7e\x6d\xc8\x9e\xa7\x08\x58\x19\x47\xfd\xf7\xb8\x3f\x11\xbf\x06\xf4\x7c\x27\xd3\x57\x2b\xd2\xa2\xa3\x91\x4c\x8a\x7c\x78\x33\x30\xbf\x25\x1f\xd2\x92\x55\xd1\x09\x75\x44\x3b\x59\x3d\xe9\x2a\x2a\xe1\x9e\xec\x19\x80\x2f\x8d\xc5\x29\x2c\x99\x93\x15\x25\xca\x0c\xa0\xd3\x27\x71\x1a\x83\x90\x32\x65\x42\xa8\x7b\x47\x3a\xa0\x9b\x1b\x15\x1b\x7d\x60\x2c\xd1\x97\x8e\x6c\x48\x8a\xae\x5d\x44\xa0\x0d\x7c\x9c\xbd\x59\x1d\x60\xb8\x56\x2a\x65\x0a\xa1\xd2\x16\x80\x4f\xde\xe8\x7b\x11\xea\x29\xe4\x2c\x5b\x6e\x2c\x3a\x11\x8c\xcb\x07\x5e\xad\xf4\x3f\x1d\x9b\xc2\x9e\xc9\x16\xc6\x28\x14\xfa\x22\x7e\x8d\x2d\x76\x1f\x12\xac\x91\x29\xd2\x5f\x41\x5b\x23\x07\xb8\xf7\x87\xef\x16\x94\x4b\xbd\x4b\xc6\x73\x98\x9d\x6e\x17\x90\x82\x08\xd1\xe7\xc3\xf5\x16\xe6\xfd\xc0\x76\x06\xd5\x3a\x6d\x6f\x84\xb2\xb5\xb8\x69\xd3\x58\xd6\xd8\x88\x69\xb7\xc3\x58\xd4\xb3\xfb\xc5\xfb\xff\xad\x06\x66\x18\x52\x5c\x1c\x65\x82\xeb\xbd\x75\x3e\xb4\x10\xbe\x74\x87\x6c\xe5\x87\x10\xd6\xb1\x3a\xe1\x70\x3b\xdb\xe7\xa8\xa6\x8f\xac\x27\x80\x2f\x98\x53\x37\x45\x24\x17\x33\xb6\xc0\x9d\x04\x28\xbb\x63\xb4\x2d\x9f\xb8\x57\x73\xcf\x43\xdd\x96\xf1\x20\x30\xb0\x93\xd0\x60\x8a\x4f\x58\x86\x1c\x56\xe8\x38\x0c\xf8\xda\x44\x25\xb9\xd6\xb7\xe8\x02\x38\x2c\x4d\xa5\xe9\xb7\x43\x6c\xcf\xbd\x9d\x41\x95\xe0\x52\x3a\x89\x99\xae\x32\x8f\xc9\xad\x50\x11\xaf\xb9\x3d\xa6\x89\xe4\x90\x51\x20\xea\xa3\x78\xc9\xc5\xe7\xf0\x8b\x71\x08\xa4\x37\x66\x9a\x26\x92\x9f\x4e\x26\x15\x85\xbe\x97\x95\xa6\x69\xa2\xa6\xb0\x9f\xa4\xf6\xc3\x83\xc1\x38\x3f\x91\xb8\x45\x35\xf1\x54\x8d\x85\x2b\x6b\x0a\x58\x86\xe8\x70\x22\x2c\x8d\x13\x75\x9d\xfa\x56\xde\xc8\x91\xeb\xba\x9f\x7f\x31\xe0\x7a\x76\x29\xda\x27\xb5\x84\x2f\x64\x80\x7b\x03\xe7\x5b\x74\x5b\xdb\x53\x3c\x09\xcd\x26\x56\xe7\xe1\x76\xb5\x86\x1e\x3a\x25\xe3\x54\xfd\xa4\xfb\xd3\x46\xff\x94\x02\x16\x8c\xf4\x26\x4d\x11\xfe\x07\x70\xa6\x49\x31\x51\x4b\x6b\x48\xb7\x3f\x24\xa5\x22\xd4\xa7\xf2\xfb\x58\x34\x14\xda\x19\x8d\x3e\x70\xae\x72\x98\xa7\x46\x0e\x05\x42\xb4\x52\x04\x94\x39\x2c\x34\xcc\x45\x83\x6a\x2e\x3c\xfe\xeb\x09\x60\xa5\xfd\x98\x85\xfd\xba\x14\x1c\xcf\xa6\x53\xe7\x56\xb5\xa3\x85\x7e\x40\x3c\x93\xaf\xbe\x44\x57\x16\x4b\xae\xbc\x2d\xc9\xae\x66\xb8\x7b\x60\xaa\x81\x61\xa1\x0e\x62\x5d\xae\x55\x68\x3b\x44\xea\x70\xa7\xf6\x13\xfc\xbb\xce\x8d\xf1\xc7\xe3\xfc\xcc\xf9\x79\x00\x7e\xda\xc6\x7d\x69\xe5\x52\xd3\x1e\x3e\xba\x9f\x3d\x5f\xda\x7e\xa6\xfd\x81\x97\x91\x7f\x63\x5f\xff\x6b\x78\xbe\x75\x3c\x1c\x55\xa7\xf1\xce\xd2\xfa\x7c\xbe\x53\xd3\xff\x9a\x8c\x27\xc7\x41\x9b\x34\x85\xe7\x0a\x93\xff\x34\xf7\xdb\x4b\x8d\xfa\x8b\xe2\x5c\x3c\xcc\x99\xb1\x65\x37\x85\xe0\x62\x4b\xc5\x07\xe3\x44\x85\xc7\x96\x58\x1c\xfa\x59\x8f\xdf\x49\x02\xbf\xff\x91\xfd\x19\x00\x00\xff\xff\x78\x77\x5f\x81\x04\x0d\x00\x00"), + compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xbc\x56\x4d\x8f\xdb\x36\x10\xbd\xeb\x57\x0c\xd6\x97\x16\x58\xcb\xbb\x29\x0a\x14\xee\xc9\x75\xb6\xad\x91\x74\x77\xb1\xda\x24\xc8\x91\x92\xc6\xd2\x64\x29\x92\xe5\x87\x1d\xf7\xe3\xbf\x17\x43\x4a\x8e\x65\x3b\x69\xda\x06\xd5\x49\x1a\x0e\xe7\x3d\xbe\xe1\xcc\x68\x02\xd3\x2f\xf7\x64\x13\x58\x6a\xb3\xb3\xd4\xb4\x1e\x7c\x8b\xa0\x2d\x35\xa4\x84\x04\x11\x7c\xab\x2d\x68\xdb\xbf\xb9\x3c\x9b\x64\x13\x78\x49\x15\x2a\x87\x35\x04\x55\xa3\x8d\x5b\x16\x46\x54\x2d\x0e\x2b\x97\xf0\x1a\xad\x23\xad\xe0\x59\x7e\x05\x5f\xb1\xc3\x45\xbf\x74\xf1\xf5\xf7\xd9\x04\x76\x3a\x40\x27\x76\xa0\xb4\x87\xe0\x10\x7c\x4b\x0e\xd6\x24\x11\xf0\x7d\x85\xc6\x03\x29\xa8\x74\x67\x24\x09\x55\x21\x6c\xc9\xb7\x11\xa6\x0f\x92\x67\x13\x78\xdb\x87\xd0\xa5\x17\xa4\x40\x40\xa5\xcd\x0e\xf4\xfa\xd0\x0f\x84\x8f\x84\x01\xa0\xf5\xde\xcc\x67\xb3\xed\x76\x9b\x8b\xc8\x35\xd7\xb6\x99\xc9\xe4\xe7\x66\x2f\x57\xcb\x9b\xdb\xe2\x66\xfa\x2c\xbf\x8a\x3b\x5e\x29\x89\xce\x81\xc5\x5f\x03\x59\xac\xa1\xdc\x81\x30\x46\x52\x25\x4a\x89\x20\xc5\x36\x8a\xd2\x58\xc4\x1a\xbc\x66\xba\x5b\x4b\x9e\x54\x73\x09\x4e\xaf\xfd\x56\x58\xcc\x26\x50\x93\xf3\x96\xca\xe0\x47\x5a\x0d\xe4\xc8\x8d\x1c\xb4\x02\xa1\xe0\x62\x51\xc0\xaa\xb8\x80\x1f\x16\xc5\xaa\xb8\xcc\x26\xf0\x66\xf5\xf8\xf3\xdd\xab\x47\x78\xb3\x78\x78\x58\xdc\x3e\xae\x6e\x0a\xb8\x7b\x80\xe5\xdd\xed\xf3\xd5\xe3\xea\xee\xb6\x80\xbb\x1f\x61\x71\xfb\x16\x5e\xac\x6e\x9f\x5f\x02\x92\x6f\xd1\x02\xbe\x37\x96\xf9\x6b\x0b\xc4\x2a\x62\xcd\x92\x15\x88\x23\x02\x6b\x9d\x08\x39\x83\x15\xad\xa9\x02\x29\x54\x13\x44\x83\xd0\xe8\x0d\x5a\x45\xaa\x01\x83\xb6\x23\xc7\xb9\x74\x20\x54\x9d\x4d\x40\x52\x47\x5e\xf8\x68\x39\x39\x14\xc3\x7c\xc9\xab\x99\x09\x43\xfd\x5d\x9a\x83\x30\x84\xef\x3d\xaa\xc8\x26\x7f\xfa\xce\xe5\xa4\x67\x9b\xeb\xec\x89\x54\x3d\x87\x65\x70\x5e\x77\x0f\xe8\x74\xb0\x15\x3e\xc7\x35\x29\x62\x96\x59\x87\x5e\xd4\xc2\x8b\x79\x06\x20\x45\x89\xd2\xf1\x1b\x70\x42\xe7\xb0\x13\x4f\x2e\x03\x10\x4a\xe9\xfe\x50\x69\xb1\xd2\xca\x5b\x2d\x25\xda\x69\x83\x2a\x7f\x0a\x25\x96\x81\x64\x8d\x36\x82\x0e\x94\x36\x57\xf9\xf5\xb7\xf9\x55\x06\xa0\x44\x87\x73\x20\xe5\x3c\x5f\x59\x97\x73\xe0\xbc\x22\x6f\x83\x5b\x5b\xd1\xe1\x56\xdb\x27\xbe\x73\x19\xab\xcd\x18\x8d\xd5\xa1\x27\x70\xd6\x2f\x85\x1c\xe8\x08\x8f\x8d\xb6\x34\x7c\x4f\x07\xe2\xfc\xea\xd1\xf1\xd5\x8b\x5f\x49\x8b\x55\x4f\x23\x9a\x24\x39\xff\x62\x64\x7e\x49\xce\xc7\x25\x23\x83\x15\xf2\x80\x76\xb4\x3a\x52\x4d\x90\xc2\x7e\xb0\x67\x00\xae\xd2\x06\xe7\x70\xcb\x9c\x8c\xa8\xb0\xce\x00\x7a\x19\x22\xa7\x29\x88\xba\x8e\x82\x0b\x79\x6f\x49\x79\xb4\x4b\x2d\x43\xa7\xf6\x8c\x6b\x74\x95\x25\xe3\xa3\x70\x8f\x36\x20\xd0\x1a\xde\x2e\x5e\x14\x7b\x18\x2e\x89\x46\xea\x52\xc8\xb8\x05\xe0\x9d\xd3\xea\x5e\xf8\x76\x0e\x39\xcb\x96\x6b\x83\x56\x78\x6d\xf3\x91\x57\x92\xfe\xa7\x43\x93\xdf\x31\xd9\x52\x6b\x89\x42\x9d\xc5\x6f\x31\x61\x0f\x21\xc1\xe8\x3a\x46\xfa\x3b\x68\xa3\xeb\x11\xee\xfd\xfe\x3b\x81\x72\x45\xf7\xc9\xf8\x18\x66\xaf\xdb\x19\x24\x2f\x7c\x70\xf9\x78\x3d\xc1\xbc\x1e\xd9\x4e\xa0\x92\xd3\xe6\x5a\x48\xd3\x8a\xeb\x94\xc6\xaa\xc5\x4e\xcc\xfb\x1d\xda\xa0\x5a\xdc\xaf\x5e\x7f\x53\x8c\xcc\x30\xa6\xb8\x3a\xc8\x04\x97\x75\x72\xde\x77\x0a\xbe\x74\xfb\x6c\xe5\xfb\x10\xc6\xb2\x3a\x7e\x7f\x3b\xd3\x73\x50\xba\x07\xd6\x23\xc0\x3f\xa6\xa3\x35\x00\xe6\xd8\x0f\x8f\x9a\x6b\x18\x13\x91\x5e\x12\xac\xfb\x63\xa5\x4e\x4f\xdc\xa2\xb9\xd5\xa1\x4a\xd5\xcb\x66\xa1\x40\x97\xef\xb0\xf2\xf9\x51\xe8\x02\x2d\x87\x01\xd7\xea\x20\x6b\x2e\xf1\x0d\x5a\x0f\x16\x2b\xdd\x28\xfa\x6d\x1f\xdb\x71\x4b\x67\x50\x29\xb8\xb4\x20\x5e\x66\x9e\x87\x1b\x21\x03\x5e\xc6\x3e\x38\x8e\xcc\x83\xc8\x22\x63\x42\x50\x07\xf1\xe2\x06\x77\xcc\xe3\x17\x6d\x11\x48\xad\xf5\x3c\x8e\x25\x37\x9f\xcd\x1a\xf2\x43\x43\xab\x74\xd7\x05\x45\x7e\x37\x8b\x3d\x88\xa7\x83\xb6\x6e\x56\xe3\x06\xe5\xcc\x51\x33\x15\xb6\x6a\xc9\x63\xe5\x83\xc5\x99\x30\x34\x8d\x07\x51\xb1\x79\xe5\x5d\x3d\xb1\x7d\x0b\x74\x23\xd8\x93\x1b\x93\x9e\xd8\x2f\xfe\x41\x7a\xb8\x91\xf0\xe5\x10\x7d\xa8\x74\xc4\x0f\x59\x60\x13\x4b\xf7\x70\x53\x3c\xc2\xc0\x24\x65\x2a\x25\xe5\x83\xeb\x89\x2e\x43\x7e\x58\x4d\x52\xeb\x38\x59\xf8\xbf\xc0\xea\x2e\xc6\x44\x55\x1b\x4d\x2a\xfd\xa4\x54\x92\x50\x79\x70\xa1\xec\xc8\xa7\x49\x8d\xce\x73\xea\x8e\xc3\x2e\x63\x73\x87\x12\x21\x98\x5a\x78\x9e\x85\x63\x87\x95\x82\xa5\xe8\x50\x2e\x85\xc3\xff\x39\x57\x9c\x15\x37\xe5\x24\x7c\x56\xb6\x0e\x47\xd9\xb1\x73\x92\xf7\x60\x61\x18\x34\x1f\x49\xed\x50\xea\x85\xc1\x8a\x2b\x78\x43\x75\x5f\x6b\xdc\x85\x30\x56\xd2\xb8\xe0\x47\xb1\xce\xd7\x3c\xa4\x4e\x13\x3b\xe5\xb1\xfd\x08\xff\xae\x77\x63\xfc\xe9\xf4\x58\xf7\x4f\x01\xf0\x93\x06\xc0\xb9\x95\x73\xcd\x7f\xfc\xa8\x61\x86\x7d\x6a\xfb\x89\xf6\x7b\x5e\xba\xfe\x17\xfb\x86\x3f\xc9\xd3\xad\xd3\xf1\xc8\x3b\x8e\x77\x92\xd6\x8f\xe7\x3b\x0e\x8f\xcf\xc9\x78\x74\x1c\xb5\x57\x5d\x3a\x2e\xbe\xfa\xbf\xe6\x7e\x73\xae\xe1\x7f\x52\x9c\xb3\x87\x39\x31\x26\x76\x73\xf0\x36\x24\x2a\xce\x6b\x2b\x1a\x3c\xb4\x84\x72\xdf\xf9\x06\xfc\x5e\x12\xf8\xfd\xcf\xec\xaf\x00\x00\x00\xff\xff\x5a\x5f\x5f\x7f\x33\x0d\x00\x00"), }, "/crd/bases/yaks.citrusframework.org_tests.yaml": &vfsgen۰CompressedFileInfo{ name: "yaks.citrusframework.org_tests.yaml", modTime: time.Time{}, - uncompressedSize: 6775, + uncompressedSize: 6876, - compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xcc\x58\x4f\x8f\xe3\xba\x0d\xbf\xfb\x53\x10\x9b\xc3\x6b\x81\x89\xb3\xfb\x0a\x14\x45\x7a\x4a\x33\xb3\x68\xb0\xfb\x32\x83\x49\x76\x1f\xde\x51\xb1\x19\x87\x3b\xb2\xe4\x8a\x52\x66\xd3\xa2\xdf\xbd\x90\xe4\x64\xe3\xfc\xb1\x27\x99\x1d\xa0\x3e\x25\x34\xc9\x1f\xf5\x23\x45\x4a\xee\x41\xff\xe7\x3d\x49\x0f\xc6\xba\xda\x18\x2a\x56\x16\xec\x0a\x41\x1b\x2a\x48\x09\x09\xc2\xd9\x95\x36\xa0\x4d\xfd\x8b\xd3\xa4\x97\xf4\xe0\x33\x65\xa8\x18\x73\x70\x2a\x47\x13\x4c\x46\x95\xc8\x56\xb8\x7d\x73\x03\x5f\xd1\x30\x69\x05\xbf\xa6\xef\xe1\x4f\x5e\xe1\x5d\xfd\xea\xdd\x9f\xff\x9e\xf4\x60\xa3\x1d\x94\x62\x03\x4a\x5b\x70\x8c\x60\x57\xc4\xb0\x24\x89\x80\xdf\x33\xac\x2c\x90\x82\x4c\x97\x95\x24\xa1\x32\x84\x67\xb2\xab\x00\x53\x3b\x49\x93\x1e\xfc\x51\xbb\xd0\x0b\x2b\x48\x81\x80\x4c\x57\x1b\xd0\xcb\x7d\x3d\x10\x36\x04\x0c\x00\x2b\x6b\xab\xe1\x60\xf0\xfc\xfc\x9c\x8a\x10\x6b\xaa\x4d\x31\x90\x51\x8f\x07\x9f\x27\xe3\xbb\xe9\xec\xae\xff\x6b\xfa\x3e\x58\x7c\x51\x12\x99\xc1\xe0\xbf\x1c\x19\xcc\x61\xb1\x01\x51\x55\x92\x32\xb1\x90\x08\x52\x3c\x07\x52\x0a\x83\x98\x83\xd5\x3e\xdc\x67\x43\x96\x54\x71\x03\xac\x97\xf6\x59\x18\x4c\x7a\x90\x13\x5b\x43\x0b\x67\x1b\x5c\x6d\x83\x23\x6e\x28\x68\x05\x42\xc1\xbb\xd1\x0c\x26\xb3\x77\xf0\x8f\xd1\x6c\x32\xbb\x49\x7a\xf0\xfb\x64\xfe\xcf\xfb\x2f\x73\xf8\x7d\xf4\xf8\x38\x9a\xce\x27\x77\x33\xb8\x7f\x84\xf1\xfd\xf4\x76\x32\x9f\xdc\x4f\x67\x70\xff\x11\x46\xd3\x3f\xe0\xd3\x64\x7a\x7b\x03\x48\x76\x85\x06\xf0\x7b\x65\x7c\xfc\xda\x00\x79\x16\x31\xf7\x94\xcd\x10\x1b\x01\x2c\x75\x0c\x88\x2b\xcc\x68\x49\x19\x48\xa1\x0a\x27\x0a\x84\x42\xaf\xd1\x28\x52\x05\x54\x68\x4a\x62\x9f\x4b\x06\xa1\xf2\xa4\x07\x92\x4a\xb2\xc2\x06\xc9\xd1\xa2\x3c\xcc\xcf\x2c\xcd\x44\x54\x54\xd7\xd2\x10\x44\x45\xf8\xdd\xa2\x0a\xd1\xa4\x4f\x7f\xe3\x94\xf4\x60\xfd\x21\x79\x22\x95\x0f\x61\xec\xd8\xea\xf2\x11\x59\x3b\x93\xe1\x2d\x2e\x49\x91\x8f\x32\x29\xd1\x8a\x5c\x58\x31\x4c\x00\xa4\x58\xa0\x64\xff\x0b\x7c\x42\x87\xb0\x11\x4f\x9c\x00\x08\xa5\x74\xbd\xa8\xf8\x32\xd3\xca\x1a\x2d\x25\x9a\x7e\x81\x2a\x7d\x72\x0b\x5c\x38\x92\x39\x9a\x00\xba\x0d\x69\xfd\x3e\xfd\x6b\xfa\x21\x01\xc8\x0c\x06\xf3\x39\x95\xc8\x56\x94\xd5\x10\x94\x93\x32\x01\x50\xa2\xc4\x21\x58\x64\xcb\xa9\x47\x4b\x33\xb2\xc6\xf1\xd2\x88\x12\x9f\xb5\x79\xf2\x85\x98\xf8\x14\x78\xe0\xc2\x68\x57\x47\x75\x52\x2f\xba\xdb\xc6\x28\x2c\x16\xda\xd0\xf6\x7f\x7f\xbb\x1a\xff\xd3\x03\x92\x2a\xc2\xbf\x48\xd0\x1c\xd9\x86\xbf\x92\xd8\x7e\xda\x89\x3e\x53\x2d\xae\xa4\x33\x42\xd6\xa1\x06\x09\x93\x2a\x9c\x14\x26\xca\x12\x00\xce\x74\x85\x43\x98\xfa\x18\x2a\x91\x61\x9e\x00\xd4\x5c\x84\x18\xfa\x20\xf2\x3c\xb0\x2e\xe4\x83\x21\x65\xd1\x8c\xb5\x74\xa5\xda\x45\x98\x23\x67\x86\x2a\x1b\xd8\x9b\xaf\x30\x78\x86\x6a\x25\x18\x83\x06\xc0\x37\xd6\xea\x41\xd8\xd5\x10\x52\xb6\xc2\x3a\x4e\xf7\xdf\x46\x36\x1f\xf6\x24\x76\xe3\x43\xf2\xfb\xa8\x5e\xed\x29\x10\x6d\x7d\x3b\x2b\xb5\x53\x36\xf4\x88\xdd\x12\x4f\xe1\x19\x64\x27\x2d\xa7\xec\xca\x52\x98\x4d\x1a\xac\x1b\xf8\xf3\x3d\x49\x17\xfe\x83\x60\xdf\x2b\x2f\x83\xac\x82\x51\x73\xcd\xfb\xa2\x2e\xd0\x8f\x82\xe4\xc5\xa0\xcb\x60\xd4\x00\xfd\xb8\x2f\xea\x02\x9d\x3d\x51\x55\x5d\x8c\xca\xd1\xaa\x01\x3b\x6b\xc8\x3a\x33\xec\x4b\x08\x8d\xd1\x06\x72\xb4\x82\xe4\x79\xf0\xa0\xc5\x0d\xac\xbb\x7d\xd1\x11\x54\xd4\x59\x7f\x10\xb2\x5a\x89\x0f\x71\x57\x64\x2b\x2c\xc5\xb0\xb6\xd0\x15\xaa\xd1\xc3\xe4\xeb\x5f\x66\x0d\x31\x9c\x08\x91\x38\xb4\xca\xa8\xb8\xeb\xbe\x81\x2d\x18\x3d\x4c\xd2\x9d\x69\x65\x74\x85\xc6\xee\x36\x76\x7c\xf6\x5a\xe1\x9e\xf4\x00\xe8\x17\x1f\x4b\x3d\x7c\x73\xdf\x03\x31\x82\xd6\xbb\x14\xf3\x3a\xfc\x38\x29\xc9\x8f\x38\x3f\x2a\x50\xc5\xee\xd7\x70\x0c\x5e\x49\x28\xd0\x8b\x6f\x98\xd9\x14\x66\x68\xbc\x1b\xe0\x95\x76\x32\xf7\x2d\x72\x8d\xc6\x82\xc1\x4c\x17\x8a\xfe\xbd\xf3\xcd\x7e\x24\x7a\x50\x29\xec\xb6\xe7\xfc\x78\x42\x57\xf0\xa7\x8b\xb5\x90\x0e\x6f\xfc\x54\x09\x83\xdc\xa0\x47\x01\xa7\xf6\xfc\x05\x15\x4e\xe1\x37\x6d\x10\x48\x2d\xf5\x30\x0c\x72\x1e\x0e\x06\x05\xd9\xed\x08\xc8\x74\x59\x3a\x45\x76\x33\x08\x5d\xdb\xcf\x53\x6d\x78\x90\xe3\x1a\xe5\x80\xa9\xe8\x0b\x93\xad\xc8\x62\x66\x9d\xc1\x81\xa8\xa8\x1f\x42\x57\xa1\xdd\xa7\x65\xde\x33\xf5\xd0\xe0\x5f\x1a\xb1\x1e\x15\x43\x7c\x42\x37\x6d\xc9\x80\x6f\xad\x3e\xd7\xa2\x36\x8d\xab\xf8\x41\xb4\x17\x79\x76\x1e\xef\x66\x73\xd8\x42\x87\x64\x1c\xb2\x1f\x78\xff\x61\xc8\x3f\x52\xe0\x09\x23\xb5\x0c\xc3\xd7\x1f\x9d\x8c\x2e\x83\x4f\x54\x79\xa5\x49\xc5\x73\x5c\x26\x09\xd5\x21\xfd\xec\x16\x25\xd9\x78\xb4\x09\x95\x67\x75\x0a\xe3\x30\xff\x60\x81\xe0\xaa\x5c\x58\xcc\x53\x98\x28\x18\x8b\x12\xe5\x58\x30\xbe\x79\x02\x3c\xd3\xdc\xf7\xc4\xbe\x2c\x05\xfb\x23\xfd\x50\x39\xb2\xb6\xf7\x62\x3b\x5b\xcf\xe4\xcb\x6f\xcd\x59\x85\x59\x63\xbb\xe4\xc8\xe1\xdc\xe7\xdb\x06\xfa\x6d\x30\x3f\x2c\xe4\xd3\x7b\x14\xe2\xd1\x61\x49\xc5\xa1\xf4\x00\x75\x86\xd6\x17\x02\x07\xe4\x7e\x3f\x3d\xd2\x3e\xef\xbf\xc6\xb0\xa8\xec\xa9\x57\x67\x49\xdb\x3e\xa1\xa5\x5d\x6e\x78\x86\x5d\xff\xa0\x5a\x1f\x3b\x24\x8b\xe5\xc9\xd8\x5f\x80\x22\x8c\x11\x9b\x83\x77\xfe\x08\x96\xeb\xec\xa9\x83\xd8\x4f\x6e\x81\xb7\x3a\x7b\xba\x92\x58\x2a\x45\x71\x0d\x3b\x00\xc6\xa9\x11\x7f\x61\x34\x6d\xd6\xbe\xf9\x15\x68\x2e\x21\x77\xd7\x9c\x2e\xa0\xb8\xc1\xc8\xf6\x48\x7c\x96\x91\x2e\x4e\x3a\xca\xad\x93\x99\xb6\x92\xeb\x34\x6e\x61\xa6\xad\x5a\x8c\x53\x96\x4e\x81\x36\xa9\x89\x5a\x57\xd6\x8a\xd4\x45\x71\x2e\xdd\x67\x53\xf3\x82\x25\xb7\xad\xcb\x3f\x6b\x34\x0b\xcd\xad\x55\xba\xd0\x5a\xa2\x38\x1c\xe7\xad\x6c\x32\x66\x06\x4f\xa4\xb8\x25\x58\x46\x89\x8a\x5c\xd9\xd9\xeb\xa2\xda\x95\x34\x9f\xec\x2e\xf0\xc6\x1c\x5f\xdf\x07\x94\xfe\x3a\x1d\x5f\x93\x9b\xb7\x6b\x21\x71\xff\x77\x65\xa9\xbd\x49\xbc\xdd\x3c\xda\x7e\x75\xf8\xbf\x18\x66\xe7\xce\x10\xe1\xfa\xd0\x75\x8a\x08\x4a\x8d\x73\x84\x5e\xb0\x3f\xb1\x5d\x77\x90\xc8\xa9\x40\xbe\x6c\x47\xc6\xfb\xcd\x45\x26\xe1\x76\xdd\x51\x1b\x3e\xe8\x70\xe7\x3e\x59\x1a\x2d\xce\xeb\xcb\xde\xb1\xfb\x8e\x2d\x7f\x66\x19\xf0\xc6\xbb\x9e\x1d\x59\x9c\x5e\x57\x52\xde\x3a\xdc\x68\x4f\xdb\x76\x8d\xd8\xf6\x45\x43\xe7\xf6\x8f\x4f\xbc\xc2\xbf\xce\x47\xfc\xf6\xf0\x4a\x1f\xa8\x72\x52\x27\x0e\xc1\x97\x38\xa9\xbf\x0c\xbc\xce\x49\xf8\x78\xf3\x3a\x17\x4e\xc5\x2d\xfd\xaa\x48\x5a\xcf\x31\x10\xbf\x02\x5c\x51\xf0\xdd\x65\x05\x90\x49\xc1\xdc\x76\x04\x83\x97\xec\x1c\xd8\x96\xe8\x6f\xc8\x7c\xb6\x5d\x5f\xea\x6c\xee\x35\x5f\xeb\xe9\x27\xac\xad\x23\x3d\xed\x8d\xa3\xc5\xd8\xe7\x75\x72\x7b\x51\x43\x5e\x9f\xfa\xc8\xd3\x6a\x73\x12\xff\x48\x18\x27\xd1\x10\xac\x71\xf1\xdb\x29\x5b\x6d\x7c\x22\xf7\x24\x6e\x71\x74\xdd\xa8\x47\x1f\xfc\xe7\xbf\xc9\xff\x02\x00\x00\xff\xff\x08\x02\x0a\x82\x77\x1a\x00\x00"), + compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xcc\x18\xdb\x8e\xda\x46\xf4\xdd\x5f\x71\xb4\xbc\xb4\xd2\x62\x76\x53\x55\xaa\xe8\x13\x65\x37\x2a\x4a\xc2\xae\x16\x92\x28\x8f\x83\x7d\x30\x27\x8c\x67\xdc\xb9\x40\xe8\xe5\xdf\xab\x99\xb1\x09\xe6\x62\x2f\x6c\x52\x75\x9e\xe0\xcc\xb9\xdf\x3d\x1d\xe8\x7e\xbb\x13\x75\x60\x28\x8b\x8d\xa2\x6c\x61\xc0\x2c\x10\xa4\xa2\x8c\x04\xe3\xc0\xac\x59\x48\x05\x52\x95\xbf\x74\x1c\x75\xa2\x0e\xbc\xa5\x04\x85\xc6\x14\xac\x48\x51\x79\x92\x41\xc1\x92\x05\x56\x37\xd7\xf0\x01\x95\x26\x29\xe0\x55\x7c\x03\x3f\x38\x84\xab\xf2\xea\xea\xc7\x5f\xa3\x0e\x6c\xa4\x85\x9c\x6d\x40\x48\x03\x56\x23\x98\x05\x69\x98\x13\x47\xc0\x2f\x09\x16\x06\x48\x40\x22\xf3\x82\x13\x13\x09\xc2\x9a\xcc\xc2\x8b\x29\x99\xc4\x51\x07\x3e\x95\x2c\xe4\xcc\x30\x12\xc0\x20\x91\xc5\x06\xe4\x7c\x17\x0f\x98\xf1\x0a\x03\xc0\xc2\x98\xa2\xdf\xeb\xad\xd7\xeb\x98\x79\x5d\x63\xa9\xb2\x1e\x0f\x78\xba\xf7\x76\x34\xbc\x1f\x4f\xee\xbb\xaf\xe2\x1b\x4f\xf1\x5e\x70\xd4\x1a\x14\xfe\x61\x49\x61\x0a\xb3\x0d\xb0\xa2\xe0\x94\xb0\x19\x47\xe0\x6c\xed\x9d\x92\x29\xc4\x14\x8c\x74\xea\xae\x15\x19\x12\xd9\x35\x68\x39\x37\x6b\xa6\x30\xea\x40\x4a\xda\x28\x9a\x59\x53\xf3\x55\xa5\x1c\xe9\x1a\x82\x14\xc0\x04\x5c\x0d\x26\x30\x9a\x5c\xc1\x6f\x83\xc9\x68\x72\x1d\x75\xe0\xe3\x68\xfa\xfb\xc3\xfb\x29\x7c\x1c\x3c\x3d\x0d\xc6\xd3\xd1\xfd\x04\x1e\x9e\x60\xf8\x30\xbe\x1b\x4d\x47\x0f\xe3\x09\x3c\xbc\x86\xc1\xf8\x13\xbc\x19\x8d\xef\xae\x01\xc9\x2c\x50\x01\x7e\x29\x94\xd3\x5f\x2a\x20\xe7\x45\x4c\x9d\xcb\x26\x88\x35\x05\xe6\x32\x28\xa4\x0b\x4c\x68\x4e\x09\x70\x26\x32\xcb\x32\x84\x4c\xae\x50\x09\x12\x19\x14\xa8\x72\xd2\x2e\x96\x1a\x98\x48\xa3\x0e\x70\xca\xc9\x30\xe3\x21\x07\x46\x39\x31\xdf\x32\x35\x23\x56\x50\x99\x4b\x7d\x60\x05\xe1\x17\x83\xc2\x6b\x13\x2f\x7f\xd1\x31\xc9\xde\xea\x36\x5a\x92\x48\xfb\x30\xb4\xda\xc8\xfc\x09\xb5\xb4\x2a\xc1\x3b\x9c\x93\x20\xa7\x65\x94\xa3\x61\x29\x33\xac\x1f\x01\x70\x36\x43\xae\xdd\x2f\x70\x01\xed\xc3\x86\x2d\x75\x04\xc0\x84\x90\xa5\x51\xe1\x32\x91\xc2\x28\xc9\x39\xaa\x6e\x86\x22\x5e\xda\x19\xce\x2c\xf1\x14\x95\x17\x5a\xa9\xb4\xba\x89\x6f\x7f\x8e\x6f\x22\x00\xc1\x72\xec\x83\x41\x6d\x74\xec\x98\xc6\x09\x19\x65\xf5\x5c\xb1\x1c\xd7\x52\x2d\x5d\xbe\x45\xce\xd3\x8e\x7f\xa6\xa4\x2d\x85\x1f\xc5\x0b\xec\x2a\x55\x98\xc1\x4c\x2a\xaa\xfe\x77\x2b\xa5\xdd\x4f\x27\x90\x44\xe6\xff\x05\x3f\x4c\x51\x1b\xff\x97\x93\x36\x6f\xb6\xa0\xb7\x54\x82\x0b\x6e\x15\xe3\xa5\xaa\x1e\xa2\x49\x64\x96\x33\x15\x60\x11\x80\x4e\x64\x81\x7d\x18\x3b\x1d\x0a\x96\x60\x1a\x01\x94\x26\x7b\x1d\xba\xc0\xd2\xd4\x3b\x97\xf1\x47\x45\xc2\xa0\x1a\x4a\x6e\x73\xb1\xd5\x30\x45\x9d\x28\x2a\x8c\x77\xd2\x74\x81\x9e\x33\x14\x0b\xa6\xd1\x63\x00\x7c\xd6\x52\x3c\x32\xb3\xe8\x43\xac\x0d\x33\x56\xc7\xbb\xb7\xc1\x9b\x8f\x3b\x10\xb3\x71\x2a\xb9\x72\x29\xad\x3d\x26\x44\x1a\xd7\xb5\x72\x69\x85\xf1\xad\x60\x6b\xe2\x31\x79\x0a\xb5\xe5\x46\xc7\xda\xe6\x39\x53\x9b\xd8\x53\xd7\xe4\x4f\x77\x20\x6d\xf2\x1f\x99\x76\x2d\xf1\x3c\x91\x85\x27\xaa\xdb\xbc\x0b\x6a\x13\xfa\x9a\x11\x3f\x5b\xe8\xdc\x13\xd5\x84\xbe\xde\x05\xb5\x09\x9d\x2c\xa9\x28\xce\x96\xaa\x03\x55\x4d\xec\xa4\x06\x6b\x8d\xb0\x4b\x21\x54\x4a\x2a\x48\xd1\x30\xe2\xa7\x85\x7b\x2c\x5d\x93\x75\xbf\x0b\x3a\x10\x15\x70\x56\xb7\x8c\x17\x0b\x76\x1b\xaa\x22\x59\x60\xce\xfa\x25\x85\x2c\x50\x0c\x1e\x47\x1f\x7e\x9a\xd4\xc0\x70\x44\x45\xd2\xbe\x23\x06\xc4\x6d\x93\xf5\xde\x82\xc1\xe3\x28\xde\x92\x16\x4a\x16\xa8\xcc\xb6\xb0\xc3\xd9\xe9\x78\x3b\xd0\x3d\x41\x7f\x77\x6b\x77\xe0\x18\x57\x33\x37\x75\xad\x0f\x83\x12\x65\xd5\x62\x5a\x9a\x13\x06\x24\xb9\xc9\xe6\x26\x04\x8a\xd0\xf4\x1c\x98\x09\x90\xb3\xcf\x98\x98\x78\x8f\xf5\x04\x95\x63\x03\x7a\x21\x2d\x4f\x5d\x67\x5c\xa1\x32\xa0\x30\x91\x99\xa0\x3f\xb7\xbc\xb5\x9b\x84\x4e\x28\x67\xbe\xda\x7d\x5f\x70\x6b\xc4\x8a\x71\x8b\xd7\x7e\x7c\xd4\x39\xbb\xf9\xad\xd0\xc9\x04\x2b\x76\xf8\x79\x02\xbd\xaf\xc7\x3b\xa9\x10\x48\xcc\x65\xdf\x4f\x73\xdd\xef\xf5\x32\x32\xd5\x1c\x48\x64\x9e\x5b\x41\x66\xd3\xf3\xad\xdb\x0d\x55\xa9\x74\x2f\xc5\x15\xf2\x9e\xa6\xac\xcb\x54\xb2\x20\x83\x89\xb1\x0a\x7b\xac\xa0\xae\x37\x44\xf8\x9e\x1f\xe7\x69\x47\x95\x93\x43\xd7\xc4\x1e\x64\x4a\x38\xbe\xd5\x9e\x11\x1e\xd7\x87\x5d\x62\xb0\x92\x55\x30\xf1\x6b\x14\x1c\xc8\xb9\xee\xe9\x7e\x32\x85\x4a\x93\x10\xa9\x10\x94\xaf\xa8\x07\x7e\xa9\xe2\xe3\xbc\x49\x62\xee\x07\xb2\x5b\xa7\x94\xcc\x3d\x4f\x14\x69\x21\x49\x84\xdd\x2e\xe1\x84\xc2\x80\xb6\xb3\x9c\x4c\x58\x70\x7c\x62\x1a\xb9\xcf\x76\xe8\x67\x22\xcc\x10\x6c\x91\x32\xe3\x56\x88\x3a\xc2\x48\xc0\x90\xe5\xc8\x87\xcc\xcd\xfd\xff\x34\x56\x2e\x2a\xba\xeb\x82\xf0\xac\x68\xed\x6e\x00\xfb\xc8\xc1\xbd\x3b\x17\xd5\x8c\x3e\x11\x5a\x57\xe2\x93\x02\x93\x5a\x99\xa5\xa8\xfd\x9a\xe8\xda\x0f\xba\x62\xda\x0e\xe1\xea\x1c\xaf\x75\x08\x9b\xc6\x9c\xb2\x7d\xe8\x9e\xd4\x09\x1a\x97\x23\xda\x4b\xee\x76\xf7\xdd\xdd\xc4\xbf\x94\x61\x50\x98\x63\x57\x27\x9d\x56\x1d\xdf\x1a\xcf\x27\x3c\xe1\x5d\x77\x50\xac\x0e\x19\x92\xc1\xfc\xa8\xee\xcf\x90\xc2\x94\x62\x9b\xbd\x3b\xb7\xb1\xa5\x32\x59\xb6\x38\xf6\x8d\x9d\xe1\x9d\x4c\x96\x17\x3a\x96\x72\x96\x5d\xe2\x1d\x00\x65\xc5\x40\xbf\xd7\xa8\x9a\xa8\x5d\x0b\xcd\x50\x9d\xe3\xdc\x6d\x1b\x3b\xc3\xc5\x35\x8f\x54\x1b\xf4\x49\x8f\xb4\xf9\xa4\x25\xdd\x5a\x3d\xd3\x94\x72\xad\xc4\x0d\x9e\x69\xca\x16\x65\x85\xa1\x63\x42\xeb\xae\x09\x58\x17\xe6\x0a\x97\x59\x76\x2a\xdc\x27\x43\xf3\x0c\x93\x9b\xec\x72\x67\x85\x6a\x26\x75\x63\x96\xce\xa4\xe4\xc8\xc4\x39\x79\xa6\x31\x51\x68\xce\xc9\xb2\x0b\x0b\x59\x23\x47\x41\x36\x6f\xed\x90\x01\xed\xc2\xe0\x1c\xed\x49\x8d\xe6\xb4\x9a\xd4\x6c\x16\xbc\xa8\x7b\x08\xf9\x61\x3c\xbc\x24\xa2\xdf\xaf\xf1\x84\xae\xd1\x16\xa5\xe6\xd6\xf2\xfd\xa6\x58\xf5\xb4\xf1\xbf\x18\x81\xa7\x36\x0f\xff\xf1\xd2\xb6\x7b\x78\xa4\xda\xf6\x21\x67\xda\xad\x80\x97\xad\x1f\x29\x65\xa8\x8f\xf8\xb4\xc1\xb2\xf0\x75\x75\x16\x89\xff\xb6\x6f\xc9\x0d\xa7\xb4\xff\xe2\x3f\x9a\x1a\x0d\xcc\xcb\x4f\xcd\x43\xf6\x2d\x25\x7f\xc2\x0c\xf8\xce\x55\xaf\x2d\x19\x1c\x5f\x96\x52\x8e\xda\x7f\x4f\x1f\xa7\x6d\x1b\xcc\xcd\x46\x43\x6b\xf9\x87\x13\x1e\x10\x5e\xc6\x23\xbc\x7c\xbc\x90\x07\x8a\x94\xc4\x91\xd5\xf9\x1c\x26\xe5\xbb\xc4\xcb\x98\xf8\xa7\xa3\x97\xb1\xb0\x22\x94\xf4\x8b\x34\x69\xdc\x7e\x20\xbc\x41\x5c\x90\xf0\xed\x69\x05\x90\x70\xa6\x75\xd3\xe2\x06\xcf\xa9\x1c\xa8\x52\xf4\x1d\x6a\x7d\xb2\x5d\x9f\xcb\x6c\xea\x30\x5f\xca\xe9\x1b\xd8\xd6\x12\x9e\xe6\xc6\xd1\x40\xec\xe2\x3a\xba\x3b\xab\x21\xaf\x8e\x3d\x31\x35\xd2\x1c\x95\x7f\x00\x0c\x93\xa8\x0f\x46\xd9\xf0\x72\xab\x8d\x54\x2e\x90\x3b\x10\x3b\x3b\xf8\x48\x29\x47\x1f\xfc\xf5\x4f\xf4\x6f\x00\x00\x00\xff\xff\x20\x74\xbb\xc4\xdc\x1a\x00\x00"), }, "/infrastructure": &vfsgen۰DirInfo{ name: "infrastructure", diff --git a/pkg/util/envvar/envvar.go b/pkg/util/envvar/envvar.go index 68acf8cc..9c238bbf 100644 --- a/pkg/util/envvar/envvar.go +++ b/pkg/util/envvar/envvar.go @@ -18,6 +18,7 @@ package envvar import ( "os" + "strings" corev1 "k8s.io/api/core/v1" ) @@ -94,3 +95,12 @@ func GetOperatorNamespace() string { return "" } + +// IsCurrentOperatorGlobal returns true if the operator is configured to watch all namespaces. +func IsCurrentOperatorGlobal() bool { + if watchNamespace, envSet := os.LookupEnv(WatchNamespaceEnv); !envSet || strings.TrimSpace(watchNamespace) == "" { + return true + } + + return false +} diff --git a/script/gen_client.sh b/script/gen_client.sh index 87fd6da4..7e56fd32 100755 --- a/script/gen_client.sh +++ b/script/gen_client.sh @@ -24,6 +24,10 @@ GO111MODULE=on # Entering the client module cd $rootdir/pkg/client/yaks +rm -rf ./clientset +rm -rf ./informers +rm -rf ./listers + echo "Generating Go client code..." $(go env GOPATH)/bin/client-gen \ @@ -31,29 +35,22 @@ $(go env GOPATH)/bin/client-gen \ --go-header-file=$rootdir/script/headers/default.txt \ --clientset-name "versioned" \ --input-base=github.com/citrusframework/yaks/pkg/apis \ - --output-base=. \ - --output-package=github.com/citrusframework/yaks/pkg/client/yaks/clientset + --output-dir=clientset \ + --output-pkg=github.com/citrusframework/yaks/pkg/client/yaks/clientset $(go env GOPATH)/bin/lister-gen \ - --input-dirs=github.com/citrusframework/yaks/pkg/apis/yaks/v1alpha1 \ + $rootdir/pkg/apis/yaks/v1alpha1 \ --go-header-file=$rootdir/script/headers/default.txt \ - --output-base=. \ - --output-package=github.com/citrusframework/yaks/pkg/client/yaks/listers + --output-dir=listers \ + --output-pkg=github.com/citrusframework/yaks/pkg/client/yaks/listers $(go env GOPATH)/bin/informer-gen \ + $rootdir/pkg/apis/yaks/v1alpha1 \ --versioned-clientset-package=github.com/citrusframework/yaks/pkg/client/yaks/clientset/versioned \ --listers-package=github.com/citrusframework/yaks/pkg/client/yaks/listers \ - --input-dirs=github.com/citrusframework/yaks/pkg/apis/yaks/v1alpha1 \ --go-header-file=$rootdir/script/headers/default.txt \ - --output-base=. \ - --output-package=github.com/citrusframework/yaks/pkg/client/yaks/informers - -# hack to fix non go-module compliance -rm -rf ./clientset -rm -rf ./informers -rm -rf ./listers -cp -R ./github.com/citrusframework/yaks/pkg/client/yaks/* . -rm -rf ./github.com + --output-dir=informers \ + --output-pkg=github.com/citrusframework/yaks/pkg/client/yaks/informers # hack to fix test custom resource generated fake. otherwise generated fake file is handled as test scoped file mv $rootdir/pkg/client/yaks/clientset/versioned/typed/yaks/v1alpha1/fake/fake_test.go \ diff --git a/script/gen_crd.sh b/script/gen_crd.sh index 3b01a713..f5fa44cf 100755 --- a/script/gen_crd.sh +++ b/script/gen_crd.sh @@ -24,11 +24,7 @@ apidir=$location/../pkg/apis/yaks echo "Generating CRDs..." cd "$apidir" -$(go env GOPATH)/bin/controller-gen crd \ - paths=./... \ - output:crd:artifacts:config=../../../config/crd/bases \ - output:crd:dir=../../../config/crd/bases \ - crd:crdVersions=v1 +$(go env GOPATH)/bin/controller-gen paths=./... output:crd:artifacts:config=../../../config/crd/bases output:crd:dir=../../../config/crd/bases crd:crdVersions=v1 # cleanup working directory in $apidir rm -rf ./config