From a84093de8a13fc767e4ae008f60b575bbe86d2bf Mon Sep 17 00:00:00 2001 From: Tibor Kiss <32801432+the1bit@users.noreply.github.com> Date: Wed, 4 Sep 2024 16:48:42 +0200 Subject: [PATCH] chore: new release - 1.2.1 (#628) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * auto-bump sec-scanners-config: 2024-04-23-11-55-04 (#562) Co-authored-by: kyma-eventing-bot * docs: improve the troubleshooting guide for Eventing (#569) * docs: Improve the trouble shooting guide * Apply suggestions from code review Co-authored-by: Nina Hingerl <76950046+NHingerl@users.noreply.github.com> --------- Co-authored-by: Nina Hingerl <76950046+NHingerl@users.noreply.github.com> * chore: deprecate kyma provision gardener (#572) * Deprecate kyma provision gardener * remove unused env * Fix typo in Gardener provisioning (#574) * fix: Gardener kubeconfig merging flags (#575) * fix: change NATS CR wait for Warning status (#576) * fix: unify CR description in Kyma dashboard (#578) * Added github action for K8s version compatibility check (#583) * fixed k8s compatibility check job to use provided k8s version (#584) * fixed gardener provisioning make target to use correct env (#585) * deps(dependabot): bump golangci/golangci-lint-action from 4.0.0 to 6.0.1 (#568) Bumps [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action) from 4.0.0 to 6.0.1. - [Release notes](https://github.com/golangci/golangci-lint-action/releases) - [Commits](https://github.com/golangci/golangci-lint-action/compare/v4.0.0...v6.0.1) --- updated-dependencies: - dependency-name: golangci/golangci-lint-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore: bump dependencies (#590) * Upgrade modules for DependaBot PRs (#596) * deps(dependabot): bump github.com/onsi/gomega from 1.33.1 to 1.34.0 (#600) Bumps [github.com/onsi/gomega](https://github.com/onsi/gomega) from 1.33.1 to 1.34.0. - [Release notes](https://github.com/onsi/gomega/releases) - [Changelog](https://github.com/onsi/gomega/blob/master/CHANGELOG.md) - [Commits](https://github.com/onsi/gomega/compare/v1.33.1...v1.34.0) --- updated-dependencies: - dependency-name: github.com/onsi/gomega dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Change enable and disable to add and delete in the eventing repo (#601) * chore: fix k8s compatibility test (#599) * deps(dependabot): bump github.com/vektra/mockery/v2 (#603) Bumps [github.com/vektra/mockery/v2](https://github.com/vektra/mockery) from 2.43.2 to 2.44.1. - [Release notes](https://github.com/vektra/mockery/releases) - [Changelog](https://github.com/vektra/mockery/blob/master/docs/changelog.md) - [Commits](https://github.com/vektra/mockery/compare/v2.43.2...v2.44.1) --- updated-dependencies: - dependency-name: github.com/vektra/mockery/v2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * deps(dependabot): bump golangci/golangci-lint-action from 6.0.1 to 6.1.0 (#605) Bumps [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action) from 6.0.1 to 6.1.0. - [Release notes](https://github.com/golangci/golangci-lint-action/releases) - [Commits](https://github.com/golangci/golangci-lint-action/compare/v6.0.1...v6.1.0) --- updated-dependencies: - dependency-name: golangci/golangci-lint-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * deps: update build image (#606) * update some dependencies * bump docker image * fix docker registery address * use older image * bump go version (#608) * Update link to default CR for NATS (#615) Currently the link for the default CR which uses `NATS` backend is pointing to the one that has no backend. This PR fixes this. * deps(dependabot): bump github.com/prometheus/client_golang (#617) Bumps [github.com/prometheus/client_golang](https://github.com/prometheus/client_golang) from 1.19.1 to 1.20.1. - [Release notes](https://github.com/prometheus/client_golang/releases) - [Changelog](https://github.com/prometheus/client_golang/blob/v1.20.1/CHANGELOG.md) - [Commits](https://github.com/prometheus/client_golang/compare/v1.19.1...v1.20.1) --- updated-dependencies: - dependency-name: github.com/prometheus/client_golang dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * deps(dependabot): bump github.com/vektra/mockery/v2 (#618) Bumps [github.com/vektra/mockery/v2](https://github.com/vektra/mockery) from 2.44.1 to 2.45.0. - [Release notes](https://github.com/vektra/mockery/releases) - [Changelog](https://github.com/vektra/mockery/blob/master/docs/changelog.md) - [Commits](https://github.com/vektra/mockery/compare/v2.44.1...v2.45.0) --- updated-dependencies: - dependency-name: github.com/vektra/mockery/v2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore: bump dependencies (#614) * chore: bump dependencies * updated * fixed test * Fix backend switching * Fix script * Increase wait timeout for modules to be ready --------- Co-authored-by: marcobebway * Update CONTRIBUTING.md (#626) * Bump EPP new version --------- Signed-off-by: dependabot[bot] Co-authored-by: Kyma Eventing Bot <127955107+kyma-eventing-bot@users.noreply.github.com> Co-authored-by: kyma-eventing-bot Co-authored-by: Rakesh Garimella Co-authored-by: Nina Hingerl <76950046+NHingerl@users.noreply.github.com> Co-authored-by: Piotr Halama Co-authored-by: Piotr Halama Co-authored-by: Muhammad Faizan Co-authored-by: Małgorzata Świeca Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Mansur Uralov Co-authored-by: Grzegorz Karaluch Co-authored-by: Marco Bebway Co-authored-by: Friedrich Co-authored-by: Carina Kothe <69976260+grischperl@users.noreply.github.com> --- .../e2e-backend-switching-reuseable.yml | 2 +- .github/workflows/k8s-compatibility-test.yml | 188 +++++++++++++ .github/workflows/lint-go.yml | 2 +- .gitignore | 1 + .golangci.yaml | 2 + CONTRIBUTING.md | 5 +- Dockerfile | 2 +- Makefile | 2 +- .../v1alpha1/zz_generated.deepcopy.go | 2 +- ...venting.kyma-project.io_subscriptions.yaml | 2 +- .../operator.kyma-project.io_eventings.yaml | 29 +- config/manager/manager.yaml | 2 +- config/rbac/role.yaml | 68 +---- config/ui-extensions/eventing/general | 5 +- docs/user/01-manager.md | 2 +- docs/user/02-configuration.md | 2 +- .../evnt-05-fix-pending-messages.md | 8 + go.mod | 105 ++++---- go.sum | 246 ++++++++--------- hack/ci/Makefile | 27 +- internal/connection/nats/mocks/builder.go | 4 + internal/connection/nats/mocks/connection.go | 2 +- .../subscription/eventmesh/reconciler.go | 17 +- .../subscription/jetstream/reconciler.go | 11 +- .../validator/mocks/SubscriptionValidator.go | 2 +- .../operator/eventing/controller.go | 72 +++-- .../operator/eventing/controller_test.go | 3 +- .../natsconnection/integration_test.go | 60 +++-- .../operator/eventing/mocks/controller.go | 254 +----------------- .../operator/eventing/mocks/manager.go | 49 +++- .../eventing/mocks/nats_config_handler.go | 2 +- .../eventing/mocks/typed_controller.go | 236 ++++++++++++++++ pkg/backend/jetstream/mocks/Backend.go | 2 +- .../jetstream/mocks/JetStreamContext.go | 2 +- .../events/client/mocks/PublisherManager.go | 2 +- pkg/eventing/mocks/manager.go | 2 +- pkg/k8s/mocks/client.go | 2 +- .../manager/mocks/manager.go | 2 +- .../mocks/manager_factory.go | 2 +- pkg/watcher/mocks/watcher.go | 18 +- scripts/gardener/aws/provision.sh | 86 ++++-- test/utils/integration/integration.go | 45 ++-- 42 files changed, 927 insertions(+), 650 deletions(-) create mode 100644 .github/workflows/k8s-compatibility-test.yml create mode 100644 internal/controller/operator/eventing/mocks/typed_controller.go diff --git a/.github/workflows/e2e-backend-switching-reuseable.yml b/.github/workflows/e2e-backend-switching-reuseable.yml index 2c59658f7..ea9757640 100644 --- a/.github/workflows/e2e-backend-switching-reuseable.yml +++ b/.github/workflows/e2e-backend-switching-reuseable.yml @@ -111,7 +111,7 @@ jobs: run: | make -C hack/ci/ wait-istio-cr-ready make -C hack/ci/ wait-api-gateway-cr-ready - make -C hack/ci/ wait-nats-cr-ready + make -C hack/ci/ wait-nats-cr-warning make -C hack/ci/ wait-eventing-cr-ready-with-backend ACTIVE_BACKEND=NATS - name: Setup eventing tests diff --git a/.github/workflows/k8s-compatibility-test.yml b/.github/workflows/k8s-compatibility-test.yml new file mode 100644 index 000000000..da0a207e9 --- /dev/null +++ b/.github/workflows/k8s-compatibility-test.yml @@ -0,0 +1,188 @@ +name: k8s-compatibility-test + +on: + workflow_dispatch: + inputs: + k8s-version: # k8s version + description: 'Kubernetes version (i.e. x.y.z)' + required: true + +jobs: + k8s-compatibility-test: + # Tests the compatibility of Kubernetes version with Eventing and NATS modules. + # The steps of this job are: + # 1. Provision Gardener cluster with the given k8s version. + # 2. Install latest released versions of Istio, Api-gateway, NATS and Eventing modules. + # 3. Run eventing tests with NATS backend. + # 4. Run eventing tests with EventMesh backend. + runs-on: ubuntu-latest + env: + KYMA_STABILITY: "unstable" + KYMA: "./hack/kyma" + + steps: + - uses: actions/checkout@v4 + + - name: Setup Go via go.mod + uses: actions/setup-go@v5 + with: + go-version-file: go.mod + + - run: go version + + - name: Install Kyma CLI + run: | + make kyma + + - name: Provision Gardener cluster + env: + GARDENER_CLUSTER_VERSION: ${{ inputs.k8s-version }} + CLUSTER_PREFIX: "ghem-" + GARDENER_PROJECT_NAME: ${{ vars.GARDENER_PROJECT_NAME }} + GARDENER_PROVIDER_SECRET_NAME: ${{ vars.GARDENER_PROVIDER_SECRET_NAME_AWS }} + MACHINE_TYPE: "m5.xlarge" + SCALER_MIN: "1" + SCALER_MAX: "2" + RETRY_ATTEMPTS: "1" + GARDENER_KYMATUNAS: ${{ secrets.GARDENER_KYMATUNAS }} + run: | + # setup Gardener kubeconfig. + mkdir -p "${HOME}/.gardener" + export GARDENER_KUBECONFIG="${HOME}/.gardener/kubeconfig" + echo ${GARDENER_KYMATUNAS} | base64 --decode > ${GARDENER_KUBECONFIG} + # generate cluster name and export it to Github env for cleanup step to access it. + export CLUSTER_NAME="${CLUSTER_PREFIX}$(openssl rand -hex 2)" + echo "CLUSTER_NAME=${CLUSTER_NAME}" >> $GITHUB_ENV + # set random region for AWS. + export GARDENER_REGION=$(./scripts/gardener/aws/get_random_region.sh) + export GARDENER_ZONES="${GARDENER_REGION}a" + # provision gardener cluster. + make -C hack/ci/ provision-gardener-cluster + kubectl version + kubectl cluster-info + kubectl get nodes + kubectl get ns + + - name: Create kyma-system namespace + run: | + kubectl create ns kyma-system || true + + - name: Create EventMesh secret + env: + EVENTMESH_K8S_SECRET: ${{ secrets.EVENTMESH_K8S_SECRET }} + run: | + echo "${EVENTMESH_K8S_SECRET}" | base64 --decode > k8s-em.yaml + kubectl apply -n kyma-system -f k8s-em.yaml + rm k8s-em.yaml + + - name: Create IAS application for EventMesh + env: + TEST_EVENTING_AUTH_IAS_URL: ${{ vars.EVENTING_AUTH_IAS_URL }} + TEST_EVENTING_AUTH_IAS_USER: ${{ vars.EVENTING_AUTH_IAS_USER }} + TEST_EVENTING_AUTH_IAS_PASSWORD: ${{ secrets.EVENTING_AUTH_IAS_PASSWORD }} + run: | + export DISPLAY_NAME=${CLUSTER_NAME} + make -C hack/ci/ create-ias-app + + - name: Install latest released Istio Module + run: | + make -C hack/ci/ install-istio-module + + - name: Install latest released API Gateway Manager + run: | + make -C hack/ci/ install-api-gateway-module + + - name: Install latest released NATS Manager + run: | + make -C hack/ci/ install-nats-module + + - name: Install latest released Eventing Manager + run: | + make -C hack/ci/ install-eventing-module + kubectl apply -f config/samples/default_nats.yaml + + - name: Wait for Installed modules to be ready + run: | + make -C hack/ci/ wait-istio-cr-ready + make -C hack/ci/ wait-api-gateway-cr-ready + make -C hack/ci/ wait-nats-cr-warning + make -C hack/ci/ wait-eventing-cr-ready-with-backend ACTIVE_BACKEND=NATS + + - name: Setup eventing tests + run: | + # create API Rules for EPP and Sink. + export DOMAIN_TO_EXPOSE_WORKLOADS="$(kubectl get cm -n kube-system shoot-info -o=jsonpath='{.data.domain}')" + ./hack/e2e/scripts/expose_epp_and_sink.sh + # define URLs. + export SINK_PORT_FORWARDED_URL=https://sink-e2e-tests.${DOMAIN_TO_EXPOSE_WORKLOADS} + export PUBLISHER_URL=https://epp-e2e-tests.${DOMAIN_TO_EXPOSE_WORKLOADS} + # export ENVs to Github for all next steps. + echo "SINK_PORT_FORWARDED_URL=${SINK_PORT_FORWARDED_URL}" >> $GITHUB_ENV + echo "PUBLISHER_URL=${PUBLISHER_URL}" >> $GITHUB_ENV + # setup e2e tests. + make e2e-eventing-setup + + - name: Test eventing with NATS + run: | + make e2e-eventing + + - name: Switch to EventMesh backend + run: | + kubectl apply -f config/samples/default_eventmesh.yaml + make -C hack/ci/ wait-eventing-cr-ready-with-backend ACTIVE_BACKEND=EventMesh + + - name: Test eventing with EventMesh + env: + BACKEND_TYPE: "EventMesh" + run: | + # run tests. + make e2e-eventing + + - name: Test eventing cleanup + run: | + make e2e-cleanup + + - name: On error, fetch NATS CR + if: failure() + run: | + kubectl get nats.operator.kyma-project.io -n kyma-system -o yaml + + - name: On error, fetch Eventing CRs + if: failure() + run: | + kubectl get eventing.operator.kyma-project.io -n kyma-system -o yaml + + - name: On error, fetch Istio CR + if: failure() + run: | + kubectl get istios.operator.kyma-project.io -n kyma-system -o yaml + + - name: On error, fetch API Gateway CR + if: failure() + run: | + kubectl get apigateways.operator.kyma-project.io -n kyma-system -o yaml + + - name: Cleanup modules + if: ${{ always() }} + run: | + ./scripts/cleanup_modules.sh + + - name: Delete IAS application + if: ${{ always() }} + env: + TEST_EVENTING_AUTH_IAS_URL: ${{ vars.EVENTING_AUTH_IAS_URL }} + TEST_EVENTING_AUTH_IAS_USER: ${{ vars.EVENTING_AUTH_IAS_USER }} + TEST_EVENTING_AUTH_IAS_PASSWORD: ${{ secrets.EVENTING_AUTH_IAS_PASSWORD }} + run: | + export IAS_APPLICATION_LOCATION=$(cat ~/.ias_location) + make -C hack/ci/ delete-ias-app + + - name: Delete Gardener cluster + if: ${{ always() }} + env: + GARDENER_PROVIDER_SECRET_NAME: "tunas-aws" + GARDENER_PROJECT_NAME: "kymatunas" + WAIT_FOR_DELETE_COMPLETION: "false" + run: | + export GARDENER_KUBECONFIG="${HOME}/.gardener/kubeconfig" + make -C hack/ci/ deprovision-gardener-cluster diff --git a/.github/workflows/lint-go.yml b/.github/workflows/lint-go.yml index 1c7f746d3..24b7f1177 100644 --- a/.github/workflows/lint-go.yml +++ b/.github/workflows/lint-go.yml @@ -38,6 +38,6 @@ jobs: go-version-file: go.mod - name: golangci-lint - uses: golangci/golangci-lint-action@v4.0.0 + uses: golangci/golangci-lint-action@v6.1.0 with: version: v1.57 diff --git a/.gitignore b/.gitignore index 7a56d62ed..1def06dc6 100644 --- a/.gitignore +++ b/.gitignore @@ -40,3 +40,4 @@ module-config.yaml **/.env **/.env.dev +.env.aws diff --git a/.golangci.yaml b/.golangci.yaml index 090b5c220..7d92e8014 100644 --- a/.golangci.yaml +++ b/.golangci.yaml @@ -108,6 +108,8 @@ linters-settings: alias: eventingtesting - pkg: sigs.k8s.io/controller-runtime alias: kctrl + - pkg: sigs.k8s.io/controller-runtime/pkg/reconcile + alias: kctrlruntimereconcile - pkg: sigs.k8s.io/controller-runtime/pkg/log alias: kctrllog - pkg: sigs.k8s.io/controller-runtime/pkg/client diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 71bc0fc61..091082b21 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,4 +1,3 @@ +# Contributing -## Overview - -To contribute to this project, follow the general [contributing](https://github.com/kyma-project/community/blob/main/docs/contributing/02-contributing.md) guidelines. +To contribute to this project, follow the general [Contributing Rules](https://github.com/kyma-project/community/blob/main/docs/contributing/02-contributing.md). diff --git a/Dockerfile b/Dockerfile index 45381cdf9..646d7fa9a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ # Build the manager binary -FROM europe-docker.pkg.dev/kyma-project/prod/external/golang:1.22.0-alpine3.19 as builder +FROM europe-docker.pkg.dev/kyma-project/prod/external/library/golang:1.22.6-alpine AS builder ARG TARGETOS ARG TARGETARCH diff --git a/Makefile b/Makefile index 88d056ea8..64f41aabe 100644 --- a/Makefile +++ b/Makefile @@ -203,7 +203,7 @@ ENVTEST ?= $(LOCALBIN)/setup-envtest ## Tool Versions KUSTOMIZE_VERSION ?= v5.0.0 -CONTROLLER_TOOLS_VERSION ?= v0.14.0 +CONTROLLER_TOOLS_VERSION ?= v0.16.1 GOLANG_CI_LINT_VERSION ?= v1.57 KUSTOMIZE_INSTALL_SCRIPT ?= "https://raw.githubusercontent.com/kubernetes-sigs/kustomize/master/hack/install_kustomize.sh" diff --git a/api/operator/v1alpha1/zz_generated.deepcopy.go b/api/operator/v1alpha1/zz_generated.deepcopy.go index 25bcddd82..c227b3446 100644 --- a/api/operator/v1alpha1/zz_generated.deepcopy.go +++ b/api/operator/v1alpha1/zz_generated.deepcopy.go @@ -21,7 +21,7 @@ limitations under the License. package v1alpha1 import ( - "k8s.io/apimachinery/pkg/apis/meta/v1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" ) diff --git a/config/crd/bases/eventing.kyma-project.io_subscriptions.yaml b/config/crd/bases/eventing.kyma-project.io_subscriptions.yaml index 0c48ea2f9..4f9291b7d 100644 --- a/config/crd/bases/eventing.kyma-project.io_subscriptions.yaml +++ b/config/crd/bases/eventing.kyma-project.io_subscriptions.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.1 name: subscriptions.eventing.kyma-project.io spec: group: eventing.kyma-project.io diff --git a/config/crd/bases/operator.kyma-project.io_eventings.yaml b/config/crd/bases/operator.kyma-project.io_eventings.yaml index 714c26fc1..e8cf39c9a 100644 --- a/config/crd/bases/operator.kyma-project.io_eventings.yaml +++ b/config/crd/bases/operator.kyma-project.io_eventings.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.16.1 name: eventings.operator.kyma-project.io spec: group: operator.kyma-project.io @@ -209,11 +209,9 @@ spec: Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. - This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. - This field is immutable. It can only be set for containers. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. @@ -224,6 +222,12 @@ spec: the Pod where this field is used. It makes that resource available inside a container. type: string + request: + description: |- + Request is the name chosen for a request in the referenced claim. + If empty, everything from the claim is made available, otherwise + only the result of this request. + type: string required: - name type: object @@ -268,16 +272,8 @@ spec: type: string conditions: items: - description: "Condition contains details for one aspect of the current - state of this API Resource.\n---\nThis struct is intended for - direct use as an array at the field path .status.conditions. For - example,\n\n\n\ttype FooStatus struct{\n\t // Represents the - observations of a foo's current state.\n\t // Known .status.conditions.type - are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // - +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t - \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" - patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t - \ // other fields\n\t}" + description: Condition contains details for one aspect of the current + state of this API Resource. properties: lastTransitionTime: description: |- @@ -318,12 +314,7 @@ spec: - Unknown type: string type: - description: |- - type of condition in CamelCase or in foo.example.com/CamelCase. - --- - Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be - useful (see .node.status.conditions), the ability to deconflict is important. - The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: type of condition in CamelCase or in foo.example.com/CamelCase. maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string diff --git a/config/manager/manager.yaml b/config/manager/manager.yaml index af2e29759..28420558e 100644 --- a/config/manager/manager.yaml +++ b/config/manager/manager.yaml @@ -87,7 +87,7 @@ spec: - name: PUBLISHER_LIMITS_MEMORY value: 128Mi - name: PUBLISHER_IMAGE - value: "europe-docker.pkg.dev/kyma-project/prod/eventing-publisher-proxy:1.0.1" + value: "europe-docker.pkg.dev/kyma-project/prod/eventing-publisher-proxy:1.1.0" - name: PUBLISHER_IMAGE_PULL_POLICY value: "IfNotPresent" - name: PUBLISHER_REPLICAS diff --git a/config/rbac/role.yaml b/config/rbac/role.yaml index f36694b53..41cda79d9 100644 --- a/config/rbac/role.yaml +++ b/config/rbac/role.yaml @@ -8,37 +8,9 @@ rules: - "" resources: - configmaps - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - "" - resources: - - events - verbs: - - create - - patch -- apiGroups: - - "" - resources: - secrets - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - "" - resources: - serviceaccounts + - services verbs: - create - delete @@ -50,30 +22,14 @@ rules: - apiGroups: - "" resources: - - services + - events verbs: - create - - delete - - get - - list - patch - - update - - watch - apiGroups: - admissionregistration.k8s.io resources: - mutatingwebhookconfigurations - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - admissionregistration.k8s.io - resources: - validatingwebhookconfigurations verbs: - create @@ -85,6 +41,7 @@ rules: - watch - apiGroups: - apiextensions.k8s.io + - security.istio.io resources: - customresourcedefinitions verbs: @@ -197,17 +154,6 @@ rules: - rbac.authorization.k8s.io resources: - clusterrolebindings - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - rbac.authorization.k8s.io - resources: - clusterroles verbs: - create @@ -217,14 +163,6 @@ rules: - patch - update - watch -- apiGroups: - - security.istio.io - resources: - - customresourcedefinitions - verbs: - - get - - list - - watch - apiGroups: - security.istio.io resources: diff --git a/config/ui-extensions/eventing/general b/config/ui-extensions/eventing/general index 1484f69ee..e2dda9b7a 100644 --- a/config/ui-extensions/eventing/general +++ b/config/ui-extensions/eventing/general @@ -11,5 +11,6 @@ features: disableCreate: false disableDelete: false description: >- - {{[Eventing CR](https://github.com/kyma-project/eventing-manager/blob/main/config/samples/default.yaml)}} - specifies eventing module. + {{[Eventing custom resource](https://kyma-project.io/#/eventing-manager/user/02-configuration)}} + configures the Eventing module. + \ No newline at end of file diff --git a/docs/user/01-manager.md b/docs/user/01-manager.md index 1833f0767..d0447019a 100644 --- a/docs/user/01-manager.md +++ b/docs/user/01-manager.md @@ -1,6 +1,6 @@ # Eventing Manager -This module ships Eventing Manager. Once this module is enabled, it provides the functionality to send and receive events. +This module ships Eventing Manager. Once this module is added, it provides the functionality to send and receive events. ## Module Lifecycle diff --git a/docs/user/02-configuration.md b/docs/user/02-configuration.md index 6ac67efd2..d86cdcc9c 100644 --- a/docs/user/02-configuration.md +++ b/docs/user/02-configuration.md @@ -38,7 +38,7 @@ Warnings indicate that user action is required, that is, the user must install t Use the following sample CRs as guidance. Each can be applied immediately when you [install](../contributor/installation.md) Eventing Manager. -- [Default CR - NATS backend](https://github.com/kyma-project/eventing-manager/blob/main/config/samples/default.yaml) +- [Default CR - NATS backend](https://github.com/kyma-project/eventing-manager/blob/main/config/samples/default_nats.yaml) - [Default CR - EventMesh backend](https://github.com/kyma-project/eventing-manager/blob/main/config/samples/default_eventmesh.yaml) ## Reference diff --git a/docs/user/troubleshooting/evnt-05-fix-pending-messages.md b/docs/user/troubleshooting/evnt-05-fix-pending-messages.md index dbd42659b..a126ccb02 100644 --- a/docs/user/troubleshooting/evnt-05-fix-pending-messages.md +++ b/docs/user/troubleshooting/evnt-05-fix-pending-messages.md @@ -96,3 +96,11 @@ Sometimes triggering the leader reelection on the broken consumers doesn't work. Replicas: 3 Storage: File ``` + + +4. If none of the previous steps work, perform a restart of the NATS Pods: + + ```bash + # assuming we have 3 NATS instances + $ kubectl delete pod -n kyma-system eventing-nats-0 eventing-nats-1 eventing-nats-2 --wait=false + ``` diff --git a/go.mod b/go.mod index b1e38203b..3860d2431 100644 --- a/go.mod +++ b/go.mod @@ -1,56 +1,56 @@ module github.com/kyma-project/eventing-manager -go 1.22.0 +go 1.22.6 require ( github.com/avast/retry-go/v3 v3.1.1 - github.com/cloudevents/sdk-go/protocol/nats/v2 v2.15.1 + github.com/cloudevents/sdk-go/protocol/nats/v2 v2.15.2 github.com/cloudevents/sdk-go/v2 v2.15.2 - github.com/go-logr/logr v1.4.1 + github.com/go-logr/logr v1.4.2 github.com/go-logr/zapr v1.3.0 github.com/google/uuid v1.6.0 github.com/kelseyhightower/envconfig v1.4.0 - github.com/kyma-project/api-gateway v0.0.0-20231222161810-7e09cec0147d - github.com/kyma-project/kyma/common/logging v0.0.0-20231220133808-e2c22b79a28b + github.com/kyma-project/api-gateway v0.0.0-20240806081604-e5dae804ed9c + github.com/kyma-project/kyma/common/logging v0.0.0-20240729075006-50d76505df8c github.com/kyma-project/nats-manager v1.0.3-0.20231219150808-13159cfea47c github.com/mitchellh/hashstructure/v2 v2.0.2 - github.com/nats-io/nats-server/v2 v2.10.11 - github.com/nats-io/nats.go v1.33.1 + github.com/nats-io/nats-server/v2 v2.10.18 + github.com/nats-io/nats.go v1.36.0 github.com/onsi/ginkgo v1.16.5 - github.com/onsi/gomega v1.31.1 + github.com/onsi/gomega v1.34.1 github.com/pkg/errors v0.9.1 - github.com/prometheus/client_golang v1.19.0 + github.com/prometheus/client_golang v1.20.1 github.com/stretchr/testify v1.9.0 - github.com/vektra/mockery/v2 v2.42.0 + github.com/vektra/mockery/v2 v2.45.0 go.uber.org/atomic v1.11.0 go.uber.org/zap v1.27.0 - golang.org/x/oauth2 v0.17.0 - golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 - istio.io/api v1.20.2 - istio.io/client-go v1.20.2 - k8s.io/api v0.29.2 - k8s.io/apiextensions-apiserver v0.29.2 - k8s.io/apimachinery v0.29.2 - k8s.io/client-go v0.29.2 - k8s.io/utils v0.0.0-20240102154912-e7106e64919e - sigs.k8s.io/controller-runtime v0.17.2 + golang.org/x/oauth2 v0.22.0 + golang.org/x/xerrors v0.0.0-20240716161551-93cc26a95ae9 + istio.io/api v1.23.0 + istio.io/client-go v1.23.0 + k8s.io/api v0.31.0 + k8s.io/apiextensions-apiserver v0.31.0 + k8s.io/apimachinery v0.31.0 + k8s.io/client-go v0.31.0 + k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 + sigs.k8s.io/controller-runtime v0.19.0 ) require ( github.com/beorn7/perks v1.0.1 // indirect - github.com/cespare/xxhash/v2 v2.2.0 // indirect + github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/chigopher/pathlib v0.19.1 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // 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/evanphx/json-patch/v5 v5.9.0 // indirect github.com/fsnotify/fsnotify v1.7.0 // indirect - github.com/go-openapi/jsonpointer v0.19.6 // indirect + github.com/fxamacker/cbor/v2 v2.7.0 // indirect + github.com/go-openapi/jsonpointer v0.20.0 // indirect github.com/go-openapi/jsonreference v0.20.2 // indirect - github.com/go-openapi/swag v0.22.3 // indirect + github.com/go-openapi/swag v0.22.4 // 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/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 @@ -62,59 +62,58 @@ require ( github.com/jinzhu/copier v0.3.5 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect - github.com/klauspost/compress v1.17.6 // indirect + github.com/klauspost/compress v1.17.9 // indirect github.com/magiconair/properties v1.8.7 // indirect github.com/mailru/easyjson v0.7.7 // indirect github.com/mattn/go-colorable v0.1.13 // indirect - github.com/mattn/go-isatty v0.0.19 // indirect - github.com/minio/highwayhash v1.0.2 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect + github.com/minio/highwayhash v1.0.3 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect github.com/mitchellh/mapstructure v1.5.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/nats-io/jwt/v2 v2.5.3 // indirect + github.com/nats-io/jwt/v2 v2.5.8 // indirect github.com/nats-io/nkeys v0.4.7 // indirect github.com/nats-io/nuid v1.0.1 // indirect github.com/nxadm/tail v1.4.8 // indirect github.com/pelletier/go-toml/v2 v2.0.6 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/prometheus/client_model v0.5.0 // indirect - github.com/prometheus/common v0.48.0 // indirect - github.com/prometheus/procfs v0.12.0 // indirect - github.com/rogpeppe/go-internal v1.11.0 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/prometheus/client_model v0.6.1 // indirect + github.com/prometheus/common v0.55.0 // indirect + github.com/prometheus/procfs v0.15.1 // indirect github.com/rs/zerolog v1.29.0 // indirect github.com/spf13/afero v1.9.3 // indirect - github.com/spf13/cast v1.5.0 // indirect - github.com/spf13/cobra v1.7.0 // indirect + github.com/spf13/cast v1.6.0 // indirect + github.com/spf13/cobra v1.8.1 // indirect github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/spf13/viper v1.15.0 // indirect github.com/stretchr/objx v0.5.2 // indirect github.com/subosito/gotenv v1.4.2 // indirect + github.com/x448/float16 v0.8.4 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/crypto v0.19.0 // indirect - golang.org/x/exp v0.0.0-20230905200255-921286631fa9 // indirect - golang.org/x/mod v0.14.0 // indirect - golang.org/x/net v0.21.0 // indirect - golang.org/x/sys v0.17.0 // indirect - golang.org/x/term v0.17.0 // indirect - golang.org/x/text v0.14.0 // indirect + golang.org/x/crypto v0.25.0 // indirect + golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 // indirect + golang.org/x/mod v0.19.0 // indirect + golang.org/x/net v0.27.0 // indirect + golang.org/x/sync v0.7.0 // indirect + golang.org/x/sys v0.22.0 // indirect + golang.org/x/term v0.22.0 // indirect + golang.org/x/text v0.16.0 // indirect golang.org/x/time v0.5.0 // indirect - golang.org/x/tools v0.17.0 // indirect + golang.org/x/tools v0.23.0 // indirect gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect - google.golang.org/appengine v1.6.8 // indirect - google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20230920204549-e6e6cdab5c13 // indirect - google.golang.org/protobuf v1.32.0 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157 // indirect + google.golang.org/protobuf v1.34.2 // indirect + gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/component-base v0.29.2 // indirect - k8s.io/klog/v2 v2.110.1 // indirect - k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00 // indirect + k8s.io/klog/v2 v2.130.1 // indirect + k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 // indirect sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect sigs.k8s.io/yaml v1.4.0 // indirect diff --git a/go.sum b/go.sum index 9ee213b6c..42969358e 100644 --- a/go.sum +++ b/go.sum @@ -45,27 +45,28 @@ github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6r github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869 h1:DDGfHa7BWjL4YnC6+E63dPcxHo2sUxDIu8g3QgEJdRY= github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dRnpXw/yCqJaO+ZrUyxD+3VXMFFr56k5XYrpB4= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= -github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/chigopher/pathlib v0.19.1 h1:RoLlUJc0CqBGwq239cilyhxPNLXTK+HXoASGyGznx5A= github.com/chigopher/pathlib v0.19.1/go.mod h1:tzC1dZLW8o33UQpWkNkhvPwL5n4yyFRFm/jL1YGWFvY= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/cloudevents/sdk-go/protocol/nats/v2 v2.15.1 h1:0mEivrLbtaj+wnYeKwxwRpRAfRoL1XOL3H7UmQNdBDo= -github.com/cloudevents/sdk-go/protocol/nats/v2 v2.15.1/go.mod h1:uL8l72EPOvLEu3p+6mJdmmaV0heTKkIYwC08liu/5N4= +github.com/cloudevents/sdk-go/protocol/nats/v2 v2.15.2 h1:grQPId+rXCeR5RcmK5uBlissnlot7kBlHd8YJ7iZOPg= +github.com/cloudevents/sdk-go/protocol/nats/v2 v2.15.2/go.mod h1:KQA5rf2uSgtCnXsAFyFXtwiDboL/pB6gsg4VTErhfLA= 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-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/coreos/go-systemd/v22 v22.3.3-0.20220203105225-a9a7ef127534/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= -github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.4/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 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= 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/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= @@ -74,33 +75,37 @@ github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1m github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -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.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY= -github.com/frankban/quicktest v1.14.4/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= +github.com/evanphx/json-patch v5.7.0+incompatible h1:vgGkfT/9f8zE6tvSCe74nfpAVDQ2tG6yudJd8LBksgI= +github.com/evanphx/json-patch v5.7.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= +github.com/evanphx/json-patch/v5 v5.9.0 h1:kcBlZQbplgElYIlo/n1hJbls2z/1awpXxpRi0/FOJfg= +github.com/evanphx/json-patch/v5 v5.9.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= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv5E= +github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= -github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/zapr v1.3.0 h1:XGdV8XW8zdwFiwOA2Dryh1gj2KRQyOOoNmBy4EplIcQ= github.com/go-logr/zapr v1.3.0/go.mod h1:YKepepNBd1u/oyhd/yQmtjVXmm9uML4IXUgMOwR8/Gg= -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/jsonpointer v0.20.0 h1:ESKJdU9ASRfaPNOPRx12IUyA1vn3R9GiE3KYD14BXdQ= +github.com/go-openapi/jsonpointer v0.20.0/go.mod h1:6PGzBjjIIumbLYysB73Klnms1mwnU4G3YHOECG3CedA= 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-openapi/swag v0.22.4 h1:QLMzNJnMGPRNDCbySlcj1x01tzU8/9LTTL9hZZZogBU= +github.com/go-openapi/swag v0.22.4/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI= -github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572/go.mod h1:9Pwr4B2jHnOSGXyyzV8ROjYa2ojvAY6HCGYYfMoC3Ls= +github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= +github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= @@ -131,10 +136,8 @@ github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvq github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= 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-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I= @@ -148,7 +151,6 @@ github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= 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.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= @@ -168,8 +170,8 @@ github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hf github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1 h1:K6RDEckDVWvDI9JAJYCmNdQXq6neHJOYx3V6jnqNEec= -github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20240525223248-4bfdf5a9a2af h1:kmjWCqn2qkEml422C2Rrd27c3VGxi6a/6HNq8QmHRKM= +github.com/google/pprof v0.0.0-20240525223248-4bfdf5a9a2af/go.mod h1:K1liHPHnj73Fdn/EKuT8nrFqBihUSKXoLYU0BuatOYo= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= @@ -204,8 +206,8 @@ github.com/kelseyhightower/envconfig v1.4.0 h1:Im6hONhd3pLkfDFsbRgu68RDNkGF1r3dv github.com/kelseyhightower/envconfig v1.4.0/go.mod h1:cccZRl6mQpaq41TPp5QxidR+Sa3axMbJDNb//FQX6Gg= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/compress v1.17.6 h1:60eq2E/jlfwQXtvZEeBUYADs+BwKBWURIY+Gj2eRGjI= -github.com/klauspost/compress v1.17.6/go.mod h1:/dCuZOvVtNoHsyb+cuJD3itjs3NbnF6KH9zAO4BDxPM= +github.com/klauspost/compress v1.17.9 h1:6KIumPrER1LHsvBVuDa0r5xaG0Es51mhhB9BQB2qeMA= +github.com/klauspost/compress v1.17.9/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= @@ -215,10 +217,12 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/kyma-project/api-gateway v0.0.0-20231222161810-7e09cec0147d h1:e/n/Yz21rtlYH4+BFGHPJ3JEzCmgoG/hQoxPdCC7yP4= -github.com/kyma-project/api-gateway v0.0.0-20231222161810-7e09cec0147d/go.mod h1:mzEmmizP+fyI3QK+qFZhyfSXJbAj+d2AbiXVSmo4fMk= -github.com/kyma-project/kyma/common/logging v0.0.0-20231220133808-e2c22b79a28b h1:mYJvj9IKQyQMwHsyO+7tXd/PYLk4WZKnlbxnmTiDHqQ= -github.com/kyma-project/kyma/common/logging v0.0.0-20231220133808-e2c22b79a28b/go.mod h1:JGb5RBi8Uz+RZ/jf54+qA+RqY6uPQBJ8pO1w3KSwm1Q= +github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= +github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= +github.com/kyma-project/api-gateway v0.0.0-20240806081604-e5dae804ed9c h1:+mwHclJLqjrqlsT7z01d53Hga5i5oeOzjgSSpcRZf10= +github.com/kyma-project/api-gateway v0.0.0-20240806081604-e5dae804ed9c/go.mod h1:WJFMtIskZLB5spe7Vs3waC9IsythnywU6TvilsX66AU= +github.com/kyma-project/kyma/common/logging v0.0.0-20240729075006-50d76505df8c h1:M92yYimeiUmjuMdFILbCpuaZyzogdzoTWjFRj9TMTuA= +github.com/kyma-project/kyma/common/logging v0.0.0-20240729075006-50d76505df8c/go.mod h1:JGb5RBi8Uz+RZ/jf54+qA+RqY6uPQBJ8pO1w3KSwm1Q= github.com/kyma-project/nats-manager v1.0.3-0.20231219150808-13159cfea47c h1:LTWJ2YZBh0DVkFl4eKqR0ZSzlGRHVkiLt6hOxTNV3nc= github.com/kyma-project/nats-manager v1.0.3-0.20231219150808-13159cfea47c/go.mod h1:1vHtViq9rGpz1rWY2RKkBWzDWeEFStZJSqBCMtpuOOI= github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= @@ -230,10 +234,10 @@ github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxec github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= -github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= -github.com/minio/highwayhash v1.0.2 h1:Aak5U0nElisjDCfPSG79Tgzkn2gl66NxOMspRrKnA/g= -github.com/minio/highwayhash v1.0.2/go.mod h1:BQskDq+xkJ12lmlUUi7U0M5Swg3EWR+dLTk+kldvVxY= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/minio/highwayhash v1.0.3 h1:kbnuUMoHYyVl7szWjSxJnxw11k2U709jqFPPmIUyD6Q= +github.com/minio/highwayhash v1.0.3/go.mod h1:GGYsuwP/fPD6Y9hMiXuapVvlIUEhFhMTh0rxU3ik1LQ= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/hashstructure/v2 v2.0.2 h1:vGKWl0YJqUNxE8d+h8f6NJLcCJrgbhC4NcD46KavDd4= @@ -247,12 +251,12 @@ github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9G github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/nats-io/jwt/v2 v2.5.3 h1:/9SWvzc6hTfamcgXJ3uYRpgj+QuY2aLNqRiqrKcrpEo= -github.com/nats-io/jwt/v2 v2.5.3/go.mod h1:iysuPemFcc7p4IoYots3IuELSI4EDe9Y0bQMe+I3Bf4= -github.com/nats-io/nats-server/v2 v2.10.11 h1:yKUiLVincZISpo3A4YljJQ+HfLltGAgoNNJl99KL8I0= -github.com/nats-io/nats-server/v2 v2.10.11/go.mod h1:dXtOqVWzbMTEj+tUyC/itXjJhW37xh0tUBrTAlqAfx8= -github.com/nats-io/nats.go v1.33.1 h1:8TxLZZ/seeEfR97qV0/Bl939tpDnt2Z2fK3HkPypj70= -github.com/nats-io/nats.go v1.33.1/go.mod h1:Ubdu4Nh9exXdSz0RVWRFBbRfrbSxOYd26oF0wkWclB8= +github.com/nats-io/jwt/v2 v2.5.8 h1:uvdSzwWiEGWGXf+0Q+70qv6AQdvcvxrv9hPM0RiPamE= +github.com/nats-io/jwt/v2 v2.5.8/go.mod h1:ZdWS1nZa6WMZfFwwgpEaqBV8EPGVgOTDHN/wTbz0Y5A= +github.com/nats-io/nats-server/v2 v2.10.18 h1:tRdZmBuWKVAFYtayqlBB2BuCHNGAQPvoQIXOKwU3WSM= +github.com/nats-io/nats-server/v2 v2.10.18/go.mod h1:97Qyg7YydD8blKlR8yBsUlPlWyZKjA7Bp5cl3MUE9K8= +github.com/nats-io/nats.go v1.36.0 h1:suEUPuWzTSse/XhESwqLxXGuj8vGRuPRoG7MoRN/qyU= +github.com/nats-io/nats.go v1.36.0/go.mod h1:Ubdu4Nh9exXdSz0RVWRFBbRfrbSxOYd26oF0wkWclB8= github.com/nats-io/nkeys v0.4.7 h1:RwNJbbIdYCoClSDNY7QVKZlyb/wfT6ugvFCiKy6vDvI= github.com/nats-io/nkeys v0.4.7/go.mod h1:kqXRgRDPlGy7nGaEDMuYzmiJCIAAWDK0IMBtDmGD0nc= github.com/nats-io/nuid v1.0.1 h1:5iA8DT8V7q8WK2EScv2padNa/rTESc1KdnPw4TC2paw= @@ -264,41 +268,42 @@ github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+W github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= -github.com/onsi/ginkgo/v2 v2.15.0 h1:79HwNRBAZHOEwrczrgSOPy+eFTTlIGELKy5as+ClttY= -github.com/onsi/ginkgo/v2 v2.15.0/go.mod h1:HlxMHtYF57y6Dpf+mc5529KKmSq9h2FpCF+/ZkwUxKM= +github.com/onsi/ginkgo/v2 v2.19.1 h1:QXgq3Z8Crl5EL1WBAC98A5sEBHARrAJNzAmMxzLcRF0= +github.com/onsi/ginkgo/v2 v2.19.1/go.mod h1:O3DtEWQkPa/F7fBMgmZQKKsluAy8pd3rEQdrjkPb9zA= 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.31.1 h1:KYppCUK+bUgAZwHOu7EXVBKyQA6ILvOESHkn/tgoqvo= -github.com/onsi/gomega v1.31.1/go.mod h1:y40C95dwAD1Nz36SsEnxvfFe8FFfNxzI5eJ0EYGyAy0= +github.com/onsi/gomega v1.34.1 h1:EUMJIKUjM8sKjYbtxQI9A4z2o+rruxnzNvpknOXie6k= +github.com/onsi/gomega v1.34.1/go.mod h1:kU1QgUvBDLXBJq618Xvm2LUX6rSAfRaFRTcdOeDLwwY= github.com/pelletier/go-toml/v2 v2.0.6 h1:nrzqCb7j9cDFj2coyLNLaZuJTLjWjlaz6nvTvIwycIU= github.com/pelletier/go-toml/v2 v2.0.6/go.mod h1:eumQOmlWiOPt5WriQQqoM5y18pDHwha2N+QD+EUNTek= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v1.19.0 h1:ygXvpU1AoN1MhdzckN+PyD9QJOSD4x7kmXYlnfbA6JU= -github.com/prometheus/client_golang v1.19.0/go.mod h1:ZRM9uEAypZakd+q/x7+gmsvXdURP+DABIEIjnmDdp+k= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/prometheus/client_golang v1.20.1 h1:IMJXHOD6eARkQpxo8KkhgEVFlBNm+nkrFUyGlIu7Na8= +github.com/prometheus/client_golang v1.20.1/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -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.48.0 h1:QO8U2CdOzSn1BBsmXJXduaaW+dY/5QLjfB8svtSzKKE= -github.com/prometheus/common v0.48.0/go.mod h1:0/KsvlIEfPQCQ5I2iNSAWKPZziNCvRs5EC6ILDTlAPc= -github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k6Bo= -github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo= +github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= +github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= +github.com/prometheus/common v0.55.0 h1:KEi6DK7lXW/m7Ig5i47x0vRzuBsHuvJdi5ee6Y3G1dc= +github.com/prometheus/common v0.55.0/go.mod h1:2SECS4xJG1kd8XF9IcM1gMX6510RAEL65zxzNImwdc8= +github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= +github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= 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/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= +github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= github.com/rs/xid v1.4.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= github.com/rs/zerolog v1.29.0 h1:Zes4hju04hjbvkVkOhdl2HpZa+0PmVwigmo8XoORE5w= github.com/rs/zerolog v1.29.0/go.mod h1:NILgTygv/Uej1ra5XxGf82ZFSLk58MFGAUS2o6usyD0= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/spf13/afero v1.9.3 h1:41FoI0fD7OR7mGcKE/aOiLkGreyf8ifIOQmJANWogMk= github.com/spf13/afero v1.9.3/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y= -github.com/spf13/cast v1.5.0 h1:rj3WzYc11XZaIZMPKmwP96zkFEnnAmV8s6XbB2aY32w= -github.com/spf13/cast v1.5.0/go.mod h1:SpXXQ5YoyJw6s3/6cMTQuxvgRl3PCJiyaX9p6b155UU= -github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= -github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= +github.com/spf13/cast v1.6.0 h1:GEiTHELF+vaR5dhz3VqZfFSzZjYbgeKDpBxQVS4GYJ0= +github.com/spf13/cast v1.6.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= +github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= +github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= @@ -324,13 +329,14 @@ github.com/subosito/gotenv v1.4.2 h1:X1TuBLAMDFbaTAChgCBLu3DU3UPyELpnF2jjJ2cz/S8 github.com/subosito/gotenv v1.4.2/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0= 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/vektra/mockery/v2 v2.42.0 h1:xnP1KXjpcc1GD8jHRjgdpRIW4LDK5MdSMrhbJizAmaI= -github.com/vektra/mockery/v2 v2.42.0/go.mod h1:XNTE9RIu3deGAGQRVjP1VZxGpQNm0YedZx4oDs3prr8= +github.com/vektra/mockery/v2 v2.45.0 h1:TDKO9y0CPv+/gm7KVBOJfzMcBeK7Y044jvaNdgBBVik= +github.com/vektra/mockery/v2 v2.45.0/go.mod h1:XNTE9RIu3deGAGQRVjP1VZxGpQNm0YedZx4oDs3prr8= +github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= +github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= 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.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= @@ -351,10 +357,9 @@ golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8U 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-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= -golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.19.0 h1:ENy+Az/9Y1vSrlrvBSyna3PITt4tiZLf7sgCjZBX7Wo= -golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= +golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30= +golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -365,8 +370,8 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/exp v0.0.0-20230905200255-921286631fa9 h1:GoHiUyI/Tp2nVkLI2mCxVkOjsbSXD66ic0XW0js0R9g= -golang.org/x/exp v0.0.0-20230905200255-921286631fa9/go.mod h1:S2oDrQGGwySpoQPVqRShND87VCbxmc6bL1Yd2oYrm6k= +golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 h1:2dVuKD2vS7b0QIHQbpyTISPd0LeHDbnYEryqj5Q1ug8= +golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56/go.mod h1:M4RDyNAINzryxdtnbRXRL/OHtkFuWGRjvuhBJpk2IlY= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -390,9 +395,8 @@ 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.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -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/mod v0.19.0 h1:fEdghXQSo20giMthA7cd28ZC+jts4amQ3YMXiP5oMQ8= +golang.org/x/mod v0.19.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= @@ -426,9 +430,8 @@ golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwY golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.21.0 h1:AQyQV4dYCvJ7vGmJyKki9+PBdyvhkSd8EIx/qb0AYv4= -golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= +golang.org/x/net v0.27.0 h1:5K3Njcw06/l2y9vpGCSdcxWOYHOUk3dVNGDXN+FvAys= +golang.org/x/net v0.27.0/go.mod h1:dDi0PyhWNoiUOrAS8uXv/vnScO4wnHQO4mj9fn/RytE= 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= @@ -438,8 +441,8 @@ golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.17.0 h1:6m3ZPmLEFdVxKKWnKq4VqZ60gutO35zm+zrAHVmHyDQ= -golang.org/x/oauth2 v0.17.0/go.mod h1:OzPDGQiuQMguemayvdylqddI7qcD9lnSDb+1FiwQ5HA= +golang.org/x/oauth2 v0.22.0 h1:BzDx2FehcG7jJwgWLELCdmLuxk2i+x9UDpSiss2u0ZA= +golang.org/x/oauth2 v0.22.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= 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= @@ -450,12 +453,10 @@ golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -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/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M= +golang.org/x/sync v0.7.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-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190130150945-aca44879d564/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -495,26 +496,22 @@ golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.17.0 h1:25cE3gD+tdBA7lp7QfhuV+rJiE9YXTcS3VG1SqssI/Y= -golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= +golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.17.0 h1:mkTF7LCd6WGJNL3K1Ad7kwxNfYAW6a8a8QqtMblp/4U= -golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= +golang.org/x/term v0.22.0 h1:BbsgPEJULsl2fV/AT3v15Mjva5yXKQDyKf+TbDz7QJk= +golang.org/x/term v0.22.0/go.mod h1:F3qCibpT5AMpCRfhfT53vVJwhLtIVHhB9XDjfFvnMI4= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= 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.4/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/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4= +golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -570,15 +567,14 @@ golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4f golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= -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/tools v0.23.0 h1:SGsXPZ+2l4JsgaCKkx+FQ9YZ5XEtA1GZYuoDjenLjvg= +golang.org/x/tools v0.23.0/go.mod h1:pnu6ufv6vQkll6szChhK3C3L/ruaIv5eBeztNG8wtsI= 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= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 h1:+cNy6SZtPcJQH3LJVLOSmiC7MMxXNOb3PU/VUEz+EhU= -golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90= +golang.org/x/xerrors v0.0.0-20240716161551-93cc26a95ae9 h1:LLhsEBxRTBLuKlQxFBYUOU8xyFgXv6cOTp2HASDlsDk= +golang.org/x/xerrors v0.0.0-20240716161551-93cc26a95ae9/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90= gomodules.xyz/jsonpatch/v2 v2.4.0 h1:Ci3iUJyx9UeRx7CeFN8ARgGbkESwJK+KB9lLcWxY/Zw= gomodules.xyz/jsonpatch/v2 v2.4.0/go.mod h1:AH3dM2RI6uoBZxn3LVrfvJ3E0/9dG4cSrbuBJT4moAY= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= @@ -607,8 +603,6 @@ google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww 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/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= @@ -645,10 +639,8 @@ google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97 h1:SeZZZx0cP0fqUyA+oRzP9k7cSwJlvDFiROO72uwD6i0= -google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97/go.mod h1:t1VqOqqvce95G3hIDCT5FeO3YUc6Q4Oe24L/+rNMxRk= -google.golang.org/genproto/googleapis/api v0.0.0-20230920204549-e6e6cdab5c13 h1:U7+wNaVuSTaUqNvK2+osJ9ejEZxbjHHk8F2b6Hpx0AE= -google.golang.org/genproto/googleapis/api v0.0.0-20230920204549-e6e6cdab5c13/go.mod h1:RdyHbowztCGQySiCvQPgWQWgWhGnouTdCflKoDBt32U= +google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157 h1:7whR9kGa5LUwFtpLm2ArCEejtnxlGeLbAyjFY8sGNFw= +google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157/go.mod h1:99sLkeliLXfdj2J75X3Ho+rrVCaJze0uwN7zDDkjPVU= 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= @@ -675,15 +667,15 @@ google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2 google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= 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.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I= -google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= +google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= +gopkg.in/evanphx/json-patch.v4 v4.12.0 h1:n6jtcsulIzXPJaxegRbvFNNrZDjbij7ny3gmSPG+6V4= +gopkg.in/evanphx/json-patch.v4 v4.12.0/go.mod h1:p8EYWUEYMpynmqDbY58zCKCFZw8pRWMG4EsWvDvM72M= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= @@ -707,31 +699,29 @@ 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= -istio.io/api v1.20.2 h1:VjkJB1EfrZt77bcavr1P/3PrO8AP3lOSQsYiYOnGGBU= -istio.io/api v1.20.2/go.mod h1:hm1PE/mGdIAsjCDkTIAplP53H7TjO5LUQCiVvF26SVg= -istio.io/client-go v1.20.2 h1:FL99qw5f5W+QFPHutLpGOoPmoKgLwNFrGCEemAvLm00= -istio.io/client-go v1.20.2/go.mod h1:mub0nwPDAj98cjns7KYLzbvDk0Fg9rx0k2o+KZ4UIUY= -k8s.io/api v0.29.2 h1:hBC7B9+MU+ptchxEqTNW2DkUosJpp1P+Wn6YncZ474A= -k8s.io/api v0.29.2/go.mod h1:sdIaaKuU7P44aoyyLlikSLayT6Vb7bvJNCX105xZXY0= -k8s.io/apiextensions-apiserver v0.29.2 h1:UK3xB5lOWSnhaCk0RFZ0LUacPZz9RY4wi/yt2Iu+btg= -k8s.io/apiextensions-apiserver v0.29.2/go.mod h1:aLfYjpA5p3OwtqNXQFkhJ56TB+spV8Gc4wfMhUA3/b8= -k8s.io/apimachinery v0.29.2 h1:EWGpfJ856oj11C52NRCHuU7rFDwxev48z+6DSlGNsV8= -k8s.io/apimachinery v0.29.2/go.mod h1:6HVkd1FwxIagpYrHSwJlQqZI3G9LfYWRPAkUvLnXTKU= -k8s.io/client-go v0.29.2 h1:FEg85el1TeZp+/vYJM7hkDlSTFZ+c5nnK44DJ4FyoRg= -k8s.io/client-go v0.29.2/go.mod h1:knlvFZE58VpqbQpJNbCbctTVXcd35mMyAAwBdpt4jrA= -k8s.io/component-base v0.29.2 h1:lpiLyuvPA9yV1aQwGLENYyK7n/8t6l3nn3zAtFTJYe8= -k8s.io/component-base v0.29.2/go.mod h1:BfB3SLrefbZXiBfbM+2H1dlat21Uewg/5qtKOl8degM= -k8s.io/klog/v2 v2.110.1 h1:U/Af64HJf7FcwMcXyKm2RPM22WZzyR7OSpYj5tg3cL0= -k8s.io/klog/v2 v2.110.1/go.mod h1:YGtd1984u+GgbuZ7e08/yBuAfKLSO0+uR1Fhi6ExXjo= -k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00 h1:aVUu9fTY98ivBPKR9Y5w/AuzbMm96cd3YHRTU83I780= -k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00/go.mod h1:AsvuZPBlUDVuCdzJ87iajxtXuR9oktsTctW/R9wwouA= -k8s.io/utils v0.0.0-20240102154912-e7106e64919e h1:eQ/4ljkx21sObifjzXwlPKpdGLrCfRziVtos3ofG/sQ= -k8s.io/utils v0.0.0-20240102154912-e7106e64919e/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +istio.io/api v1.23.0 h1:yqv3lNW6XSYS5XkbEkxsmFROXIQznp4lFWqj7xKEqCA= +istio.io/api v1.23.0/go.mod h1:QPSTGXuIQdnZFEm3myf9NZ5uBMwCdJWUvfj9ZZ+2oBM= +istio.io/client-go v1.23.0 h1://xojbifr84q29WE3eMx74p36hD4lvcejX1KxE3iJvY= +istio.io/client-go v1.23.0/go.mod h1:3qX/KBS5aR47QV4JhphcZl5ysnZ53x78TBjNQLM2TC4= +k8s.io/api v0.31.0 h1:b9LiSjR2ym/SzTOlfMHm1tr7/21aD7fSkqgD/CVJBCo= +k8s.io/api v0.31.0/go.mod h1:0YiFF+JfFxMM6+1hQei8FY8M7s1Mth+z/q7eF1aJkTE= +k8s.io/apiextensions-apiserver v0.31.0 h1:fZgCVhGwsclj3qCw1buVXCV6khjRzKC5eCFt24kyLSk= +k8s.io/apiextensions-apiserver v0.31.0/go.mod h1:b9aMDEYaEe5sdK+1T0KU78ApR/5ZVp4i56VacZYEHxk= +k8s.io/apimachinery v0.31.0 h1:m9jOiSr3FoSSL5WO9bjm1n6B9KROYYgNZOb4tyZ1lBc= +k8s.io/apimachinery v0.31.0/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo= +k8s.io/client-go v0.31.0 h1:QqEJzNjbN2Yv1H79SsS+SWnXkBgVu4Pj3CJQgbx0gI8= +k8s.io/client-go v0.31.0/go.mod h1:Y9wvC76g4fLjmU0BA+rV+h2cncoadjvjjkkIGoTLcGU= +k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= +k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= +k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 h1:BZqlfIlq5YbRMFko6/PM7FjZpUb45WallggurYhKGag= +k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340/go.mod h1:yD4MZYeKMBwQKVht279WycxKyM84kkAx2DPrTXaeb98= +k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 h1:pUdcCO1Lk/tbT5ztQWOBi5HBgbBP1J8+AsQnQCKsi8A= +k8s.io/utils v0.0.0-20240711033017-18e509b52bc8/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= 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.17.2 h1:FwHwD1CTUemg0pW2otk7/U5/i5m2ymzvOXdbeGOUvw0= -sigs.k8s.io/controller-runtime v0.17.2/go.mod h1:+MngTvIQQQhfXtwfdGw/UOQ/aIaqsYywfCINOtwMO/s= +sigs.k8s.io/controller-runtime v0.19.0 h1:nWVM7aq+Il2ABxwiCizrVDSlmDcshi9llbaFbC0ji/Q= +sigs.k8s.io/controller-runtime v0.19.0/go.mod h1:iRmWllt8IlaLjvTTDLhRBXIEtkCK6hwVBJJsYS9Ajf4= 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.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+sGiqlzvrtq4= diff --git a/hack/ci/Makefile b/hack/ci/Makefile index 8951681fc..321e97b6c 100644 --- a/hack/ci/Makefile +++ b/hack/ci/Makefile @@ -3,7 +3,7 @@ KYMA_CLI ?= "${PROJECT_ROOT}/${KYMA}" CLUSTER_NAME ?= kyma REGISTRY_PORT ?= 5001 K3D_VERSION ?= 1.28.4 -GARDENER_KUBE_VERSION ?= 1.28.4 +GARDENER_CLUSTER_VERSION ?= 1.28.4 .PHONY: create-kyma-system-ns create-kyma-system-ns: ## Create kyma-system namespace. @@ -13,6 +13,13 @@ create-kyma-system-ns: ## Create kyma-system namespace. create-k3d: ## Create k3d with kyma CRDs. "${KYMA_CLI}" provision k3d -p 8081:80@loadbalancer -p 8443:443@loadbalancer --registry-port ${REGISTRY_PORT} --name ${CLUSTER_NAME} -k ${K3D_VERSION} --ci +.PHONY: install-eventing-module +install-eventing-module: + $(eval LATEST_EVENTING_VERSION := $(shell curl -s https://api.github.com/repos/kyma-project/eventing-manager/releases/latest | jq -r '.tag_name')) + @echo "Deploying Eventing Manager: ${LATEST_EVENTING_VERSION}" + kubectl apply -f https://github.com/kyma-project/eventing-manager/releases/latest/download/eventing-manager.yaml + kubectl apply -f https://github.com/kyma-project/eventing-manager/releases/latest/download/eventing-default-cr.yaml + .PHONY: install-nats-module install-nats-module: $(eval LATEST_NATS_VERSION := $(shell curl -s https://api.github.com/repos/kyma-project/nats-manager/releases/latest | jq -r '.tag_name')) @@ -22,7 +29,7 @@ install-nats-module: .PHONY: install-istio-module install-istio-module: - $(eval LATEST_ISTIO_VERSION := $(shell curl -s https://api.github.com/repos/kyma-project/istio-manager/releases/latest | jq -r '.tag_name')) + $(eval LATEST_ISTIO_VERSION := $(shell curl -s https://api.github.com/repos/kyma-project/istio/releases/latest | jq -r '.tag_name')) @echo "Deploying Istio Manager: ${LATEST_ISTIO_VERSION}" kubectl label namespace kyma-system istio-injection=enabled --overwrite kubectl apply -f https://github.com/kyma-project/istio/releases/latest/download/istio-manager.yaml @@ -49,27 +56,31 @@ apply-peerauthentication-crd: .PHONY: wait-nats-cr-ready wait-nats-cr-ready: - kubectl wait nats.operator.kyma-project.io -n kyma-system eventing-nats --timeout=300s --for=jsonpath='{.status.state}'=Ready + kubectl wait nats.operator.kyma-project.io -n kyma-system eventing-nats --timeout=600s --for=jsonpath='{.status.state}'=Ready + +.PHONY: wait-nats-cr-warning +wait-nats-cr-warning: + kubectl wait nats.operator.kyma-project.io -n kyma-system eventing-nats --timeout=600s --for=jsonpath='{.status.state}'=Warning .PHONY: wait-eventing-cr-ready wait-eventing-cr-ready: - kubectl wait eventing.operator.kyma-project.io -n kyma-system eventing --timeout=300s --for=jsonpath='{.status.state}'=Ready + kubectl wait eventing.operator.kyma-project.io -n kyma-system eventing --timeout=600s --for=jsonpath='{.status.state}'=Ready .PHONY: wait-eventing-cr-ready-with-backend wait-eventing-cr-ready-with-backend: - kubectl wait eventing.operator.kyma-project.io -n kyma-system eventing --timeout=300s --for=jsonpath='{.status.state}'=Ready --for=jsonpath='{.status.activeBackend}'=${ACTIVE_BACKEND} + kubectl wait eventing.operator.kyma-project.io -n kyma-system eventing --timeout=600s --for=jsonpath='{.status.state}'=Ready --for=jsonpath='{.status.activeBackend}'=${ACTIVE_BACKEND} .PHONY: wait-istio-cr-ready wait-istio-cr-ready: - kubectl wait istios.operator.kyma-project.io -n kyma-system default --timeout=300s --for=jsonpath='{.status.state}'=Ready + kubectl wait istios.operator.kyma-project.io -n kyma-system default --timeout=600s --for=jsonpath='{.status.state}'=Ready .PHONY: wait-api-gateway-cr-ready wait-api-gateway-cr-ready: - kubectl wait apigateways.operator.kyma-project.io -n kyma-system default --timeout=300s --for=jsonpath='{.status.state}'=Ready + kubectl wait apigateways.operator.kyma-project.io -n kyma-system default --timeout=600s --for=jsonpath='{.status.state}'=Ready .PHONY: provision-gardener-cluster provision-gardener-cluster: - GARDENER_CLUSTER_VERSION="${GARDENER_KUBE_VERSION}" PROJECT_ROOT="${PROJECT_ROOT}" KYMA_CLI="${KYMA_CLI}" ${PROJECT_ROOT}/scripts/gardener/aws/provision.sh + GARDENER_CLUSTER_VERSION="${GARDENER_CLUSTER_VERSION}" PROJECT_ROOT="${PROJECT_ROOT}" ${PROJECT_ROOT}/scripts/gardener/aws/provision.sh .PHONY: deprovision-gardener-cluster deprovision-gardener-cluster: diff --git a/internal/connection/nats/mocks/builder.go b/internal/connection/nats/mocks/builder.go index 8ab36d3f1..28a6fa843 100644 --- a/internal/connection/nats/mocks/builder.go +++ b/internal/connection/nats/mocks/builder.go @@ -15,3 +15,7 @@ func NewBuilder(conn *Connection) *Builder { func (b *Builder) Build() natsconnection.Interface { return b.conn } + +func (b *Builder) SetConnection(conn *Connection) { + b.conn = conn +} diff --git a/internal/connection/nats/mocks/connection.go b/internal/connection/nats/mocks/connection.go index b09eee073..ca9010f94 100644 --- a/internal/connection/nats/mocks/connection.go +++ b/internal/connection/nats/mocks/connection.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.42.0. DO NOT EDIT. +// Code generated by mockery v2.45.0. DO NOT EDIT. package mocks diff --git a/internal/controller/eventing/subscription/eventmesh/reconciler.go b/internal/controller/eventing/subscription/eventmesh/reconciler.go index d8138d912..4b269c4b8 100644 --- a/internal/controller/eventing/subscription/eventmesh/reconciler.go +++ b/internal/controller/eventing/subscription/eventmesh/reconciler.go @@ -19,6 +19,7 @@ import ( klabels "k8s.io/apimachinery/pkg/labels" ktypes "k8s.io/apimachinery/pkg/types" "k8s.io/client-go/tools/record" + "k8s.io/utils/ptr" kctrl "sigs.k8s.io/controller-runtime" "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/controller-runtime/pkg/controller" @@ -753,19 +754,23 @@ func (r *Reconciler) emitConditionEvent(subscription *eventingv1alpha2.Subscript // SetupUnmanaged creates a controller under the client control. func (r *Reconciler) SetupUnmanaged(ctx context.Context, mgr kctrl.Manager) error { - ctru, err := controller.NewUnmanaged(reconcilerName, mgr, controller.Options{Reconciler: r}) + opts := controller.Options{Reconciler: r, SkipNameValidation: ptr.To(true)} + ctru, err := controller.NewUnmanaged(reconcilerName, mgr, opts) if err != nil { return fmt.Errorf("failed to create unmanaged controller: %w", err) } - if err := ctru.Watch(source.Kind(mgr.GetCache(), &eventingv1alpha2.Subscription{}), - &handler.EnqueueRequestForObject{}); err != nil { + if err := ctru.Watch(source.Kind(mgr.GetCache(), &eventingv1alpha2.Subscription{}, + &handler.TypedEnqueueRequestForObject[*eventingv1alpha2.Subscription]{})); err != nil { return fmt.Errorf("failed to watch subscriptions: %w", err) } - apiRuleEventHandler := handler.EnqueueRequestForOwner(r.Scheme(), mgr.GetRESTMapper(), - &eventingv1alpha2.Subscription{}) - if err := ctru.Watch(source.Kind(mgr.GetCache(), &apigatewayv1beta1.APIRule{}), apiRuleEventHandler); err != nil { + apiRuleEventHandler := handler.TypedEnqueueRequestForOwner[*apigatewayv1beta1.APIRule]( + r.Scheme(), + mgr.GetRESTMapper(), + &eventingv1alpha2.Subscription{}, + ) + if err := ctru.Watch(source.Kind(mgr.GetCache(), &apigatewayv1beta1.APIRule{}, apiRuleEventHandler)); err != nil { return fmt.Errorf("failed to watch APIRule: %w", err) } diff --git a/internal/controller/eventing/subscription/jetstream/reconciler.go b/internal/controller/eventing/subscription/jetstream/reconciler.go index 199f2f027..0aedf5645 100644 --- a/internal/controller/eventing/subscription/jetstream/reconciler.go +++ b/internal/controller/eventing/subscription/jetstream/reconciler.go @@ -11,6 +11,7 @@ import ( "go.uber.org/zap" ktypes "k8s.io/apimachinery/pkg/types" "k8s.io/client-go/tools/record" + "k8s.io/utils/ptr" kctrl "sigs.k8s.io/controller-runtime" "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/controller-runtime/pkg/controller" @@ -68,20 +69,20 @@ func NewReconciler(client client.Client, jsBackend jetstream.Backend, // SetupUnmanaged creates a controller under the client control. func (r *Reconciler) SetupUnmanaged(ctx context.Context, mgr kctrl.Manager) error { - ctru, err := controller.NewUnmanaged(reconcilerName, mgr, controller.Options{Reconciler: r}) + opts := controller.Options{Reconciler: r, SkipNameValidation: ptr.To(true)} + ctru, err := controller.NewUnmanaged(reconcilerName, mgr, opts) if err != nil { r.namedLogger().Errorw("Failed to create unmanaged controller", "error", err) return err } - if err := ctru.Watch(source.Kind(mgr.GetCache(), &eventingv1alpha2.Subscription{}), - &handler.EnqueueRequestForObject{}); err != nil { + if err := ctru.Watch(source.Kind(mgr.GetCache(), &eventingv1alpha2.Subscription{}, + &handler.TypedEnqueueRequestForObject[*eventingv1alpha2.Subscription]{})); err != nil { r.namedLogger().Errorw("Failed to setup watch for subscriptions", "error", err) return err } - if err := ctru.Watch(&source.Channel{Source: r.customEventsChannel}, - &handler.EnqueueRequestForObject{}); err != nil { + if err := ctru.Watch(source.Channel(r.customEventsChannel, &handler.EnqueueRequestForObject{})); err != nil { r.namedLogger().Errorw("Failed to setup watch for custom channel", "error", err) return err } diff --git a/internal/controller/eventing/subscription/validator/mocks/SubscriptionValidator.go b/internal/controller/eventing/subscription/validator/mocks/SubscriptionValidator.go index 8805be501..694be2157 100644 --- a/internal/controller/eventing/subscription/validator/mocks/SubscriptionValidator.go +++ b/internal/controller/eventing/subscription/validator/mocks/SubscriptionValidator.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.42.0. DO NOT EDIT. +// Code generated by mockery v2.45.0. DO NOT EDIT. package mocks diff --git a/internal/controller/operator/eventing/controller.go b/internal/controller/operator/eventing/controller.go index 54846398a..3e135be11 100644 --- a/internal/controller/operator/eventing/controller.go +++ b/internal/controller/operator/eventing/controller.go @@ -83,7 +83,7 @@ var ( // Reconciler reconciles an Eventing object // -//go:generate go run github.com/vektra/mockery/v2 --name=Controller --dir=../../../../vendor/sigs.k8s.io/controller-runtime/pkg/controller --outpkg=mocks --case=underscore +//go:generate go run github.com/vektra/mockery/v2 --name=TypedController --dir=../../../../vendor/sigs.k8s.io/controller-runtime/pkg/controller --outpkg=mocks --case=underscore //go:generate go run github.com/vektra/mockery/v2 --name=Manager --dir=../../../../vendor/sigs.k8s.io/controller-runtime/pkg/manager --outpkg=mocks --case=underscore type Reconciler struct { client.Client @@ -309,7 +309,7 @@ func (r *Reconciler) SetupWithManager(mgr kctrl.Manager) error { }, ), ). - WatchesRawSource(&source.Channel{Source: r.genericEvents}, &handler.EnqueueRequestForObject{}). + WatchesRawSource(source.Channel(r.genericEvents, &handler.EnqueueRequestForObject{})). WithOptions(controller.Options{ MaxConcurrentReconciles: 0, }). @@ -319,25 +319,32 @@ func (r *Reconciler) SetupWithManager(mgr kctrl.Manager) error { } func (r *Reconciler) watchResource(kind client.Object, eventing *operatorv1alpha1.Eventing) error { - err := r.controller.Watch( - source.Kind(r.ctrlManager.GetCache(), kind), - handler.EnqueueRequestsFromMapFunc(func(_ context.Context, obj client.Object) []reconcile.Request { - // Enqueue a reconcile request for the eventing resource - return []reconcile.Request{ - {NamespacedName: types.NamespacedName{ - Namespace: eventing.Namespace, - Name: eventing.Name, - }}, - } - }), - predicate.ResourceVersionChangedPredicate{}, - predicate.Funcs{ - // don't reconcile for create events - CreateFunc: r.SkipEnqueueOnCreate(), - UpdateFunc: r.SkipEnqueueOnUpdateAfterSemanticCompare("CR/CRB", "eventing"), - }, + resourceHandler := handler.EnqueueRequestsFromMapFunc(func(_ context.Context, obj client.Object) []reconcile.Request { + // Enqueue a reconcile request for the eventing resource + return []reconcile.Request{ + {NamespacedName: types.NamespacedName{ + Namespace: eventing.Namespace, + Name: eventing.Name, + }}, + } + }) + + // define ignore creation predicate + ignoreCreationPredicate := predicate.TypedFuncs[client.Object]{ + // don't reconcile for create events + CreateFunc: r.SkipEnqueueOnCreate(), + UpdateFunc: r.SkipEnqueueOnUpdateAfterSemanticCompare("CR/CRB", "eventing"), + } + + return r.controller.Watch( + source.Kind[client.Object]( + r.ctrlManager.GetCache(), + kind, + resourceHandler, + predicate.ResourceVersionChangedPredicate{}, + ignoreCreationPredicate, + ), ) - return err } func (r *Reconciler) startNATSCRWatch(eventing *operatorv1alpha1.Eventing) error { @@ -351,19 +358,27 @@ func (r *Reconciler) startNATSCRWatch(eventing *operatorv1alpha1.Eventing) error r.natsWatchers[eventing.Namespace] = natsWatcher } - if err := r.controller.Watch(&source.Channel{Source: natsWatcher.GetEventsChannel()}, - handler.EnqueueRequestsFromMapFunc(func(ctx context.Context, obj client.Object) []reconcile.Request { + resourceHandler := handler.EnqueueRequestsFromMapFunc( + func(ctx context.Context, obj client.Object) []reconcile.Request { return []reconcile.Request{ {NamespacedName: types.NamespacedName{ Namespace: eventing.Namespace, Name: eventing.Name, }}, } - }), - predicate.ResourceVersionChangedPredicate{}, - ); err != nil { + }, + ) + + src := source.Channel[client.Object]( + natsWatcher.GetEventsChannel(), + resourceHandler, + source.WithPredicates[client.Object, kctrl.Request](predicate.ResourceVersionChangedPredicate{}), + ) + + if err := r.controller.Watch(src); err != nil { return err } + natsWatcher.Start() return nil @@ -696,6 +711,13 @@ func (r *Reconciler) SetKubeClient(kubeClient k8s.Client) { r.kubeClient = kubeClient } +func (r *Reconciler) ResetNATSConnection() { + if r.natsConnection != nil { + r.natsConnection.Disconnect() + } + r.natsConnection = nil +} + func (r *Reconciler) namedLogger() *zap.SugaredLogger { return r.logger.WithContext().Named(ControllerName) } diff --git a/internal/controller/operator/eventing/controller_test.go b/internal/controller/operator/eventing/controller_test.go index f9c9728d6..9cff22a3b 100644 --- a/internal/controller/operator/eventing/controller_test.go +++ b/internal/controller/operator/eventing/controller_test.go @@ -12,6 +12,7 @@ import ( "sigs.k8s.io/controller-runtime/pkg/event" operatorv1alpha1 "github.com/kyma-project/eventing-manager/api/operator/v1alpha1" + eventingcontrollermocks "github.com/kyma-project/eventing-manager/internal/controller/operator/eventing/mocks" eventingmocks "github.com/kyma-project/eventing-manager/pkg/eventing/mocks" submgrmanagermocks "github.com/kyma-project/eventing-manager/pkg/subscriptionmanager/manager/mocks" "github.com/kyma-project/eventing-manager/pkg/watcher" @@ -395,7 +396,7 @@ func Test_startNatsCRWatch(t *testing.T) { // Create mock watcher and controller natsWatcher := new(watchermocks.Watcher) natsWatcher.On("IsStarted").Return(testcase.watchStarted) - mockController := new(watchermocks.Controller) + mockController := new(eventingcontrollermocks.Controller) if !testcase.watchStarted { natsWatcher.On("Start").Once() natsWatcher.On("GetEventsChannel").Return(make(<-chan event.GenericEvent)).Once() diff --git a/internal/controller/operator/eventing/integrationtests/natsconnection/integration_test.go b/internal/controller/operator/eventing/integrationtests/natsconnection/integration_test.go index b290587e3..5ba4f2f21 100644 --- a/internal/controller/operator/eventing/integrationtests/natsconnection/integration_test.go +++ b/internal/controller/operator/eventing/integrationtests/natsconnection/integration_test.go @@ -1,6 +1,7 @@ package natsconnection import ( + "os" "testing" natstestutils "github.com/kyma-project/nats-manager/testutils" @@ -8,7 +9,6 @@ import ( gomegatypes "github.com/onsi/gomega/types" "github.com/pkg/errors" "github.com/stretchr/testify/mock" - "github.com/stretchr/testify/require" kappsv1 "k8s.io/api/apps/v1" operatorv1alpha1 "github.com/kyma-project/eventing-manager/api/operator/v1alpha1" @@ -20,7 +20,41 @@ import ( testutilsintegration "github.com/kyma-project/eventing-manager/test/utils/integration" ) +const ( + projectRootDir = "../../../../../../" +) + +var testEnvironment *testutilsintegration.TestEnvironment + +// TestMain pre-hook and post-hook to run before and after all tests. +func TestMain(m *testing.M) { + // Note: The setup will provision a single K8s env and + // all the tests need to create and use a separate namespace + + // setup env test + var err error + testEnvironment, err = testutilsintegration.NewTestEnvironment(testutilsintegration.TestEnvironmentConfig{ + ProjectRootDir: projectRootDir, + NATSCRDEnabled: true, + }, nil) + if err != nil { + panic(err) + } + + // run tests + code := m.Run() + + // tear down test env + if err = testEnvironment.TearDown(); err != nil { + panic(err) + } + + os.Exit(code) +} + // Test_NATSConnection tests the Eventing CR status when connecting to NATS. +// +//nolint:tparallel // test-cases uses a shared NATSConnectionBuilder and requires different mocks. func Test_NATSConnection(t *testing.T) { t.Parallel() // given @@ -38,6 +72,7 @@ func Test_NATSConnection(t *testing.T) { conn := &natsconnectionmocks.Connection{} conn.On("Connect", mock.Anything, mock.Anything).Return(nil) conn.On("IsConnected").Return(true) + conn.On("Disconnect").Return() return conn }, wantMatches: gomega.And( @@ -53,6 +88,7 @@ func Test_NATSConnection(t *testing.T) { conn := &natsconnectionmocks.Connection{} conn.On("Connect", mock.Anything, mock.Anything).Return(natsconnectionerrors.ErrCannotConnect) conn.On("IsConnected").Return(false) + conn.On("Disconnect").Return() return conn }, wantMatches: gomega.And( @@ -70,6 +106,7 @@ func Test_NATSConnection(t *testing.T) { conn := &natsconnectionmocks.Connection{} conn.On("Connect", mock.Anything, mock.Anything).Return(ErrAny) conn.On("IsConnected").Return(false) + conn.On("Disconnect").Return() return conn }, wantMatches: gomega.And( @@ -84,21 +121,12 @@ func Test_NATSConnection(t *testing.T) { } for _, tc := range testCases { - tcc := tc - - t.Run(tcc.name, func(t *testing.T) { - t.Parallel() - + tc := tc + t.Run(tc.name, func(t *testing.T) { // setup environment - testEnvironment, err := testutilsintegration.NewTestEnvironment( - testutilsintegration.TestEnvironmentConfig{ - NATSCRDEnabled: true, - ProjectRootDir: "../../../../../../", - }, - tcc.givenNATSConnectionMock(), - ) - require.NoError(t, err) - defer func() { require.NoError(t, testEnvironment.TearDown()) }() // always cleanup + testEnvironment.Reconciler.ResetNATSConnection() + testEnvironment.NATSConnectionBuilder.SetConnection(tc.givenNATSConnectionMock()) + eventingcontroller.IsDeploymentReady = func(deployment *kappsv1.Deployment) bool { return true } // prepare resources @@ -112,7 +140,7 @@ func Test_NATSConnection(t *testing.T) { testEnvironment.EnsureK8sResourceCreated(t, eventingCR) // then - testEnvironment.GetEventingAssert(gomega.NewWithT(t), eventingCR).Should(tcc.wantMatches) + testEnvironment.GetEventingAssert(gomega.NewWithT(t), eventingCR).Should(tc.wantMatches) }) } } diff --git a/internal/controller/operator/eventing/mocks/controller.go b/internal/controller/operator/eventing/mocks/controller.go index 34ad00b8f..e42828cda 100644 --- a/internal/controller/operator/eventing/mocks/controller.go +++ b/internal/controller/operator/eventing/mocks/controller.go @@ -1,256 +1,10 @@ -// Code generated by mockery v2.42.0. DO NOT EDIT. - package mocks import ( - context "context" - - handler "sigs.k8s.io/controller-runtime/pkg/handler" - - logr "github.com/go-logr/logr" - - mock "github.com/stretchr/testify/mock" - - predicate "sigs.k8s.io/controller-runtime/pkg/predicate" - - reconcile "sigs.k8s.io/controller-runtime/pkg/reconcile" - - source "sigs.k8s.io/controller-runtime/pkg/source" + kctrlruntimereconcile "sigs.k8s.io/controller-runtime/pkg/reconcile" ) -// Controller is an autogenerated mock type for the Controller type -type Controller struct { - mock.Mock -} - -type Controller_Expecter struct { - mock *mock.Mock -} - -func (_m *Controller) EXPECT() *Controller_Expecter { - return &Controller_Expecter{mock: &_m.Mock} -} - -// GetLogger provides a mock function with given fields: -func (_m *Controller) GetLogger() logr.Logger { - ret := _m.Called() - - if len(ret) == 0 { - panic("no return value specified for GetLogger") - } - - var r0 logr.Logger - if rf, ok := ret.Get(0).(func() logr.Logger); ok { - r0 = rf() - } else { - r0 = ret.Get(0).(logr.Logger) - } - - return r0 -} - -// Controller_GetLogger_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetLogger' -type Controller_GetLogger_Call struct { - *mock.Call -} - -// GetLogger is a helper method to define mock.On call -func (_e *Controller_Expecter) GetLogger() *Controller_GetLogger_Call { - return &Controller_GetLogger_Call{Call: _e.mock.On("GetLogger")} -} - -func (_c *Controller_GetLogger_Call) Run(run func()) *Controller_GetLogger_Call { - _c.Call.Run(func(args mock.Arguments) { - run() - }) - return _c -} - -func (_c *Controller_GetLogger_Call) Return(_a0 logr.Logger) *Controller_GetLogger_Call { - _c.Call.Return(_a0) - return _c -} - -func (_c *Controller_GetLogger_Call) RunAndReturn(run func() logr.Logger) *Controller_GetLogger_Call { - _c.Call.Return(run) - return _c -} - -// Reconcile provides a mock function with given fields: _a0, _a1 -func (_m *Controller) Reconcile(_a0 context.Context, _a1 reconcile.Request) (reconcile.Result, error) { - ret := _m.Called(_a0, _a1) - - if len(ret) == 0 { - panic("no return value specified for Reconcile") - } - - var r0 reconcile.Result - var r1 error - if rf, ok := ret.Get(0).(func(context.Context, reconcile.Request) (reconcile.Result, error)); ok { - return rf(_a0, _a1) - } - if rf, ok := ret.Get(0).(func(context.Context, reconcile.Request) reconcile.Result); ok { - r0 = rf(_a0, _a1) - } else { - r0 = ret.Get(0).(reconcile.Result) - } - - if rf, ok := ret.Get(1).(func(context.Context, reconcile.Request) error); ok { - r1 = rf(_a0, _a1) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// Controller_Reconcile_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Reconcile' -type Controller_Reconcile_Call struct { - *mock.Call -} - -// Reconcile is a helper method to define mock.On call -// - _a0 context.Context -// - _a1 reconcile.Request -func (_e *Controller_Expecter) Reconcile(_a0 interface{}, _a1 interface{}) *Controller_Reconcile_Call { - return &Controller_Reconcile_Call{Call: _e.mock.On("Reconcile", _a0, _a1)} -} - -func (_c *Controller_Reconcile_Call) Run(run func(_a0 context.Context, _a1 reconcile.Request)) *Controller_Reconcile_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context), args[1].(reconcile.Request)) - }) - return _c -} - -func (_c *Controller_Reconcile_Call) Return(_a0 reconcile.Result, _a1 error) *Controller_Reconcile_Call { - _c.Call.Return(_a0, _a1) - return _c -} - -func (_c *Controller_Reconcile_Call) RunAndReturn(run func(context.Context, reconcile.Request) (reconcile.Result, error)) *Controller_Reconcile_Call { - _c.Call.Return(run) - return _c -} - -// Start provides a mock function with given fields: ctx -func (_m *Controller) Start(ctx context.Context) error { - ret := _m.Called(ctx) - - if len(ret) == 0 { - panic("no return value specified for Start") - } - - var r0 error - if rf, ok := ret.Get(0).(func(context.Context) error); ok { - r0 = rf(ctx) - } else { - r0 = ret.Error(0) - } - - return r0 -} - -// Controller_Start_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Start' -type Controller_Start_Call struct { - *mock.Call -} - -// Start is a helper method to define mock.On call -// - ctx context.Context -func (_e *Controller_Expecter) Start(ctx interface{}) *Controller_Start_Call { - return &Controller_Start_Call{Call: _e.mock.On("Start", ctx)} -} - -func (_c *Controller_Start_Call) Run(run func(ctx context.Context)) *Controller_Start_Call { - _c.Call.Run(func(args mock.Arguments) { - run(args[0].(context.Context)) - }) - return _c -} - -func (_c *Controller_Start_Call) Return(_a0 error) *Controller_Start_Call { - _c.Call.Return(_a0) - return _c -} - -func (_c *Controller_Start_Call) RunAndReturn(run func(context.Context) error) *Controller_Start_Call { - _c.Call.Return(run) - return _c -} - -// Watch provides a mock function with given fields: src, eventhandler, predicates -func (_m *Controller) Watch(src source.Source, eventhandler handler.EventHandler, predicates ...predicate.Predicate) error { - _va := make([]interface{}, len(predicates)) - for _i := range predicates { - _va[_i] = predicates[_i] - } - var _ca []interface{} - _ca = append(_ca, src, eventhandler) - _ca = append(_ca, _va...) - ret := _m.Called(_ca...) - - if len(ret) == 0 { - panic("no return value specified for Watch") - } - - var r0 error - if rf, ok := ret.Get(0).(func(source.Source, handler.EventHandler, ...predicate.Predicate) error); ok { - r0 = rf(src, eventhandler, predicates...) - } else { - r0 = ret.Error(0) - } - - return r0 -} - -// Controller_Watch_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Watch' -type Controller_Watch_Call struct { - *mock.Call -} - -// Watch is a helper method to define mock.On call -// - src source.Source -// - eventhandler handler.EventHandler -// - predicates ...predicate.Predicate -func (_e *Controller_Expecter) Watch(src interface{}, eventhandler interface{}, predicates ...interface{}) *Controller_Watch_Call { - return &Controller_Watch_Call{Call: _e.mock.On("Watch", - append([]interface{}{src, eventhandler}, predicates...)...)} -} - -func (_c *Controller_Watch_Call) Run(run func(src source.Source, eventhandler handler.EventHandler, predicates ...predicate.Predicate)) *Controller_Watch_Call { - _c.Call.Run(func(args mock.Arguments) { - variadicArgs := make([]predicate.Predicate, len(args)-2) - for i, a := range args[2:] { - if a != nil { - variadicArgs[i] = a.(predicate.Predicate) - } - } - run(args[0].(source.Source), args[1].(handler.EventHandler), variadicArgs...) - }) - return _c -} - -func (_c *Controller_Watch_Call) Return(_a0 error) *Controller_Watch_Call { - _c.Call.Return(_a0) - return _c -} - -func (_c *Controller_Watch_Call) RunAndReturn(run func(source.Source, handler.EventHandler, ...predicate.Predicate) error) *Controller_Watch_Call { - _c.Call.Return(run) - return _c -} - -// NewController creates a new instance of Controller. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -// The first argument is typically a *testing.T value. -func NewController(t interface { - mock.TestingT - Cleanup(func()) -}) *Controller { - mock := &Controller{} - mock.Mock.Test(t) - - t.Cleanup(func() { mock.AssertExpectations(t) }) +// Update it when the issue: https://github.com/vektra/mockery/issues/787#issuecomment-2296180438 is fixed. - return mock -} +// Controller is an autogenerated mock type for the Controller type. +type Controller = TypedController[kctrlruntimereconcile.Request] diff --git a/internal/controller/operator/eventing/mocks/manager.go b/internal/controller/operator/eventing/mocks/manager.go index af1a9e78b..5fc48c22a 100644 --- a/internal/controller/operator/eventing/mocks/manager.go +++ b/internal/controller/operator/eventing/mocks/manager.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.42.0. DO NOT EDIT. +// Code generated by mockery v2.45.0. DO NOT EDIT. package mocks @@ -137,6 +137,53 @@ func (_c *Manager_AddHealthzCheck_Call) RunAndReturn(run func(string, healthz.Ch return _c } +// AddMetricsServerExtraHandler provides a mock function with given fields: path, handler +func (_m *Manager) AddMetricsServerExtraHandler(path string, handler http.Handler) error { + ret := _m.Called(path, handler) + + if len(ret) == 0 { + panic("no return value specified for AddMetricsServerExtraHandler") + } + + var r0 error + if rf, ok := ret.Get(0).(func(string, http.Handler) error); ok { + r0 = rf(path, handler) + } else { + r0 = ret.Error(0) + } + + return r0 +} + +// Manager_AddMetricsServerExtraHandler_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'AddMetricsServerExtraHandler' +type Manager_AddMetricsServerExtraHandler_Call struct { + *mock.Call +} + +// AddMetricsServerExtraHandler is a helper method to define mock.On call +// - path string +// - handler http.Handler +func (_e *Manager_Expecter) AddMetricsServerExtraHandler(path interface{}, handler interface{}) *Manager_AddMetricsServerExtraHandler_Call { + return &Manager_AddMetricsServerExtraHandler_Call{Call: _e.mock.On("AddMetricsServerExtraHandler", path, handler)} +} + +func (_c *Manager_AddMetricsServerExtraHandler_Call) Run(run func(path string, handler http.Handler)) *Manager_AddMetricsServerExtraHandler_Call { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(string), args[1].(http.Handler)) + }) + return _c +} + +func (_c *Manager_AddMetricsServerExtraHandler_Call) Return(_a0 error) *Manager_AddMetricsServerExtraHandler_Call { + _c.Call.Return(_a0) + return _c +} + +func (_c *Manager_AddMetricsServerExtraHandler_Call) RunAndReturn(run func(string, http.Handler) error) *Manager_AddMetricsServerExtraHandler_Call { + _c.Call.Return(run) + return _c +} + // AddReadyzCheck provides a mock function with given fields: name, check func (_m *Manager) AddReadyzCheck(name string, check healthz.Checker) error { ret := _m.Called(name, check) diff --git a/internal/controller/operator/eventing/mocks/nats_config_handler.go b/internal/controller/operator/eventing/mocks/nats_config_handler.go index 69ae56b19..81421d69e 100644 --- a/internal/controller/operator/eventing/mocks/nats_config_handler.go +++ b/internal/controller/operator/eventing/mocks/nats_config_handler.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.42.0. DO NOT EDIT. +// Code generated by mockery v2.45.0. DO NOT EDIT. package mocks diff --git a/internal/controller/operator/eventing/mocks/typed_controller.go b/internal/controller/operator/eventing/mocks/typed_controller.go new file mode 100644 index 000000000..811b48f1d --- /dev/null +++ b/internal/controller/operator/eventing/mocks/typed_controller.go @@ -0,0 +1,236 @@ +// Code generated by mockery v2.45.0. DO NOT EDIT. + +package mocks + +import ( + context "context" + + logr "github.com/go-logr/logr" + + mock "github.com/stretchr/testify/mock" + + reconcile "sigs.k8s.io/controller-runtime/pkg/reconcile" + + source "sigs.k8s.io/controller-runtime/pkg/source" +) + +// TypedController is an autogenerated mock type for the TypedController type +type TypedController[request comparable] struct { + mock.Mock +} + +type TypedController_Expecter[request comparable] struct { + mock *mock.Mock +} + +func (_m *TypedController[request]) EXPECT() *TypedController_Expecter[request] { + return &TypedController_Expecter[request]{mock: &_m.Mock} +} + +// GetLogger provides a mock function with given fields: +func (_m *TypedController[request]) GetLogger() logr.Logger { + ret := _m.Called() + + if len(ret) == 0 { + panic("no return value specified for GetLogger") + } + + var r0 logr.Logger + if rf, ok := ret.Get(0).(func() logr.Logger); ok { + r0 = rf() + } else { + r0 = ret.Get(0).(logr.Logger) + } + + return r0 +} + +// TypedController_GetLogger_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetLogger' +type TypedController_GetLogger_Call[request comparable] struct { + *mock.Call +} + +// GetLogger is a helper method to define mock.On call +func (_e *TypedController_Expecter[request]) GetLogger() *TypedController_GetLogger_Call[request] { + return &TypedController_GetLogger_Call[request]{Call: _e.mock.On("GetLogger")} +} + +func (_c *TypedController_GetLogger_Call[request]) Run(run func()) *TypedController_GetLogger_Call[request] { + _c.Call.Run(func(args mock.Arguments) { + run() + }) + return _c +} + +func (_c *TypedController_GetLogger_Call[request]) Return(_a0 logr.Logger) *TypedController_GetLogger_Call[request] { + _c.Call.Return(_a0) + return _c +} + +func (_c *TypedController_GetLogger_Call[request]) RunAndReturn(run func() logr.Logger) *TypedController_GetLogger_Call[request] { + _c.Call.Return(run) + return _c +} + +// Reconcile provides a mock function with given fields: _a0, _a1 +func (_m *TypedController[request]) Reconcile(_a0 context.Context, _a1 reconcile.Request) (reconcile.Result, error) { + ret := _m.Called(_a0, _a1) + + if len(ret) == 0 { + panic("no return value specified for Reconcile") + } + + var r0 reconcile.Result + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, reconcile.Request) (reconcile.Result, error)); ok { + return rf(_a0, _a1) + } + if rf, ok := ret.Get(0).(func(context.Context, reconcile.Request) reconcile.Result); ok { + r0 = rf(_a0, _a1) + } else { + r0 = ret.Get(0).(reconcile.Result) + } + + if rf, ok := ret.Get(1).(func(context.Context, reconcile.Request) error); ok { + r1 = rf(_a0, _a1) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// TypedController_Reconcile_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Reconcile' +type TypedController_Reconcile_Call[request comparable] struct { + *mock.Call +} + +// Reconcile is a helper method to define mock.On call +// - _a0 context.Context +// - _a1 reconcile.Request +func (_e *TypedController_Expecter[request]) Reconcile(_a0 interface{}, _a1 interface{}) *TypedController_Reconcile_Call[request] { + return &TypedController_Reconcile_Call[request]{Call: _e.mock.On("Reconcile", _a0, _a1)} +} + +func (_c *TypedController_Reconcile_Call[request]) Run(run func(_a0 context.Context, _a1 reconcile.Request)) *TypedController_Reconcile_Call[request] { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context), args[1].(reconcile.Request)) + }) + return _c +} + +func (_c *TypedController_Reconcile_Call[request]) Return(_a0 reconcile.Result, _a1 error) *TypedController_Reconcile_Call[request] { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *TypedController_Reconcile_Call[request]) RunAndReturn(run func(context.Context, reconcile.Request) (reconcile.Result, error)) *TypedController_Reconcile_Call[request] { + _c.Call.Return(run) + return _c +} + +// Start provides a mock function with given fields: ctx +func (_m *TypedController[request]) Start(ctx context.Context) error { + ret := _m.Called(ctx) + + if len(ret) == 0 { + panic("no return value specified for Start") + } + + var r0 error + if rf, ok := ret.Get(0).(func(context.Context) error); ok { + r0 = rf(ctx) + } else { + r0 = ret.Error(0) + } + + return r0 +} + +// TypedController_Start_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Start' +type TypedController_Start_Call[request comparable] struct { + *mock.Call +} + +// Start is a helper method to define mock.On call +// - ctx context.Context +func (_e *TypedController_Expecter[request]) Start(ctx interface{}) *TypedController_Start_Call[request] { + return &TypedController_Start_Call[request]{Call: _e.mock.On("Start", ctx)} +} + +func (_c *TypedController_Start_Call[request]) Run(run func(ctx context.Context)) *TypedController_Start_Call[request] { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(context.Context)) + }) + return _c +} + +func (_c *TypedController_Start_Call[request]) Return(_a0 error) *TypedController_Start_Call[request] { + _c.Call.Return(_a0) + return _c +} + +func (_c *TypedController_Start_Call[request]) RunAndReturn(run func(context.Context) error) *TypedController_Start_Call[request] { + _c.Call.Return(run) + return _c +} + +// Watch provides a mock function with given fields: src +func (_m *TypedController[request]) Watch(src source.TypedSource[reconcile.Request]) error { + ret := _m.Called(src) + + if len(ret) == 0 { + panic("no return value specified for Watch") + } + + var r0 error + if rf, ok := ret.Get(0).(func(source.TypedSource[reconcile.Request]) error); ok { + r0 = rf(src) + } else { + r0 = ret.Error(0) + } + + return r0 +} + +// TypedController_Watch_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Watch' +type TypedController_Watch_Call[request comparable] struct { + *mock.Call +} + +// Watch is a helper method to define mock.On call +// - src source.TypedSource[reconcile.Request] +func (_e *TypedController_Expecter[request]) Watch(src interface{}) *TypedController_Watch_Call[request] { + return &TypedController_Watch_Call[request]{Call: _e.mock.On("Watch", src)} +} + +func (_c *TypedController_Watch_Call[request]) Run(run func(src source.TypedSource[reconcile.Request])) *TypedController_Watch_Call[request] { + _c.Call.Run(func(args mock.Arguments) { + run(args[0].(source.TypedSource[reconcile.Request])) + }) + return _c +} + +func (_c *TypedController_Watch_Call[request]) Return(_a0 error) *TypedController_Watch_Call[request] { + _c.Call.Return(_a0) + return _c +} + +func (_c *TypedController_Watch_Call[request]) RunAndReturn(run func(source.TypedSource[reconcile.Request]) error) *TypedController_Watch_Call[request] { + _c.Call.Return(run) + return _c +} + +// NewTypedController creates a new instance of TypedController. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewTypedController[request comparable](t interface { + mock.TestingT + Cleanup(func()) +}) *TypedController[request] { + mock := &TypedController[request]{} + mock.Mock.Test(t) + + t.Cleanup(func() { mock.AssertExpectations(t) }) + + return mock +} diff --git a/pkg/backend/jetstream/mocks/Backend.go b/pkg/backend/jetstream/mocks/Backend.go index 576bdf1d5..d12389c5a 100644 --- a/pkg/backend/jetstream/mocks/Backend.go +++ b/pkg/backend/jetstream/mocks/Backend.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.42.0. DO NOT EDIT. +// Code generated by mockery v2.45.0. DO NOT EDIT. package mocks diff --git a/pkg/backend/jetstream/mocks/JetStreamContext.go b/pkg/backend/jetstream/mocks/JetStreamContext.go index 056c9628d..3f833ba16 100644 --- a/pkg/backend/jetstream/mocks/JetStreamContext.go +++ b/pkg/backend/jetstream/mocks/JetStreamContext.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.42.0. DO NOT EDIT. +// Code generated by mockery v2.45.0. DO NOT EDIT. package mocks diff --git a/pkg/ems/api/events/client/mocks/PublisherManager.go b/pkg/ems/api/events/client/mocks/PublisherManager.go index d2bdc3022..4ba90e7d7 100644 --- a/pkg/ems/api/events/client/mocks/PublisherManager.go +++ b/pkg/ems/api/events/client/mocks/PublisherManager.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.42.0. DO NOT EDIT. +// Code generated by mockery v2.45.0. DO NOT EDIT. package mocks diff --git a/pkg/eventing/mocks/manager.go b/pkg/eventing/mocks/manager.go index 28b63adb1..5bd320d93 100644 --- a/pkg/eventing/mocks/manager.go +++ b/pkg/eventing/mocks/manager.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.42.0. DO NOT EDIT. +// Code generated by mockery v2.45.0. DO NOT EDIT. package mocks diff --git a/pkg/k8s/mocks/client.go b/pkg/k8s/mocks/client.go index 772ec36dc..c23347786 100644 --- a/pkg/k8s/mocks/client.go +++ b/pkg/k8s/mocks/client.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.42.0. DO NOT EDIT. +// Code generated by mockery v2.45.0. DO NOT EDIT. package mocks diff --git a/pkg/subscriptionmanager/manager/mocks/manager.go b/pkg/subscriptionmanager/manager/mocks/manager.go index 38ca7fbd4..ba94d03ca 100644 --- a/pkg/subscriptionmanager/manager/mocks/manager.go +++ b/pkg/subscriptionmanager/manager/mocks/manager.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.42.0. DO NOT EDIT. +// Code generated by mockery v2.45.0. DO NOT EDIT. package mocks diff --git a/pkg/subscriptionmanager/mocks/manager_factory.go b/pkg/subscriptionmanager/mocks/manager_factory.go index e0fc82d84..7ae411f87 100644 --- a/pkg/subscriptionmanager/mocks/manager_factory.go +++ b/pkg/subscriptionmanager/mocks/manager_factory.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.42.0. DO NOT EDIT. +// Code generated by mockery v2.45.0. DO NOT EDIT. package mocks diff --git a/pkg/watcher/mocks/watcher.go b/pkg/watcher/mocks/watcher.go index dbd7cb9ec..3ae1d6d29 100644 --- a/pkg/watcher/mocks/watcher.go +++ b/pkg/watcher/mocks/watcher.go @@ -1,10 +1,12 @@ -// Code generated by mockery v2.42.0. DO NOT EDIT. +// Code generated by mockery v2.45.0. DO NOT EDIT. package mocks import ( - mock "github.com/stretchr/testify/mock" + client "sigs.k8s.io/controller-runtime/pkg/client" event "sigs.k8s.io/controller-runtime/pkg/event" + + mock "github.com/stretchr/testify/mock" ) // Watcher is an autogenerated mock type for the Watcher type @@ -21,19 +23,19 @@ func (_m *Watcher) EXPECT() *Watcher_Expecter { } // GetEventsChannel provides a mock function with given fields: -func (_m *Watcher) GetEventsChannel() <-chan event.GenericEvent { +func (_m *Watcher) GetEventsChannel() <-chan event.TypedGenericEvent[client.Object] { ret := _m.Called() if len(ret) == 0 { panic("no return value specified for GetEventsChannel") } - var r0 <-chan event.GenericEvent - if rf, ok := ret.Get(0).(func() <-chan event.GenericEvent); ok { + var r0 <-chan event.TypedGenericEvent[client.Object] + if rf, ok := ret.Get(0).(func() <-chan event.TypedGenericEvent[client.Object]); ok { r0 = rf() } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(<-chan event.GenericEvent) + r0 = ret.Get(0).(<-chan event.TypedGenericEvent[client.Object]) } } @@ -57,12 +59,12 @@ func (_c *Watcher_GetEventsChannel_Call) Run(run func()) *Watcher_GetEventsChann return _c } -func (_c *Watcher_GetEventsChannel_Call) Return(_a0 <-chan event.GenericEvent) *Watcher_GetEventsChannel_Call { +func (_c *Watcher_GetEventsChannel_Call) Return(_a0 <-chan event.TypedGenericEvent[client.Object]) *Watcher_GetEventsChannel_Call { _c.Call.Return(_a0) return _c } -func (_c *Watcher_GetEventsChannel_Call) RunAndReturn(run func() <-chan event.GenericEvent) *Watcher_GetEventsChannel_Call { +func (_c *Watcher_GetEventsChannel_Call) RunAndReturn(run func() <-chan event.TypedGenericEvent[client.Object]) *Watcher_GetEventsChannel_Call { _c.Call.Return(run) return _c } diff --git a/scripts/gardener/aws/provision.sh b/scripts/gardener/aws/provision.sh index 17471ef81..3489b9ae2 100755 --- a/scripts/gardener/aws/provision.sh +++ b/scripts/gardener/aws/provision.sh @@ -62,9 +62,6 @@ gardener::validate_and_default() { export GARDENER_CLUSTER_VERSION=$(kubectl --kubeconfig="${GARDENER_KUBECONFIG}" get cloudprofiles.core.gardener.cloud aws -o go-template='{{range .spec.kubernetes.versions}}{{if eq .classification "supported"}}{{.version}}{{break}}{{end}}{{end}}') fi - # Detect supported linux version. - GARDEN_LINUX_VERSION=$(kubectl --kubeconfig="${GARDENER_KUBECONFIG}" get cloudprofiles.core.gardener.cloud aws -o go-template='{{range .spec.machineImages}}{{if eq .name "gardenlinux"}}{{range .versions}}{{if eq .classification "supported"}}{{.version}}{{end}}{{end}}{{end}}{{end}}') - # print configurations for debugging purposes: log::banner "Configurations:" echo "CLUSTER_NAME: ${CLUSTER_NAME}" @@ -75,28 +72,77 @@ gardener::validate_and_default() { echo "SCALER_MAX: ${SCALER_MAX}" echo "GARDENER_CLUSTER_VERSION: ${GARDENER_CLUSTER_VERSION}" echo "RETRY_ATTEMPTS ${RETRY_ATTEMPTS}" - echo "GARDEN_LINUX_VERSION ${GARDEN_LINUX_VERSION}" } gardener::provision_cluster() { log::banner "Provision cluster: \"${CLUSTER_NAME}\"" - # decreasing attempts to 2 because we will try to create new cluster from scratch on exit code other than 0 - ${KYMA_CLI} provision gardener aws \ - --secret "${GARDENER_PROVIDER_SECRET_NAME}" \ - --name "${CLUSTER_NAME}" \ - --project "${GARDENER_PROJECT_NAME}" \ - --credentials "${GARDENER_KUBECONFIG}" \ - --region "${GARDENER_REGION}" \ - --zones "${GARDENER_ZONES}" \ - --type "${MACHINE_TYPE}" \ - --scaler-min ${SCALER_MIN} \ - --scaler-max ${SCALER_MAX} \ - --kube-version="${GARDENER_CLUSTER_VERSION}" \ - --gardenlinux-version "${GARDEN_LINUX_VERSION}" \ - --attempts ${RETRY_ATTEMPTS} \ - --verbose \ - --hibernation-start "" + cat << EOF | kubectl apply --kubeconfig="${GARDENER_KUBECONFIG}" -f - +apiVersion: core.gardener.cloud/v1beta1 +kind: Shoot +metadata: + name: ${CLUSTER_NAME} +spec: + secretBindingName: ${GARDENER_PROVIDER_SECRET_NAME} + cloudProfileName: aws + dns: + providers: + - type: aws-route53 + secretName: aws-route53-secret + region: ${GARDENER_REGION} + purpose: evaluation + provider: + type: aws + infrastructureConfig: + apiVersion: aws.provider.extensions.gardener.cloud/v1alpha1 + kind: InfrastructureConfig + networks: + vpc: + cidr: 10.250.0.0/16 + zones: + - name: ${GARDENER_REGION}a + internal: 10.250.112.0/22 + public: 10.250.96.0/22 + workers: 10.250.0.0/19 + workers: + - name: cpu-worker + minimum: ${SCALER_MIN} + maximum: ${SCALER_MAX} + machine: + type: ${MACHINE_TYPE} + volume: + type: gp2 + size: 50Gi + zones: + - ${GARDENER_REGION}a + networking: + type: calico + pods: 100.96.0.0/11 + nodes: 10.250.0.0/16 + services: 100.64.0.0/13 + kubernetes: + version: ${GARDENER_CLUSTER_VERSION} + hibernation: + enabled: false + addons: + nginxIngress: + enabled: false +EOF + + echo "waiting fo cluster to be ready..." + kubectl wait --kubeconfig="${GARDENER_KUBECONFIG}" --for=condition=EveryNodeReady shoot/${CLUSTER_NAME} --timeout=17m + + # create kubeconfig request, that creates a Kubeconfig, which is valid for one day + kubectl create --kubeconfig="${GARDENER_KUBECONFIG}" \ + -f <(printf '{"spec":{"expirationSeconds":86400}}') \ + --raw /apis/core.gardener.cloud/v1beta1/namespaces/garden-${GARDENER_PROJECT_NAME}/shoots/${CLUSTER_NAME}/adminkubeconfig | \ + jq -r ".status.kubeconfig" | \ + base64 -d > ${CLUSTER_NAME}_kubeconfig.yaml + + # merge with the existing kubeconfig settings + mkdir -p ~/.kube + KUBECONFIG="~/.kube/config:${CLUSTER_NAME}_kubeconfig.yaml" kubectl config view --flatten --merge > merged_kubeconfig.yaml + mv merged_kubeconfig.yaml ~/.kube/config } ## MAIN Logic diff --git a/test/utils/integration/integration.go b/test/utils/integration/integration.go index 23ad01200..44842f7fc 100644 --- a/test/utils/integration/integration.go +++ b/test/utils/integration/integration.go @@ -66,16 +66,17 @@ const ( // TestEnvironment provides mocked resources for integration tests. type TestEnvironment struct { - EnvTestInstance *envtest.Environment - k8sClient client.Client - KubeClient k8s.Client - K8sDynamicClient *dynamic.DynamicClient - Reconciler *eventingcontroller.Reconciler - Logger *logger.Logger - Recorder *record.EventRecorder - TestCancelFn context.CancelFunc - SubManagerFactory subscriptionmanager.ManagerFactory - JetStreamSubManager manager.Manager + EnvTestInstance *envtest.Environment + k8sClient client.Client + KubeClient k8s.Client + K8sDynamicClient *dynamic.DynamicClient + Reconciler *eventingcontroller.Reconciler + Logger *logger.Logger + Recorder *record.EventRecorder + TestCancelFn context.CancelFunc + SubManagerFactory subscriptionmanager.ManagerFactory + JetStreamSubManager manager.Manager + NATSConnectionBuilder *natsconnectionmocks.Builder } type TestEnvironmentConfig struct { @@ -191,6 +192,7 @@ func NewTestEnvironment(config TestEnvironmentConfig, connMock *natsconnectionmo connMock.On("Disconnect").Return() } + natsConnectionBuilder := natsconnectionmocks.NewBuilder(connMock) // create a new watcher eventingReconciler := eventingcontroller.NewReconciler( k8sClient, @@ -204,7 +206,7 @@ func NewTestEnvironment(config TestEnvironmentConfig, connMock *natsconnectionmo subManagerFactoryMock, opts, config.AllowedEventingCR, - natsconnectionmocks.NewBuilder(connMock), + natsConnectionBuilder, ) if err = (eventingReconciler).SetupWithManager(ctrlMgr); err != nil { @@ -229,16 +231,17 @@ func NewTestEnvironment(config TestEnvironmentConfig, connMock *natsconnectionmo } return &TestEnvironment{ - k8sClient: k8sClient, - KubeClient: kubeClient, - K8sDynamicClient: dynamicClient, - Reconciler: eventingReconciler, - Logger: ctrLogger, - Recorder: &recorder, - EnvTestInstance: testEnv, - TestCancelFn: cancelCtx, - SubManagerFactory: subManagerFactoryMock, - JetStreamSubManager: jetStreamSubManagerMock, + k8sClient: k8sClient, + KubeClient: kubeClient, + K8sDynamicClient: dynamicClient, + Reconciler: eventingReconciler, + Logger: ctrLogger, + Recorder: &recorder, + EnvTestInstance: testEnv, + TestCancelFn: cancelCtx, + SubManagerFactory: subManagerFactoryMock, + JetStreamSubManager: jetStreamSubManagerMock, + NATSConnectionBuilder: natsConnectionBuilder, }, nil }