From 06a8af918d720b12f01b5a94a08f1b4691e93345 Mon Sep 17 00:00:00 2001 From: Laurent Broudoux Date: Thu, 1 Aug 2024 15:18:27 +0200 Subject: [PATCH] operator microcks (1.10.0) --- ...perator.v1.10.0.clusterserviceversion.yaml | 271 ++++++++++++++++++ .../1.10.0/manifests/microcksinstall.crd.yaml | 22 ++ .../microcks/1.10.0/metadata/annotations.yaml | 7 + 3 files changed, 300 insertions(+) create mode 100644 operators/microcks/1.10.0/manifests/microcks-operator.v1.10.0.clusterserviceversion.yaml create mode 100644 operators/microcks/1.10.0/manifests/microcksinstall.crd.yaml create mode 100644 operators/microcks/1.10.0/metadata/annotations.yaml diff --git a/operators/microcks/1.10.0/manifests/microcks-operator.v1.10.0.clusterserviceversion.yaml b/operators/microcks/1.10.0/manifests/microcks-operator.v1.10.0.clusterserviceversion.yaml new file mode 100644 index 00000000000..bf4e24351c0 --- /dev/null +++ b/operators/microcks/1.10.0/manifests/microcks-operator.v1.10.0.clusterserviceversion.yaml @@ -0,0 +1,271 @@ +apiVersion: operators.coreos.com/v1alpha1 +kind: ClusterServiceVersion +metadata: + name: microcks-operator.v1.10.0 + namespace: placeholder + annotations: + capabilities: Seamless Upgrades + categories: "Integration & Delivery" + description: "Open Source mocking and testing platform for API and microservices" + certified: "false" + containerImage: quay.io/microcks/microcks-ansible-operator:1.10.0 + createdAt: 2024-08-01T09:14:55Z + support: microcks.github.io + repository: https://github.com/microcks/microcks-ansible-operator + alm-examples: |- + [ + { + "apiVersion": "microcks.github.io/v1alpha1", + "kind": "MicrocksInstall", + "metadata": { + "name": "my-microcksinstall" + }, + "spec": { + "name": "my-microcksinstall", + "version": "1.10.0", + "microcks": { + "replicas": 1 + }, + "postman": { + "replicas": 1 + }, + "keycloak": { + "install": true, + "persistent": true, + "volumeSize": "1Gi" + }, + "mongodb": { + "install": true, + "persistent": true, + "volumeSize": "2Gi" + } + } + }, + { + "apiVersion": "microcks.github.io/v1alpha1", + "kind": "MicrocksInstall", + "metadata": { + "name": "my-microcksinstall-minikube" + }, + "spec": { + "name": "my-microcksinstall-minikube", + "version": "1.10.0", + "microcks": { + "replicas": 2, + "url": "microcks.192.168.99.100.nip.io" + }, + "postman": { + "replicas": 2 + }, + "keycloak": { + "install": true, + "persistent": true, + "volumeSize": "1Gi", + "url": "keycloak.192.168.99.100.nip.io" + }, + "mongodb": { + "install": true, + "persistent": true, + "volumeSize": "2Gi" + } + } + } + ] +spec: + displayName: Microcks Operator + version: 1.10.0 + description: > + Microcks is an Open source tool for API and microservices mocking and testing. It provides a platform for referencing, deploying mocks and allow contract-testing of your APIs. + It can also be considered as a Service Virtualization solution because it will allow you to provide fake API or Service implementation before development being actually done. + It supports Async APIs, REST APIs, gRPC, GraphQL and SOAP WebServices. It perfectly integrates into an iterative, contract-first delivery process. + + Microcks tries not reinventing the wheel and let you capitalize on already known tools of standards. It supports [AsyncAPI Specifications](https://asyncapi.com), + [OpenAPI Specification](https://www.openapis.org/) `3.x`, [gRPC Protobuf](https://grpc.io/), [GraphQL Schema](https://graphql.org) out-of-the-box and can also relies on popular + tools like [SoapUI](http://www.soapui.com) or [Postman](http://www.getpostman.io) to edit your API request / response samples as well as your test scripts. + + ### Operator features + + * **Create/Destroy**: Easily launch Microcks installations (`MicrocksInstall` custom resource) for your Kubernetes namespace + + ### MicrocksInstall options + + * **keycloak** component can be deployed as part of the install or you can reuse an existing instance. You can reference an existing `Secret` for providing TLS certificates for securing the `Ingress`, + + * **mongodb** component can be deployed as part of the install or you can reuse an existing instance, You can reference an existing `Secret` for providing connection credentials, + + * **features** component allow to activate optional features like the mocking of AsyncAPIs. In case you turn `features.async.enabled` to `true` and `features.async.kafka.install` to `true`, you must have the [Strimzi Operator](https://operatorhub.io/operator/strimzi-kafka-operator) already installed on your cluster/namespace. + + ### Documentation + + Documentation to the current _master_ branch as well as all releases can be found on our [GitHub](https://github.com/microcks/microcks-ansible-operator). + + ### License + + Microcks is licensed under the [Apache License, Version 2.0](https://github.com/microcks/microcks/blob/master/LICENSE). + keywords: ['mock', 'test', 'API', 'microservice'] + maintainers: + - name: lbroudoux + email: laurent.broudoux@gmail.com + provider: + name: Microcks.io + replaces: microcks-operator.v1.9.0 + maturity: alpha + labels: + name: microcks-operator + selector: + matchLabels: + name: microcks-operator + links: + - name: Product Page + url: https://microcks.io + - name: Microcks Operator Source Code + url: https://github.com/microcks/microcks-ansible-operator + icon: + - base64data: >- + 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 + mediatype: image/png + installModes: + - type: OwnNamespace + supported: true + - type: SingleNamespace + supported: true + - type: MultiNamespace + supported: false + - type: AllNamespaces + supported: false + install: + strategy: deployment + spec: + permissions: + - serviceAccountName: microcks-ansible-operator + rules: + - apiGroups: + - "" + resources: + - pods + - services + - endpoints + - persistentvolumeclaims + - events + - configmaps + - secrets + verbs: + - '*' + - apiGroups: + - "" + resources: + - namespaces + verbs: + - get + - apiGroups: + - apps + resources: + - deployments + - daemonsets + - replicasets + - statefulsets + verbs: + - '*' + - apiGroups: + - route.openshift.io + resources: + - routes + verbs: + - '*' + - apiGroups: + - route.openshift.io + resources: + - routes/custom-host + verbs: + - create + - apiGroups: + - networking.k8s.io + resources: + - ingresses + verbs: + - '*' + - apiGroups: + - monitoring.coreos.com + resources: + - servicemonitors + verbs: + - get + - create + - apiGroups: + - kafka.strimzi.io + resources: + - kafkas + - kafkatopics + verbs: + - '*' + - apiGroups: + - microcks.github.io + resources: + - '*' + verbs: + - '*' + deployments: + - name: microcks-ansible-operator + spec: + replicas: 1 + selector: + matchLabels: + name: microcks-ansible-operator + template: + metadata: + labels: + name: microcks-ansible-operator + spec: + serviceAccountName: microcks-ansible-operator + containers: + - name: microcks-ansible-operator + image: quay.io/microcks/microcks-ansible-operator:1.10.0 + imagePullPolicy: Always + env: + - name: WATCH_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.annotations['olm.targetNamespaces'] + - name: POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: OPERATOR_NAME + value: "microcks-ansible-operator" + customresourcedefinitions: + owned: + - name: microcksinstalls.microcks.github.io + version: v1alpha1 + kind: MicrocksInstall + displayName: MicrocksInstall + description: Represents a Microcks installation + resources: + - kind: Service + name: '' + version: v1 + - kind: Deployment + name: '' + version: v1 + - kind: Pod + name: '' + version: v1 + - kind: ConfigMap + name: '' + version: v1 + - kind: Secret + name: '' + version: v1 + - kind: PersistentVolumeClaim + name: '' + version: v1 + specDescriptors: + - description: Name of your MicrocksInstall + displayName: Name + path: name + x-descriptors: + - 'urn:alm:descriptor:com.tectonic.ui:label' + - description: Version of Microcks to install + displayName: Version + path: version + x-descriptors: + - 'urn:alm:descriptor:com.tectonic.ui:label' diff --git a/operators/microcks/1.10.0/manifests/microcksinstall.crd.yaml b/operators/microcks/1.10.0/manifests/microcksinstall.crd.yaml new file mode 100644 index 00000000000..71cd315b587 --- /dev/null +++ b/operators/microcks/1.10.0/manifests/microcksinstall.crd.yaml @@ -0,0 +1,22 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + name: microcksinstalls.microcks.github.io +spec: + group: microcks.github.io + names: + kind: MicrocksInstall + listKind: MicrocksInstallList + plural: microcksinstalls + singular: microcksinstall + scope: Namespaced + versions: + - name: v1alpha1 + served: true + storage: true + schema: + openAPIV3Schema: + type: object + x-kubernetes-preserve-unknown-fields: true + subresources: + status: {} diff --git a/operators/microcks/1.10.0/metadata/annotations.yaml b/operators/microcks/1.10.0/metadata/annotations.yaml new file mode 100644 index 00000000000..8526d0a495e --- /dev/null +++ b/operators/microcks/1.10.0/metadata/annotations.yaml @@ -0,0 +1,7 @@ +annotations: + operators.operatorframework.io.bundle.channel.default.v1: stable + operators.operatorframework.io.bundle.channels.v1: stable + operators.operatorframework.io.bundle.manifests.v1: manifests/ + operators.operatorframework.io.bundle.mediatype.v1: registry+v1 + operators.operatorframework.io.bundle.metadata.v1: metadata/ + operators.operatorframework.io.bundle.package.v1: microcks