From 3bb89e38cdf10aaafe2f138cac9b2c3607d71943 Mon Sep 17 00:00:00 2001 From: Nikhil Thomas Date: Wed, 1 Sep 2021 12:40:35 +0530 Subject: [PATCH] Add docs and sample generated bundle Add a generated bundle for kubernetes platform. Add docs on the bundle generation tool and on bundle geration for kubernetes. Signed-off-by: Nikhil Thomas --- Makefile | 6 + README.md | 27 +- config/base/kustomization.yaml | 2 +- config/base/operator.yaml | 4 - config/base/webhook.yaml | 2 - config/kubernetes/operator.yaml | 14 + config/kubernetes/webhook.yaml | 2 + config/openshift/operator.yaml | 14 + config/openshift/webhook.yaml | 2 + operatorhub/README.md | 65 +- operatorhub/kubernetes/README.md | 34 + operatorhub/kubernetes/config.yaml | 4 +- .../fetch-strategy-local/kustomization.yaml | 1 + .../kustomization.yaml | 1 + .../release-artifacts/bundle.Dockerfile | 4 +- .../operator.tekton.dev_tektonconfigs.yaml | 2 +- .../operator.tekton.dev_tektondashboards.yaml | 2 +- .../operator.tekton.dev_tektonpipelines.yaml | 2 +- .../operator.tekton.dev_tektonresults.yaml | 2 +- .../operator.tekton.dev_tektontriggers.yaml | 2 +- .../tekton-config-defaults_v1_configmap.yaml | 1 + .../tekton-operator-webhook_v1_service.yaml | 2 +- ...ktoncd-operator.clusterserviceversion.yaml | 41 +- .../bundle/metadata/annotations.yaml | 4 +- .../bundle/tests/scorecard/config.yaml | 7 + .../kubernetes/scorecard/bases/config.yaml | 11 + .../kubernetes/scorecard/kustomization.yaml | 2 + operatorhub/openshift/README.md | 3 + .../fetch-strategy-local/kustomization.yaml | 1 + .../release-artifacts/bundle.Dockerfile | 21 - .../config-logging_v1_configmap.yaml | 72 -- ...nes-operator-rh.clusterserviceversion.yaml | 824 ------------------ ...-pipelines-operator_v1_serviceaccount.yaml | 5 - .../operator.tekton.dev_tektonaddons.yaml | 123 --- .../operator.tekton.dev_tektonconfigs.yaml | 144 --- .../operator.tekton.dev_tektonpipelines.yaml | 111 --- .../operator.tekton.dev_tektontriggers.yaml | 111 --- .../tekton-config-defaults_v1_configmap.yaml | 9 - ...kton-operator-webhook-certs_v1_secret.yaml | 7 - .../tekton-operator-webhook_v1_service.yaml | 20 - .../bundle/metadata/annotations.yaml | 15 - .../openshift/scorecard/bases/config.yaml | 11 + .../openshift/scorecard/kustomization.yaml | 2 + operatorhub/tools/CONFIG-DEFINITION.md | 56 ++ operatorhub/tools/bundle-too-cli-flags.md | 40 + .../v1alpha1/tektonaddon_default_test.go | 2 - .../v1alpha1/tektonaddon_validation_test.go | 2 - test/resources/tektonconfigs.go | 5 +- 48 files changed, 332 insertions(+), 1512 deletions(-) create mode 100644 operatorhub/kubernetes/README.md create mode 100644 operatorhub/kubernetes/release-artifacts/bundle/tests/scorecard/config.yaml create mode 100644 operatorhub/kubernetes/scorecard/bases/config.yaml create mode 100644 operatorhub/kubernetes/scorecard/kustomization.yaml create mode 100644 operatorhub/openshift/README.md delete mode 100644 operatorhub/openshift/release-artifacts/bundle.Dockerfile delete mode 100644 operatorhub/openshift/release-artifacts/bundle/manifests/config-logging_v1_configmap.yaml delete mode 100644 operatorhub/openshift/release-artifacts/bundle/manifests/openshift-pipelines-operator-rh.clusterserviceversion.yaml delete mode 100644 operatorhub/openshift/release-artifacts/bundle/manifests/openshift-pipelines-operator_v1_serviceaccount.yaml delete mode 100644 operatorhub/openshift/release-artifacts/bundle/manifests/operator.tekton.dev_tektonaddons.yaml delete mode 100644 operatorhub/openshift/release-artifacts/bundle/manifests/operator.tekton.dev_tektonconfigs.yaml delete mode 100644 operatorhub/openshift/release-artifacts/bundle/manifests/operator.tekton.dev_tektonpipelines.yaml delete mode 100644 operatorhub/openshift/release-artifacts/bundle/manifests/operator.tekton.dev_tektontriggers.yaml delete mode 100644 operatorhub/openshift/release-artifacts/bundle/manifests/tekton-config-defaults_v1_configmap.yaml delete mode 100644 operatorhub/openshift/release-artifacts/bundle/manifests/tekton-operator-webhook-certs_v1_secret.yaml delete mode 100644 operatorhub/openshift/release-artifacts/bundle/manifests/tekton-operator-webhook_v1_service.yaml delete mode 100644 operatorhub/openshift/release-artifacts/bundle/metadata/annotations.yaml create mode 100644 operatorhub/openshift/scorecard/bases/config.yaml create mode 100644 operatorhub/openshift/scorecard/kustomization.yaml create mode 100644 operatorhub/tools/CONFIG-DEFINITION.md create mode 100644 operatorhub/tools/bundle-too-cli-flags.md diff --git a/Makefile b/Makefile index 1c66cd386c..64be8a04fe 100644 --- a/Makefile +++ b/Makefile @@ -48,6 +48,8 @@ $(BIN)/golangci-lint: | $(BIN) ; $(info $(M) getting golangci-lint $(GOLANGCI_VE .PHONY: clean-cluster clean-cluster: | $(KO) $(KUSTOMIZE) clean-cr; $(info $(M) clean $(TARGET)…) @ ## Cleanup cluster + @ ## --load-restrictor LoadRestrictionsNone is needed in kustomize build as files which not in child tree of kustomize base are pulled + @ ## https://github.com/kubernetes-sigs/kustomize/issues/766 -$(KUSTOMIZE) build --load-restrictor LoadRestrictionsNone config/$(TARGET) | $(KO) delete -f - -kubectl delete ns tekton-pipelines --ignore-not-found -kubectl delete \ @@ -89,6 +91,8 @@ get-releases: | .PHONY: apply apply: | $(KO) $(KUSTOMIZE) get-releases ; $(info $(M) ko apply on $(TARGET)) @ ## Apply config to the current cluster + @ ## --load-restrictor LoadRestrictionsNone is needed in kustomize build as files which not in child tree of kustomize base are pulled + @ ## https://github.com/kubernetes-sigs/kustomize/issues/766 $Q $(KUSTOMIZE) build --load-restrictor LoadRestrictionsNone config/$(TARGET) | $(KO) apply $(PLATFORM) -f - .PHONY: apply-cr @@ -101,6 +105,8 @@ clean-cr: | ; $(info $(M) clean CRs on $(TARGET)) @ ## Clean the CRs to the curr .PHONY: resolve resolve: | $(KO) $(KUSTOMIZE) get-releases ; $(info $(M) ko resolve on $(TARGET)) @ ## Resolve config to the current cluster + @ ## --load-restrictor LoadRestrictionsNone is needed in kustomize build as files which not in child tree of kustomize base are pulled + @ ## https://github.com/kubernetes-sigs/kustomize/issues/766 $Q $(KUSTOMIZE) build --load-restrictor LoadRestrictionsNone config/$(TARGET) | $(KO) resolve --push=false --oci-layout-path=$(BIN)/oci -f - .PHONY: generated diff --git a/README.md b/README.md index 923579c8ed..ef0bdeaba4 100644 --- a/README.md +++ b/README.md @@ -29,12 +29,31 @@ on any Kubernetes Cluster. $ kubectl apply -f https://raw.githubusercontent.com/tektoncd/operator/main/config/crs/kubernetes/config/all/operator_v1alpha1_config_cr.yaml ``` -# References +# Detailed Documentation -- [Development Guide](docs/README.md) -- [Testing Guide](test/README.md) +[Concepts and Guides](docs/README.md) -### Read the docs +# Development Guide + +[Development Guide](docs/README.md) + +# Running E2E tests + +[Testing Guide](test/README.md) + +# Release Guide + +[How to make a TektonCD/Operator Release](tekton/README.md) + +# Gerating OperatorHub Bundle(s) + +[OperatorHub Bundles](operatorhub/README.md) + +# Roadmap + +[Roadmap](./ROADMAP.md) + +# Read the docs | Version | Docs | | ------- | ---- | diff --git a/config/base/kustomization.yaml b/config/base/kustomization.yaml index 0216c2f656..076d94bceb 100644 --- a/config/base/kustomization.yaml +++ b/config/base/kustomization.yaml @@ -25,4 +25,4 @@ resources: - role_binding.yaml - operator.yaml - webhook.yaml -- webhook-service.yaml \ No newline at end of file +- webhook-service.yaml diff --git a/config/base/operator.yaml b/config/base/operator.yaml index a58b648160..4b3a474846 100644 --- a/config/base/operator.yaml +++ b/config/base/operator.yaml @@ -20,7 +20,3 @@ metadata: version: "devel" operator.tekton.dev/release: "devel" spec: {} - - name: VERSION - value: "devel" - - name: METRICS_DOMAIN - value: tekton.dev/operator diff --git a/config/base/webhook.yaml b/config/base/webhook.yaml index 1c5dbf887b..a08e1bcecf 100644 --- a/config/base/webhook.yaml +++ b/config/base/webhook.yaml @@ -20,5 +20,3 @@ metadata: version: "devel" operator.tekton.dev/release: "devel" spec: {} - - name: METRICS_DOMAIN - value: tekton.dev/operator diff --git a/config/kubernetes/operator.yaml b/config/kubernetes/operator.yaml index 614b570f0c..8db8657348 100644 --- a/config/kubernetes/operator.yaml +++ b/config/kubernetes/operator.yaml @@ -47,3 +47,17 @@ spec: value: ko://github.com/tektoncd/operator/cmd/kubernetes/proxy-webhook - name: IMAGE_JOB_PRUNER_TKN value: gcr.io/tekton-releases/dogfooding/tkn@sha256:f69a02ef099d8915e9e4ea1b74e43b7a9309fc97cf23cb457ebf191e73491677 + - name: METRICS_DOMAIN + value: tekton.dev/operator + - name: VERSION + value: "devel" + - name: AUTOINSTALL_COMPONENTS + valueFrom: + configMapKeyRef: + name: tekton-config-defaults + key: AUTOINSTALL_COMPONENTS + - name: DEFAULT_TARGET_NAMESPACE + valueFrom: + configMapKeyRef: + name: tekton-config-defaults + key: DEFAULT_TARGET_NAMESPACE diff --git a/config/kubernetes/webhook.yaml b/config/kubernetes/webhook.yaml index 256918af29..915ede0a6d 100644 --- a/config/kubernetes/webhook.yaml +++ b/config/kubernetes/webhook.yaml @@ -45,6 +45,8 @@ spec: value: tekton-operator-webhook - name: WEBHOOK_SECRET_NAME value: tekton-operator-webhook-certs + - name: METRICS_DOMAIN + value: tekton.dev/operator ports: - name: https-webhook containerPort: 8443 \ No newline at end of file diff --git a/config/openshift/operator.yaml b/config/openshift/operator.yaml index 562a26193c..ea3f968a90 100644 --- a/config/openshift/operator.yaml +++ b/config/openshift/operator.yaml @@ -47,5 +47,19 @@ spec: value: ko://github.com/tektoncd/operator/cmd/openshift/proxy-webhook - name: IMAGE_JOB_PRUNER_TKN value: gcr.io/tekton-releases/dogfooding/tkn@sha256:f69a02ef099d8915e9e4ea1b74e43b7a9309fc97cf23cb457ebf191e73491677 + - name: METRICS_DOMAIN + value: tekton.dev/operator + - name: VERSION + value: "devel" + - name: AUTOINSTALL_COMPONENTS + valueFrom: + configMapKeyRef: + name: tekton-config-defaults + key: AUTOINSTALL_COMPONENTS + - name: DEFAULT_TARGET_NAMESPACE + valueFrom: + configMapKeyRef: + name: tekton-config-defaults + key: DEFAULT_TARGET_NAMESPACE # - name: IMAGE_ADDONS_PARAM_TKN_IMAGE # value: gcr.io/tekton-releases/dogfooding/tkn@sha256:f69a02ef099d8915e9e4ea1b74e43b7a9309fc97cf23cb457ebf191e73491677 diff --git a/config/openshift/webhook.yaml b/config/openshift/webhook.yaml index baed413519..eb89bab68c 100644 --- a/config/openshift/webhook.yaml +++ b/config/openshift/webhook.yaml @@ -45,6 +45,8 @@ spec: value: tekton-operator-webhook - name: WEBHOOK_SECRET_NAME value: tekton-operator-webhook-certs + - name: METRICS_DOMAIN + value: tekton.dev/operator ports: - name: https-webhook containerPort: 8443 diff --git a/operatorhub/README.md b/operatorhub/README.md index 5098a217fe..2940a767c5 100644 --- a/operatorhub/README.md +++ b/operatorhub/README.md @@ -1,9 +1,68 @@ # Generating Bundles (release artifact) for OperatorHub -1. From project root run: +We can use [bundle.py](./tools/bundle.py) tool to generate operator bundles. The tool takes in +a list of Kubernetes resource definitions (Deployment, Role, Rolebinding, ConfigMaps ...) and +some metadata (bundle description, release channels, bundle icon graphic... ) and outputs operator bundle. + +## Quick Links + +1. [Generating Operator Bundle for Kubernetes](./kubernetes/README.md) +1. [Generating Operator Bundle for OpenShift](./openshift/README.md) + +## Concepts + +### Bundle Generation "Strategies" + +The bundle generation strategy specifies how the tool accumulates input (list of kubernetes resources). +Two strategies are supported: + +1. **release-manifest**: input files are collected from a pre-existing release.yaml file. This release.yaml + could be from an already existing github release or from the result of `ko resolve cofig`. + +2. **local:** All input files are gathered in realtime from local repository extensive usage of `kustomize`. + +### Update Strategies + +An update strategy defines the update relations of the current bundle with the previous releases (bundles). +The bundle generation tool supports 2 update strategies. + +1. **semver**: OLM will upgrade opertor to a bundle with higher semver version, in the current subscription channel +2. **replaces**: OLM will follow explict `spec.replaces: ` filed specification + +more details: [semver-mode, replaces mode](https://k8s-operatorhub.github.io/community-operators/packaging-operator/) + + +## Conventions + +The tool expects the following directory structure and a config.yaml for each platform. ```bash -export BUNDLE_ARGS="--workspace=operatorhub/kubernetes --operator-release-version=1.1.1 --channels=a,b --default-channel=a --fetch-strategy-local --upgrade-strategy-semver" -make bundle +kubernetes +├── config.yaml +├── manifests +│ ├── bases +│ │ └── tektoncd-operator.clusterserviceversion.template.yaml +│ ├── fetch-strategy-local +│ │ └── kustomization.yaml +│ └── fetch-strategy-release-manifest +│ └── kustomization.yaml ``` +## CLI flags + + [bundle.py cli flags](./tools/bundle-too-cli-flags.md) + +## Specifying Image Overrides using config.yaml + + [bunele generation config.yaml](./tools/CONFIG-DEFINITION.md) + +## Operator LifeCycle Manager Concepts + +- [Operator Bundle](https://operator-sdk.netlify.app/docs/olm-integration/quickstart-bundle/) +- [ClusterServiceVersion CRD](https://olm.operatorframework.io/docs/concepts/crds/clusterserviceversion/) + +# References + +2. [Operator Lifecycle Manager (OLM) Documentation](https://olm.operatorframework.io/docs/) +3. [Operator SDK OLM Integration Documentation](https://operator-sdk.netlify.app/docs/olm-integration/) +4. [OperatorHub (Community Operators) Documentation](https://k8s-operatorhub.github.io/community-operators/packaging-operator/) diff --git a/operatorhub/kubernetes/README.md b/operatorhub/kubernetes/README.md new file mode 100644 index 0000000000..89f29f63bd --- /dev/null +++ b/operatorhub/kubernetes/README.md @@ -0,0 +1,34 @@ +# How to generate Operator Bundles for OpenShift + +For Kubernetes Platform ([operatorhub.io](https://operatorhub.io)) release we generate the +bundle for using `release-manifest` strategy. + +## Steps to generate bundles from an existing release.yaml + +**Note:** The input release.yaml could be a github release or the result of `ko resolve config` + +1. Make sure that we have the release manifest file ready + eg: + ```bash + curl -L -o tektoncd-operator-0.49.0 https://github.com/tektoncd/operator/releases/download/v0.49.0/release.notags.yaml + ``` + +2. From the project root (tektoncd/operator) run + + ```bash + export BUNDLE_ARGS='--workspace operatorhub/kubernetes --operator-release-version 0.49.0 --channels alpha --default-channel alpha --fetch-strategy-release-manifest --release-manifest tektoncd-operator-0.49.0 --upgrade-strategy-semver' + make operator-bundle + ``` + + **CLI flags explained** + + Flag | Description + --------------------------------------------- | ----------- + `--workspace operatorhub/kubernetes` | the working directory where the operator bundle should be assembled + `--operator-release-version 0.49.0` | version of the release (version of bundle) + `--channels alpha` | target release channel(s) (eg: stable,preview) + `--default-channel alpha` | set default channel of the operator + `--fetch-strategy-release-manifest` | gather input kubernetes resources from a list of yaml manifests instead of using local files + `--release-manifest tektoncd-operaotr-0.49.0` | specify release manifest file + `--upgrade-strategy-semver` | specify update strategy (use `replaces` or `semver`) + ```` diff --git a/operatorhub/kubernetes/config.yaml b/operatorhub/kubernetes/config.yaml index e413d8e9e3..d16c61bf15 100644 --- a/operatorhub/kubernetes/config.yaml +++ b/operatorhub/kubernetes/config.yaml @@ -1,7 +1,7 @@ platform: "kubernetes" operator-packagename: "tektoncd-operator" image-substitutions: -- image: ko://github.com/tektoncd/operator/cmd/kubernetes/operator:develContainer +- image: ko://github.com/tektoncd/operator/cmd/kubernetes/operator:devel replaceLocations: containerTargets: - deploymentName: tekton-operator @@ -13,7 +13,7 @@ image-substitutions: containerName: tekton-operator envKeys: - IMAGE_PIPELINES_PROXY -- image: gcr.io/tekton-releases/dogfooding/tkn@sha256:f69a02ef099d8915e9e4ea1b74e43b7a9309fc97cf23cb457ebf191e73491677DEVEL +- image: gcr.io/tekton-releases/dogfooding/tkn@sha256:f69a02ef099d8915e9e4ea1b74e43b7a9309fc97cf23cb457ebf191e73491677 replaceLocations: envTargets: - deploymentName: tekton-operator diff --git a/operatorhub/kubernetes/manifests/fetch-strategy-local/kustomization.yaml b/operatorhub/kubernetes/manifests/fetch-strategy-local/kustomization.yaml index 55fa9e9253..503b5aec6d 100644 --- a/operatorhub/kubernetes/manifests/fetch-strategy-local/kustomization.yaml +++ b/operatorhub/kubernetes/manifests/fetch-strategy-local/kustomization.yaml @@ -2,5 +2,6 @@ resources: - ../../../../config/kubernetes - ../../../../config/crs/kubernetes - ../bases/tektoncd-operator.clusterserviceversion.template.yaml +- ../../scorecard apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization diff --git a/operatorhub/kubernetes/manifests/fetch-strategy-release-manifest/kustomization.yaml b/operatorhub/kubernetes/manifests/fetch-strategy-release-manifest/kustomization.yaml index a9ec5415ca..097e1956e1 100644 --- a/operatorhub/kubernetes/manifests/fetch-strategy-release-manifest/kustomization.yaml +++ b/operatorhub/kubernetes/manifests/fetch-strategy-release-manifest/kustomization.yaml @@ -1,5 +1,6 @@ resources: - ../../../../config/crs/kubernetes - ../bases/tektoncd-operator.clusterserviceversion.template.yaml +- ../../scorecard apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization diff --git a/operatorhub/kubernetes/release-artifacts/bundle.Dockerfile b/operatorhub/kubernetes/release-artifacts/bundle.Dockerfile index 9d63677826..d3674dca04 100644 --- a/operatorhub/kubernetes/release-artifacts/bundle.Dockerfile +++ b/operatorhub/kubernetes/release-artifacts/bundle.Dockerfile @@ -5,8 +5,8 @@ LABEL operators.operatorframework.io.bundle.mediatype.v1=registry+v1 LABEL operators.operatorframework.io.bundle.manifests.v1=manifests/ LABEL operators.operatorframework.io.bundle.metadata.v1=metadata/ LABEL operators.operatorframework.io.bundle.package.v1=tektoncd-operator -LABEL operators.operatorframework.io.bundle.channels.v1=a,b -LABEL operators.operatorframework.io.bundle.channel.default.v1=a +LABEL operators.operatorframework.io.bundle.channels.v1=alpha +LABEL operators.operatorframework.io.bundle.channel.default.v1=alpha LABEL operators.operatorframework.io.metrics.builder=operator-sdk-v1.7.1+git LABEL operators.operatorframework.io.metrics.mediatype.v1=metrics+v1 LABEL operators.operatorframework.io.metrics.project_layout=unknown diff --git a/operatorhub/kubernetes/release-artifacts/bundle/manifests/operator.tekton.dev_tektonconfigs.yaml b/operatorhub/kubernetes/release-artifacts/bundle/manifests/operator.tekton.dev_tektonconfigs.yaml index 5173bfcbe2..d6a2d981cd 100644 --- a/operatorhub/kubernetes/release-artifacts/bundle/manifests/operator.tekton.dev_tektonconfigs.yaml +++ b/operatorhub/kubernetes/release-artifacts/bundle/manifests/operator.tekton.dev_tektonconfigs.yaml @@ -4,7 +4,7 @@ metadata: creationTimestamp: null labels: operator.tekton.dev/release: devel - version: devel + version: v0.49.0 name: tektonconfigs.operator.tekton.dev spec: group: operator.tekton.dev diff --git a/operatorhub/kubernetes/release-artifacts/bundle/manifests/operator.tekton.dev_tektondashboards.yaml b/operatorhub/kubernetes/release-artifacts/bundle/manifests/operator.tekton.dev_tektondashboards.yaml index 191cbab2b1..5ed34f0643 100644 --- a/operatorhub/kubernetes/release-artifacts/bundle/manifests/operator.tekton.dev_tektondashboards.yaml +++ b/operatorhub/kubernetes/release-artifacts/bundle/manifests/operator.tekton.dev_tektondashboards.yaml @@ -4,7 +4,7 @@ metadata: creationTimestamp: null labels: operator.tekton.dev/release: devel - version: devel + version: v0.49.0 name: tektondashboards.operator.tekton.dev spec: group: operator.tekton.dev diff --git a/operatorhub/kubernetes/release-artifacts/bundle/manifests/operator.tekton.dev_tektonpipelines.yaml b/operatorhub/kubernetes/release-artifacts/bundle/manifests/operator.tekton.dev_tektonpipelines.yaml index 5be41d4cee..c122a7bbd8 100644 --- a/operatorhub/kubernetes/release-artifacts/bundle/manifests/operator.tekton.dev_tektonpipelines.yaml +++ b/operatorhub/kubernetes/release-artifacts/bundle/manifests/operator.tekton.dev_tektonpipelines.yaml @@ -4,7 +4,7 @@ metadata: creationTimestamp: null labels: operator.tekton.dev/release: devel - version: devel + version: v0.49.0 name: tektonpipelines.operator.tekton.dev spec: group: operator.tekton.dev diff --git a/operatorhub/kubernetes/release-artifacts/bundle/manifests/operator.tekton.dev_tektonresults.yaml b/operatorhub/kubernetes/release-artifacts/bundle/manifests/operator.tekton.dev_tektonresults.yaml index 8c2a73726b..6c908a7378 100644 --- a/operatorhub/kubernetes/release-artifacts/bundle/manifests/operator.tekton.dev_tektonresults.yaml +++ b/operatorhub/kubernetes/release-artifacts/bundle/manifests/operator.tekton.dev_tektonresults.yaml @@ -4,7 +4,7 @@ metadata: creationTimestamp: null labels: operator.tekton.dev/release: devel - version: devel + version: v0.49.0 name: tektonresults.operator.tekton.dev spec: group: operator.tekton.dev diff --git a/operatorhub/kubernetes/release-artifacts/bundle/manifests/operator.tekton.dev_tektontriggers.yaml b/operatorhub/kubernetes/release-artifacts/bundle/manifests/operator.tekton.dev_tektontriggers.yaml index 3fdc433a51..47825721f0 100644 --- a/operatorhub/kubernetes/release-artifacts/bundle/manifests/operator.tekton.dev_tektontriggers.yaml +++ b/operatorhub/kubernetes/release-artifacts/bundle/manifests/operator.tekton.dev_tektontriggers.yaml @@ -4,7 +4,7 @@ metadata: creationTimestamp: null labels: operator.tekton.dev/release: devel - version: devel + version: v0.49.0 name: tektontriggers.operator.tekton.dev spec: group: operator.tekton.dev diff --git a/operatorhub/kubernetes/release-artifacts/bundle/manifests/tekton-config-defaults_v1_configmap.yaml b/operatorhub/kubernetes/release-artifacts/bundle/manifests/tekton-config-defaults_v1_configmap.yaml index 883e5fc579..4a0e468705 100644 --- a/operatorhub/kubernetes/release-artifacts/bundle/manifests/tekton-config-defaults_v1_configmap.yaml +++ b/operatorhub/kubernetes/release-artifacts/bundle/manifests/tekton-config-defaults_v1_configmap.yaml @@ -4,6 +4,7 @@ data: DEFAULT_TARGET_NAMESPACE: tekton-pipelines kind: ConfigMap metadata: + annotations: {} labels: operator.tekton.dev/release: devel name: tekton-config-defaults diff --git a/operatorhub/kubernetes/release-artifacts/bundle/manifests/tekton-operator-webhook_v1_service.yaml b/operatorhub/kubernetes/release-artifacts/bundle/manifests/tekton-operator-webhook_v1_service.yaml index 1189dadb70..257d46ac72 100644 --- a/operatorhub/kubernetes/release-artifacts/bundle/manifests/tekton-operator-webhook_v1_service.yaml +++ b/operatorhub/kubernetes/release-artifacts/bundle/manifests/tekton-operator-webhook_v1_service.yaml @@ -6,7 +6,7 @@ metadata: app: tekton-operator name: tekton-operator-webhook operator.tekton.dev/release: devel - version: devel + version: v0.49.0 name: tekton-operator-webhook spec: ports: diff --git a/operatorhub/kubernetes/release-artifacts/bundle/manifests/tektoncd-operator.clusterserviceversion.yaml b/operatorhub/kubernetes/release-artifacts/bundle/manifests/tektoncd-operator.clusterserviceversion.yaml index 2ee03f9442..1d1e9d2497 100644 --- a/operatorhub/kubernetes/release-artifacts/bundle/manifests/tektoncd-operator.clusterserviceversion.yaml +++ b/operatorhub/kubernetes/release-artifacts/bundle/manifests/tektoncd-operator.clusterserviceversion.yaml @@ -27,12 +27,15 @@ metadata: operators.operatorframework.io/project_layout: unknown repository: https://github.com/tektoncd/operator support: The Tetkon Authors - name: tektoncd-operator.v1.1.1 + name: tektoncd-operator.v0.49.0 namespace: placeholder spec: apiservicedefinitions: {} customresourcedefinitions: owned: + - kind: TektonAddon + name: tektonaddons.operator.tekton.dev + version: v1alpha1 - description: 'TektonConfig installs Tekton Pipelines, Tekton Triggers and Tekton Dashboard on a cluster. The operator installs @@ -642,6 +645,10 @@ spec: spec: containers: - env: + - name: IMAGE_PIPELINES_PROXY + value: gcr.io/tekton-releases/github.com/tektoncd/operator/cmd/kubernetes/proxy-webhook@sha256:561dc8867bb94007208806178d24efff59a290f4082b6e72a0406d8532060c18 + - name: IMAGE_JOB_PRUNER_TKN + value: gcr.io/tekton-releases/dogfooding/tkn@sha256:f69a02ef099d8915e9e4ea1b74e43b7a9309fc97cf23cb457ebf191e73491677 - name: SYSTEM_NAMESPACE valueFrom: fieldRef: @@ -652,12 +659,17 @@ spec: fieldPath: metadata.name - name: OPERATOR_NAME value: tekton-operator - - name: IMAGE_PIPELINES_PROXY - value: ko://github.com/tektoncd/operator/cmd/kubernetes/webhook:develEnv - - name: IMAGE_JOB_PRUNER_TKN - value: gcr.io/tekton-releases/dogfooding/tkn@sha256:f69a02ef099d8915e9e4ea1b74e43b7a9309fc97cf23cb457ebf191e73491677DEVEL - image: ko://github.com/tektoncd/operator/cmd/kubernetes/operator:develContainer - imagePullPolicy: Always + - name: AUTOINSTALL_COMPONENTS + valueFrom: + configMapKeyRef: + key: AUTOINSTALL_COMPONENTS + name: tekton-config-defaults + - name: DEFAULT_TARGET_NAMESPACE + valueFrom: + configMapKeyRef: + key: DEFAULT_TARGET_NAMESPACE + name: tekton-config-defaults + image: gcr.io/tekton-releases/github.com/tektoncd/operator/cmd/kubernetes/operator@sha256:bd055c27d897f327ddb4e846782fccfda3b1d3d2397d5c764d8038547acde391 name: tekton-operator resources: {} serviceAccountName: tekton-operator @@ -686,8 +698,8 @@ spec: value: tekton-operator-webhook - name: WEBHOOK_SECRET_NAME value: tekton-operator-webhook-certs - image: ko://github.com/tektoncd/operator/cmd/kubernetes/webhook - name: tekton-operator-webhook + image: gcr.io/tekton-releases/github.com/tektoncd/operator/cmd/kubernetes/webhook@sha256:25374b5e15738301b1173e7397248aa46419e164a99d2d8a1343204f02e0e75d + name: webhook ports: - containerPort: 8443 name: https-webhook @@ -724,16 +736,7 @@ spec: maturity: alpha provider: name: The Tekton Authors - relatedImages: - - image: ko://github.com/tektoncd/operator/cmd/kubernetes/operator:develContainer - name: TEKTON_OPERATOR - - image: ko://github.com/tektoncd/operator/cmd/kubernetes/webhook:develEnv - name: IMAGE_PIPELINES_PROXY - - image: gcr.io/tekton-releases/dogfooding/tkn@sha256:f69a02ef099d8915e9e4ea1b74e43b7a9309fc97cf23cb457ebf191e73491677DEVEL - name: IMAGE_JOB_PRUNER_TKN - - image: ko://github.com/tektoncd/operator/cmd/kubernetes/webhook - name: TEKTON_OPERATOR_WEBHOOK - version: 1.1.1 + version: 0.49.0 webhookdefinitions: - admissionReviewVersions: - v1beta1 diff --git a/operatorhub/kubernetes/release-artifacts/bundle/metadata/annotations.yaml b/operatorhub/kubernetes/release-artifacts/bundle/metadata/annotations.yaml index 09d6f4ca7a..f4a17c6fdf 100644 --- a/operatorhub/kubernetes/release-artifacts/bundle/metadata/annotations.yaml +++ b/operatorhub/kubernetes/release-artifacts/bundle/metadata/annotations.yaml @@ -4,8 +4,8 @@ annotations: operators.operatorframework.io.bundle.manifests.v1: manifests/ operators.operatorframework.io.bundle.metadata.v1: metadata/ operators.operatorframework.io.bundle.package.v1: tektoncd-operator - operators.operatorframework.io.bundle.channels.v1: a,b - operators.operatorframework.io.bundle.channel.default.v1: a + operators.operatorframework.io.bundle.channels.v1: alpha + operators.operatorframework.io.bundle.channel.default.v1: alpha operators.operatorframework.io.metrics.builder: operator-sdk-v1.7.1+git operators.operatorframework.io.metrics.mediatype.v1: metrics+v1 operators.operatorframework.io.metrics.project_layout: unknown diff --git a/operatorhub/kubernetes/release-artifacts/bundle/tests/scorecard/config.yaml b/operatorhub/kubernetes/release-artifacts/bundle/tests/scorecard/config.yaml new file mode 100644 index 0000000000..c77047841e --- /dev/null +++ b/operatorhub/kubernetes/release-artifacts/bundle/tests/scorecard/config.yaml @@ -0,0 +1,7 @@ +apiVersion: scorecard.operatorframework.io/v1alpha3 +kind: Configuration +metadata: + name: config +stages: +- parallel: true + tests: [] diff --git a/operatorhub/kubernetes/scorecard/bases/config.yaml b/operatorhub/kubernetes/scorecard/bases/config.yaml new file mode 100644 index 0000000000..4899c6d5ed --- /dev/null +++ b/operatorhub/kubernetes/scorecard/bases/config.yaml @@ -0,0 +1,11 @@ +--- +# Required for bundle generation to work. +# TODO: add scorecard tests plugins. +# eg: https://github.com/operator-framework/operator-sdk/tree/master/testdata/go/v3/memcached-operator/config/scorecard +apiVersion: scorecard.operatorframework.io/v1alpha3 +kind: Configuration +metadata: + name: config +stages: +- parallel: true + tests: [] diff --git a/operatorhub/kubernetes/scorecard/kustomization.yaml b/operatorhub/kubernetes/scorecard/kustomization.yaml new file mode 100644 index 0000000000..607e55cbf5 --- /dev/null +++ b/operatorhub/kubernetes/scorecard/kustomization.yaml @@ -0,0 +1,2 @@ +resources: +- bases/config.yaml diff --git a/operatorhub/openshift/README.md b/operatorhub/openshift/README.md new file mode 100644 index 0000000000..953a9bafd9 --- /dev/null +++ b/operatorhub/openshift/README.md @@ -0,0 +1,3 @@ +# How to generate Operator Bundles for OpenShift + +`TBD` diff --git a/operatorhub/openshift/manifests/fetch-strategy-local/kustomization.yaml b/operatorhub/openshift/manifests/fetch-strategy-local/kustomization.yaml index a4349aab21..29ba74176a 100644 --- a/operatorhub/openshift/manifests/fetch-strategy-local/kustomization.yaml +++ b/operatorhub/openshift/manifests/fetch-strategy-local/kustomization.yaml @@ -2,5 +2,6 @@ resources: - ../../../../config/openshift - ../../../../config/crs/openshift - ../bases/openshift-pipelines-operator-rh.clusterserviceversion.template.yaml +- ../../scorecard apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization diff --git a/operatorhub/openshift/release-artifacts/bundle.Dockerfile b/operatorhub/openshift/release-artifacts/bundle.Dockerfile deleted file mode 100644 index 6d420e7829..0000000000 --- a/operatorhub/openshift/release-artifacts/bundle.Dockerfile +++ /dev/null @@ -1,21 +0,0 @@ -FROM scratch - -# Core bundle labels. -LABEL operators.operatorframework.io.bundle.mediatype.v1=registry+v1 -LABEL operators.operatorframework.io.bundle.manifests.v1=manifests/ -LABEL operators.operatorframework.io.bundle.metadata.v1=metadata/ -LABEL operators.operatorframework.io.bundle.package.v1=openshift-pipelines-operator-rh -LABEL operators.operatorframework.io.bundle.channels.v1=a,b -LABEL operators.operatorframework.io.bundle.channel.default.v1=a -LABEL operators.operatorframework.io.metrics.builder=operator-sdk-v1.8.0 -LABEL operators.operatorframework.io.metrics.mediatype.v1=metrics+v1 -LABEL operators.operatorframework.io.metrics.project_layout=unknown - -# Labels for testing. -LABEL operators.operatorframework.io.test.mediatype.v1=scorecard+v1 -LABEL operators.operatorframework.io.test.config.v1=tests/scorecard/ - -# Copy files to locations specified by labels. -COPY bundle/manifests /manifests/ -COPY bundle/metadata /metadata/ -COPY bundle/tests/scorecard /tests/scorecard/ diff --git a/operatorhub/openshift/release-artifacts/bundle/manifests/config-logging_v1_configmap.yaml b/operatorhub/openshift/release-artifacts/bundle/manifests/config-logging_v1_configmap.yaml deleted file mode 100644 index a852bcc023..0000000000 --- a/operatorhub/openshift/release-artifacts/bundle/manifests/config-logging_v1_configmap.yaml +++ /dev/null @@ -1,72 +0,0 @@ -apiVersion: v1 -data: - _example: | - ################################ - # # - # EXAMPLE CONFIGURATION # - # # - ################################ - - # This block is not actually functional configuration, - # but serves to illustrate the available configuration - # options and document them in a way that is accessible - # to users that `kubectl edit` this config map. - # - # These sample configuration options may be copied out of - # this example block and unindented to be in the data block - # to actually change the configuration. - - # Common configuration for all Knative codebase - zap-logger-config: | - { - "level": "info", - "development": false, - "outputPaths": ["stdout"], - "errorOutputPaths": ["stderr"], - "encoding": "json", - "encoderConfig": { - "timeKey": "ts", - "levelKey": "level", - "nameKey": "logger", - "callerKey": "caller", - "messageKey": "msg", - "stacktraceKey": "stacktrace", - "lineEnding": "", - "levelEncoder": "", - "timeEncoder": "iso8601", - "durationEncoder": "", - "callerEncoder": "" - } - } - loglevel.controller: info - loglevel.webhook: info - zap-logger-config: | - { - "level": "debug", - "development": true, - "sampling": { - "initial": 100, - "thereafter": 100 - }, - "outputPaths": ["stdout"], - "errorOutputPaths": ["stderr"], - "encoding": "json", - "encoderConfig": { - "timeKey": "", - "levelKey": "level", - "nameKey": "logger", - "callerKey": "caller", - "messageKey": "msg", - "stacktraceKey": "stacktrace", - "lineEnding": "", - "levelEncoder": "", - "timeEncoder": "", - "durationEncoder": "", - "callerEncoder": "" - } - } -kind: ConfigMap -metadata: - labels: - operator.tekton.dev/release: devel - name: config-logging diff --git a/operatorhub/openshift/release-artifacts/bundle/manifests/openshift-pipelines-operator-rh.clusterserviceversion.yaml b/operatorhub/openshift/release-artifacts/bundle/manifests/openshift-pipelines-operator-rh.clusterserviceversion.yaml deleted file mode 100644 index 7c02f10c20..0000000000 --- a/operatorhub/openshift/release-artifacts/bundle/manifests/openshift-pipelines-operator-rh.clusterserviceversion.yaml +++ /dev/null @@ -1,824 +0,0 @@ -apiVersion: operators.coreos.com/v1alpha1 -kind: ClusterServiceVersion -metadata: - annotations: - alm-examples: "[\n {\n \"apiVersion\": \"operator.tekton.dev/v1alpha1\",\n\ - \ \"kind\": \"TektonAddon\",\n \"metadata\": {\n \"name\": \"addon\"\ - \n },\n \"spec\": {\n \"targetNamespace\": \"openshift-pipelines\"\ - \n }\n },\n {\n \"apiVersion\": \"operator.tekton.dev/v1alpha1\",\n\ - \ \"kind\": \"TektonConfig\",\n \"metadata\": {\n \"name\": \"config\"\ - \n },\n \"spec\": {\n \"addon\": {\n \"params\": [\n \ - \ {\n \"name\": \"clusterTasks\",\n \"value\": \"\ - true\"\n },\n {\n \"name\": \"pipelineTemplates\"\ - ,\n \"value\": \"true\"\n }\n ]\n },\n \ - \ \"profile\": \"all\",\n \"targetNamespace\": \"openshift-pipelines\"\n\ - \ }\n },\n {\n \"apiVersion\": \"operator.tekton.dev/v1alpha1\",\n \ - \ \"kind\": \"TektonPipeline\",\n \"metadata\": {\n \"name\": \"pipeline\"\ - \n },\n \"spec\": {\n \"targetNamespace\": \"openshift-pipelines\"\ - \n }\n },\n {\n \"apiVersion\": \"operator.tekton.dev/v1alpha1\",\n\ - \ \"kind\": \"TektonTrigger\",\n \"metadata\": {\n \"name\": \"trigger\"\ - \n },\n \"spec\": {\n \"targetNamespace\": \"openshift-pipelines\"\ - \n }\n }\n]" - capabilities: Seamless Upgrades - categories: Developer Tools, Integration & Delivery - certified: 'false' - containerImage: registry.redhat.io/openshift-pipelines/pipelines-rhel8-operator@sha256:782e1fbb7c81effe0cae9133c6d13ddc62e6156533c5037193ae730d630c028a - description: Red Hat OpenShift Pipelines is a cloud-native CI/CD solution for - building pipelines using Tekton concepts which run natively on OpenShift and - Kubernetes. - olm.skipRange: '>=1.5.0 <1.6.0' - operators.operatorframework.io/builder: operator-sdk-v1.8.0 - operators.operatorframework.io/internal-objects: '["tektonconfig.operator.tekton.dev",,"tektonpipeline.operator.tekton.dev","tektontrigger.operator.tekton.dev","tektonaddon.operator.tekton.dev"]' - operators.operatorframework.io/project_layout: unknown - repository: https://github.com/openshift/tektoncd-operator - support: Red Hat - labels: - operatorframework.io/arch.amd64: supported - operatorframework.io/arch.ppc64le: supported - operatorframework.io/arch.s390x: supported - name: openshift-pipelines-operator-rh.v1.6.0 - namespace: placeholder -spec: - apiservicedefinitions: {} - customresourcedefinitions: - owned: - - description: Represents an installation of latest version of Addons (exclusively - ClusterTasks, consoleyamlsamples, consoleclidownloads and consolequickstarts) - displayName: Tekton Addons - kind: TektonAddon - name: tektonaddons.operator.tekton.dev - specDescriptors: - - description: Namespace where Addons installed - displayName: Target Namespace - path: targetNamespace - x-descriptors: - - urn:alm:descriptor:com.tectonic.ui:label - statusDescriptors: - - description: The version of Addons installed - displayName: Version - path: version - x-descriptors: - - urn:alm:descriptor:com.tectonic.ui:label - version: v1alpha1 - - description: Represents an installation of latest version of Tekton components, - TektonPipeline, TektonTrigger and TektonAddon - displayName: Tekton Configuration - kind: TektonConfig - name: tektonconfigs.operator.tekton.dev - specDescriptors: - - description: Namespace where Tekton components are installed - displayName: Target Namespace - path: targetNamespace - x-descriptors: - - urn:alm:descriptor:com.tectonic.ui:label - - description: Installation Profile (specifies which of the Tekton components - are installed) - displayName: Profile - path: profile - x-descriptors: - - urn:alm:descriptor:com.tectonic.ui:label - statusDescriptors: - - description: The version of Operator installed - displayName: Version - path: version - x-descriptors: - - urn:alm:descriptor:com.tectonic.ui:label - version: v1alpha1 - - description: Represents an installation of latest version of Tekton Pipelines - displayName: Tekton Pipelines - kind: TektonPipeline - name: tektonpipelines.operator.tekton.dev - specDescriptors: - - description: Namespace where Tekton Pipelines installed - displayName: Target Namespace - path: targetNamespace - x-descriptors: - - urn:alm:descriptor:com.tectonic.ui:label - statusDescriptors: - - description: The version of Tekton Pipelines installed - displayName: Version - path: version - x-descriptors: - - urn:alm:descriptor:com.tectonic.ui:label - version: v1alpha1 - - description: Represents an installation of latest version of Tekton Triggers - displayName: Tekton Triggers - kind: TektonTrigger - name: tektontriggers.operator.tekton.dev - specDescriptors: - - description: Namespace where Tekton Triggers installed - displayName: Target Namespace - path: targetNamespace - x-descriptors: - - urn:alm:descriptor:com.tectonic.ui:label - statusDescriptors: - - description: The version of Tekton Triggers installed - displayName: Version - path: version - x-descriptors: - - urn:alm:descriptor:com.tectonic.ui:label - version: v1alpha1 - description: 'Red Hat OpenShift Pipelines is a cloud-native continuous integration - and delivery - - (CI/CD) solution for building pipelines using [Tekton](https://tekton.dev). - - Tekton is a flexible Kubernetes-native open-source CI/CD framework, which - - enables automating deployments across multiple platforms (Kubernetes, - - serverless, VMs, etc) by abstracting away the underlying details. - - - ## Features - - * Standard CI/CD pipelines definition - - * Build images with Kubernetes tools such as S2I, Buildah, Buildpacks, Kaniko, - etc - - * Deploy applications to multiple platforms such as Kubernetes, serverless and - VMs - - * Easy to extend and integrate with existing tools - - * Scale pipelines on-demand - - * Portable across any Kubernetes platform - - * Designed for microservices and decentralized team - - * Integrated with OpenShift Developer Console - - - ## Installation - - _Red Hat OpenShift Pipelines Operator_ gets installed into a single namespace - (openshift-operators) which would then install _Red Hat OpenShift Pipelines_ into - the openshift-pipelines namespace. _Red Hat OpenShift Pipelines_ is however cluster-wide - and can run pipelines created in any namespace. - - ### Components - - - Tekton Pipelines: v0.22.0 - - - Tekton Triggers: v0.12.1 - - - ClusterTasks based on Tekton Catalog 0.22 - - ## Getting Started - - In order to get familiar with _OpenShift Pipelines_ concepts and create your first - pipeline, follow the [OpenShift Pipelines Docs](https://docs.openshift.com/container-platform/latest/pipelines/creating-applications-with-cicd-pipelines.html). - - ## CLI (tkn) - - Tekton Pipelines cli project provides a CLI (tkn) for interacting with OpenShift - Pipelines. - - - [Download tkn for Linux](https://mirror.openshift.com/pub/openshift-v4/clients/pipeline/0.17.2/tkn-linux-amd64-0.17.2.tar.gz) - - - [Download tkn for Mac](https://mirror.openshift.com/pub/openshift-v4/clients/pipeline/0.17.2/tkn-macos-amd64-0.17.2.tar.gz) - - - [Download tkn for Windows](https://mirror.openshift.com/pub/openshift-v4/clients/pipeline/0.17.2/tkn-windows-amd64-0.17.2.zip) - - - [Download tkn for IBM Power](https://mirror.openshift.com/pub/openshift-v4/clients/pipeline/0.17.2/tkn-linux-ppc64le-0.17.2.tar.gz) - - - [Download tkn for IBM Z](https://mirror.openshift.com/pub/openshift-v4/clients/pipeline/0.17.2/tkn-linux-s390x-0.17.2.tar.gz) - - ' - displayName: Red Hat OpenShift Pipelines - icon: - - base64data: 'iVBORw0KGgoAAAANSUhEUgAAAGUAAABlCAYAAABUfC3PAAAQrElEQVR4Xu2dd3wU1RbHfymkQBom - - kAYEiICCSFDkw3uACaIi0mJBKT4JRgSehSAoyEMMykMUpfgBBaSEjw8BfX4oL4ogQmjqB5CignQS - - SgrpZdOTeZ8zYdbdzczO3dm5uxtx/oLMnXvPOd97bj33rhuawFOTeVmoPnsC1edOoC4rHbWZ6aLU - - 9P/6smJZDTzDo+AZ3l58531vHNz9g+DVOQa+vQa4ubrKLilg1dnjQnnaVlT9nGbV8FqNS8AIEMFq - - HhePZhEdXMoOLiOMYe8WoWLfVhAMpdqvFYLadwTJNzYefsMS4N2lp9Nt4lQBqFkq+XwJDKkpDgeh - - BIoA+Y9OQuCYqU6zjVMKrji6VyhelYzKY/vUKrFT3/sNHYfAF5Id3rw5FEpTgWFZExwNxyFQqOMu - - /DDJ5T1DzS39R01B8PSl3G3GvYD8D6YIpZuWqunbZN67+wWKTRrPPocbFGqq8ucmoDYro8kY3BZB - - fe6JRXByCpf+hguUP5t3KMEir2k5bQn8h43X1Y66ZkZD3Nxp8ag+f9KWStfk09JAICR5vW621C0j - - aq5yp8e7zHzD0aS9OvVAxMaTuthTl0xK/7dOyJ873tF2cLnyaOLZ6oOtdq8K2A3lLyDmdYP6mdCV - - aXaBsQvKX0DkndWtRQCC522EX/8hmuyr6SMSxVWA0PK8z71x8IxoWKan5fzKn9NQX1rklOZNAFBS - - A9TDDR3f34jAQaNstrHNH7gKEFp6p+EozRfkHpqwFq1KdigcCUgd/QOAm5s2MDZDoSX23Ncec0ot - - lAr1G5qA4LfWqcpQdeFX5E4dirrsK6pp7U1gCUTKz8PTEz2O1dpkZ5sS0xpWzsQ4pw57yUPCNxxX - - taEgCCgpKYFQVYniIWGq6e1JoAREyrOZjy+6H65gtjVzQiogc3QPwdkTQxrZKDVZkhEkIHV1dQ3N - - yO+HUZI02B67K36rBkT6sEW7aHRJvchkb6ZElPGNaSOE8n3buCjGmimLl1gCobzdhXoUP9KKtRjm - - dKxApAwjE2cidMoCVZurJnCVjp3kCBidhJavLlautTebLMlDTBNWTh+Gml9/YDa4WkJbgUgdf+eU - - /WjRs79Vu6tCofWsrDExTu1HJAMF0ZL5hLdk7SXnIaYJa1fPQcWXy9VszfReCxApY++AIHQ7WGQf - - FGc3W7R0EZj4Jnz7DoFHiHyHrQaEDOLv1wJuN66h9ItlKNm4hMn4consASLlF/p4IiKT1yiCsUrM - - mcNf7x79EJKcAs/IjhCqK1Hx407UXD6NwPGzzGzFAkRsOjYvRouBT8Ar+i7x+/IDqShclGTTfo8e - - QKRmrOdJQRuUa8OiBEdvUpFnhH78PTzbRKP22kUUfPAKKg59IxqSZu+R2y8bobACsezoW770Lvye - - mAT3FoGgwQvLvEsvIJLwAXfG4PbNJ2TBKNIq/nyxULhoqmY31/Jhq4Vb0Dx2BGpvXEPev8ag6uTB - - RtkEv5UC2r9gBUIZCLs3oWzhi43yooFD0Ivzxb8XLZ9l1qzRBNWrSwwKPkyC3kAkQbqsPyDb6StC - - uRIXKDgqKI68IzzlMNwDb0Ph0testvkUfhqxPR1ldYDcKMvS8u6VBhSPaGe1joR+9C18/jYIVcf2 - - IXtiHKQVA5qTZY6JEdeypKUTLZVN6RuluYssFN5eIi0iUk30+ftgNGvXGbWZl5EzaQBTG+/9wJPw - - nrFSrMHWHvfaGpQl9mZaZmnx0NM3l24EuHk3N2b7S4wbFyDWvEUWCo++hEBQFIi4ohse1ciW1K5T - - yCrr4xHWDn4Lt0No3bYRHFEpDbP4215dLEZHmj7nEweg7Ggaq1g2p5PzlkZQeC7JS/2BnOQZ96lO - - mRQV9h35IjzadxXf16Wf1jQfUZIte8VcZH2SbLOxWT+glWTLkVgjS2S/ECvwDCeVU14cAU2PZ9VD - - 93TWVp0NJw7h3Lh+updpmmHwwHhELd5qZGEGhWbv14d34CoAzT/CVh8wK4P298tSU7iWq5Y5DSAo - - 8t4rNh4BcSOMyYW6Wpy4p5na53a9t1xFNoPCu4MnydsdLBcP/dQV3jCu9lJFqM1qOAjkrMdy2Bv4 - - QDxaPvwUgh58AqU/7MTFV4ZzFS164SbjLqUZFN5L82Er0+DVrTeu9GsunqyiZXh6aG3NmY+1eUhA - - v0cRvfxrpL8+CoU7N3MT03QyaYTCu+ny7fsoWi/5GnmzRsHwXYNy0pE32lN31sMyMey0Jg3Nu/fG - - yd5/DJX1lte0CTNC4d10td1biJpzJ8XJmas8LEAkWWOOVqEg9TNcSX6em/jSDN8IhedqsLgPMnUR - - ro+gvsM1Ar5tAUIUWo1NQpvXFuHU4A6o5qSDtHpshMJzWcXVvMRWIJJr3H2wEEW7v+LmLdJEUoRC - - ARFZY3tycUtxCPzpfpfxEq1AyDhtZn6EkKcmcxsiS5EvIhSes3iKPHFv7o/rj93OBbotmdoDxNi3 - - HKtBxhvPcBuJ3fML3EQohSvfEoo/nWuLfsxpo36qQf6CySjbupr5Gx4J9QBCct2xuSG86czTfFqW - - qBmLIULRe2mFFh8pjNSn1wBxKzejtzsPOzPnqRcQKjD0uRkIf/nfuDDhQbF8vRcraclFhKLXpJFu - - b6CVYDqrYfmUpa4HHdN29MxdLyB+veIQPjkZfr0ah8kWbF8vLlpW37yehLm2yCRseV9sA5T0Xqpb - - E6rlWFsBlj6mTbOcpKGoltlRVC1AQwK9gLR5fQlajZ1iVYK6smJkrngbeZ8t0iDpH59QtIsuUFiA - - ULFVVVUoNxhQ9d5EVO35r13Cq32sFxDyjrBJ8mFNpjKQbgaDASUr5qBws/ZQJhEKHYujHT+tD21a - - ha7Yq/q5JDQlpB1BnvG9egHximiPbjv+CNRQUtJUNzehHukPaI/G1AUKHSejYAdrj6nQUjo9g+NM - - y9YLCOUZ9U4Kbhs+zmbdKndtQs67jQM1VGvuzQR2e0rUEes75XJAqGweQdd6AiEZu32bDi+ZrWvJ - - uEq64cZVZDytfeWbKxRFoakJY4gyYa1ZlE5vIJRnz5PKFc6abm6VBqQPth5BY003blCsCS32KzpC - - 4QHEGhQ13VwSiprQIpQrZ1A8oa8tziCblhcQpeaLRTe34nykx3fWrJvdnmLZ0bMILTY3ClGLtmjC - - E4hcR8+qW81Pu5D5xmhbVDFLazcUmsVTuCk9rELrcYiHNxDSh2bxndY0DPdZdaOJ3/XRPVGj8Zwl - - 7UDqMnkkb/Ho84g4eWJ56r9aBsMq9QmZUl6OACKVTbP5gCcnMetmr5foNqOnvXb/TWdQ76keimNv - - s+VIIBKYqA1HgIiO6vXNzqEwFWCEoleYasCSHcCdvWUX0qjJql6TrCl6UbKGM4AYPWbZDnh2k9eN - - ZvFlX36MvE+0e79UDkW16L50TzG+vv+YAffIjvBs3UY89FO67HW7YPCah6hXffMUzcLaofXL8+E/ - - 8HGUHW24lLTy1GFdYEglGVeJeV6aFnW4HtkT7pc9a8JqFGd6iKWMHRdvgU+n7jg9lM9OqnGTi2d4 - - UeSWC6gvykPW+D6sDMzSuRIQEqzH4XLkbliKzKVvaNJH7SMKMxKbL3tXiq0VJIYXTVmIjD7qgwDL - - fFwNSPDjz6PdnFU4HsNnJ1WKwDeGGOmx0aUEh/bpaecxfx57IJurASHduqZeQE3ONZxP5BNQ6NMq - - DF2/z24InKBH7316U0DBs1eL5xRZvcUVgbTo2Q+dUw7gXEJ/GI43Poup1iyxvJeORBih8IxoIYFY - - vcUVgZD83fflovLCKW5eQmVIkfdGKDwD8qhAltBVVwFCO46mQRBhL8xG+D/f5hqyanoFldlRCL0m - - kUqu2mZHlvjq2uDwRklcBYiHfxAoPPXS1MdQvGeruMnVbccl5Kx7n9uIi4xhevbRDArP+QoVTAdQ - - I7ZcQNXRvSheN1+8VpAeVwFCstBhIZqLUHTK+efiEP3xDlHG3wY2rkgs/QRrGtMbjsyg8G7CRKUT - - ZyNo0juirBRyRCeCCw+noXDPVtQ56d5HU8OZ7svT0ToKIj39aDS3SHsq2/L2vEYHUXk3YbR42XZP - - oWwFKt67DdfeT9IlqI21hlqmu/tQETz8Ao1/rq8sx7ln+6Li7AmtWap+Z3klSCMoPGf3knSR29Nl - - z9JTpGHGmwmqSvBKYLp/YloGNWVnRsZwqyyW14HIHl7neVaFlJUL3suYMx4F22w7IUydcvCIBHEz - - iv5ND9Xo0qNpYidt62MtEpJXhZEmjKayykLh2eFTp+4xOAFt3za/LTV/yxqbDuO0fiYJYZOTzZoa - - U8XotNWlKfHMzQ5Bveu7q3D39ROzoVVgCt4uP3sCZUfSuPV3tAAZPNb8979kofA6lCqNsuguyDu+ - - aDhSQB7i4RckHl2ryc/BuWf6qHaqLEFyoteUFCFn2WzVMFJa02o7azlqC/Nw9Z2JKN6faquTaUqv - - dEueLBQqQW9vsRz2UqAbdepSM0Pzgc7/+QnNgkNR+O0mpM8cI6uoNGRVs4K0p25tz5zK7LhkK3y7 - - 9EDpj7twYfIjatnq+l7OS6gARSj0Uq++RW4eQs2F3BCYDnxGTlsoKk/tuOVpXLWoRfquUZCDxTYt - - wYiatx5+994veufl6SO5rWcpUbR2l6RVKHqsh2mdGLZLXm2M4608/xty1i4QDShFlygpKxd1Qkqm - - DwhGxJR3EfTQSHi3jUZNXjZy1r6H3A3a75O0x22ULmBT9RRKYM+BIq1ATJUlz2k1+iV4t6HABQFw - - U97LsBYGFBgQAHc3wHD8EDKXzXa4Z5jqRFu+HdbsU3QIq54idpYaj0roAcSyJnb8aDsCY4fJVlC1 - - uKyq1BRkfzjNnsqty7csd9+rQtHS6fMAQnIoHeBRA0Lf2nuYRxcitIUhMwS2zJsJii3NGC8gJIPc - - yIsFSIP82qMW9QKi1mxJ5TBDYflFCJ5ASGAasdHoS1qbYgVib8C1HlBs+WUIZigkmLXLo3kDkQwj - - NWGsQFyh6ZK7ktAaaJugUEZyw2RHAZEU6bTtLKoDQpgqsJB+BlfG23/kgqkwmURafm3IZihUbl7y - - OIGiU+hxNBAqkyIVI1fshhAYbNVWdacO49pLfH43hRWS2r32cvlogiKBKU1dz+0iZRalQybPhd+g - - 0WZwSCHhxlUUfDoPpbv5HgtXk1ELEMpTMxT6+OJTPYTiM7fWT9KqgZDeawViNxTK4OzQaMFw5SKr - - rLdEOnuA6ALlLzDm9cxeILpBoYwuJ8YKhUcajgfcio+WUZaSnezqUywzzVk6U8hc+574Mxq30kMT - - w44rd6n+1harTXSFQoUajh8QLk18GDWVFawyNOl0tvxUIKuiukORCv6zN2fUXEU8N4PpJwJZYUjp - - uEGhAop3bhKuvDn+T+c1chEothreWnquUKSCM6bGCwV7tjX5vob6jogp8xtFn+gJRNfRF4tg1KQV - - Hd3f5ODQxlTI8HFWfwaQRX/WNA7xFEthmgocR8NwSJ+iVjOuJycKBd987nJ9DvUZwcMTuHTiajZx - - ePOlJBANCHLXLoDh/G+oq61lkVv3NNRfBPQdhJBnp+k239AqpFOaL2vCEqCCLz5B+dmTqCop0qqX - - 6nc0pPUOCUVg/yEIGpHgdBCmArscFEtrEqSyH79Dxe8/o+p6OmrLy2z2JvG+E28f+LbvguZ3/w1+ - - 9w9xKQiWOrs8FDWvqs1rOLJn+fh07eXShrem1/8BWjy0OmdfIfEAAAAASUVORK5CYII= - - ' - mediatype: image/png - install: - spec: - clusterPermissions: - - rules: - - apiGroups: - - '' - resources: - - pods - - services - - endpoints - - persistentvolumeclaims - - events - - configmaps - - secrets - - pods/log - - limitranges - verbs: - - '*' - - apiGroups: - - extensions - - apps - resources: - - ingresses - - ingresses/status - verbs: - - delete - - create - - patch - - get - - list - - update - - watch - - apiGroups: - - '' - resources: - - namespaces - verbs: - - get - - list - - create - - update - - delete - - patch - - watch - - apiGroups: - - apps - resources: - - deployments - - daemonsets - - replicasets - - statefulsets - - deployments/finalizers - verbs: - - '*' - - apiGroups: - - monitoring.coreos.com - resources: - - servicemonitors - verbs: - - get - - create - - delete - - apiGroups: - - rbac.authorization.k8s.io - resources: - - clusterroles - - roles - verbs: - - '*' - - apiGroups: - - '' - resources: - - serviceaccounts - verbs: - - get - - list - - create - - update - - delete - - patch - - watch - - apiGroups: - - rbac.authorization.k8s.io - resources: - - clusterrolebindings - - rolebindings - verbs: - - get - - create - - update - - delete - - apiGroups: - - apiextensions.k8s.io - resources: - - customresourcedefinitions - - customresourcedefinitions/status - verbs: - - get - - create - - update - - delete - - list - - patch - - watch - - apiGroups: - - admissionregistration.k8s.io - resources: - - mutatingwebhookconfigurations - - validatingwebhookconfigurations - verbs: - - get - - list - - create - - update - - delete - - patch - - watch - - apiGroups: - - build.knative.dev - resources: - - builds - - buildtemplates - - clusterbuildtemplates - verbs: - - get - - list - - create - - update - - delete - - patch - - watch - - apiGroups: - - extensions - resources: - - deployments - verbs: - - get - - list - - create - - update - - delete - - patch - - watch - - apiGroups: - - extensions - resources: - - deployments/finalizers - verbs: - - get - - list - - create - - update - - delete - - patch - - watch - - apiGroups: - - policy - resources: - - podsecuritypolicies - verbs: - - get - - create - - update - - delete - - use - - apiGroups: - - operator.tekton.dev - resources: - - '*' - - tektonaddons - verbs: - - '*' - - apiGroups: - - tekton.dev - - triggers.tekton.dev - - operator.tekton.dev - resources: - - '*' - verbs: - - '*' - - apiGroups: - - dashboard.tekton.dev - resources: - - '*' - - tektonaddons - verbs: - - '*' - - apiGroups: - - security.openshift.io - resources: - - securitycontextconstraints - verbs: - - use - - get - - create - - update - - apiGroups: - - route.openshift.io - resources: - - routes - verbs: - - get - - list - - apiGroups: - - coordination.k8s.io - resources: - - leases - verbs: - - get - - list - - create - - update - - delete - - patch - - watch - - apiGroups: - - console.openshift.io - resources: - - consoleyamlsamples - - consoleclidownloads - - consolequickstarts - verbs: - - '*' - - apiGroups: - - autoscaling - resources: - - horizontalpodautoscalers - verbs: - - '*' - - apiGroups: - - policy - resources: - - poddisruptionbudgets - verbs: - - '*' - - apiGroups: - - monitoring.coreos.com - resources: - - servicemonitors - verbs: - - '*' - - apiGroups: - - batch - resources: - - jobs - - cronjobs - verbs: - - '*' - serviceAccountName: openshift-pipelines-operator - deployments: - - name: openshift-pipelines-operator - spec: - replicas: 1 - selector: - matchLabels: - name: openshift-pipelines-operator - strategy: {} - template: - metadata: - labels: - app: openshift-pipelines-operator - name: openshift-pipelines-operator - spec: - containers: - - env: - - name: SYSTEM_NAMESPACE - valueFrom: - fieldRef: - fieldPath: metadata.namespace - - name: POD_NAME - valueFrom: - fieldRef: - fieldPath: metadata.name - - name: OPERATOR_NAME - value: redhat-openshift-pipelines-operator - - name: IMAGE_PIPELINES_PROXY - value: registry.redhat.io/openshift-pipelines/pipelines-operator-proxy-rhel8@ - - name: IMAGE_JOB_PRUNER_TKN - value: registry.redhat.io/openshift-pipelines/pipelines-cli-tkn-rhel8@ - - name: IMAGE_PIPELINES_TEKTON_PIPELINES_CONTROLLER - value: registry.redhat.io/openshift-pipelines/pipelines-controller-rhel8@ - - name: IMAGE_PIPELINES_WEBHOOK - value: registry.redhat.io/openshift-pipelines/pipelines-webhook-rhel8@ - - name: IMAGE_PIPELINES_ARG__ENTRYPOINT_IMAGE - value: registry.redhat.io/openshift-pipelines/pipelines-entrypoint-rhel8@ - - name: IMAGE_PIPELINES_ARG__GIT_IMAGE - value: registry.redhat.io/openshift-pipelines/pipelines-git-init-rhel8@ - - name: IMAGE_ADDONS_PARAM_GITINITIMAGE - value: registry.redhat.io/openshift-pipelines/pipelines-git-init-rhel8@ - - name: IMAGE_PIPELINES_ARG__IMAGEDIGEST_EXPORTER_IMAGE - value: registry.redhat.io/openshift-pipelines/pipelines-imagedigestexporter-rhel8@ - - name: IMAGE_PIPELINES_ARG__KUBECONFIG_WRITER_IMAGE - value: registry.redhat.io/openshift-pipelines/pipelines-kubeconfigwriter-rhel8@ - - name: IMAGE_PIPELINES_ARG__PR_IMAGE - value: registry.redhat.io/openshift-pipelines/pipelines-pullrequest-init-rhel8@ - - name: IMAGE_PIPELINES_ARG__NOP_IMAGE - value: registry.redhat.io/openshift-pipelines/pipelines-nop-rhel8@ - - name: IMAGE_PIPELINES_ARG__SHELL_IMAGE - value: registry.access.redhat.com/ubi8/ubi-minimal@ - - name: IMAGE_TRIGGERS_TEKTON_TRIGGERS_CONTROLLER - value: registry.redhat.io/openshift-pipelines/pipelines-triggers-controller-rhel8@ - - name: IMAGE_TRIGGERS_WEBHOOK - value: registry.redhat.io/openshift-pipelines/pipelines-triggers-webhook-rhel8@ - - name: IMAGE_TRIGGERS_TEKTON_TRIGGERS_CORE_INTERCEPTORS - value: registry.redhat.io/openshift-pipelines/pipelines-triggers-core-interceptors-rhel8@ - - name: IMAGE_TRIGGERS_ARG__EL_IMAGE - value: registry.redhat.io/openshift-pipelines/pipelines-triggers-eventlistenersink-rhel8@ - - name: IMAGE_ADDONS_PARAM_KN_IMAGE - value: registry.redhat.io/openshift-serverless-1/client-kn-rhel8@ - - name: IMAGE_ADDONS_SKOPEO_COPY - value: registry.redhat.io/rhel8/skopeo@ - - name: IMAGE_ADDONS_PARAM_BUILDER_IMAGE - value: registry.redhat.io/rhel8/buildah@ - - name: IMAGE_ADDONS_GENERATE - value: registry.redhat.io/ocp-tools-4-tech-preview/source-to-image-rhel8@ - - name: IMAGE_ADDONS_PARAM_TKN_IMAGE - value: registry.redhat.io/openshift-pipelines/pipelines-cli-tkn-rhel8@ - image: registry.redhat.io/openshift-pipelines/pipelines-rhel8-operator@ - imagePullPolicy: Always - name: openshift-pipelines-operator - resources: {} - serviceAccountName: openshift-pipelines-operator - - name: tekton-operator-webhook - spec: - replicas: 1 - selector: - matchLabels: - name: tekton-operator-webhook - strategy: {} - template: - metadata: - labels: - app: tekton-operator - name: tekton-operator-webhook - spec: - containers: - - env: - - name: SYSTEM_NAMESPACE - valueFrom: - fieldRef: - fieldPath: metadata.namespace - - name: CONFIG_LOGGING_NAME - value: config-logging - - name: WEBHOOK_SERVICE_NAME - value: tekton-operator-webhook - - name: WEBHOOK_SECRET_NAME - value: tekton-operator-webhook-certs - image: ko://github.com/tektoncd/operator/cmd/openshift/webhook123 - name: tekton-operator-webhook - ports: - - containerPort: 8443 - name: https-webhook - resources: {} - - env: - - name: SYSTEM_NAMESPACE - valueFrom: - fieldRef: - fieldPath: metadata.namespace - - name: POD_NAME - valueFrom: - fieldRef: - fieldPath: metadata.name - - name: OPERATOR_NAME - value: redhat-openshift-pipelines-operator - - name: IMAGE_PIPELINES_PROXY - value: ko://github.com/tektoncd/operator/cmd/openshift/proxy-webhook - - name: IMAGE_JOB_PRUNER_TKN - value: gcr.io/tekton-releases/dogfooding/tkn@sha256:f69a02ef099d8915e9e4ea1b74e43b7a9309fc97cf23cb457ebf191e73491677 - image: ko://github.com/tektoncd/operator/cmd/openshift/operator - imagePullPolicy: Always - name: openshift-pipelines-operator - resources: {} - serviceAccountName: tekton-operator - strategy: deployment - installModes: - - supported: false - type: OwnNamespace - - supported: false - type: SingleNamespace - - supported: false - type: MultiNamespace - - supported: true - type: AllNamespaces - keywords: - - tektoncd - - openshift - - build - - pipeline - links: - - name: OpenShift Tekton Pipeline GitHub Repository - url: https://github.com/openshift/tektoncd-pipeline - - name: OpenShift Pipelines Operator GitHub Repository - url: https://github.com/openshift/tektoncd-operator - maintainers: - - email: pipelines-dev@redhat.com - name: Red Hat - maturity: alpha - provider: - name: Red Hat - relatedImages: - - image: registry.redhat.io/openshift-pipelines/pipelines-rhel8-operator@ - name: OPENSHIFT_PIPELINES_OPERATOR - - image: registry.redhat.io/openshift-pipelines/pipelines-operator-proxy-rhel8@ - name: IMAGE_PIPELINES_PROXY - - image: registry.redhat.io/openshift-pipelines/pipelines-controller-rhel8@ - name: IMAGE_PIPELINES_TEKTON_PIPELINES_CONTROLLER - - image: registry.redhat.io/openshift-pipelines/pipelines-webhook-rhel8@ - name: IMAGE_PIPELINES_WEBHOOK - - image: registry.redhat.io/openshift-pipelines/pipelines-entrypoint-rhel8@ - name: IMAGE_PIPELINES_ARG__ENTRYPOINT_IMAGE - - image: registry.redhat.io/openshift-pipelines/pipelines-git-init-rhel8@ - name: IMAGE_PIPELINES_ARG__GIT_IMAGE - - image: registry.redhat.io/openshift-pipelines/pipelines-git-init-rhel8@ - name: IMAGE_ADDONS_PARAM_GITINITIMAGE - - image: registry.redhat.io/openshift-pipelines/pipelines-imagedigestexporter-rhel8@ - name: IMAGE_PIPELINES_ARG__IMAGEDIGEST_EXPORTER_IMAGE - - image: registry.redhat.io/openshift-pipelines/pipelines-kubeconfigwriter-rhel8@ - name: IMAGE_PIPELINES_ARG__KUBECONFIG_WRITER_IMAGE - - image: registry.redhat.io/openshift-pipelines/pipelines-pullrequest-init-rhel8@ - name: IMAGE_PIPELINES_ARG__PR_IMAGE - - image: registry.redhat.io/openshift-pipelines/pipelines-nop-rhel8@ - name: IMAGE_PIPELINES_ARG__NOP_IMAGE - - image: registry.access.redhat.com/ubi8/ubi-minimal@ - name: IMAGE_PIPELINES_ARG__SHELL_IMAGE - - image: registry.redhat.io/openshift-pipelines/pipelines-triggers-controller-rhel8@ - name: IMAGE_TRIGGERS_TEKTON_TRIGGERS_CONTROLLER - - image: registry.redhat.io/openshift-pipelines/pipelines-triggers-webhook-rhel8@ - name: IMAGE_TRIGGERS_WEBHOOK - - image: registry.redhat.io/openshift-pipelines/pipelines-triggers-core-interceptors-rhel8@ - name: IMAGE_TRIGGERS_TEKTON_TRIGGERS_CORE_INTERCEPTORS - - image: registry.redhat.io/openshift-pipelines/pipelines-triggers-eventlistenersink-rhel8@ - name: IMAGE_TRIGGERS_ARG__EL_IMAGE - - image: registry.redhat.io/openshift-serverless-1/client-kn-rhel8@ - name: IMAGE_ADDONS_PARAM_KN_IMAGE - - image: registry.redhat.io/rhel8/skopeo@ - name: IMAGE_ADDONS_SKOPEO_COPY - - image: registry.redhat.io/rhel8/buildah@ - name: IMAGE_ADDONS_PARAM_BUILDER_IMAGE - - image: registry.redhat.io/ocp-tools-4-tech-preview/source-to-image-rhel8@ - name: IMAGE_ADDONS_GENERATE - - image: registry.redhat.io/openshift-pipelines/pipelines-cli-tkn-rhel8@ - name: IMAGE_JOB_PRUNER_TKN - - image: registry.redhat.io/openshift-pipelines/pipelines-cli-tkn-rhel8@ - name: IMAGE_ADDONS_PARAM_TKN_IMAGE - - image: ko://github.com/tektoncd/operator/cmd/openshift/webhook123 - name: TEKTON_OPERATOR_WEBHOOK - replaces: 1.5.0 - version: 1.6.0 - webhookdefinitions: - - admissionReviewVersions: - - v1beta1 - - v1 - containerPort: 443 - deploymentName: tekton-operator-webhook - failurePolicy: Fail - generateName: config.webhook.operator.tekton.dev - sideEffects: None - targetPort: 8443 - type: ValidatingAdmissionWebhook - - admissionReviewVersions: - - v1beta1 - - v1 - containerPort: 443 - deploymentName: tekton-operator-webhook - failurePolicy: Fail - generateName: validation.webhook.operator.tekton.dev - sideEffects: None - targetPort: 8443 - type: ValidatingAdmissionWebhook - - admissionReviewVersions: - - v1beta1 - - v1 - containerPort: 443 - deploymentName: tekton-operator-webhook - failurePolicy: Fail - generateName: webhook.operator.tekton.dev - sideEffects: None - targetPort: 8443 - type: MutatingAdmissionWebhook diff --git a/operatorhub/openshift/release-artifacts/bundle/manifests/openshift-pipelines-operator_v1_serviceaccount.yaml b/operatorhub/openshift/release-artifacts/bundle/manifests/openshift-pipelines-operator_v1_serviceaccount.yaml deleted file mode 100644 index 3279cb6328..0000000000 --- a/operatorhub/openshift/release-artifacts/bundle/manifests/openshift-pipelines-operator_v1_serviceaccount.yaml +++ /dev/null @@ -1,5 +0,0 @@ -apiVersion: v1 -kind: ServiceAccount -metadata: - creationTimestamp: null - name: openshift-pipelines-operator diff --git a/operatorhub/openshift/release-artifacts/bundle/manifests/operator.tekton.dev_tektonaddons.yaml b/operatorhub/openshift/release-artifacts/bundle/manifests/operator.tekton.dev_tektonaddons.yaml deleted file mode 100644 index f7037bfc96..0000000000 --- a/operatorhub/openshift/release-artifacts/bundle/manifests/operator.tekton.dev_tektonaddons.yaml +++ /dev/null @@ -1,123 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - creationTimestamp: null - labels: - operator.tekton.dev/release: devel - version: devel - name: tektonaddons.operator.tekton.dev -spec: - group: operator.tekton.dev - names: - kind: TektonAddon - listKind: TektonAddonList - plural: tektonaddons - singular: tektonaddon - scope: Cluster - versions: - - additionalPrinterColumns: - - jsonPath: .status.version - name: Version - type: string - - jsonPath: .status.conditions[?(@.type=="Ready")].status - name: Ready - type: string - - jsonPath: .status.conditions[?(@.type=="Ready")].reason - name: Reason - type: string - name: v1alpha1 - schema: - openAPIV3Schema: - description: Schema for the tektonaddons API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/ api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: Spec defines the desired state of TektonAddon - properties: - params: - description: list of params to customize installation of components - items: - properties: - name: - description: name of param - type: string - value: - description: value of param - type: string - type: object - type: array - targetNamespace: - description: namespace where tekton addons will be installed - type: string - type: object - status: - description: Status defines the observed state of TektonAddon - properties: - conditions: - description: The latest available observations of a resource's current - state. - items: - properties: - lastTransitionTime: - description: LastTransitionTime is the last time the condition - transitioned from one status to another. We use VolatileTime - in place of metav1.Time to exclude this from creating equality.Semantic - differences (all other things held constant). - type: string - message: - description: A human readable message indicating details about - the transition. - type: string - reason: - description: The reason for the condition's last transition. - type: string - severity: - description: Severity with which to treat failures of this type - of condition. When this is not specified, it defaults to Error. - type: string - status: - description: Status of the condition, one of True, False, Unknown. - type: string - type: - description: Type of condition. - type: string - required: - - type - - status - type: object - type: array - manifests: - description: The list of addons manifests, which have been installed - by the operator - items: - type: string - type: array - observedGeneration: - description: The generation last processed by the controller - type: integer - version: - description: The version of the installed release - type: string - type: object - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: null - storedVersions: null diff --git a/operatorhub/openshift/release-artifacts/bundle/manifests/operator.tekton.dev_tektonconfigs.yaml b/operatorhub/openshift/release-artifacts/bundle/manifests/operator.tekton.dev_tektonconfigs.yaml deleted file mode 100644 index 511156426a..0000000000 --- a/operatorhub/openshift/release-artifacts/bundle/manifests/operator.tekton.dev_tektonconfigs.yaml +++ /dev/null @@ -1,144 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - creationTimestamp: null - labels: - operator.tekton.dev/release: devel - version: devel - name: tektonconfigs.operator.tekton.dev -spec: - group: operator.tekton.dev - names: - kind: TektonConfig - listKind: TektonConfigList - plural: tektonconfigs - singular: tektonconfig - scope: Cluster - versions: - - additionalPrinterColumns: - - jsonPath: .status.conditions[?(@.type=="Ready")].status - name: Ready - type: string - - jsonPath: .status.conditions[?(@.type=="Ready")].reason - name: Reason - type: string - name: v1alpha1 - schema: - openAPIV3Schema: - description: Schema for the tektonconfigs API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: Spec defines the desired state of TektonConfig - properties: - addon: - description: defines fields to customize installation of addon components - properties: - params: - description: list of params to customize installation of addon - components - items: - properties: - name: - description: name of param - type: string - value: - description: value of param - type: string - type: object - type: array - type: object - profile: - description: based on the type of profile where tekton components - will be installed - type: string - pruner: - description: this enables to prune pipelinerun/taskrun - properties: - keep: - description: number of resources to keep - type: integer - resources: - description: list of resources which needs to be pruned - items: - type: string - type: array - schedule: - description: schedule cronjob - type: string - type: object - targetNamespace: - description: namespace where tekton components will be installed - type: string - type: object - status: - description: Status defines the observed state of TektonConfig - properties: - conditions: - description: The latest available observations of a resource's current - state. - items: - properties: - lastTransitionTime: - description: LastTransitionTime is the last time the condition - transitioned from one status to another. We use VolatileTime - in place of metav1.Time to exclude this from creating equality.Semantic - differences (all other things held constant). - type: string - message: - description: A human readable message indicating details about - the transition. - type: string - reason: - description: The reason for the condition's last transition. - type: string - severity: - description: Severity with which to treat failures of this type - of condition. When this is not specified, it defaults to Error. - type: string - status: - description: Status of the condition, one of True, False, Unknown. - type: string - type: - description: Type of condition. - type: string - required: - - type - - status - type: object - type: array - manifests: - description: The list of tektonconfig manifests, which have been installed - by the operator - items: - type: string - type: array - observedGeneration: - description: The generation last processed by the controller - type: integer - version: - description: The version of the installed release - type: string - type: object - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: null - storedVersions: null diff --git a/operatorhub/openshift/release-artifacts/bundle/manifests/operator.tekton.dev_tektonpipelines.yaml b/operatorhub/openshift/release-artifacts/bundle/manifests/operator.tekton.dev_tektonpipelines.yaml deleted file mode 100644 index e9ebf8c68e..0000000000 --- a/operatorhub/openshift/release-artifacts/bundle/manifests/operator.tekton.dev_tektonpipelines.yaml +++ /dev/null @@ -1,111 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - creationTimestamp: null - labels: - operator.tekton.dev/release: devel - version: devel - name: tektonpipelines.operator.tekton.dev -spec: - group: operator.tekton.dev - names: - kind: TektonPipeline - listKind: TektonPipelineList - plural: tektonpipelines - singular: tektonpipeline - scope: Cluster - versions: - - additionalPrinterColumns: - - jsonPath: .status.version - name: Version - type: string - - jsonPath: .status.conditions[?(@.type=="Ready")].status - name: Ready - type: string - - jsonPath: .status.conditions[?(@.type=="Ready")].reason - name: Reason - type: string - name: v1alpha1 - schema: - openAPIV3Schema: - description: Schema for the tektonpipelines API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: Spec defines the desired state of TektonPipeline - properties: - targetNamespace: - description: namespace where tekton pipelines will be installed - type: string - type: object - status: - description: Status defines the observed state of TektonPipeline - properties: - conditions: - description: The latest available observations of a resource's current - state. - items: - properties: - lastTransitionTime: - description: LastTransitionTime is the last time the condition - transitioned from one status to another. We use VolatileTime - in place of metav1.Time to exclude this from creating equality.Semantic - differences (all other things held constant). - type: string - message: - description: A human readable message indicating details about - the transition. - type: string - reason: - description: The reason for the condition's last transition. - type: string - severity: - description: Severity with which to treat failures of this type - of condition. When this is not specified, it defaults to Error. - type: string - status: - description: Status of the condition, one of True, False, Unknown. - type: string - type: - description: Type of condition. - type: string - required: - - type - - status - type: object - type: array - manifests: - description: The list of pipeline manifests, which have been installed - by the operator - items: - type: string - type: array - observedGeneration: - description: The generation last processed by the controller - type: integer - version: - description: The version of the installed release - type: string - type: object - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: null - storedVersions: null diff --git a/operatorhub/openshift/release-artifacts/bundle/manifests/operator.tekton.dev_tektontriggers.yaml b/operatorhub/openshift/release-artifacts/bundle/manifests/operator.tekton.dev_tektontriggers.yaml deleted file mode 100644 index e668060c9f..0000000000 --- a/operatorhub/openshift/release-artifacts/bundle/manifests/operator.tekton.dev_tektontriggers.yaml +++ /dev/null @@ -1,111 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - creationTimestamp: null - labels: - operator.tekton.dev/release: devel - version: devel - name: tektontriggers.operator.tekton.dev -spec: - group: operator.tekton.dev - names: - kind: TektonTrigger - listKind: TektonTriggerList - plural: tektontriggers - singular: tektontrigger - scope: Cluster - versions: - - additionalPrinterColumns: - - jsonPath: .status.version - name: Version - type: string - - jsonPath: .status.conditions[?(@.type=="Ready")].status - name: Ready - type: string - - jsonPath: .status.conditions[?(@.type=="Ready")].reason - name: Reason - type: string - name: v1alpha1 - schema: - openAPIV3Schema: - description: Schema for the tektontriggers API - properties: - apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' - type: string - kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' - type: string - metadata: - type: object - spec: - description: Spec defines the desired state of TektonTrigger - properties: - targetNamespace: - description: namespace where tekton triggers will be installed - type: string - type: object - status: - description: Status defines the observed state of TektonTrigger - properties: - conditions: - description: The latest available observations of a resource's current - state. - items: - properties: - lastTransitionTime: - description: LastTransitionTime is the last time the condition - transitioned from one status to another. We use VolatileTime - in place of metav1.Time to exclude this from creating equality.Semantic - differences (all other things held constant). - type: string - message: - description: A human readable message indicating details about - the transition. - type: string - reason: - description: The reason for the condition's last transition. - type: string - severity: - description: Severity with which to treat failures of this type - of condition. When this is not specified, it defaults to Error. - type: string - status: - description: Status of the condition, one of True, False, Unknown. - type: string - type: - description: Type of condition. - type: string - required: - - type - - status - type: object - type: array - manifests: - description: The list of trigger manifests, which have been installed - by the operator - items: - type: string - type: array - observedGeneration: - description: The generation last processed by the controller - type: integer - version: - description: The version of the installed release - type: string - type: object - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: null - storedVersions: null diff --git a/operatorhub/openshift/release-artifacts/bundle/manifests/tekton-config-defaults_v1_configmap.yaml b/operatorhub/openshift/release-artifacts/bundle/manifests/tekton-config-defaults_v1_configmap.yaml deleted file mode 100644 index b938944154..0000000000 --- a/operatorhub/openshift/release-artifacts/bundle/manifests/tekton-config-defaults_v1_configmap.yaml +++ /dev/null @@ -1,9 +0,0 @@ -apiVersion: v1 -data: - AUTOINSTALL_COMPONENTS: "true" - DEFAULT_TARGET_NAMESPACE: openshift-pipelines -kind: ConfigMap -metadata: - labels: - operator.tekton.dev/release: devel - name: tekton-config-defaults diff --git a/operatorhub/openshift/release-artifacts/bundle/manifests/tekton-operator-webhook-certs_v1_secret.yaml b/operatorhub/openshift/release-artifacts/bundle/manifests/tekton-operator-webhook-certs_v1_secret.yaml deleted file mode 100644 index 47978f368e..0000000000 --- a/operatorhub/openshift/release-artifacts/bundle/manifests/tekton-operator-webhook-certs_v1_secret.yaml +++ /dev/null @@ -1,7 +0,0 @@ -apiVersion: v1 -kind: Secret -metadata: - labels: - app: tekton-operator - name: tekton-operator-webhook - name: tekton-operator-webhook-certs diff --git a/operatorhub/openshift/release-artifacts/bundle/manifests/tekton-operator-webhook_v1_service.yaml b/operatorhub/openshift/release-artifacts/bundle/manifests/tekton-operator-webhook_v1_service.yaml deleted file mode 100644 index 1189dadb70..0000000000 --- a/operatorhub/openshift/release-artifacts/bundle/manifests/tekton-operator-webhook_v1_service.yaml +++ /dev/null @@ -1,20 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - creationTimestamp: null - labels: - app: tekton-operator - name: tekton-operator-webhook - operator.tekton.dev/release: devel - version: devel - name: tekton-operator-webhook -spec: - ports: - - name: https-webhook - port: 443 - targetPort: 8443 - selector: - app: tekton-operator - name: tekton-operator-webhook -status: - loadBalancer: {} diff --git a/operatorhub/openshift/release-artifacts/bundle/metadata/annotations.yaml b/operatorhub/openshift/release-artifacts/bundle/metadata/annotations.yaml deleted file mode 100644 index 23281b1c19..0000000000 --- a/operatorhub/openshift/release-artifacts/bundle/metadata/annotations.yaml +++ /dev/null @@ -1,15 +0,0 @@ -annotations: - # Core bundle annotations. - operators.operatorframework.io.bundle.mediatype.v1: registry+v1 - operators.operatorframework.io.bundle.manifests.v1: manifests/ - operators.operatorframework.io.bundle.metadata.v1: metadata/ - operators.operatorframework.io.bundle.package.v1: openshift-pipelines-operator-rh - operators.operatorframework.io.bundle.channels.v1: a,b - operators.operatorframework.io.bundle.channel.default.v1: a - operators.operatorframework.io.metrics.builder: operator-sdk-v1.8.0 - operators.operatorframework.io.metrics.mediatype.v1: metrics+v1 - operators.operatorframework.io.metrics.project_layout: unknown - - # Annotations for testing. - operators.operatorframework.io.test.mediatype.v1: scorecard+v1 - operators.operatorframework.io.test.config.v1: tests/scorecard/ diff --git a/operatorhub/openshift/scorecard/bases/config.yaml b/operatorhub/openshift/scorecard/bases/config.yaml new file mode 100644 index 0000000000..4899c6d5ed --- /dev/null +++ b/operatorhub/openshift/scorecard/bases/config.yaml @@ -0,0 +1,11 @@ +--- +# Required for bundle generation to work. +# TODO: add scorecard tests plugins. +# eg: https://github.com/operator-framework/operator-sdk/tree/master/testdata/go/v3/memcached-operator/config/scorecard +apiVersion: scorecard.operatorframework.io/v1alpha3 +kind: Configuration +metadata: + name: config +stages: +- parallel: true + tests: [] diff --git a/operatorhub/openshift/scorecard/kustomization.yaml b/operatorhub/openshift/scorecard/kustomization.yaml new file mode 100644 index 0000000000..607e55cbf5 --- /dev/null +++ b/operatorhub/openshift/scorecard/kustomization.yaml @@ -0,0 +1,2 @@ +resources: +- bases/config.yaml diff --git a/operatorhub/tools/CONFIG-DEFINITION.md b/operatorhub/tools/CONFIG-DEFINITION.md new file mode 100644 index 0000000000..2a1871379e --- /dev/null +++ b/operatorhub/tools/CONFIG-DEFINITION.md @@ -0,0 +1,56 @@ +# config.yaml file for Bundle Generation + +**Note:** For a concrete examples refer `config.yaml` in specific platform directory in tektoncd/operator/operatorhub. + +## Quick Intro + +```bash +platform: "openshift" +operator-packagename: "openshift-pipelines-operator-rh" + + +# specify images to be subsituted in the CSV file in a gerated bundle +image-substitutions: + +# for replacing container image in a deployment listed in a CSV file +- image: + replaceLocations: + containerTargets: + - deploymentName: + containerName: + +# eg: +- image: registry.redhat.io/openshift-pipelines/pipelines-rhel8-operator@ + replaceLocations: + containerTargets: + - deploymentName: openshift-pipelines-operator + containerName: openshift-pipelines-operator + + +# for replacing other images (in command in ENV values ...) +- image: + replaceLocations: + envTargets: + - deploymentName: + containerName: + envKeys: + - + +#eg +- image: registry.redhat.io/openshift-pipelines/pipelines-operator-proxy-rhel8@ + replaceLocations: + envTargets: + - deploymentName: openshift-pipelines-operator + containerName: openshift-pipelines-operator + envKeys: + - IMAGE_PIPELINES_PROXY + +# list aditional images which are not used in image replacement, but which should be +supported for disconnected install +# add thrid party images which are not replaced by operator +# but pulled directly by tasks here +defaultRelatedImages: [] +#- image: "" ##: or @ +# name: "" # ENV key name value + +``` diff --git a/operatorhub/tools/bundle-too-cli-flags.md b/operatorhub/tools/bundle-too-cli-flags.md new file mode 100644 index 0000000000..40ec183926 --- /dev/null +++ b/operatorhub/tools/bundle-too-cli-flags.md @@ -0,0 +1,40 @@ +# Bundle Generation Tool ClI Flags + +## List of supported flags + +```bash +usage: bundle.py [-h] --workspace (--fetch-strategy-local | --fetch-strategy-release-manifest) [--release-manifest ] + (--upgrade-strategy-semver | --upgrade-strategy-replaces) --operator-release-version OPERATOR_RELEASE_VERSION + [--operator-release-previous-version OPERATOR_RELEASE_PREVIOUS_VERSION] --channels CHANNELS --default-channel DEFAULT_CHANNEL + [--addn-annotations =,,...=] [--addn-labels =,,...=] [--verbose] + +OperatorHub Artifacts Tooling + +optional arguments: + -h, --help show this help message and exit + --workspace + Path to bundle generation workspace dir, this dir should contain config.yaml for image replacements, manifests/ and manifests/kustomization.yaml + file for globbing resource manifests. Release artifacts will be writte to /release-artifacts + --fetch-strategy-local + aggregate Operator Resources local kustomize flow + --fetch-strategy-release-manifest + aggregate Operator Resources from releasemanifest and example CRs from local kustomize flow + --release-manifest + path to release manifest file, while using 'release-manifest' strategy + --upgrade-strategy-semver + OperatorHub upgrades operator based on operator semver version + --upgrade-strategy-replaces + OperatorHub upgrades operator based on 'spec.replaces: ' + --operator-release-version OPERATOR_RELEASE_VERSION + version + --operator-release-previous-version OPERATOR_RELEASE_PREVIOUS_VERSION + previous version + --channels CHANNELS channels + --default-channel DEFAULT_CHANNEL + default channel + --addn-annotations =,,...= + additional annotations to be added to CSV file + --addn-labels =,,...= + additional labels to be added to CSV file + --verbose run in verbose mode +``` \ No newline at end of file diff --git a/pkg/apis/operator/v1alpha1/tektonaddon_default_test.go b/pkg/apis/operator/v1alpha1/tektonaddon_default_test.go index 5e9c9e82d5..ac70b3b4c8 100644 --- a/pkg/apis/operator/v1alpha1/tektonaddon_default_test.go +++ b/pkg/apis/operator/v1alpha1/tektonaddon_default_test.go @@ -20,8 +20,6 @@ import ( "context" "testing" - "gotest.tools/assert" - "gotest.tools/v3/assert" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) diff --git a/pkg/apis/operator/v1alpha1/tektonaddon_validation_test.go b/pkg/apis/operator/v1alpha1/tektonaddon_validation_test.go index 0c5d521c97..63f1aaeed5 100644 --- a/pkg/apis/operator/v1alpha1/tektonaddon_validation_test.go +++ b/pkg/apis/operator/v1alpha1/tektonaddon_validation_test.go @@ -20,8 +20,6 @@ import ( "context" "testing" - "gotest.tools/assert" - "gotest.tools/v3/assert" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "knative.dev/pkg/apis" diff --git a/test/resources/tektonconfigs.go b/test/resources/tektonconfigs.go index 69d9bc0a4c..1c113f2354 100644 --- a/test/resources/tektonconfigs.go +++ b/test/resources/tektonconfigs.go @@ -23,6 +23,7 @@ import ( "path/filepath" "runtime" "testing" + "time" mfc "github.com/manifestival/client-go-client" mf "github.com/manifestival/manifestival" @@ -50,7 +51,9 @@ func EnsureTektonConfigExists(kubeClientSet *kubernetes.Clientset, clients confi } tcCR, err := clients.Get(context.TODO(), names.TektonConfig, metav1.GetOptions{}) - + // this timeout is needed to make sure that the e2e tests work + // TODO: https://github.com/tektoncd/operator/issues/401 + time.Sleep(120 * time.Second) if cm.Data["AUTOINSTALL_COMPONENTS"] == "true" { if err != nil { return nil, err