diff --git a/operators/patterns-operator/0.0.35/manifests/gitops.hybrid-cloud-patterns.io_patterns.yaml b/operators/patterns-operator/0.0.35/manifests/gitops.hybrid-cloud-patterns.io_patterns.yaml new file mode 100644 index 00000000000..5b062b67839 --- /dev/null +++ b/operators/patterns-operator/0.0.35/manifests/gitops.hybrid-cloud-patterns.io_patterns.yaml @@ -0,0 +1,228 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.11.4 + creationTimestamp: null + name: patterns.gitops.hybrid-cloud-patterns.io +spec: + group: gitops.hybrid-cloud-patterns.io + names: + kind: Pattern + listKind: PatternList + plural: patterns + shortNames: + - patt + singular: pattern + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .status.lastStep + name: Step + priority: 1 + type: string + - jsonPath: .status.lastError + name: Error + priority: 2 + type: string + name: v1alpha1 + schema: + openAPIV3Schema: + description: Pattern is the Schema for the patterns API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: PatternSpec defines the desired state of Pattern + properties: + analyticsUUID: + description: Analytics UUID. Leave empty to autogenerate a random + one. Not PII information + type: string + clusterGroupName: + type: string + extraParameters: + description: '.Name is dot separated per the helm --set syntax, such + as: global.something.field' + items: + properties: + name: + type: string + value: + type: string + required: + - name + - value + type: object + type: array + extraValueFiles: + description: URLs to additional Helm parameter files + items: + type: string + type: array + gitOpsSpec: + properties: + manualSync: + description: 'Require manual intervention before Argo will sync + new content. Default: False' + type: boolean + type: object + gitSpec: + properties: + hostname: + description: Optional. FQDN of the git server if automatic parsing + from TargetRepo is broken + type: string + originRepo: + description: Upstream git repo containing the pattern to deploy. + Used when in-cluster fork to point to the upstream pattern repository + type: string + originRevision: + description: Branch, tag or commit in the upstream git repository. + Does not support short-sha's. Default to HEAD + type: string + pollInterval: + default: 180 + description: 'Interval in seconds to poll for drifts between origin + and target repositories. Default: 180 seconds' + type: integer + targetRepo: + description: Git repo containing the pattern to deploy. Must use + https/http + type: string + targetRevision: + description: 'Branch, tag, or commit to deploy. Does not support + short-sha''s. Default: HEAD' + type: string + required: + - targetRepo + type: object + multiSourceConfig: + properties: + clusterGroupChartGitRevision: + default: main + description: The git reference when deploying the clustergroup + helm chart directly from a git repo Defaults to 'main'. (Only + used when developing the clustergroup helm chart) + type: string + clusterGroupChartVersion: + description: Which chart version for the clustergroup helm chart. + Defaults to "0.8.*" + type: string + clusterGroupGitRepoUrl: + description: The url when deploying the clustergroup helm chart + directly from a git repo Defaults to '' which means not used + (Only used when developing the clustergroup helm chart) + type: string + enabled: + default: true + description: (EXPERIMENTAL) Enable multi-source support when deploying + the clustergroup argo application + type: boolean + helmRepoUrl: + description: The helm chart url to fetch the helm charts from + in order to deploy the pattern. Defaults to https://charts.validatedpatterns.io/ + type: string + type: object + required: + - clusterGroupName + - gitSpec + type: object + status: + description: PatternStatus defines the observed state of Pattern + properties: + analyticsSent: + default: 0 + type: integer + analyticsUUID: + type: string + appClusterDomain: + type: string + applications: + items: + description: PatternApplicationInfo defines the Applications Status + for the Pattern. This structure is part of the PatternStatus as + an array The Application Status will be included as part of the + Observed state of Pattern + properties: + healthMessage: + type: string + healthStatus: + type: string + name: + type: string + namespace: + type: string + syncStatus: + type: string + type: object + type: array + clusterDomain: + type: string + clusterID: + type: string + clusterName: + type: string + clusterPlatform: + type: string + clusterVersion: + type: string + conditions: + items: + properties: + lastTransitionTime: + description: Last time the condition transitioned from one status + to another. + format: date-time + type: string + lastUpdateTime: + description: The last time this condition was updated. + format: date-time + type: string + message: + description: A human readable message indicating details about + the transition. + type: string + status: + description: Status of the condition, one of True, False, Unknown. + type: string + type: + description: Type of deployment condition. + type: string + required: + - lastUpdateTime + - status + - type + type: object + type: array + lastError: + description: Last error encountered by the pattern + type: string + lastStep: + description: Last action related to the pattern + type: string + version: + description: Number of updates to the pattern + type: integer + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: null + storedVersions: null diff --git a/operators/patterns-operator/0.0.35/manifests/patterns-operator-controller-manager-metrics-service_v1_service.yaml b/operators/patterns-operator/0.0.35/manifests/patterns-operator-controller-manager-metrics-service_v1_service.yaml new file mode 100644 index 00000000000..0f3aa71e157 --- /dev/null +++ b/operators/patterns-operator/0.0.35/manifests/patterns-operator-controller-manager-metrics-service_v1_service.yaml @@ -0,0 +1,17 @@ +apiVersion: v1 +kind: Service +metadata: + creationTimestamp: null + labels: + control-plane: controller-manager + name: patterns-operator-controller-manager-metrics-service +spec: + ports: + - name: https + port: 8443 + protocol: TCP + targetPort: https + selector: + control-plane: controller-manager +status: + loadBalancer: {} diff --git a/operators/patterns-operator/0.0.35/manifests/patterns-operator-manager-config_v1_configmap.yaml b/operators/patterns-operator/0.0.35/manifests/patterns-operator-manager-config_v1_configmap.yaml new file mode 100644 index 00000000000..facb7f574fc --- /dev/null +++ b/operators/patterns-operator/0.0.35/manifests/patterns-operator-manager-config_v1_configmap.yaml @@ -0,0 +1,17 @@ +apiVersion: v1 +data: + controller_manager_config.yaml: | + apiVersion: controller-runtime.sigs.k8s.io/v1alpha1 + kind: ControllerManagerConfig + health: + healthProbeBindAddress: :8081 + metrics: + bindAddress: 127.0.0.1:8080 + webhook: + port: 9443 + leaderElection: + leaderElect: true + resourceName: f2850479.hybrid-cloud-patterns.io +kind: ConfigMap +metadata: + name: patterns-operator-manager-config diff --git a/operators/patterns-operator/0.0.35/manifests/patterns-operator-metrics-reader_rbac.authorization.k8s.io_v1_clusterrole.yaml b/operators/patterns-operator/0.0.35/manifests/patterns-operator-metrics-reader_rbac.authorization.k8s.io_v1_clusterrole.yaml new file mode 100644 index 00000000000..6783cf58c8a --- /dev/null +++ b/operators/patterns-operator/0.0.35/manifests/patterns-operator-metrics-reader_rbac.authorization.k8s.io_v1_clusterrole.yaml @@ -0,0 +1,10 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + creationTimestamp: null + name: patterns-operator-metrics-reader +rules: +- nonResourceURLs: + - /metrics + verbs: + - get diff --git a/operators/patterns-operator/0.0.35/manifests/patterns-operator.clusterserviceversion.yaml b/operators/patterns-operator/0.0.35/manifests/patterns-operator.clusterserviceversion.yaml new file mode 100644 index 00000000000..95017fc8e33 --- /dev/null +++ b/operators/patterns-operator/0.0.35/manifests/patterns-operator.clusterserviceversion.yaml @@ -0,0 +1,398 @@ +apiVersion: operators.coreos.com/v1alpha1 +kind: ClusterServiceVersion +metadata: + annotations: + alm-examples: |- + [ + { + "apiVersion": "gitops.hybrid-cloud-patterns.io/v1alpha1", + "kind": "Pattern", + "metadata": { + "name": "pattern-sample" + }, + "spec": { + "clusterGroupName": "hub", + "gitSpec": { + "multiSourceSupport": false, + "targetRepo": "https://github.com/validatedpatterns/multicloud-gitops", + "targetRevision": "main" + } + } + } + ] + capabilities: Basic Install + categories: OpenShift Optional + containerImage: quay.io/hybridcloudpatterns/patterns-operator:0.0.35 + createdAt: 2023-12-07 16:33:42 + description: An operator to deploy and manage architecture patterns from https://validatedpatterns.io + operators.operatorframework.io/builder: operator-sdk-v1.30.0 + operators.operatorframework.io/project_layout: go.kubebuilder.io/v3 + repository: https://github.com/validatedpatterns/patterns-operator + name: patterns-operator.v0.0.35 + namespace: placeholder +spec: + apiservicedefinitions: {} + customresourcedefinitions: + owned: + - description: Pattern is the Schema for the patterns API + displayName: Pattern + kind: Pattern + name: patterns.gitops.hybrid-cloud-patterns.io + resources: + - kind: Pattern + name: patterns + version: v1alpha1 + specDescriptors: + - displayName: Name + path: extraParameters[0].name + - description: Git repo containing the pattern to deploy. Must use https/http + displayName: Target Repo + path: gitSpec.targetRepo + - displayName: Value + path: extraParameters[0].value + - description: 'Branch, tag, or commit to deploy. Does not support short-sha''s. + Default: HEAD' + displayName: Target Revision + path: gitSpec.targetRevision + - displayName: Cluster Group Name + path: clusterGroupName + - description: Upstream git repo containing the pattern to deploy. Used when + in-cluster fork to point to the upstream pattern repository + displayName: Origin Repo + path: gitSpec.originRepo + - displayName: Git Config + path: gitSpec + - description: Branch, tag or commit in the upstream git repository. Does not + support short-sha's. Default to HEAD + displayName: Origin Revision + path: gitSpec.originRevision + - description: 'Interval in seconds to poll for drifts between origin and target + repositories. Default: 180 seconds' + displayName: Poll Interval + path: gitSpec.pollInterval + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:number + - displayName: Multi Source Config + path: multiSourceConfig + - description: '.Name is dot separated per the helm --set syntax, such as: global.something.field' + displayName: Extra Parameters + path: extraParameters + - description: Optional. FQDN of the git server if automatic parsing from TargetRepo + is broken + displayName: Hostname + path: gitSpec.hostname + - description: URLs to additional Helm parameter files + displayName: Extra Value Files + path: extraValueFiles + - description: (EXPERIMENTAL) Enable multi-source support when deploying the + clustergroup argo application + displayName: Enabled + path: multiSourceConfig.enabled + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:booleanSwitch + - displayName: Git Ops Config + path: gitOpsSpec + - description: The helm chart url to fetch the helm charts from in order to + deploy the pattern. Defaults to https://charts.validatedpatterns.io/ + displayName: Helm Repo Url + path: multiSourceConfig.helmRepoUrl + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:fieldDependency:multiSourceConfig.enabled:true + - description: Analytics UUID. Leave empty to autogenerate a random one. Not + PII information + displayName: Analytics UUID + path: analyticsUUID + - description: Which chart version for the clustergroup helm chart. Defaults + to "0.8.*" + displayName: Cluster Group Chart Version + path: multiSourceConfig.clusterGroupChartVersion + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:fieldDependency:multiSourceConfig.enabled:true + - description: The url when deploying the clustergroup helm chart directly from + a git repo Defaults to '' which means not used (Only used when developing + the clustergroup helm chart) + displayName: Cluster Group Git Repo Url + path: multiSourceConfig.clusterGroupGitRepoUrl + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:fieldDependency:multiSourceConfig.enabled:true + - description: The git reference when deploying the clustergroup helm chart + directly from a git repo Defaults to 'main'. (Only used when developing + the clustergroup helm chart) + displayName: Cluster Group Chart Git Revision + path: multiSourceConfig.clusterGroupChartGitRevision + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:fieldDependency:multiSourceConfig.enabled:true + - description: 'Require manual intervention before Argo will sync new content. + Default: False' + displayName: Manual Sync + path: gitOpsSpec.manualSync + statusDescriptors: + - displayName: Analytics Sent + path: analyticsSent + - displayName: Analytics UUID + path: analyticsUUID + - displayName: App Cluster Domain + path: appClusterDomain + - displayName: Cluster Domain + path: clusterDomain + - displayName: Cluster ID + path: clusterID + - displayName: Cluster Name + path: clusterName + - displayName: Cluster Platform + path: clusterPlatform + - displayName: Cluster Version + path: clusterVersion + - description: Last error encountered by the pattern + displayName: Last Error + path: lastError + - description: Last action related to the pattern + displayName: Last Step + path: lastStep + - description: Number of updates to the pattern + displayName: Version + path: version + version: v1alpha1 + description: Deploys and manages architecture patterns from https://validatedpatterns.io + displayName: Validated Patterns Operator + icon: + - base64data: iVBORw0KGgoAAAANSUhEUgAAAMgAAADIAgMAAADQNkYNAAAAAXNSR0IArs4c6QAAAAxQTFRF+/v7IWSdx3A4LDpGRm1eQgAAAnhJREFUaN7t2Ltt5TAQhWFzBcGAE0WKnbsJqgQFYj1WKQwJVqGSVICA2fu+ehwM52DD1eRf8p+I/Pg477zzzvu3q0aeTDT55Ekz0+SbJ36hyS9PRFjheFKJsJU/edKIsJW/eeJF2Mq/PBFhKzueVFcysbOwpLmSmZ2FJf5KFnYWloiwlR1PqjuZ2Fk40tzJzM7CEX8nCzsLR0TYyo4n1ZNM7CwMaZ5kZmdhiH+ShZ2FISJsZceT6k0mdhY7ad5kZmexE/8mCzuLnYiwlR1PqjWZ2FmspFmTmZ3FSvyaLOwsViLCVnY8qbZkYmexkWZLZnYWG/FbsrCz2IgIW9nxpNqTiZ3FQpo9mdlZLMTvycLOYiEibGXHk+pIJnaWMmmOZGZnKRN/JAs7C/+OKd8fNFWBgI8B16nkC5C6QCIgvUp+AGkLJAEyqCQDEgokAxLUxoC4IhkB0Sp/AVIXSQREq/wDSFskCZBBbXwkoUgyIEFtfCDOQEZAOq3xgdQGEgHptcYH0hpIAmRQG+9JMJAMSFAb74gzkRGQTmu8I7WJREB6rfGOtCaSABnUxlsSTCQDEtTGG+KMZASk0xpvSG0kEZBea7whrZEkQAa18ZoEI8mABLXxijgzGQHptMYrUptJBKTXGq9IayYJkEFt/CbBTDIgQW38Io4gIyCd1vhFaoJEQHqt8Yu0BEmADGrjJwkEyYAEtfGDOIqMgHRa4wepKRIB6bXGD9JSJAEyqI3vJFAkAxLUxjfiSDIC0mmNb6QmSQSk1xrfSEuSBMigNr6SQJIMSFAbX4ijyQhIpzW+kJomEZBea3whLU0SIIPaOKcQCsOcd955/9f9BYUNIA2v1ub2AAAAAElFTkSuQmCC + mediatype: image/png + install: + spec: + clusterPermissions: + - rules: + - apiGroups: + - "" + resources: + - configmaps + verbs: + - get + - list + - apiGroups: + - "" + resources: + - namespaces + verbs: + - get + - list + - apiGroups: + - argoproj.io + resources: + - applications + verbs: + - create + - delete + - get + - list + - patch + - update + - apiGroups: + - config.openshift.io + resources: + - clusterversions + verbs: + - get + - list + - apiGroups: + - config.openshift.io + resources: + - infrastructures + verbs: + - get + - list + - apiGroups: + - config.openshift.io + resources: + - ingresses + verbs: + - get + - list + - apiGroups: + - gitops.hybrid-cloud-patterns.io + resources: + - patterns + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - gitops.hybrid-cloud-patterns.io + resources: + - patterns/finalizers + verbs: + - update + - apiGroups: + - gitops.hybrid-cloud-patterns.io + resources: + - patterns/status + verbs: + - get + - patch + - update + - apiGroups: + - operator.open-cluster-management.io + resources: + - multiclusterhubs + verbs: + - get + - list + - apiGroups: + - operator.openshift.io + resources: + - openshiftcontrollermanagers + verbs: + - get + - list + - apiGroups: + - operators.coreos.com + resources: + - subscriptions + verbs: + - create + - delete + - get + - list + - patch + - update + - apiGroups: + - authentication.k8s.io + resources: + - tokenreviews + verbs: + - create + - apiGroups: + - authorization.k8s.io + resources: + - subjectaccessreviews + verbs: + - create + serviceAccountName: patterns-operator-controller-manager + deployments: + - label: + control-plane: controller-manager + name: patterns-operator-controller-manager + spec: + replicas: 1 + selector: + matchLabels: + control-plane: controller-manager + strategy: {} + template: + metadata: + annotations: + kubectl.kubernetes.io/default-container: manager + labels: + control-plane: controller-manager + spec: + containers: + - args: + - --secure-listen-address=0.0.0.0:8443 + - --upstream=http://127.0.0.1:8080/ + - --logtostderr=true + - --v=10 + image: gcr.io/kubebuilder/kube-rbac-proxy:v0.8.0 + name: kube-rbac-proxy + ports: + - containerPort: 8443 + name: https + protocol: TCP + resources: {} + - args: + - --health-probe-bind-address=:8081 + - --metrics-bind-address=127.0.0.1:8080 + - --leader-elect + command: + - /manager + image: quay.io/hybridcloudpatterns/patterns-operator:0.0.35 + imagePullPolicy: IfNotPresent + livenessProbe: + httpGet: + path: /healthz + port: 8081 + initialDelaySeconds: 15 + periodSeconds: 20 + name: manager + readinessProbe: + httpGet: + path: /readyz + port: 8081 + initialDelaySeconds: 5 + periodSeconds: 10 + resources: + limits: + cpu: 500m + memory: 256Mi + requests: + cpu: 10m + memory: 64Mi + securityContext: + allowPrivilegeEscalation: false + securityContext: + runAsNonRoot: true + serviceAccountName: patterns-operator-controller-manager + terminationGracePeriodSeconds: 10 + permissions: + - rules: + - apiGroups: + - "" + resources: + - configmaps + verbs: + - get + - list + - watch + - create + - update + - patch + - delete + - apiGroups: + - coordination.k8s.io + resources: + - leases + verbs: + - get + - list + - watch + - create + - update + - patch + - delete + - apiGroups: + - "" + resources: + - events + verbs: + - create + - patch + serviceAccountName: patterns-operator-controller-manager + strategy: deployment + installModes: + - supported: false + type: OwnNamespace + - supported: false + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: true + type: AllNamespaces + keywords: + - Validated + - Pattern + - Blueprint + - Architecture + links: + - name: Hybrid Cloud Patterns + url: https://validatedpatterns.io + maintainers: + - email: hybrid-cloud-patterns@googlegroups.com + name: patterns-team + maturity: alpha + provider: + name: Red Hat + url: https://www.redhat.com/en/products/edge/validated-patterns + version: 0.0.35 diff --git a/operators/patterns-operator/0.0.35/metadata/annotations.yaml b/operators/patterns-operator/0.0.35/metadata/annotations.yaml new file mode 100644 index 00000000000..15dbadb5acb --- /dev/null +++ b/operators/patterns-operator/0.0.35/metadata/annotations.yaml @@ -0,0 +1,14 @@ +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: patterns-operator + operators.operatorframework.io.bundle.channels.v1: fast + operators.operatorframework.io.metrics.builder: operator-sdk-v1.30.0 + operators.operatorframework.io.metrics.mediatype.v1: metrics+v1 + operators.operatorframework.io.metrics.project_layout: go.kubebuilder.io/v3 + + # Annotations for testing. + operators.operatorframework.io.test.mediatype.v1: scorecard+v1 + operators.operatorframework.io.test.config.v1: tests/scorecard/ diff --git a/operators/patterns-operator/0.0.35/tests/scorecard/config.yaml b/operators/patterns-operator/0.0.35/tests/scorecard/config.yaml new file mode 100644 index 00000000000..e9a00c1d04c --- /dev/null +++ b/operators/patterns-operator/0.0.35/tests/scorecard/config.yaml @@ -0,0 +1,70 @@ +apiVersion: scorecard.operatorframework.io/v1alpha3 +kind: Configuration +metadata: + name: config +stages: +- parallel: true + tests: + - entrypoint: + - scorecard-test + - basic-check-spec + image: quay.io/operator-framework/scorecard-test:v1.16.0 + labels: + suite: basic + test: basic-check-spec-test + storage: + spec: + mountPath: {} + - entrypoint: + - scorecard-test + - olm-bundle-validation + image: quay.io/operator-framework/scorecard-test:v1.16.0 + labels: + suite: olm + test: olm-bundle-validation-test + storage: + spec: + mountPath: {} + - entrypoint: + - scorecard-test + - olm-crds-have-validation + image: quay.io/operator-framework/scorecard-test:v1.16.0 + labels: + suite: olm + test: olm-crds-have-validation-test + storage: + spec: + mountPath: {} + - entrypoint: + - scorecard-test + - olm-crds-have-resources + image: quay.io/operator-framework/scorecard-test:v1.16.0 + labels: + suite: olm + test: olm-crds-have-resources-test + storage: + spec: + mountPath: {} + - entrypoint: + - scorecard-test + - olm-spec-descriptors + image: quay.io/operator-framework/scorecard-test:v1.16.0 + labels: + suite: olm + test: olm-spec-descriptors-test + storage: + spec: + mountPath: {} + - entrypoint: + - scorecard-test + - olm-status-descriptors + image: quay.io/operator-framework/scorecard-test:v1.16.0 + labels: + suite: olm + test: olm-status-descriptors-test + storage: + spec: + mountPath: {} +storage: + spec: + mountPath: {}