diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index d960500..531bef9 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -1,8 +1,12 @@ name: Lint on: - push: + workflow_dispatch: pull_request: + merge_group: + push: + branches: + - main jobs: lint: @@ -10,14 +14,12 @@ jobs: runs-on: ubuntu-latest steps: - name: Clone the code - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Setup Go - uses: actions/setup-go@v5 + uses: actions/setup-go@v6 with: go-version-file: go.mod - name: Run linter - uses: golangci/golangci-lint-action@v8 - with: - version: v2.3.0 + run: make lint diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..a6efc09 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,63 @@ +name: Release + +on: + workflow_dispatch: + push: + branches: + - 'main' + tags: + - 'v*' + pull_request: + branches: + - main + merge_group: + +jobs: + goreleaser: + name: Release + runs-on: ubuntu-latest + steps: + - name: Check out code into the Go module directory + uses: actions/checkout@v5 + with: + fetch-depth: 0 + + - name: Install Go + uses: actions/setup-go@v6 + with: + go-version-file: "go.mod" + + - name: Docker Login + uses: docker/login-action@v3 + if: ${{ github.event_name != 'pull_request' }} + with: + registry: quay.io + username: ${{ secrets.QUAY_USERNAME }} + password: ${{ secrets.QUAY_PASSWORD }} + + - name: Set the release related variables + run: | + if [[ $GITHUB_REF == refs/tags/* ]]; then + # Release tags. + echo VERSION="$(echo "${GITHUB_REF#refs/tags/}" | sed 's/^v//')" >> $GITHUB_ENV + echo RELEASE=true >> $GITHUB_ENV + elif [[ $GITHUB_REF == refs/heads/main ]]; then + # 'main' branch build. + echo TAG=snapshot >> $GITHUB_ENV + echo RELEASE=true >> $GITHUB_ENV + fi + + - name: Release + run: make release + + - name: Create Release + id: create_release + uses: actions/create-release@v1 + if: ${{ github.event_name != 'pull_request' }} + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: ${{ github.ref }} + release_name: Release ${{ github.ref }} + draft: false + prerelease: false diff --git a/.github/workflows/test-e2e.yml b/.github/workflows/test-e2e.yml index 68fd1ed..2c2fcd1 100644 --- a/.github/workflows/test-e2e.yml +++ b/.github/workflows/test-e2e.yml @@ -10,10 +10,10 @@ jobs: runs-on: ubuntu-latest steps: - name: Clone the code - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Setup Go - uses: actions/setup-go@v5 + uses: actions/setup-go@v6 with: go-version-file: go.mod diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index fc2e80d..a2f0c57 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,8 +1,12 @@ name: Tests on: - push: + workflow_dispatch: pull_request: + merge_group: + push: + branches: + - main jobs: test: @@ -10,10 +14,10 @@ jobs: runs-on: ubuntu-latest steps: - name: Clone the code - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Setup Go - uses: actions/setup-go@v5 + uses: actions/setup-go@v6 with: go-version-file: go.mod diff --git a/.gitignore b/.gitignore index ada68ff..62df8bc 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ +# Generated catalog +catalog/catalog.json + # Binaries for programs and plugins *.exe *.exe~ diff --git a/Makefile b/Makefile index ccf7517..cd35cdc 100644 --- a/Makefile +++ b/Makefile @@ -3,7 +3,7 @@ # To re-generate a bundle for another specific version without changing the standard setup, you can: # - use the VERSION as arg of the bundle target (e.g make bundle VERSION=0.0.2) # - use environment variables to overwrite this value (e.g export VERSION=0.0.2) -VERSION ?= 0.0.5 +VERSION ?= 0.0.0 # CHANNELS define the bundle channels used in the bundle. # Add a new line here if you would like to change its default config. (E.g CHANNELS = "candidate,fast,stable") @@ -24,6 +24,11 @@ BUNDLE_DEFAULT_CHANNEL := --default-channel=$(DEFAULT_CHANNEL) endif BUNDLE_METADATA_OPTS ?= $(BUNDLE_CHANNELS) $(BUNDLE_DEFAULT_CHANNEL) +RELEASE ?= false +ifeq ($(RELEASE), true) + DOCKER_BUILDX_FLAGS += --push +endif + # IMAGE_TAG_BASE defines the docker.io namespace and part of the image name for remote images. # This variable is used to construct full image tags for bundle and catalog images. # @@ -31,12 +36,14 @@ BUNDLE_METADATA_OPTS ?= $(BUNDLE_CHANNELS) $(BUNDLE_DEFAULT_CHANNEL) # quay.io/olmtest/webhook-operator:$VERSION and quay.io/olmtest/webhook-operator-bundle:$VERSION. IMAGE_TAG_BASE ?= quay.io/olmtest/webhook-operator +TAG ?= v$(VERSION) + # BUNDLE_IMG defines the image:tag used for the bundle. # You can use it as an arg. (E.g make bundle-build BUNDLE_IMG=/:) -BUNDLE_IMG ?= $(IMAGE_TAG_BASE)-bundle:v$(VERSION) +BUNDLE_IMG ?= $(IMAGE_TAG_BASE)-bundle:$(TAG) # The image tag given to the resulting catalog image (e.g. make catalog-build CATALOG_IMG=example.com/operator-catalog:v0.2.0). -CATALOG_IMG ?= $(IMAGE_TAG_BASE)-index:v$(VERSION) +CATALOG_IMG ?= $(IMAGE_TAG_BASE)-index:$(TAG) # BUNDLE_GEN_FLAGS are the flags passed to the operator-sdk generate bundle command BUNDLE_GEN_FLAGS ?= -q --overwrite --version $(VERSION) $(BUNDLE_METADATA_OPTS) @@ -54,7 +61,7 @@ endif OPERATOR_SDK_VERSION ?= v1.41.1 # Image URL to use all building/pushing image targets -IMG ?= quay.io/olmtest/webhook-operator:v$(VERSION) +IMG ?= quay.io/olmtest/webhook-operator:$(TAG) # Get the currently used golang install path (in GOPATH/bin, unless GOBIN is set) ifeq (,$(shell go env GOBIN)) @@ -116,6 +123,14 @@ vet: ## Run go vet against code. test: manifests generate fmt vet setup-envtest ## Run tests. KUBEBUILDER_ASSETS="$(shell $(ENVTEST) use $(ENVTEST_K8S_VERSION) --bin-dir $(LOCALBIN) -p path)" go test $$(go list ./... | grep -v /e2e) -coverprofile cover.out +.PHONY: tidy +tidy: + go mod tidy + +.PHONY: verify +verify: tidy fmt manifests generate + git diff --exit-code + # TODO(user): To use a different vendor for e2e tests, modify the setup under 'tests/e2e'. # The default setup assumes Kind is pre-installed and builds/loads the Manager Docker image locally. # CertManager is installed by default; skip with: @@ -191,24 +206,10 @@ docker-buildx: ## Build and push docker image for the manager for cross-platform sed -e '1 s/\(^FROM\)/FROM --platform=\$$\{BUILDPLATFORM\}/; t' -e ' 1,// s//FROM --platform=\$$\{BUILDPLATFORM\}/' Dockerfile > Dockerfile.cross - $(CONTAINER_TOOL) buildx create --name webhook-operator-builder $(CONTAINER_TOOL) buildx use webhook-operator-builder - - $(CONTAINER_TOOL) buildx build --push --platform=$(PLATFORMS) --tag ${IMG} -f Dockerfile.cross . + - $(CONTAINER_TOOL) buildx build $(DOCKER_BUILDX_FLAGS) --platform=$(PLATFORMS) --tag ${IMG} -f Dockerfile.cross . - $(CONTAINER_TOOL) buildx rm webhook-operator-builder rm Dockerfile.cross -.PHONY: bundle-docker-buildx -bundle-docker-buildx: ## Build and push bundle image with cross-platform support - - $(CONTAINER_TOOL) buildx create --name webhook-operator-bundle-builder - $(CONTAINER_TOOL) buildx use webhook-operator-bundle-builder - - $(CONTAINER_TOOL) buildx build --push --platform=$(PLATFORMS) --tag ${BUNDLE_IMG} -f bundle.Dockerfile . - - $(CONTAINER_TOOL) buildx rm webhook-operator-bundle-builder - -.PHONY: index-docker-buildx -index-docker-buildx: ## Build and push docker image for the manager for cross-platform support - - $(CONTAINER_TOOL) buildx create --name webhook-operator-index-builder - $(CONTAINER_TOOL) buildx use webhook-operator-index-builder - - $(CONTAINER_TOOL) buildx build --push --platform=$(PLATFORMS) --tag ${CATALOG_IMG} -f catalog.Dockerfile . - - $(CONTAINER_TOOL) buildx rm webhook-operator-index-builder - .PHONY: build-installer build-installer: manifests generate kustomize ## Generate a consolidated YAML with CRDs and deployment. mkdir -p dist @@ -337,3 +338,44 @@ bundle-build: ## Build the bundle image. .PHONY: bundle-push bundle-push: ## Push the bundle image. $(MAKE) docker-push IMG=$(BUNDLE_IMG) + +.PHONY: bundle-docker-buildx +bundle-docker-buildx: bundle ## Build and push bundle image with cross-platform support + - $(CONTAINER_TOOL) buildx create --name webhook-operator-bundle-builder + $(CONTAINER_TOOL) buildx use webhook-operator-bundle-builder + - $(CONTAINER_TOOL) buildx build $(DOCKER_BUILDX_FLAGS) --platform=$(PLATFORMS) --tag ${BUNDLE_IMG} -f bundle.Dockerfile . + - $(CONTAINER_TOOL) buildx rm webhook-operator-bundle-builder + +.PHONY: opm +OPM = $(LOCALBIN)/opm +opm: ## Download opm locally if necessary. +ifeq (,$(wildcard $(OPM))) +ifeq (,$(shell which opm 2>/dev/null)) + @{ \ + set -e ;\ + mkdir -p $(dir $(OPM)) ;\ + OS=$(shell go env GOOS) && ARCH=$(shell go env GOARCH) && \ + curl -sSLo $(OPM) https://github.com/operator-framework/operator-registry/releases/latest/download/$${OS}-$${ARCH}-opm ;\ + chmod +x $(OPM) ;\ + } +else +OPM = $(shell which opm) +endif +endif + +.PHONY: build-catalog +build-catalog: opm + @# Create base catalog from template + sed "s/{{ VERSION }}/$(VERSION)/g" catalog/catalog.tpl > catalog/catalog.json + @# Add bundle FBC + $(OPM) render ./bundle + +.PHONY: catalog-docker-buildx +catalog-docker-buildx: build-catalog ## Build and push docker image for the manager for cross-platform support + - $(CONTAINER_TOOL) buildx create --name webhook-operator-index-builder + $(CONTAINER_TOOL) buildx use webhook-operator-index-builder + - $(CONTAINER_TOOL) buildx build $(DOCKER_BUILDX_FLAGS) --platform=$(PLATFORMS) --tag ${CATALOG_IMG} -f catalog.Dockerfile . + - $(CONTAINER_TOOL) buildx rm webhook-operator-index-builder + +.PHONY: release +release: docker-buildx bundle-docker-buildx catalog-docker-buildx diff --git a/bundle/manifests/webhook-operator.clusterserviceversion.yaml b/bundle/manifests/webhook-operator.clusterserviceversion.yaml index 29a1238..a61147d 100644 --- a/bundle/manifests/webhook-operator.clusterserviceversion.yaml +++ b/bundle/manifests/webhook-operator.clusterserviceversion.yaml @@ -30,10 +30,10 @@ metadata: } ] capabilities: Basic Install - createdAt: "2025-09-29T13:06:16Z" + createdAt: "2025-09-30T13:14:21Z" operators.operatorframework.io/builder: operator-sdk-v1.41.1 operators.operatorframework.io/project_layout: go.kubebuilder.io/v4 - name: webhook-operator.v0.0.5 + name: webhook-operator.v0.0.0 namespace: placeholder spec: apiservicedefinitions: {} @@ -126,7 +126,7 @@ spec: - --webhook-cert-path=/tmp/k8s-webhook-server/serving-certs command: - /manager - image: quay.io/olmtest/webhook-operator:v0.0.5 + image: quay.io/olmtest/webhook-operator:v0.0.0 livenessProbe: httpGet: path: /healthz @@ -228,7 +228,7 @@ spec: maturity: alpha provider: name: operator-framework - version: 0.0.5 + version: 0.0.0 webhookdefinitions: - admissionReviewVersions: - v1 diff --git a/catalog.Dockerfile b/catalog.Dockerfile index 0e24d7d..e932935 100644 --- a/catalog.Dockerfile +++ b/catalog.Dockerfile @@ -1,9 +1,10 @@ # The builder image is expected to contain # /bin/opm (with serve subcommand) -FROM quay.io/operator-framework/opm:latest as builder +FROM quay.io/operator-framework/opm:latest AS builder # Copy FBC root into image at /configs and pre-populate serve cache -ADD catalog /configs +ADD catalog/.indexignore /configs/.indexignore +ADD catalog/catalog.json /configs/catalog.json RUN ["/bin/opm", "serve", "/configs", "--cache-dir=/tmp/cache", "--cache-only"] FROM quay.io/operator-framework/opm:latest diff --git a/catalog/.indexignore b/catalog/.indexignore new file mode 100644 index 0000000..dc38940 --- /dev/null +++ b/catalog/.indexignore @@ -0,0 +1,3 @@ +/expected_all.json +/catalog.tpl +..* diff --git a/catalog/catalog.json b/catalog/catalog.json deleted file mode 100644 index 333a70a..0000000 --- a/catalog/catalog.json +++ /dev/null @@ -1,104 +0,0 @@ -{ - "schema": "olm.package", - "name": "webhook-operator", - "defaultChannel": "alpha" -} -{ - "schema": "olm.channel", - "name": "alpha", - "package": "webhook-operator", - "entries": [ - { - "name": "webhook-operator.v0.0.5" - } - ] -} -{ - "schema": "olm.bundle", - "name": "webhook-operator.v0.0.5", - "package": "webhook-operator", - "image": "quay.io/olmtest/webhook-operator-bundle:v0.0.5", - "properties": [ - { - "type": "olm.gvk", - "value": { - "group": "webhook.operators.coreos.io", - "kind": "WebhookTest", - "version": "v1" - } - }, - { - "type": "olm.gvk", - "value": { - "group": "webhook.operators.coreos.io", - "kind": "WebhookTest", - "version": "v2" - } - }, - { - "type": "olm.package", - "value": { - "packageName": "webhook-operator", - "version": "0.0.5" - } - }, - { - "type": "olm.bundle.object", - "value": { - "data": "eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiY2VydC1tYW5hZ2VyLmlvL2luamVjdC1jYS1mcm9tIjoid2ViaG9vay1vcGVyYXRvci1zeXN0ZW0vd2ViaG9vay1vcGVyYXRvci1zZXJ2aW5nLWNlcnQiLCJjb250cm9sbGVyLWdlbi5rdWJlYnVpbGRlci5pby92ZXJzaW9uIjoidjAuMTguMCJ9LCJjcmVhdGlvblRpbWVzdGFtcCI6bnVsbCwibmFtZSI6IndlYmhvb2t0ZXN0cy53ZWJob29rLm9wZXJhdG9ycy5jb3Jlb3MuaW8ifSwic3BlYyI6eyJjb252ZXJzaW9uIjp7InN0cmF0ZWd5IjoiV2ViaG9vayIsIndlYmhvb2siOnsiY2xpZW50Q29uZmlnIjp7InNlcnZpY2UiOnsibmFtZSI6IndlYmhvb2stb3BlcmF0b3Itd2ViaG9vay1zZXJ2aWNlIiwibmFtZXNwYWNlIjoid2ViaG9vay1vcGVyYXRvci1zeXN0ZW0iLCJwYXRoIjoiL2NvbnZlcnQifX0sImNvbnZlcnNpb25SZXZpZXdWZXJzaW9ucyI6WyJ2MSJdfX0sImdyb3VwIjoid2ViaG9vay5vcGVyYXRvcnMuY29yZW9zLmlvIiwibmFtZXMiOnsia2luZCI6IldlYmhvb2tUZXN0IiwibGlzdEtpbmQiOiJXZWJob29rVGVzdExpc3QiLCJwbHVyYWwiOiJ3ZWJob29rdGVzdHMiLCJzaW5ndWxhciI6IndlYmhvb2t0ZXN0In0sInNjb3BlIjoiTmFtZXNwYWNlZCIsInZlcnNpb25zIjpbeyJuYW1lIjoidjEiLCJzY2hlbWEiOnsib3BlbkFQSVYzU2NoZW1hIjp7ImRlc2NyaXB0aW9uIjoiV2ViaG9va1Rlc3QgaXMgdGhlIFNjaGVtYSBmb3IgdGhlIHdlYmhvb2t0ZXN0cyBBUEkiLCJwcm9wZXJ0aWVzIjp7ImFwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJBUElWZXJzaW9uIGRlZmluZXMgdGhlIHZlcnNpb25lZCBzY2hlbWEgb2YgdGhpcyByZXByZXNlbnRhdGlvbiBvZiBhbiBvYmplY3QuXG5TZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmRcbm1heSByZWplY3QgdW5yZWNvZ25pemVkIHZhbHVlcy5cbk1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjcmVzb3VyY2VzIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyBhIHN0cmluZyB2YWx1ZSByZXByZXNlbnRpbmcgdGhlIFJFU1QgcmVzb3VyY2UgdGhpcyBvYmplY3QgcmVwcmVzZW50cy5cblNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLlxuQ2Fubm90IGJlIHVwZGF0ZWQuXG5JbiBDYW1lbENhc2UuXG5Nb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJ0eXBlIjoib2JqZWN0In0sInNwZWMiOnsiZGVzY3JpcHRpb24iOiJzcGVjIGRlZmluZXMgdGhlIGRlc2lyZWQgc3RhdGUgb2YgV2ViaG9va1Rlc3QiLCJwcm9wZXJ0aWVzIjp7Im11dGF0ZSI6eyJkZXNjcmlwdGlvbiI6Ik11dGF0ZSBpcyBhIGZpZWxkIHRoYXQgd2lsbCBiZSBzZXQgdG8gdHJ1ZSBieSB0aGUgbXV0YXRpbmcgd2ViaG9vay4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJ2YWxpZCI6eyJkZXNjcmlwdGlvbiI6IlZhbGlkIG11c3QgYmUgc2V0IHRvIHRydWUgb3IgdGhlIHZhbGlkYXRpb24gd2ViaG9vayB3aWxsIHJlamVjdCB0aGUgcmVzb3VyY2UuIiwidHlwZSI6ImJvb2xlYW4ifX0sInJlcXVpcmVkIjpbInZhbGlkIl0sInR5cGUiOiJvYmplY3QifSwic3RhdHVzIjp7ImRlc2NyaXB0aW9uIjoic3RhdHVzIGRlZmluZXMgdGhlIG9ic2VydmVkIHN0YXRlIG9mIFdlYmhvb2tUZXN0IiwicHJvcGVydGllcyI6eyJjb25kaXRpb25zIjp7ImRlc2NyaXB0aW9uIjoiY29uZGl0aW9ucyByZXByZXNlbnQgdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIFdlYmhvb2tUZXN0IHJlc291cmNlLlxuRWFjaCBjb25kaXRpb24gaGFzIGEgdW5pcXVlIHR5cGUgYW5kIHJlZmxlY3RzIHRoZSBzdGF0dXMgb2YgYSBzcGVjaWZpYyBhc3BlY3Qgb2YgdGhlIHJlc291cmNlLlxuXG5TdGFuZGFyZCBjb25kaXRpb24gdHlwZXMgaW5jbHVkZTpcbi0gXCJBdmFpbGFibGVcIjogdGhlIHJlc291cmNlIGlzIGZ1bGx5IGZ1bmN0aW9uYWxcbi0gXCJQcm9ncmVzc2luZ1wiOiB0aGUgcmVzb3VyY2UgaXMgYmVpbmcgY3JlYXRlZCBvciB1cGRhdGVkXG4tIFwiRGVncmFkZWRcIjogdGhlIHJlc291cmNlIGZhaWxlZCB0byByZWFjaCBvciBtYWludGFpbiBpdHMgZGVzaXJlZCBzdGF0ZVxuXG5UaGUgc3RhdHVzIG9mIGVhY2ggY29uZGl0aW9uIGlzIG9uZSBvZiBUcnVlLCBGYWxzZSwgb3IgVW5rbm93bi4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkNvbmRpdGlvbiBjb250YWlucyBkZXRhaWxzIGZvciBvbmUgYXNwZWN0IG9mIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoaXMgQVBJIFJlc291cmNlLiIsInByb3BlcnRpZXMiOnsibGFzdFRyYW5zaXRpb25UaW1lIjp7ImRlc2NyaXB0aW9uIjoibGFzdFRyYW5zaXRpb25UaW1lIGlzIHRoZSBsYXN0IHRpbWUgdGhlIGNvbmRpdGlvbiB0cmFuc2l0aW9uZWQgZnJvbSBvbmUgc3RhdHVzIHRvIGFub3RoZXIuXG5UaGlzIHNob3VsZCBiZSB3aGVuIHRoZSB1bmRlcmx5aW5nIGNvbmRpdGlvbiBjaGFuZ2VkLiAgSWYgdGhhdCBpcyBub3Qga25vd24sIHRoZW4gdXNpbmcgdGhlIHRpbWUgd2hlbiB0aGUgQVBJIGZpZWxkIGNoYW5nZWQgaXMgYWNjZXB0YWJsZS4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJ0eXBlIjoic3RyaW5nIn0sIm1lc3NhZ2UiOnsiZGVzY3JpcHRpb24iOiJtZXNzYWdlIGlzIGEgaHVtYW4gcmVhZGFibGUgbWVzc2FnZSBpbmRpY2F0aW5nIGRldGFpbHMgYWJvdXQgdGhlIHRyYW5zaXRpb24uXG5UaGlzIG1heSBiZSBhbiBlbXB0eSBzdHJpbmcuIiwibWF4TGVuZ3RoIjozMjc2OCwidHlwZSI6InN0cmluZyJ9LCJvYnNlcnZlZEdlbmVyYXRpb24iOnsiZGVzY3JpcHRpb24iOiJvYnNlcnZlZEdlbmVyYXRpb24gcmVwcmVzZW50cyB0aGUgLm1ldGFkYXRhLmdlbmVyYXRpb24gdGhhdCB0aGUgY29uZGl0aW9uIHdhcyBzZXQgYmFzZWQgdXBvbi5cbkZvciBpbnN0YW5jZSwgaWYgLm1ldGFkYXRhLmdlbmVyYXRpb24gaXMgY3VycmVudGx5IDEyLCBidXQgdGhlIC5zdGF0dXMuY29uZGl0aW9uc1t4XS5vYnNlcnZlZEdlbmVyYXRpb24gaXMgOSwgdGhlIGNvbmRpdGlvbiBpcyBvdXQgb2YgZGF0ZVxud2l0aCByZXNwZWN0IHRvIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBpbnN0YW5jZS4iLCJmb3JtYXQiOiJpbnQ2NCIsIm1pbmltdW0iOjAsInR5cGUiOiJpbnRlZ2VyIn0sInJlYXNvbiI6eyJkZXNjcmlwdGlvbiI6InJlYXNvbiBjb250YWlucyBhIHByb2dyYW1tYXRpYyBpZGVudGlmaWVyIGluZGljYXRpbmcgdGhlIHJlYXNvbiBmb3IgdGhlIGNvbmRpdGlvbidzIGxhc3QgdHJhbnNpdGlvbi5cblByb2R1Y2VycyBvZiBzcGVjaWZpYyBjb25kaXRpb24gdHlwZXMgbWF5IGRlZmluZSBleHBlY3RlZCB2YWx1ZXMgYW5kIG1lYW5pbmdzIGZvciB0aGlzIGZpZWxkLFxuYW5kIHdoZXRoZXIgdGhlIHZhbHVlcyBhcmUgY29uc2lkZXJlZCBhIGd1YXJhbnRlZWQgQVBJLlxuVGhlIHZhbHVlIHNob3VsZCBiZSBhIENhbWVsQ2FzZSBzdHJpbmcuXG5UaGlzIGZpZWxkIG1heSBub3QgYmUgZW1wdHkuIiwibWF4TGVuZ3RoIjoxMDI0LCJtaW5MZW5ndGgiOjEsInBhdHRlcm4iOiJeW0EtWmEtel0oW0EtWmEtejAtOV8sOl0qW0EtWmEtejAtOV9dKT8kIiwidHlwZSI6InN0cmluZyJ9LCJzdGF0dXMiOnsiZGVzY3JpcHRpb24iOiJzdGF0dXMgb2YgdGhlIGNvbmRpdGlvbiwgb25lIG9mIFRydWUsIEZhbHNlLCBVbmtub3duLiIsImVudW0iOlsiVHJ1ZSIsIkZhbHNlIiwiVW5rbm93biJdLCJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOnsiZGVzY3JpcHRpb24iOiJ0eXBlIG9mIGNvbmRpdGlvbiBpbiBDYW1lbENhc2Ugb3IgaW4gZm9vLmV4YW1wbGUuY29tL0NhbWVsQ2FzZS4iLCJtYXhMZW5ndGgiOjMxNiwicGF0dGVybiI6Il4oW2EtejAtOV0oWy1hLXowLTldKlthLXowLTldKT8oXFwuW2EtejAtOV0oWy1hLXowLTldKlthLXowLTldKT8pKi8pPygoW0EtWmEtejAtOV1bLUEtWmEtejAtOV8uXSopP1tBLVphLXowLTldKSQiLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJsYXN0VHJhbnNpdGlvblRpbWUiLCJtZXNzYWdlIiwicmVhc29uIiwic3RhdHVzIiwidHlwZSJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSIsIngta3ViZXJuZXRlcy1saXN0LW1hcC1rZXlzIjpbInR5cGUiXSwieC1rdWJlcm5ldGVzLWxpc3QtdHlwZSI6Im1hcCJ9fSwidHlwZSI6Im9iamVjdCJ9fSwicmVxdWlyZWQiOlsic3BlYyJdLCJ0eXBlIjoib2JqZWN0In19LCJzZXJ2ZWQiOnRydWUsInN0b3JhZ2UiOnRydWUsInN1YnJlc291cmNlcyI6eyJzdGF0dXMiOnt9fX0seyJuYW1lIjoidjIiLCJzY2hlbWEiOnsib3BlbkFQSVYzU2NoZW1hIjp7ImRlc2NyaXB0aW9uIjoiV2ViaG9va1Rlc3QgaXMgdGhlIFNjaGVtYSBmb3IgdGhlIHdlYmhvb2t0ZXN0cyBBUEkiLCJwcm9wZXJ0aWVzIjp7ImFwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJBUElWZXJzaW9uIGRlZmluZXMgdGhlIHZlcnNpb25lZCBzY2hlbWEgb2YgdGhpcyByZXByZXNlbnRhdGlvbiBvZiBhbiBvYmplY3QuXG5TZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmRcbm1heSByZWplY3QgdW5yZWNvZ25pemVkIHZhbHVlcy5cbk1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjcmVzb3VyY2VzIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyBhIHN0cmluZyB2YWx1ZSByZXByZXNlbnRpbmcgdGhlIFJFU1QgcmVzb3VyY2UgdGhpcyBvYmplY3QgcmVwcmVzZW50cy5cblNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLlxuQ2Fubm90IGJlIHVwZGF0ZWQuXG5JbiBDYW1lbENhc2UuXG5Nb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJ0eXBlIjoib2JqZWN0In0sInNwZWMiOnsiZGVzY3JpcHRpb24iOiJzcGVjIGRlZmluZXMgdGhlIGRlc2lyZWQgc3RhdGUgb2YgV2ViaG9va1Rlc3QiLCJwcm9wZXJ0aWVzIjp7ImNvbnZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJDb252ZXJzaW9uIGlzIGFuIGV4YW1wbGUgZmllbGQgb2YgV2ViaG9va1Rlc3QuIEVkaXQgV2ViaG9va1Rlc3RfdHlwZXMuZ28gdG8gcmVtb3ZlL3VwZGF0ZSIsInByb3BlcnRpZXMiOnsibXV0YXRlIjp7ImRlc2NyaXB0aW9uIjoiTXV0YXRlIGlzIGEgZmllbGQgdGhhdCB3aWxsIGJlIHNldCB0byB0cnVlIGJ5IHRoZSBtdXRhdGluZyB3ZWJob29rLiIsInR5cGUiOiJib29sZWFuIn0sInZhbGlkIjp7ImRlc2NyaXB0aW9uIjoiVmFsaWQgbXVzdCBiZSBzZXQgdG8gdHJ1ZSBvciB0aGUgdmFsaWRhdGlvbiB3ZWJob29rIHdpbGwgcmVqZWN0IHRoZSByZXNvdXJjZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9fSwicmVxdWlyZWQiOlsidmFsaWQiXSwidHlwZSI6Im9iamVjdCJ9fSwicmVxdWlyZWQiOlsiY29udmVyc2lvbiJdLCJ0eXBlIjoib2JqZWN0In0sInN0YXR1cyI6eyJkZXNjcmlwdGlvbiI6InN0YXR1cyBkZWZpbmVzIHRoZSBvYnNlcnZlZCBzdGF0ZSBvZiBXZWJob29rVGVzdCIsInByb3BlcnRpZXMiOnsiY29uZGl0aW9ucyI6eyJkZXNjcmlwdGlvbiI6ImNvbmRpdGlvbnMgcmVwcmVzZW50IHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBXZWJob29rVGVzdCByZXNvdXJjZS5cbkVhY2ggY29uZGl0aW9uIGhhcyBhIHVuaXF1ZSB0eXBlIGFuZCByZWZsZWN0cyB0aGUgc3RhdHVzIG9mIGEgc3BlY2lmaWMgYXNwZWN0IG9mIHRoZSByZXNvdXJjZS5cblxuU3RhbmRhcmQgY29uZGl0aW9uIHR5cGVzIGluY2x1ZGU6XG4tIFwiQXZhaWxhYmxlXCI6IHRoZSByZXNvdXJjZSBpcyBmdWxseSBmdW5jdGlvbmFsXG4tIFwiUHJvZ3Jlc3NpbmdcIjogdGhlIHJlc291cmNlIGlzIGJlaW5nIGNyZWF0ZWQgb3IgdXBkYXRlZFxuLSBcIkRlZ3JhZGVkXCI6IHRoZSByZXNvdXJjZSBmYWlsZWQgdG8gcmVhY2ggb3IgbWFpbnRhaW4gaXRzIGRlc2lyZWQgc3RhdGVcblxuVGhlIHN0YXR1cyBvZiBlYWNoIGNvbmRpdGlvbiBpcyBvbmUgb2YgVHJ1ZSwgRmFsc2UsIG9yIFVua25vd24uIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJDb25kaXRpb24gY29udGFpbnMgZGV0YWlscyBmb3Igb25lIGFzcGVjdCBvZiB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGlzIEFQSSBSZXNvdXJjZS4iLCJwcm9wZXJ0aWVzIjp7Imxhc3RUcmFuc2l0aW9uVGltZSI6eyJkZXNjcmlwdGlvbiI6Imxhc3RUcmFuc2l0aW9uVGltZSBpcyB0aGUgbGFzdCB0aW1lIHRoZSBjb25kaXRpb24gdHJhbnNpdGlvbmVkIGZyb20gb25lIHN0YXR1cyB0byBhbm90aGVyLlxuVGhpcyBzaG91bGQgYmUgd2hlbiB0aGUgdW5kZXJseWluZyBjb25kaXRpb24gY2hhbmdlZC4gIElmIHRoYXQgaXMgbm90IGtub3duLCB0aGVuIHVzaW5nIHRoZSB0aW1lIHdoZW4gdGhlIEFQSSBmaWVsZCBjaGFuZ2VkIGlzIGFjY2VwdGFibGUuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwidHlwZSI6InN0cmluZyJ9LCJtZXNzYWdlIjp7ImRlc2NyaXB0aW9uIjoibWVzc2FnZSBpcyBhIGh1bWFuIHJlYWRhYmxlIG1lc3NhZ2UgaW5kaWNhdGluZyBkZXRhaWxzIGFib3V0IHRoZSB0cmFuc2l0aW9uLlxuVGhpcyBtYXkgYmUgYW4gZW1wdHkgc3RyaW5nLiIsIm1heExlbmd0aCI6MzI3NjgsInR5cGUiOiJzdHJpbmcifSwib2JzZXJ2ZWRHZW5lcmF0aW9uIjp7ImRlc2NyaXB0aW9uIjoib2JzZXJ2ZWRHZW5lcmF0aW9uIHJlcHJlc2VudHMgdGhlIC5tZXRhZGF0YS5nZW5lcmF0aW9uIHRoYXQgdGhlIGNvbmRpdGlvbiB3YXMgc2V0IGJhc2VkIHVwb24uXG5Gb3IgaW5zdGFuY2UsIGlmIC5tZXRhZGF0YS5nZW5lcmF0aW9uIGlzIGN1cnJlbnRseSAxMiwgYnV0IHRoZSAuc3RhdHVzLmNvbmRpdGlvbnNbeF0ub2JzZXJ2ZWRHZW5lcmF0aW9uIGlzIDksIHRoZSBjb25kaXRpb24gaXMgb3V0IG9mIGRhdGVcbndpdGggcmVzcGVjdCB0byB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgaW5zdGFuY2UuIiwiZm9ybWF0IjoiaW50NjQiLCJtaW5pbXVtIjowLCJ0eXBlIjoiaW50ZWdlciJ9LCJyZWFzb24iOnsiZGVzY3JpcHRpb24iOiJyZWFzb24gY29udGFpbnMgYSBwcm9ncmFtbWF0aWMgaWRlbnRpZmllciBpbmRpY2F0aW5nIHRoZSByZWFzb24gZm9yIHRoZSBjb25kaXRpb24ncyBsYXN0IHRyYW5zaXRpb24uXG5Qcm9kdWNlcnMgb2Ygc3BlY2lmaWMgY29uZGl0aW9uIHR5cGVzIG1heSBkZWZpbmUgZXhwZWN0ZWQgdmFsdWVzIGFuZCBtZWFuaW5ncyBmb3IgdGhpcyBmaWVsZCxcbmFuZCB3aGV0aGVyIHRoZSB2YWx1ZXMgYXJlIGNvbnNpZGVyZWQgYSBndWFyYW50ZWVkIEFQSS5cblRoZSB2YWx1ZSBzaG91bGQgYmUgYSBDYW1lbENhc2Ugc3RyaW5nLlxuVGhpcyBmaWVsZCBtYXkgbm90IGJlIGVtcHR5LiIsIm1heExlbmd0aCI6MTAyNCwibWluTGVuZ3RoIjoxLCJwYXR0ZXJuIjoiXltBLVphLXpdKFtBLVphLXowLTlfLDpdKltBLVphLXowLTlfXSk/JCIsInR5cGUiOiJzdHJpbmcifSwic3RhdHVzIjp7ImRlc2NyaXB0aW9uIjoic3RhdHVzIG9mIHRoZSBjb25kaXRpb24sIG9uZSBvZiBUcnVlLCBGYWxzZSwgVW5rbm93bi4iLCJlbnVtIjpbIlRydWUiLCJGYWxzZSIsIlVua25vd24iXSwidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjp7ImRlc2NyaXB0aW9uIjoidHlwZSBvZiBjb25kaXRpb24gaW4gQ2FtZWxDYXNlIG9yIGluIGZvby5leGFtcGxlLmNvbS9DYW1lbENhc2UuIiwibWF4TGVuZ3RoIjozMTYsInBhdHRlcm4iOiJeKFthLXowLTldKFstYS16MC05XSpbYS16MC05XSk/KFxcLlthLXowLTldKFstYS16MC05XSpbYS16MC05XSk/KSovKT8oKFtBLVphLXowLTldWy1BLVphLXowLTlfLl0qKT9bQS1aYS16MC05XSkkIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsibGFzdFRyYW5zaXRpb25UaW1lIiwibWVzc2FnZSIsInJlYXNvbiIsInN0YXR1cyIsInR5cGUiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkiLCJ4LWt1YmVybmV0ZXMtbGlzdC1tYXAta2V5cyI6WyJ0eXBlIl0sIngta3ViZXJuZXRlcy1saXN0LXR5cGUiOiJtYXAifX0sInR5cGUiOiJvYmplY3QifX0sInJlcXVpcmVkIjpbInNwZWMiXSwidHlwZSI6Im9iamVjdCJ9fSwic2VydmVkIjp0cnVlLCJzdG9yYWdlIjpmYWxzZSwic3VicmVzb3VyY2VzIjp7InN0YXR1cyI6e319fV19LCJzdGF0dXMiOnsiYWNjZXB0ZWROYW1lcyI6eyJraW5kIjoiIiwicGx1cmFsIjoiIn0sImNvbmRpdGlvbnMiOm51bGwsInN0b3JlZFZlcnNpb25zIjpudWxsfX0=" - } - }, - { - "type": "olm.bundle.object", - "value": { - "data": "eyJhcGlWZXJzaW9uIjoib3BlcmF0b3JzLmNvcmVvcy5jb20vdjFhbHBoYTEiLCJraW5kIjoiQ2x1c3RlclNlcnZpY2VWZXJzaW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiYWxtLWV4YW1wbGVzIjoiW1xuICB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwid2ViaG9vay5vcGVyYXRvcnMuY29yZW9zLmlvL3YxXCIsXG4gICAgXCJraW5kXCI6IFwiV2ViaG9va1Rlc3RcIixcbiAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgIFwibGFiZWxzXCI6IHtcbiAgICAgICAgXCJhcHAua3ViZXJuZXRlcy5pby9tYW5hZ2VkLWJ5XCI6IFwia3VzdG9taXplXCIsXG4gICAgICAgIFwiYXBwLmt1YmVybmV0ZXMuaW8vbmFtZVwiOiBcIndlYmhvb2stb3BlcmF0b3JcIlxuICAgICAgfSxcbiAgICAgIFwibmFtZVwiOiBcIndlYmhvb2t0ZXN0LXNhbXBsZVwiXG4gICAgfSxcbiAgICBcInNwZWNcIjogbnVsbFxuICB9LFxuICB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwid2ViaG9vay5vcGVyYXRvcnMuY29yZW9zLmlvL3YyXCIsXG4gICAgXCJraW5kXCI6IFwiV2ViaG9va1Rlc3RcIixcbiAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgIFwibGFiZWxzXCI6IHtcbiAgICAgICAgXCJhcHAua3ViZXJuZXRlcy5pby9tYW5hZ2VkLWJ5XCI6IFwia3VzdG9taXplXCIsXG4gICAgICAgIFwiYXBwLmt1YmVybmV0ZXMuaW8vbmFtZVwiOiBcIndlYmhvb2stb3BlcmF0b3JcIlxuICAgICAgfSxcbiAgICAgIFwibmFtZVwiOiBcIndlYmhvb2t0ZXN0LXNhbXBsZVwiXG4gICAgfSxcbiAgICBcInNwZWNcIjogbnVsbFxuICB9XG5dIiwiY2FwYWJpbGl0aWVzIjoiQmFzaWMgSW5zdGFsbCIsImNyZWF0ZWRBdCI6IjIwMjUtMDktMjlUMTM6MDY6MTZaIiwib3BlcmF0b3JzLm9wZXJhdG9yZnJhbWV3b3JrLmlvL2J1aWxkZXIiOiJvcGVyYXRvci1zZGstdjEuNDEuMSIsIm9wZXJhdG9ycy5vcGVyYXRvcmZyYW1ld29yay5pby9wcm9qZWN0X2xheW91dCI6ImdvLmt1YmVidWlsZGVyLmlvL3Y0In0sIm5hbWUiOiJ3ZWJob29rLW9wZXJhdG9yLnYwLjAuNSIsIm5hbWVzcGFjZSI6InBsYWNlaG9sZGVyIn0sInNwZWMiOnsiYXBpc2VydmljZWRlZmluaXRpb25zIjp7fSwiY3VzdG9tcmVzb3VyY2VkZWZpbml0aW9ucyI6eyJvd25lZCI6W3siZGVzY3JpcHRpb24iOiJXZWJob29rVGVzdCBpcyB0aGUgU2NoZW1hIGZvciB0aGUgd2ViaG9va3Rlc3RzIEFQSSIsImRpc3BsYXlOYW1lIjoiV2ViaG9vayBUZXN0Iiwia2luZCI6IldlYmhvb2tUZXN0IiwibmFtZSI6IndlYmhvb2t0ZXN0cy53ZWJob29rLm9wZXJhdG9ycy5jb3Jlb3MuaW8iLCJ2ZXJzaW9uIjoidjEifSx7ImRlc2NyaXB0aW9uIjoiV2ViaG9va1Rlc3QgaXMgdGhlIFNjaGVtYSBmb3IgdGhlIHdlYmhvb2t0ZXN0cyBBUEkiLCJkaXNwbGF5TmFtZSI6IldlYmhvb2sgVGVzdCIsImtpbmQiOiJXZWJob29rVGVzdCIsIm5hbWUiOiJ3ZWJob29rdGVzdHMud2ViaG9vay5vcGVyYXRvcnMuY29yZW9zLmlvIiwidmVyc2lvbiI6InYyIn1dfSwiZGVzY3JpcHRpb24iOiJ3ZWJob29rLW9wZXJhdG9yIHRlc3QgZml4dHVyZSIsImRpc3BsYXlOYW1lIjoid2ViaG9vay1vcGVyYXRvciIsImljb24iOlt7ImJhc2U2NGRhdGEiOiIiLCJtZWRpYXR5cGUiOiIifV0sImluc3RhbGwiOnsic3BlYyI6eyJjbHVzdGVyUGVybWlzc2lvbnMiOlt7InJ1bGVzIjpbeyJhcGlHcm91cHMiOlsid2ViaG9vay5vcGVyYXRvcnMuY29yZW9zLmlvIl0sInJlc291cmNlcyI6WyJ3ZWJob29rdGVzdHMiXSwidmVyYnMiOlsiY3JlYXRlIiwiZGVsZXRlIiwiZ2V0IiwibGlzdCIsInBhdGNoIiwidXBkYXRlIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsid2ViaG9vay5vcGVyYXRvcnMuY29yZW9zLmlvIl0sInJlc291cmNlcyI6WyJ3ZWJob29rdGVzdHMvZmluYWxpemVycyJdLCJ2ZXJicyI6WyJ1cGRhdGUiXX0seyJhcGlHcm91cHMiOlsid2ViaG9vay5vcGVyYXRvcnMuY29yZW9zLmlvIl0sInJlc291cmNlcyI6WyJ3ZWJob29rdGVzdHMvc3RhdHVzIl0sInZlcmJzIjpbImdldCIsInBhdGNoIiwidXBkYXRlIl19LHsiYXBpR3JvdXBzIjpbImF1dGhlbnRpY2F0aW9uLms4cy5pbyJdLCJyZXNvdXJjZXMiOlsidG9rZW5yZXZpZXdzIl0sInZlcmJzIjpbImNyZWF0ZSJdfSx7ImFwaUdyb3VwcyI6WyJhdXRob3JpemF0aW9uLms4cy5pbyJdLCJyZXNvdXJjZXMiOlsic3ViamVjdGFjY2Vzc3Jldmlld3MiXSwidmVyYnMiOlsiY3JlYXRlIl19XSwic2VydmljZUFjY291bnROYW1lIjoid2ViaG9vay1vcGVyYXRvci1jb250cm9sbGVyLW1hbmFnZXIifV0sImRlcGxveW1lbnRzIjpbeyJsYWJlbCI6eyJhcHAua3ViZXJuZXRlcy5pby9tYW5hZ2VkLWJ5Ijoia3VzdG9taXplIiwiYXBwLmt1YmVybmV0ZXMuaW8vbmFtZSI6IndlYmhvb2stb3BlcmF0b3IiLCJjb250cm9sLXBsYW5lIjoiY29udHJvbGxlci1tYW5hZ2VyIn0sIm5hbWUiOiJ3ZWJob29rLW9wZXJhdG9yLWNvbnRyb2xsZXItbWFuYWdlciIsInNwZWMiOnsicmVwbGljYXMiOjEsInNlbGVjdG9yIjp7Im1hdGNoTGFiZWxzIjp7ImFwcC5rdWJlcm5ldGVzLmlvL25hbWUiOiJ3ZWJob29rLW9wZXJhdG9yIiwiY29udHJvbC1wbGFuZSI6ImNvbnRyb2xsZXItbWFuYWdlciJ9fSwic3RyYXRlZ3kiOnt9LCJ0ZW1wbGF0ZSI6eyJtZXRhZGF0YSI6eyJhbm5vdGF0aW9ucyI6eyJrdWJlY3RsLmt1YmVybmV0ZXMuaW8vZGVmYXVsdC1jb250YWluZXIiOiJtYW5hZ2VyIn0sImxhYmVscyI6eyJhcHAua3ViZXJuZXRlcy5pby9uYW1lIjoid2ViaG9vay1vcGVyYXRvciIsImNvbnRyb2wtcGxhbmUiOiJjb250cm9sbGVyLW1hbmFnZXIifX0sInNwZWMiOnsiY29udGFpbmVycyI6W3siYXJncyI6WyItLW1ldHJpY3MtYmluZC1hZGRyZXNzPTo4NDQzIiwiLS1sZWFkZXItZWxlY3QiLCItLWhlYWx0aC1wcm9iZS1iaW5kLWFkZHJlc3M9OjgwODEiLCItLXdlYmhvb2stY2VydC1wYXRoPS90bXAvazhzLXdlYmhvb2stc2VydmVyL3NlcnZpbmctY2VydHMiXSwiY29tbWFuZCI6WyIvbWFuYWdlciJdLCJpbWFnZSI6InF1YXkuaW8vb2xtdGVzdC93ZWJob29rLW9wZXJhdG9yOnYwLjAuNSIsImxpdmVuZXNzUHJvYmUiOnsiaHR0cEdldCI6eyJwYXRoIjoiL2hlYWx0aHoiLCJwb3J0Ijo4MDgxfSwiaW5pdGlhbERlbGF5U2Vjb25kcyI6MTUsInBlcmlvZFNlY29uZHMiOjIwfSwibmFtZSI6Im1hbmFnZXIiLCJwb3J0cyI6W3siY29udGFpbmVyUG9ydCI6OTQ0MywibmFtZSI6IndlYmhvb2stc2VydmVyIiwicHJvdG9jb2wiOiJUQ1AifV0sInJlYWRpbmVzc1Byb2JlIjp7Imh0dHBHZXQiOnsicGF0aCI6Ii9yZWFkeXoiLCJwb3J0Ijo4MDgxfSwiaW5pdGlhbERlbGF5U2Vjb25kcyI6NSwicGVyaW9kU2Vjb25kcyI6MTB9LCJyZXNvdXJjZXMiOnsibGltaXRzIjp7ImNwdSI6IjUwMG0iLCJtZW1vcnkiOiIxMjhNaSJ9LCJyZXF1ZXN0cyI6eyJjcHUiOiIxMG0iLCJtZW1vcnkiOiI2NE1pIn19LCJzZWN1cml0eUNvbnRleHQiOnsiYWxsb3dQcml2aWxlZ2VFc2NhbGF0aW9uIjpmYWxzZSwiY2FwYWJpbGl0aWVzIjp7ImRyb3AiOlsiQUxMIl19LCJyZWFkT25seVJvb3RGaWxlc3lzdGVtIjp0cnVlfSwidm9sdW1lTW91bnRzIjpbeyJtb3VudFBhdGgiOiIvdG1wL2s4cy13ZWJob29rLXNlcnZlci9zZXJ2aW5nLWNlcnRzIiwibmFtZSI6IndlYmhvb2stY2VydHMiLCJyZWFkT25seSI6dHJ1ZX1dfV0sInNlY3VyaXR5Q29udGV4dCI6eyJydW5Bc05vblJvb3QiOnRydWUsInNlY2NvbXBQcm9maWxlIjp7InR5cGUiOiJSdW50aW1lRGVmYXVsdCJ9fSwic2VydmljZUFjY291bnROYW1lIjoid2ViaG9vay1vcGVyYXRvci1jb250cm9sbGVyLW1hbmFnZXIiLCJ0ZXJtaW5hdGlvbkdyYWNlUGVyaW9kU2Vjb25kcyI6MTAsInZvbHVtZXMiOlt7Im5hbWUiOiJ3ZWJob29rLWNlcnRzIiwic2VjcmV0Ijp7InNlY3JldE5hbWUiOiJ3ZWJob29rLXNlcnZlci1jZXJ0In19XX19fX1dLCJwZXJtaXNzaW9ucyI6W3sicnVsZXMiOlt7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImNvbmZpZ21hcHMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIiwiY3JlYXRlIiwidXBkYXRlIiwicGF0Y2giLCJkZWxldGUiXX0seyJhcGlHcm91cHMiOlsiY29vcmRpbmF0aW9uLms4cy5pbyJdLCJyZXNvdXJjZXMiOlsibGVhc2VzIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJ3YXRjaCIsImNyZWF0ZSIsInVwZGF0ZSIsInBhdGNoIiwiZGVsZXRlIl19LHsiYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsiZXZlbnRzIl0sInZlcmJzIjpbImNyZWF0ZSIsInBhdGNoIl19XSwic2VydmljZUFjY291bnROYW1lIjoid2ViaG9vay1vcGVyYXRvci1jb250cm9sbGVyLW1hbmFnZXIifV19LCJzdHJhdGVneSI6ImRlcGxveW1lbnQifSwiaW5zdGFsbE1vZGVzIjpbeyJzdXBwb3J0ZWQiOmZhbHNlLCJ0eXBlIjoiT3duTmFtZXNwYWNlIn0seyJzdXBwb3J0ZWQiOmZhbHNlLCJ0eXBlIjoiU2luZ2xlTmFtZXNwYWNlIn0seyJzdXBwb3J0ZWQiOmZhbHNlLCJ0eXBlIjoiTXVsdGlOYW1lc3BhY2UifSx7InN1cHBvcnRlZCI6dHJ1ZSwidHlwZSI6IkFsbE5hbWVzcGFjZXMifV0sImtleXdvcmRzIjpbInRlc3QiLCJvcGVyYXRvciIsIndlYmhvb2tzIl0sImxpbmtzIjpbeyJuYW1lIjoiV2ViaG9vayBPcGVyYXRvciIsInVybCI6Imh0dHBzOi8vd2ViaG9vay1vcGVyYXRvci5kb21haW4ifV0sIm1haW50YWluZXJzIjpbeyJlbWFpbCI6Im5vLXJlcGx5QG9wZXJhdG9yLWZyYW1ld29yay5pbyIsIm5hbWUiOiJuby1yZXBseSJ9XSwibWF0dXJpdHkiOiJhbHBoYSIsInByb3ZpZGVyIjp7Im5hbWUiOiJvcGVyYXRvci1mcmFtZXdvcmsifSwidmVyc2lvbiI6IjAuMC41Iiwid2ViaG9va2RlZmluaXRpb25zIjpbeyJhZG1pc3Npb25SZXZpZXdWZXJzaW9ucyI6WyJ2MSJdLCJjb250YWluZXJQb3J0Ijo0NDMsImNvbnZlcnNpb25DUkRzIjpbIndlYmhvb2t0ZXN0cy53ZWJob29rLm9wZXJhdG9ycy5jb3Jlb3MuaW8iXSwiZGVwbG95bWVudE5hbWUiOiJ3ZWJob29rLW9wZXJhdG9yLWNvbnRyb2xsZXItbWFuYWdlciIsImdlbmVyYXRlTmFtZSI6ImN3ZWJob29rdGVzdHMua2IuaW8iLCJzaWRlRWZmZWN0cyI6Ik5vbmUiLCJ0YXJnZXRQb3J0Ijo5NDQzLCJ0eXBlIjoiQ29udmVyc2lvbldlYmhvb2siLCJ3ZWJob29rUGF0aCI6Ii9jb252ZXJ0In0seyJhZG1pc3Npb25SZXZpZXdWZXJzaW9ucyI6WyJ2MSJdLCJjb250YWluZXJQb3J0Ijo0NDMsImRlcGxveW1lbnROYW1lIjoid2ViaG9vay1vcGVyYXRvci1jb250cm9sbGVyLW1hbmFnZXIiLCJmYWlsdXJlUG9saWN5IjoiRmFpbCIsImdlbmVyYXRlTmFtZSI6Im13ZWJob29rdGVzdC12MS5rYi5pbyIsInJ1bGVzIjpbeyJhcGlHcm91cHMiOlsid2ViaG9vay5vcGVyYXRvcnMuY29yZW9zLmlvIl0sImFwaVZlcnNpb25zIjpbInYxIl0sIm9wZXJhdGlvbnMiOlsiQ1JFQVRFIiwiVVBEQVRFIl0sInJlc291cmNlcyI6WyJ3ZWJob29rdGVzdHMiXX1dLCJzaWRlRWZmZWN0cyI6Ik5vbmUiLCJ0YXJnZXRQb3J0Ijo5NDQzLCJ0eXBlIjoiTXV0YXRpbmdBZG1pc3Npb25XZWJob29rIiwid2ViaG9va1BhdGgiOiIvbXV0YXRlLXdlYmhvb2stb3BlcmF0b3JzLWNvcmVvcy1pby12MS13ZWJob29rdGVzdCJ9LHsiYWRtaXNzaW9uUmV2aWV3VmVyc2lvbnMiOlsidjEiXSwiY29udGFpbmVyUG9ydCI6NDQzLCJkZXBsb3ltZW50TmFtZSI6IndlYmhvb2stb3BlcmF0b3ItY29udHJvbGxlci1tYW5hZ2VyIiwiZmFpbHVyZVBvbGljeSI6IkZhaWwiLCJnZW5lcmF0ZU5hbWUiOiJ2d2ViaG9va3Rlc3QtdjEua2IuaW8iLCJydWxlcyI6W3siYXBpR3JvdXBzIjpbIndlYmhvb2sub3BlcmF0b3JzLmNvcmVvcy5pbyJdLCJhcGlWZXJzaW9ucyI6WyJ2MSJdLCJvcGVyYXRpb25zIjpbIkNSRUFURSIsIlVQREFURSJdLCJyZXNvdXJjZXMiOlsid2ViaG9va3Rlc3RzIl19XSwic2lkZUVmZmVjdHMiOiJOb25lIiwidGFyZ2V0UG9ydCI6OTQ0MywidHlwZSI6IlZhbGlkYXRpbmdBZG1pc3Npb25XZWJob29rIiwid2ViaG9va1BhdGgiOiIvdmFsaWRhdGUtd2ViaG9vay1vcGVyYXRvcnMtY29yZW9zLWlvLXYxLXdlYmhvb2t0ZXN0In1dfX0=" - } - }, - { - "type": "olm.bundle.object", - "value": { - "data": "eyJhcGlWZXJzaW9uIjoicmJhYy5hdXRob3JpemF0aW9uLms4cy5pby92MSIsImtpbmQiOiJDbHVzdGVyUm9sZSIsIm1ldGFkYXRhIjp7ImNyZWF0aW9uVGltZXN0YW1wIjpudWxsLCJsYWJlbHMiOnsiYXBwLmt1YmVybmV0ZXMuaW8vbWFuYWdlZC1ieSI6Imt1c3RvbWl6ZSIsImFwcC5rdWJlcm5ldGVzLmlvL25hbWUiOiJ3ZWJob29rLW9wZXJhdG9yIn0sIm5hbWUiOiJ3ZWJob29rLW9wZXJhdG9yLXdlYmhvb2t0ZXN0LWFkbWluLXJvbGUifSwicnVsZXMiOlt7ImFwaUdyb3VwcyI6WyJ3ZWJob29rLm9wZXJhdG9ycy5jb3Jlb3MuaW8iXSwicmVzb3VyY2VzIjpbIndlYmhvb2t0ZXN0cyJdLCJ2ZXJicyI6WyIqIl19LHsiYXBpR3JvdXBzIjpbIndlYmhvb2sub3BlcmF0b3JzLmNvcmVvcy5pbyJdLCJyZXNvdXJjZXMiOlsid2ViaG9va3Rlc3RzL3N0YXR1cyJdLCJ2ZXJicyI6WyJnZXQiXX1dfQ==" - } - }, - { - "type": "olm.bundle.object", - "value": { - "data": "eyJhcGlWZXJzaW9uIjoicmJhYy5hdXRob3JpemF0aW9uLms4cy5pby92MSIsImtpbmQiOiJDbHVzdGVyUm9sZSIsIm1ldGFkYXRhIjp7ImNyZWF0aW9uVGltZXN0YW1wIjpudWxsLCJsYWJlbHMiOnsiYXBwLmt1YmVybmV0ZXMuaW8vbWFuYWdlZC1ieSI6Imt1c3RvbWl6ZSIsImFwcC5rdWJlcm5ldGVzLmlvL25hbWUiOiJ3ZWJob29rLW9wZXJhdG9yIn0sIm5hbWUiOiJ3ZWJob29rLW9wZXJhdG9yLXdlYmhvb2t0ZXN0LWVkaXRvci1yb2xlIn0sInJ1bGVzIjpbeyJhcGlHcm91cHMiOlsid2ViaG9vay5vcGVyYXRvcnMuY29yZW9zLmlvIl0sInJlc291cmNlcyI6WyJ3ZWJob29rdGVzdHMiXSwidmVyYnMiOlsiY3JlYXRlIiwiZGVsZXRlIiwiZ2V0IiwibGlzdCIsInBhdGNoIiwidXBkYXRlIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsid2ViaG9vay5vcGVyYXRvcnMuY29yZW9zLmlvIl0sInJlc291cmNlcyI6WyJ3ZWJob29rdGVzdHMvc3RhdHVzIl0sInZlcmJzIjpbImdldCJdfV19" - } - }, - { - "type": "olm.bundle.object", - "value": { - "data": "eyJhcGlWZXJzaW9uIjoicmJhYy5hdXRob3JpemF0aW9uLms4cy5pby92MSIsImtpbmQiOiJDbHVzdGVyUm9sZSIsIm1ldGFkYXRhIjp7ImNyZWF0aW9uVGltZXN0YW1wIjpudWxsLCJsYWJlbHMiOnsiYXBwLmt1YmVybmV0ZXMuaW8vbWFuYWdlZC1ieSI6Imt1c3RvbWl6ZSIsImFwcC5rdWJlcm5ldGVzLmlvL25hbWUiOiJ3ZWJob29rLW9wZXJhdG9yIn0sIm5hbWUiOiJ3ZWJob29rLW9wZXJhdG9yLXdlYmhvb2t0ZXN0LXZpZXdlci1yb2xlIn0sInJ1bGVzIjpbeyJhcGlHcm91cHMiOlsid2ViaG9vay5vcGVyYXRvcnMuY29yZW9zLmlvIl0sInJlc291cmNlcyI6WyJ3ZWJob29rdGVzdHMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbIndlYmhvb2sub3BlcmF0b3JzLmNvcmVvcy5pbyJdLCJyZXNvdXJjZXMiOlsid2ViaG9va3Rlc3RzL3N0YXR1cyJdLCJ2ZXJicyI6WyJnZXQiXX1dfQ==" - } - }, - { - "type": "olm.bundle.object", - "value": { - "data": "eyJhcGlWZXJzaW9uIjoicmJhYy5hdXRob3JpemF0aW9uLms4cy5pby92MSIsImtpbmQiOiJDbHVzdGVyUm9sZSIsIm1ldGFkYXRhIjp7ImNyZWF0aW9uVGltZXN0YW1wIjpudWxsLCJuYW1lIjoid2ViaG9vay1vcGVyYXRvci1tZXRyaWNzLXJlYWRlciJ9LCJydWxlcyI6W3sibm9uUmVzb3VyY2VVUkxzIjpbIi9tZXRyaWNzIl0sInZlcmJzIjpbImdldCJdfV19" - } - }, - { - "type": "olm.bundle.object", - "value": { - "data": "eyJhcGlWZXJzaW9uIjoidjEiLCJraW5kIjoiU2VydmljZSIsIm1ldGFkYXRhIjp7ImNyZWF0aW9uVGltZXN0YW1wIjpudWxsLCJsYWJlbHMiOnsiYXBwLmt1YmVybmV0ZXMuaW8vbWFuYWdlZC1ieSI6Imt1c3RvbWl6ZSIsImFwcC5rdWJlcm5ldGVzLmlvL25hbWUiOiJ3ZWJob29rLW9wZXJhdG9yIiwiY29udHJvbC1wbGFuZSI6ImNvbnRyb2xsZXItbWFuYWdlciJ9LCJuYW1lIjoid2ViaG9vay1vcGVyYXRvci1jb250cm9sbGVyLW1hbmFnZXItbWV0cmljcy1zZXJ2aWNlIn0sInNwZWMiOnsicG9ydHMiOlt7Im5hbWUiOiJodHRwcyIsInBvcnQiOjg0NDMsInByb3RvY29sIjoiVENQIiwidGFyZ2V0UG9ydCI6ODQ0M31dLCJzZWxlY3RvciI6eyJhcHAua3ViZXJuZXRlcy5pby9uYW1lIjoid2ViaG9vay1vcGVyYXRvciIsImNvbnRyb2wtcGxhbmUiOiJjb250cm9sbGVyLW1hbmFnZXIifX0sInN0YXR1cyI6eyJsb2FkQmFsYW5jZXIiOnt9fX0=" - } - }, - { - "type": "olm.bundle.object", - "value": { - "data": "eyJhcGlWZXJzaW9uIjoidjEiLCJraW5kIjoiU2VydmljZSIsIm1ldGFkYXRhIjp7ImNyZWF0aW9uVGltZXN0YW1wIjpudWxsLCJsYWJlbHMiOnsiYXBwLmt1YmVybmV0ZXMuaW8vbWFuYWdlZC1ieSI6Imt1c3RvbWl6ZSIsImFwcC5rdWJlcm5ldGVzLmlvL25hbWUiOiJ3ZWJob29rLW9wZXJhdG9yIn0sIm5hbWUiOiJ3ZWJob29rLW9wZXJhdG9yLXdlYmhvb2stc2VydmljZSJ9LCJzcGVjIjp7InBvcnRzIjpbeyJwb3J0Ijo0NDMsInByb3RvY29sIjoiVENQIiwidGFyZ2V0UG9ydCI6OTQ0M31dLCJzZWxlY3RvciI6eyJhcHAua3ViZXJuZXRlcy5pby9uYW1lIjoid2ViaG9vay1vcGVyYXRvciIsImNvbnRyb2wtcGxhbmUiOiJjb250cm9sbGVyLW1hbmFnZXIifX0sInN0YXR1cyI6eyJsb2FkQmFsYW5jZXIiOnt9fX0=" - } - } - ], - "relatedImages": [ - { - "name": "", - "image": "quay.io/olmtest/webhook-operator-bundle:v0.0.5" - }, - { - "name": "", - "image": "quay.io/olmtest/webhook-operator:v0.0.5" - } - ] -} diff --git a/catalog/catalog.tpl b/catalog/catalog.tpl new file mode 100644 index 0000000..be1f1a0 --- /dev/null +++ b/catalog/catalog.tpl @@ -0,0 +1,15 @@ +{ + "schema": "olm.package", + "name": "webhook-operator", + "defaultChannel": "alpha" +} +{ + "schema": "olm.channel", + "name": "alpha", + "package": "webhook-operator", + "entries": [ + { + "name": "webhook-operator.v{{ VERSION }}" + } + ] +} diff --git a/config/manager/kustomization.yaml b/config/manager/kustomization.yaml index c7d16c0..b7d7975 100644 --- a/config/manager/kustomization.yaml +++ b/config/manager/kustomization.yaml @@ -5,4 +5,4 @@ kind: Kustomization images: - name: controller newName: quay.io/olmtest/webhook-operator - newTag: v0.0.5 + newTag: v0.0.0