From dcac19ed9764ce35faa7c47fa3c89fc47a1f8c16 Mon Sep 17 00:00:00 2001 From: Ryan Emerson Date: Mon, 16 Oct 2023 17:08:43 +0100 Subject: [PATCH] Infinispan 2.3.5 Signed-off-by: Ryan Emerson --- ...-operator-manager-config_v1_configmap.yaml | 19 + ...nispan-operator.clusterserviceversion.yaml | 907 ++++++++++++ .../manifests/infinispan.org_backups.yaml | 122 ++ .../manifests/infinispan.org_batches.yaml | 73 + .../manifests/infinispan.org_caches.yaml | 134 ++ .../manifests/infinispan.org_infinispans.yaml | 1280 +++++++++++++++++ .../manifests/infinispan.org_restores.yaml | 115 ++ .../2.3.5/metadata/annotations.yaml | 12 + .../2.3.5/tests/scorecard/config.yaml | 49 + 9 files changed, 2711 insertions(+) create mode 100644 operators/infinispan/2.3.5/manifests/infinispan-operator-manager-config_v1_configmap.yaml create mode 100644 operators/infinispan/2.3.5/manifests/infinispan-operator.clusterserviceversion.yaml create mode 100644 operators/infinispan/2.3.5/manifests/infinispan.org_backups.yaml create mode 100644 operators/infinispan/2.3.5/manifests/infinispan.org_batches.yaml create mode 100644 operators/infinispan/2.3.5/manifests/infinispan.org_caches.yaml create mode 100644 operators/infinispan/2.3.5/manifests/infinispan.org_infinispans.yaml create mode 100644 operators/infinispan/2.3.5/manifests/infinispan.org_restores.yaml create mode 100644 operators/infinispan/2.3.5/metadata/annotations.yaml create mode 100644 operators/infinispan/2.3.5/tests/scorecard/config.yaml diff --git a/operators/infinispan/2.3.5/manifests/infinispan-operator-manager-config_v1_configmap.yaml b/operators/infinispan/2.3.5/manifests/infinispan-operator-manager-config_v1_configmap.yaml new file mode 100644 index 00000000000..378c57c336f --- /dev/null +++ b/operators/infinispan/2.3.5/manifests/infinispan-operator-manager-config_v1_configmap.yaml @@ -0,0 +1,19 @@ +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: 632512e4.infinispan.org +kind: ConfigMap +metadata: + labels: + app.kubernetes.io/name: infinispan-operator + name: infinispan-operator-manager-config diff --git a/operators/infinispan/2.3.5/manifests/infinispan-operator.clusterserviceversion.yaml b/operators/infinispan/2.3.5/manifests/infinispan-operator.clusterserviceversion.yaml new file mode 100644 index 00000000000..2d2a0632d9e --- /dev/null +++ b/operators/infinispan/2.3.5/manifests/infinispan-operator.clusterserviceversion.yaml @@ -0,0 +1,907 @@ +apiVersion: operators.coreos.com/v1alpha1 +kind: ClusterServiceVersion +metadata: + annotations: + alm-examples: |- + [ + { + "apiVersion": "infinispan.org/v1", + "kind": "Infinispan", + "metadata": { + "name": "example-infinispan" + }, + "spec": { + "replicas": 1 + } + }, + { + "apiVersion": "infinispan.org/v2alpha1", + "kind": "Backup", + "metadata": { + "name": "example-backup" + }, + "spec": { + "cluster": "example-infinispan", + "container": { + "cpu": "1000m", + "extraJvmOpts": "-Djava.property=me", + "memory": "1Gi" + } + } + }, + { + "apiVersion": "infinispan.org/v2alpha1", + "kind": "Batch", + "metadata": { + "name": "example-batch-inline" + }, + "spec": { + "cluster": "example-infinispan", + "config": "create cache --template=org.infinispan.DIST_SYNC mycache\nput --cache=mycache hello world\nput --cache=mycache hola mundo\n" + } + }, + { + "apiVersion": "infinispan.org/v2alpha1", + "kind": "Cache", + "metadata": { + "name": "example-cache" + }, + "spec": { + "clusterName": "example-infinispan", + "name": "mycache", + "templateName": "org.infinispan.DIST_SYNC" + } + }, + { + "apiVersion": "infinispan.org/v2alpha1", + "kind": "Restore", + "metadata": { + "name": "example-restore" + }, + "spec": { + "cluster": "example-infinispan", + "container": { + "cpu": "1000m", + "extraJvmOpts": "-Djava.property=me", + "memory": "1Gi" + } + } + } + ] + capabilities: Deep Insights + categories: Database + certified: "false" + containerImage: quay.io/infinispan/operator:2.3.5.Final + description: Create and manage Infinispan clusters. + operators.operatorframework.io/builder: operator-sdk-v1.3.2 + operators.operatorframework.io/project_layout: go.kubebuilder.io/v3 + repository: https://github.com/infinispan/infinispan-operator + labels: + operatorframework.io/arch.amd64: supported + operatorframework.io/arch.arm64: supported + name: infinispan-operator.v2.3.5 + namespace: placeholder +spec: + apiservicedefinitions: {} + customresourcedefinitions: + owned: + - description: Backup is the Schema for the backups API + displayName: Backup + kind: Backup + name: backups.infinispan.org + specDescriptors: + - description: Infinispan cluster name + displayName: Cluster Name + path: cluster + x-descriptors: + - urn:alm:descriptor:io.kubernetes:infinispan.org:v1:Infinispan + - description: Names the storage class object for persistent volume claims. + displayName: Storage Class Name + path: volume.storageClassName + x-descriptors: + - urn:alm:descriptor:io.kubernetes:StorageClass + statusDescriptors: + - description: Current phase of the backup operation + displayName: Phase + path: phase + - description: The name of the created PersistentVolumeClaim used to store the backup + displayName: Persistent Volume Claim + path: pvc + - description: Reason indicates the reason for any backup related failures. + displayName: Reason + path: reason + version: v2alpha1 + - description: Batch is the Schema for the batches API + displayName: Batch + kind: Batch + name: batches.infinispan.org + specDescriptors: + - description: Infinispan cluster name + displayName: Cluster Name + path: cluster + x-descriptors: + - urn:alm:descriptor:io.kubernetes:infinispan.org:v1:Infinispan + - description: Batch string to be executed + displayName: Config Command + path: config + - description: Name of the ConfigMap containing the batch and resource files to be executed + displayName: ConfigMap Name + path: configMap + statusDescriptors: + - description: The UUID of the Infinispan instance that the Batch is associated with + displayName: Cluster UUID + path: clusterUID + - description: Current phase of the batch operation + displayName: Phase + path: phase + - description: The reason for any batch related failures + displayName: Reason + path: reason + version: v2alpha1 + - description: Cache is the Schema for the caches API + displayName: Cache + kind: Cache + name: caches.infinispan.org + specDescriptors: + - description: The secret that contains user credentials. + displayName: Authentication Secret + path: adminAuth.secretName + x-descriptors: + - urn:alm:descriptor:io.kubernetes:Secret + - description: Infinispan cluster name + displayName: Cluster Name + path: clusterName + x-descriptors: + - urn:alm:descriptor:io.kubernetes:infinispan.org:v1:Infinispan + - description: How updates to Cache CR template should be applied on the Infinispan server + displayName: Update Strategy + path: updates.strategy + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:select:recreate + - urn:alm:descriptor:com.tectonic.ui:select:retain + version: v2alpha1 + - description: Infinispan is the Schema for the infinispans API + displayName: Infinispan Cluster + kind: Infinispan + name: infinispans.infinispan.org + specDescriptors: + - description: If true, a dedicated pod is used to ensure that all config resources created on the Infinispan server have a matching CR resource + displayName: Toggle Config Listener + path: configListener.enabled + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:booleanSwitch + - description: The logging level to be used by the ConfigListener pod + displayName: Logging Level + path: configListener.logging.level + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:select:debug + - urn:alm:descriptor:com.tectonic.ui:select:info + - urn:alm:descriptor:com.tectonic.ui:select:error + - description: The Persistent Volume Claim that holds custom libraries + displayName: Persistent Volume Claim Name + path: dependencies.volumeClaimName + x-descriptors: + - urn:alm:descriptor:io.kubernetes:PersistentVolumeClaim + - description: The network hostname for your Infinispan cluster + displayName: Route Hostname + path: expose.host + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:text + - urn:alm:descriptor:com.tectonic.ui:fieldDependency:expose.type:Route + - description: If true, a JMX endpoint is exposed on the admin service + displayName: Toggle Jmx + path: jmx.enabled + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:booleanSwitch + - description: The number of nodes in the Infinispan cluster. + displayName: Replicas + path: replicas + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:podCount + - description: A secret that contains CredentialStore alias and password combinations + displayName: CredentialStore Secret + path: security.credentialStoreSecretName + x-descriptors: + - urn:alm:descriptor:io.kubernetes:Secret + - description: Enable or disable user authentication + displayName: Toggle Authentication + path: security.endpointAuthentication + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:booleanSwitch + - description: The secret that contains TLS certificates + displayName: Encryption Secret + path: security.endpointEncryption.certSecretName + x-descriptors: + - urn:alm:descriptor:io.kubernetes:Secret + - urn:alm:descriptor:com.tectonic.ui:fieldDependency:security.endpointEncryption.type:Secret + - description: A service that provides TLS certificates + displayName: Encryption Service + path: security.endpointEncryption.certServiceName + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:text + - urn:alm:descriptor:com.tectonic.ui:fieldDependency:security.endpointEncryption.type:Service + - description: Disable or modify endpoint encryption. + displayName: Configure Encryption + path: security.endpointEncryption.type + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:select:Service + - urn:alm:descriptor:com.tectonic.ui:select:Secret + - urn:alm:descriptor:com.tectonic.ui:select:None + - description: The secret that contains user credentials. + displayName: Authentication Secret + path: security.endpointSecretName + x-descriptors: + - urn:alm:descriptor:io.kubernetes:Secret + - urn:alm:descriptor:com.tectonic.ui:fieldDependency:security.endpointAuthentication:true + - description: Enable/disable container ephemeral storage + displayName: Container Ephemeral Storage + path: service.container.ephemeralStorage + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:booleanSwitch + - description: The amount of storage for the persistent volume claim. + displayName: Storage Size + path: service.container.storage + x-descriptors: + - urn:alm:descriptor:text + - description: The storage class object for persistent volume claims + displayName: Storage Class Name + path: service.container.storageClassName + x-descriptors: + - urn:alm:descriptor:io.kubernetes:StorageClass + - urn:alm:descriptor:com.tectonic.ui:fieldDependency:service.container.ephemeralStorage:false + - description: Cache replication factor, or number of copies for each entry. + displayName: Number of Owners + path: service.replicationFactor + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:number + - description: Deprecated and to be removed on subsequent release. Use .URL with infinispan+xsite schema instead. + displayName: Node Port + path: service.sites.locations[0].port + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:number + - urn:alm:descriptor:com.tectonic.ui:fieldDependency:service.sites.local.expose.type:NodePort + - description: The access secret that allows backups to a remote site + displayName: Backup Location Secret + path: service.sites.locations[0].secretName + x-descriptors: + - urn:alm:descriptor:io.kubernetes:Secret + - description: The service type + displayName: Service Type + path: service.type + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:select:Cache + - urn:alm:descriptor:com.tectonic.ui:select:DataGrid + statusDescriptors: + - description: Infinispan Console URL + displayName: Infinispan Console URL + path: consoleUrl + x-descriptors: + - urn:alm:descriptor:org.w3:link + - description: The Operand status + displayName: Operand Status + path: operand + - description: The Pod's currently in the cluster + displayName: Pod Status + path: podStatus + x-descriptors: + - urn:alm:descriptor:com.tectonic.ui:podStatuses + version: v1 + - description: Restore is the Schema for the restores API + displayName: Restore + kind: Restore + name: restores.infinispan.org + specDescriptors: + - description: The Infinispan Backup to restore + displayName: Backup Name + path: backup + x-descriptors: + - urn:alm:descriptor:io.kubernetes:infinispan.org:v2alpha1:Backup + - description: Infinispan cluster name + displayName: Cluster Name + path: cluster + x-descriptors: + - urn:alm:descriptor:io.kubernetes:infinispan.org:v1:Infinispan + statusDescriptors: + - description: Current phase of the restore operation + displayName: Phase + path: phase + - description: Reason indicates the reason for any restore related failures. + displayName: Reason + path: reason + version: v2alpha1 + description: | + Infinispan is an in-memory data store and open-source project. + + ### Infinispan + * **Schemaless structure:** Store objects in key/value pairs. + * **Grid storage:** Distribute and replicate data across clusters. + * **Elasticity:** Scale to meet workload demands without service disruption. + * **Polyglot access:** Read, write, and query from multiple client languages with different endpoints. + * **Continuous availability:** Create a fault-tolerant caching service that guarantees business continuity. + + ### Operator capabilities + * Built-in intelligence to automate Infinispan cluster deployment. + * Infinispan CR for service configuration. + * Cross site configuration and management. + * Deployment of Grafana and Prometheus resources. + * Cache CR for fully configurable caches. + * Batch CR for scripting bulk resource creation. + * REST and Hot Rod endpoints available at port `11222`. + * Default application user: `developer`. Infinispan Operator generates credentials in an authentication secret at startup. + * Infinispan pods request `0.25` (limit `0.50`) CPUs, 512MiB of memory and 1Gi of ReadWriteOnce persistent storage. Infinispan Operator lets you adjust resource allocation to suit your requirements. + displayName: Infinispan Operator + icon: + - base64data: iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAACXBIWXMAAACxAAAAsQHGLUmNAAAEOklEQVR4nO1bTUhUURQ+ZSioGAyNTFAmNBCjUEHSShRaTRs3tWlR61q3KciVC1e1rV3QOjduciUo0iIUpqARYQI1QVGZSHRASYrv8e7wmnz33vfmnjPPZj54zCjv3nfvd8/fO+fMmQdvP/6mJsbZZt480CIgAWtoKFoEJGANDYU1AVdSXTSQ6aHO9nOJ3QzWhjVirbaw3s2j2/2Uy/RU/97dP6S18gEVt/a8C98loQ5EbfhCd0f16ctbezQx89VqNbGPEw/EdasvVSVkrrRD86Vt2tk/ZKEi3d1BI9leGs2m/9pwPXAmz1jQvZuXvGu+tENThe/OiEh7c1+mkWzayXxBsCg0FoprqrBBH4qbVDn6FWse6PTdgYseqVxgtWhYOMT15exKZBsBvX5655ozUQ8DuxvEBibHrkcSX9yLMdybB8TigMfDWc+TmIB7cK8UYr0NKteDT+UFbAED+WahFEpSVEO3tF6uumF8RkUsG6B8PwwcDBX0HMbKRmSxQSwWY2v/b7t5uFyMh9uNa2AVnOYD4KpARGd7m/HeV7MrtLhe9r5Dkl7kB41jKkfH3sbhYl3BqQ3Awp5Pf7ay+BB3FVaDOBMwJ+Z2uXnAuRFE8DMxU/R0XQdIyZPhq94dpk1hLszJEWGyeAHoJQydiQQYUIg/7MlyiAFTRrNeXQ8DqxvEwsM2pqBc3klSgLFhHsMV2OMARIEwXmGA5xjqS/0jBRiDsdxgJ0Cpgw7wHMBcabt6F6fYByESCcLd6VQBeQa88S2u//BOHvcqF8kNsVDYZOmhBjjx5a2fzl2dDmIEmLJGQ35I/b6wESukjQvRpKjOLap0m3RqTZQAk15HSWa6gigBiOR0LrHL4h3CNcTrAjoRz2XOi64FECeAK2McFy0CErCGhiJRBKQFkqC1aBEg/UCdF/jv4wAyGEFkiaSlIFESQIF3AimIEqBEXPdqzFEA1UGMAOT+7vtFTt07gSq4SEGMAKS+VahreimySZO7gggB0Ouc117T5ok4DKEpQyRlC9gJQPEjWOwczfZ6n7WlsVoECyecYCcANf5gqSzn9/VADXYNLhFjTzUBOMXcCQZN6bgpW4yx3KVyFgKU2Ie5NCUFyP0tGQwi5uBUB+cEIJIbzw8Y/bmSgtcL37RZIvJJwJwcUaJTArCpybEbVjG9Sn3bFE7Ijw8wt2sXWXd/QNQGCfJ1vzZDjPEPLVpoKAkNEk3ZIjOeHzzRokfBTHGT3n1aDR2h6oF5v1ZoAxxA7SFEaZUVC4WxOd3mFXAPd0k8CPZQC/oatVESarJWrog0SrISUE+rLAh7Nv3ldLbKumqWBnGYBx3oiW+W5myXx3ywCyAjMe3yjfjBBIgACbh0P5iIAus4AA9B8XK1XBFpXYkDBGX9qU46ODq2PhBrCZCu28cBDiZqMNQqjSVgDQ1Fi4AErKGhaG4CiOgPK6Ej+g5fAyMAAAAASUVORK5CYII= + mediatype: image/png + install: + spec: + clusterPermissions: + - rules: + - apiGroups: + - apiextensions.k8s.io + resources: + - customresourcedefinitions + - customresourcedefinitions/status + verbs: + - get + - list + - watch + - apiGroups: + - "" + resources: + - nodes + verbs: + - get + - list + - watch + - apiGroups: + - storage.k8s.io + resources: + - storageclasses + verbs: + - get + - list + - watch + serviceAccountName: infinispan-operator-controller-manager + deployments: + - name: infinispan-operator-controller-manager + spec: + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/name: infinispan-operator + control-plane: controller-manager + strategy: {} + template: + metadata: + labels: + app.kubernetes.io/name: infinispan-operator + control-plane: controller-manager + spec: + containers: + - args: + - operator + - --leader-elect + env: + - name: WATCH_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.annotations['olm.targetNamespaces'] + - name: INFINISPAN_OPERAND_VERSIONS + value: |- + [ + { + "upstream-version": "13.0.10", + "image": "quay.io/infinispan/server:13.0.10.Final" + }, + { + "upstream-version": "14.0.1", + "image": "quay.io/infinispan/server:14.0.1.Final" + }, + { + "upstream-version": "14.0.6", + "image": "quay.io/infinispan/server:14.0.6.Final" + }, + { + "upstream-version": "14.0.9", + "image": "quay.io/infinispan/server:14.0.9.Final" + }, + { + "upstream-version": "14.0.13", + "image": "quay.io/infinispan/server:14.0.13.Final" + }, + { + "upstream-version": "14.0.17", + "image": "quay.io/infinispan/server:14.0.17.Final" + }, + { + "upstream-version": "14.0.19", + "image": "quay.io/infinispan/server:14.0.19.Final" + } + ] + - name: POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + image: quay.io/infinispan/operator:2.3.5.Final + imagePullPolicy: Always + livenessProbe: + httpGet: + path: /healthz + port: 8081 + initialDelaySeconds: 15 + periodSeconds: 20 + name: manager + ports: + - containerPort: 9443 + name: webhook-server + protocol: TCP + readinessProbe: + httpGet: + path: /readyz + port: 8081 + initialDelaySeconds: 5 + periodSeconds: 10 + resources: {} + serviceAccountName: infinispan-operator-controller-manager + permissions: + - rules: + - apiGroups: + - "" + - coordination.k8s.io + resources: + - configmaps + - leases + verbs: + - get + - list + - watch + - create + - update + - patch + - delete + - apiGroups: + - "" + resources: + - events + verbs: + - create + - patch + - apiGroups: + - apps + resources: + - deployments + - deployments/finalizers + - statefulsets + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - apps + resources: + - replicasets + verbs: + - get + - apiGroups: + - batch + resources: + - jobs + verbs: + - create + - delete + - get + - list + - update + - watch + - apiGroups: + - "" + resources: + - configmaps + - endpoints + - persistentvolumeclaims + - pods + - secrets + - services + - services/finalizers + verbs: + - create + - delete + - deletecollection + - get + - list + - patch + - update + - watch + - apiGroups: + - "" + resources: + - pods/exec + verbs: + - create + - apiGroups: + - "" + resources: + - pods/log + verbs: + - get + - apiGroups: + - "" + resources: + - serviceaccounts + verbs: + - create + - delete + - get + - list + - update + - watch + - apiGroups: + - "" + - events.k8s.io + resources: + - events + verbs: + - create + - patch + - apiGroups: + - infinispan.org + resources: + - backups + - backups/finalizers + - backups/status + verbs: + - create + - get + - list + - patch + - update + - watch + - apiGroups: + - infinispan.org + resources: + - batches + - batches/finalizers + - batches/status + verbs: + - create + - get + - list + - patch + - update + - watch + - apiGroups: + - infinispan.org + resources: + - caches + - caches/finalizers + - caches/status + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - infinispan.org + resources: + - infinispans + - infinispans/finalizers + - infinispans/status + verbs: + - create + - get + - list + - patch + - update + - watch + - apiGroups: + - infinispan.org + resources: + - restores + - restores/finalizers + - restores/status + verbs: + - create + - get + - list + - patch + - update + - watch + - apiGroups: + - integreatly.org + resources: + - grafanadashboards + verbs: + - create + - delete + - get + - list + - update + - watch + - apiGroups: + - monitoring.coreos.com + resources: + - servicemonitors + verbs: + - create + - delete + - get + - list + - update + - watch + - apiGroups: + - networking.k8s.io + resources: + - customresourcedefinitions + - customresourcedefinitions/status + verbs: + - get + - list + - apiGroups: + - networking.k8s.io + resources: + - ingresses + verbs: + - create + - delete + - deletecollection + - get + - list + - update + - watch + - apiGroups: + - rbac.authorization.k8s.io + resources: + - rolebindings + - roles + verbs: + - create + - delete + - get + - list + - update + - watch + - apiGroups: + - route.openshift.io + resources: + - routes + - routes/custom-host + verbs: + - create + - delete + - deletecollection + - get + - list + - update + - watch + serviceAccountName: infinispan-operator-controller-manager + strategy: deployment + installModes: + - supported: true + type: OwnNamespace + - supported: true + type: SingleNamespace + - supported: true + type: MultiNamespace + - supported: true + type: AllNamespaces + keywords: + - infinispan + - key value + - database + - datagrid + - open source + links: + - name: Blog + url: https://blog.infinispan.org/ + - name: Documentation + url: https://infinispan.org/documentation + - name: Chat + url: https://infinispan.zulipchat.com/#narrow/stream/185835-infinispan-cloud + - name: Operator Source Code + url: https://github.com/infinispan/infinispan-operator + maintainers: + - email: infinispan-dev@lists.jboss.org + name: Infinispan Community + maturity: alpha + provider: + name: Infinispan + replaces: infinispan-operator.v2.3.4 + version: 2.3.5 + webhookdefinitions: + - admissionReviewVersions: + - v1 + - v1beta1 + containerPort: 443 + deploymentName: infinispan-operator-controller-manager + failurePolicy: Fail + generateName: vinfinispan.kb.io + rules: + - apiGroups: + - infinispan.org + apiVersions: + - v1 + operations: + - CREATE + - UPDATE + resources: + - infinispans + sideEffects: None + targetPort: 9443 + type: ValidatingAdmissionWebhook + webhookPath: /validate-infinispan-org-v1-infinispan + - admissionReviewVersions: + - v1 + - v1beta1 + containerPort: 443 + deploymentName: infinispan-operator-controller-manager + failurePolicy: Fail + generateName: vbackup.kb.io + rules: + - apiGroups: + - infinispan.org + apiVersions: + - v2alpha1 + operations: + - CREATE + - UPDATE + resources: + - backups + sideEffects: None + targetPort: 9443 + type: ValidatingAdmissionWebhook + webhookPath: /validate-infinispan-org-v2alpha1-backup + - admissionReviewVersions: + - v1 + - v1beta1 + containerPort: 443 + deploymentName: infinispan-operator-controller-manager + failurePolicy: Fail + generateName: vbatch.kb.io + rules: + - apiGroups: + - infinispan.org + apiVersions: + - v2alpha1 + operations: + - CREATE + - UPDATE + resources: + - batches + sideEffects: None + targetPort: 9443 + type: ValidatingAdmissionWebhook + webhookPath: /validate-infinispan-org-v2alpha1-batch + - admissionReviewVersions: + - v1 + - v1beta1 + containerPort: 443 + deploymentName: infinispan-operator-controller-manager + failurePolicy: Fail + generateName: vcache.kb.io + rules: + - apiGroups: + - infinispan.org + apiVersions: + - v2alpha1 + operations: + - CREATE + - UPDATE + resources: + - caches + sideEffects: None + targetPort: 9443 + type: ValidatingAdmissionWebhook + webhookPath: /validate-infinispan-org-v2alpha1-cache + - admissionReviewVersions: + - v1 + - v1beta1 + containerPort: 443 + deploymentName: infinispan-operator-controller-manager + failurePolicy: Fail + generateName: vrestore.kb.io + rules: + - apiGroups: + - infinispan.org + apiVersions: + - v2alpha1 + operations: + - CREATE + - UPDATE + resources: + - restores + sideEffects: None + targetPort: 9443 + type: ValidatingAdmissionWebhook + webhookPath: /validate-infinispan-org-v2alpha1-restore + - admissionReviewVersions: + - v1 + - v1beta1 + containerPort: 443 + deploymentName: infinispan-operator-controller-manager + failurePolicy: Fail + generateName: minfinispan.kb.io + rules: + - apiGroups: + - infinispan.org + apiVersions: + - v1 + operations: + - CREATE + - UPDATE + resources: + - infinispans + sideEffects: None + targetPort: 9443 + type: MutatingAdmissionWebhook + webhookPath: /mutate-infinispan-org-v1-infinispan + - admissionReviewVersions: + - v1 + - v1beta1 + containerPort: 443 + deploymentName: infinispan-operator-controller-manager + failurePolicy: Fail + generateName: mbackup.kb.io + rules: + - apiGroups: + - infinispan.org + apiVersions: + - v2alpha1 + operations: + - CREATE + - UPDATE + resources: + - backups + sideEffects: None + targetPort: 9443 + type: MutatingAdmissionWebhook + webhookPath: /mutate-infinispan-org-v2alpha1-backup + - admissionReviewVersions: + - v1 + - v1beta1 + containerPort: 443 + deploymentName: infinispan-operator-controller-manager + failurePolicy: Fail + generateName: mcache.kb.io + rules: + - apiGroups: + - infinispan.org + apiVersions: + - v2alpha1 + operations: + - CREATE + - UPDATE + resources: + - caches + sideEffects: None + targetPort: 9443 + type: MutatingAdmissionWebhook + webhookPath: /mutate-infinispan-org-v2alpha1-cache + - admissionReviewVersions: + - v1 + - v1beta1 + containerPort: 443 + deploymentName: infinispan-operator-controller-manager + failurePolicy: Fail + generateName: mrestore.kb.io + rules: + - apiGroups: + - infinispan.org + apiVersions: + - v2alpha1 + operations: + - CREATE + - UPDATE + resources: + - restores + sideEffects: None + targetPort: 9443 + type: MutatingAdmissionWebhook + webhookPath: /mutate-infinispan-org-v2alpha1-restore diff --git a/operators/infinispan/2.3.5/manifests/infinispan.org_backups.yaml b/operators/infinispan/2.3.5/manifests/infinispan.org_backups.yaml new file mode 100644 index 00000000000..a595090ca9f --- /dev/null +++ b/operators/infinispan/2.3.5/manifests/infinispan.org_backups.yaml @@ -0,0 +1,122 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + cert-manager.io/inject-ca-from: infinispan-operator-system/infinispan-operator-serving-cert + controller-gen.kubebuilder.io/version: v0.4.1 + creationTimestamp: null + labels: + app.kubernetes.io/name: infinispan-operator + name: backups.infinispan.org +spec: + group: infinispan.org + names: + kind: Backup + listKind: BackupList + plural: backups + singular: backup + scope: Namespaced + versions: + - name: v2alpha1 + schema: + openAPIV3Schema: + description: Backup is the Schema for the backups 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: BackupSpec defines the desired state of Backup + properties: + cluster: + description: Infinispan cluster name + type: string + container: + description: InfinispanContainerSpec specify resource requirements per container + properties: + cliExtraJvmOpts: + type: string + cpu: + type: string + extraJvmOpts: + type: string + memory: + type: string + routerExtraJvmOpts: + type: string + type: object + resources: + properties: + cacheConfigs: + description: Deprecated and to be removed on subsequent release. Use .Templates instead. + items: + type: string + type: array + caches: + items: + type: string + type: array + counters: + items: + type: string + type: array + protoSchemas: + items: + type: string + type: array + scripts: + description: Deprecated and to be removed on subsequent release. Use .Tasks instead. + items: + type: string + type: array + tasks: + items: + type: string + type: array + templates: + items: + type: string + type: array + type: object + volume: + properties: + storage: + type: string + storageClassName: + description: Names the storage class object for persistent volume claims. + type: string + type: object + required: + - cluster + type: object + status: + description: BackupStatus defines the observed state of Backup + properties: + phase: + description: Current phase of the backup operation + type: string + pvc: + description: The name of the created PersistentVolumeClaim used to store the backup + type: string + reason: + description: Reason indicates the reason for any backup related failures. + type: string + required: + - phase + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/operators/infinispan/2.3.5/manifests/infinispan.org_batches.yaml b/operators/infinispan/2.3.5/manifests/infinispan.org_batches.yaml new file mode 100644 index 00000000000..caae55ae201 --- /dev/null +++ b/operators/infinispan/2.3.5/manifests/infinispan.org_batches.yaml @@ -0,0 +1,73 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + cert-manager.io/inject-ca-from: infinispan-operator-system/infinispan-operator-serving-cert + controller-gen.kubebuilder.io/version: v0.4.1 + creationTimestamp: null + labels: + app.kubernetes.io/name: infinispan-operator + name: batches.infinispan.org +spec: + group: infinispan.org + names: + kind: Batch + listKind: BatchList + plural: batches + singular: batch + scope: Namespaced + versions: + - name: v2alpha1 + schema: + openAPIV3Schema: + description: Batch is the Schema for the batches 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: BatchSpec defines the desired state of Batch + properties: + cluster: + description: Infinispan cluster name + type: string + config: + description: Batch string to be executed + type: string + configMap: + description: Name of the ConfigMap containing the batch and resource files to be executed + type: string + required: + - cluster + type: object + status: + description: BatchStatus defines the observed state of Batch + properties: + clusterUID: + description: The UUID of the Infinispan instance that the Batch is associated with + type: string + phase: + description: Current phase of the batch operation + type: string + reason: + description: The reason for any batch related failures + type: string + required: + - phase + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/operators/infinispan/2.3.5/manifests/infinispan.org_caches.yaml b/operators/infinispan/2.3.5/manifests/infinispan.org_caches.yaml new file mode 100644 index 00000000000..f716b2c1dbe --- /dev/null +++ b/operators/infinispan/2.3.5/manifests/infinispan.org_caches.yaml @@ -0,0 +1,134 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + cert-manager.io/inject-ca-from: infinispan-operator-system/infinispan-operator-serving-cert + controller-gen.kubebuilder.io/version: v0.4.1 + creationTimestamp: null + labels: + app.kubernetes.io/name: infinispan-operator + name: caches.infinispan.org +spec: + group: infinispan.org + names: + kind: Cache + listKind: CacheList + plural: caches + singular: cache + scope: Namespaced + versions: + - name: v2alpha1 + schema: + openAPIV3Schema: + description: Cache is the Schema for the caches 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: CacheSpec defines the desired state of Cache + properties: + adminAuth: + description: Deprecated. This no longer has any effect. The operator's admin credentials are now used to perform cache operations + properties: + password: + description: Secret and key containing the admin password for authentication. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + secretName: + description: The secret that contains user credentials. + type: string + username: + description: Secret and key containing the admin username for authentication. + properties: + key: + description: The key of the secret to select from. Must be a valid secret key. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + type: object + clusterName: + description: Infinispan cluster name + type: string + name: + description: Name of the cache to be created. If empty ObjectMeta.Name will be used + type: string + template: + description: Cache template in XML format + type: string + templateName: + description: Name of the template to be used to create this cache + type: string + updates: + description: How updates to Cache CR template should be reconciled on the Infinispan server + properties: + strategy: + description: How updates to Cache CR template should be applied on the Infinispan server + enum: + - recreate + - retain + type: string + type: object + required: + - clusterName + type: object + status: + description: CacheStatus defines the observed state of Cache + properties: + conditions: + description: Conditions list for this cache + items: + description: CacheCondition define a condition of the cluster + properties: + message: + description: Human-readable message indicating details about last transition. + type: string + status: + description: Status is the status of the condition. + type: string + type: + description: Type is the type of the condition. + type: string + required: + - status + - type + type: object + type: array + serviceName: + description: Deprecated. This is no longer set. Service name that exposes the cache inside the cluster + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/operators/infinispan/2.3.5/manifests/infinispan.org_infinispans.yaml b/operators/infinispan/2.3.5/manifests/infinispan.org_infinispans.yaml new file mode 100644 index 00000000000..85fe219ccd2 --- /dev/null +++ b/operators/infinispan/2.3.5/manifests/infinispan.org_infinispans.yaml @@ -0,0 +1,1280 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + cert-manager.io/inject-ca-from: infinispan-operator-system/infinispan-operator-serving-cert + controller-gen.kubebuilder.io/version: v0.4.1 + creationTimestamp: null + labels: + app.kubernetes.io/name: infinispan-operator + name: infinispans.infinispan.org +spec: + group: infinispan.org + names: + kind: Infinispan + listKind: InfinispanList + plural: infinispans + singular: infinispan + scope: Namespaced + versions: + - name: v1 + schema: + openAPIV3Schema: + description: Infinispan is the Schema for the infinispans 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: InfinispanSpec defines the desired state of Infinispan + properties: + affinity: + description: Deprecated. Use scheduling.affinity instead + properties: + nodeAffinity: + description: Describes node affinity scheduling rules for the pod. + properties: + preferredDuringSchedulingIgnoredDuringExecution: + description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred. + items: + description: An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op). + properties: + preference: + description: A node selector term, associated with the corresponding weight. + properties: + matchExpressions: + description: A list of node selector requirements by node's labels. + items: + description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. + properties: + key: + description: The label key that the selector applies to. + type: string + operator: + description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. + type: string + values: + description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchFields: + description: A list of node selector requirements by node's fields. + items: + description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. + properties: + key: + description: The label key that the selector applies to. + type: string + operator: + description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. + type: string + values: + description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + type: object + weight: + description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100. + format: int32 + type: integer + required: + - preference + - weight + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node. + properties: + nodeSelectorTerms: + description: Required. A list of node selector terms. The terms are ORed. + items: + description: A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm. + properties: + matchExpressions: + description: A list of node selector requirements by node's labels. + items: + description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. + properties: + key: + description: The label key that the selector applies to. + type: string + operator: + description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. + type: string + values: + description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchFields: + description: A list of node selector requirements by node's fields. + items: + description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. + properties: + key: + description: The label key that the selector applies to. + type: string + operator: + description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. + type: string + values: + description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + type: object + type: array + required: + - nodeSelectorTerms + type: object + type: object + podAffinity: + description: Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)). + properties: + preferredDuringSchedulingIgnoredDuringExecution: + description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred. + items: + description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s) + properties: + podAffinityTerm: + description: Required. A pod affinity term, associated with the corresponding weight. + properties: + labelSelector: + description: A label query over a set of resources, in this case pods. + properties: + matchExpressions: + description: matchExpressions is a list of label selector requirements. The requirements are ANDed. + items: + description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. + properties: + key: + description: key is the label key that the selector applies to. + type: string + operator: + description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + namespaces: + description: namespaces specifies which namespaces the labelSelector applies to (matches against); null or empty list means "this pod's namespace" + items: + type: string + type: array + topologyKey: + description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed. + type: string + required: + - topologyKey + type: object + weight: + description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100. + format: int32 + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied. + items: + description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key matches that of any node on which a pod of the set of pods is running + properties: + labelSelector: + description: A label query over a set of resources, in this case pods. + properties: + matchExpressions: + description: matchExpressions is a list of label selector requirements. The requirements are ANDed. + items: + description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. + properties: + key: + description: key is the label key that the selector applies to. + type: string + operator: + description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + namespaces: + description: namespaces specifies which namespaces the labelSelector applies to (matches against); null or empty list means "this pod's namespace" + items: + type: string + type: array + topologyKey: + description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed. + type: string + required: + - topologyKey + type: object + type: array + type: object + podAntiAffinity: + description: Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)). + properties: + preferredDuringSchedulingIgnoredDuringExecution: + description: The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred. + items: + description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s) + properties: + podAffinityTerm: + description: Required. A pod affinity term, associated with the corresponding weight. + properties: + labelSelector: + description: A label query over a set of resources, in this case pods. + properties: + matchExpressions: + description: matchExpressions is a list of label selector requirements. The requirements are ANDed. + items: + description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. + properties: + key: + description: key is the label key that the selector applies to. + type: string + operator: + description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + namespaces: + description: namespaces specifies which namespaces the labelSelector applies to (matches against); null or empty list means "this pod's namespace" + items: + type: string + type: array + topologyKey: + description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed. + type: string + required: + - topologyKey + type: object + weight: + description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100. + format: int32 + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + description: If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied. + items: + description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key matches that of any node on which a pod of the set of pods is running + properties: + labelSelector: + description: A label query over a set of resources, in this case pods. + properties: + matchExpressions: + description: matchExpressions is a list of label selector requirements. The requirements are ANDed. + items: + description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. + properties: + key: + description: key is the label key that the selector applies to. + type: string + operator: + description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + namespaces: + description: namespaces specifies which namespaces the labelSelector applies to (matches against); null or empty list means "this pod's namespace" + items: + type: string + type: array + topologyKey: + description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed. + type: string + required: + - topologyKey + type: object + type: array + type: object + type: object + autoscale: + description: Autoscale describe autoscaling configuration for the cluster + properties: + disabled: + type: boolean + maxMemUsagePercent: + type: integer + maxReplicas: + format: int32 + type: integer + minMemUsagePercent: + type: integer + minReplicas: + format: int32 + type: integer + required: + - maxMemUsagePercent + - maxReplicas + - minMemUsagePercent + - minReplicas + type: object + cloudEvents: + description: InfinispanCloudEvents describes how Infinispan is connected with Cloud Event, see Kafka docs for more info + properties: + acks: + description: Acks configuration for the producer ack-value + type: string + bootstrapServers: + description: BootstrapServers is comma separated list of boostrap server:port addresses + type: string + cacheEntriesTopic: + description: CacheEntriesTopic is the name of the topic on which events will be published + type: string + required: + - bootstrapServers + type: object + configListener: + properties: + cpu: + type: string + enabled: + description: If true, a dedicated pod is used to ensure that all config resources created on the Infinispan server have a matching CR resource + type: boolean + logging: + description: ConfigListener logging configuration + properties: + level: + description: The logging level to be used by the ConfigListener pod + enum: + - debug + - info + - error + type: string + type: object + memory: + type: string + type: object + configMapName: + type: string + container: + description: InfinispanContainerSpec specify resource requirements per container + properties: + cliExtraJvmOpts: + type: string + cpu: + type: string + extraJvmOpts: + type: string + memory: + type: string + routerExtraJvmOpts: + type: string + type: object + dependencies: + description: External dependencies needed by the Infinispan cluster + properties: + artifacts: + items: + properties: + hash: + description: Checksum that you can use to verify downloaded files. + pattern: ^(sha1|sha224|sha256|sha384|sha512|md5):[a-z0-9]+ + type: string + maven: + description: Coordinates of a maven artifact in the `groupId:artifactId:version` format, for example `org.postgresql:postgresql:42.3.1`. + pattern: ^$|^([-_a-zA-Z0-9.]+):([-_a-zA-Z0-9.]+):([-_a-zA-Z0-9.]+)(?::([-_a-zA-Z0-9.]+))?$ + type: string + type: + description: Deprecated, no longer has any effect. Specifies the type of file you want to download. If not specified, the file type is automatically determined from the extension. + enum: + - file + - zip + - tgz + type: string + url: + description: URL of the file you want to download. + pattern: ^$|^(https?|ftp)://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|] + type: string + type: object + type: array + volumeClaimName: + description: The Persistent Volume Claim that holds custom libraries + type: string + type: object + expose: + description: ExposeSpec describe how Infinispan will be exposed externally + properties: + annotations: + additionalProperties: + type: string + type: object + host: + description: The network hostname for your Infinispan cluster + type: string + nodePort: + format: int32 + type: integer + port: + format: int32 + type: integer + type: + description: Type specifies different exposition methods for data grid + enum: + - NodePort + - LoadBalancer + - Route + type: string + required: + - type + type: object + image: + type: string + jmx: + properties: + enabled: + description: If true, a JMX endpoint is exposed on the admin service + type: boolean + type: object + logging: + properties: + categories: + additionalProperties: + description: LoggingLevelType describe the logging level for selected category + enum: + - trace + - debug + - info + - warn + - error + type: string + type: object + type: object + replicas: + description: The number of nodes in the Infinispan cluster. + format: int32 + type: integer + scheduling: + properties: + PriorityClassName: + type: string + affinity: + description: Affinity is a group of affinity scheduling rules. + properties: + nodeAffinity: + description: Describes node affinity scheduling rules for the pod. + properties: + preferredDuringSchedulingIgnoredDuringExecution: + description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred. + items: + description: An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op). + properties: + preference: + description: A node selector term, associated with the corresponding weight. + properties: + matchExpressions: + description: A list of node selector requirements by node's labels. + items: + description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. + properties: + key: + description: The label key that the selector applies to. + type: string + operator: + description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. + type: string + values: + description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchFields: + description: A list of node selector requirements by node's fields. + items: + description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. + properties: + key: + description: The label key that the selector applies to. + type: string + operator: + description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. + type: string + values: + description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + type: object + weight: + description: Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100. + format: int32 + type: integer + required: + - preference + - weight + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node. + properties: + nodeSelectorTerms: + description: Required. A list of node selector terms. The terms are ORed. + items: + description: A null or empty node selector term matches no objects. The requirements of them are ANDed. The TopologySelectorTerm type implements a subset of the NodeSelectorTerm. + properties: + matchExpressions: + description: A list of node selector requirements by node's labels. + items: + description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. + properties: + key: + description: The label key that the selector applies to. + type: string + operator: + description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. + type: string + values: + description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchFields: + description: A list of node selector requirements by node's fields. + items: + description: A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values. + properties: + key: + description: The label key that the selector applies to. + type: string + operator: + description: Represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. + type: string + values: + description: An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + type: object + type: array + required: + - nodeSelectorTerms + type: object + type: object + podAffinity: + description: Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)). + properties: + preferredDuringSchedulingIgnoredDuringExecution: + description: The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred. + items: + description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s) + properties: + podAffinityTerm: + description: Required. A pod affinity term, associated with the corresponding weight. + properties: + labelSelector: + description: A label query over a set of resources, in this case pods. + properties: + matchExpressions: + description: matchExpressions is a list of label selector requirements. The requirements are ANDed. + items: + description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. + properties: + key: + description: key is the label key that the selector applies to. + type: string + operator: + description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + namespaces: + description: namespaces specifies which namespaces the labelSelector applies to (matches against); null or empty list means "this pod's namespace" + items: + type: string + type: array + topologyKey: + description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed. + type: string + required: + - topologyKey + type: object + weight: + description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100. + format: int32 + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + description: If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied. + items: + description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key matches that of any node on which a pod of the set of pods is running + properties: + labelSelector: + description: A label query over a set of resources, in this case pods. + properties: + matchExpressions: + description: matchExpressions is a list of label selector requirements. The requirements are ANDed. + items: + description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. + properties: + key: + description: key is the label key that the selector applies to. + type: string + operator: + description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + namespaces: + description: namespaces specifies which namespaces the labelSelector applies to (matches against); null or empty list means "this pod's namespace" + items: + type: string + type: array + topologyKey: + description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed. + type: string + required: + - topologyKey + type: object + type: array + type: object + podAntiAffinity: + description: Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)). + properties: + preferredDuringSchedulingIgnoredDuringExecution: + description: The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred. + items: + description: The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s) + properties: + podAffinityTerm: + description: Required. A pod affinity term, associated with the corresponding weight. + properties: + labelSelector: + description: A label query over a set of resources, in this case pods. + properties: + matchExpressions: + description: matchExpressions is a list of label selector requirements. The requirements are ANDed. + items: + description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. + properties: + key: + description: key is the label key that the selector applies to. + type: string + operator: + description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + namespaces: + description: namespaces specifies which namespaces the labelSelector applies to (matches against); null or empty list means "this pod's namespace" + items: + type: string + type: array + topologyKey: + description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed. + type: string + required: + - topologyKey + type: object + weight: + description: weight associated with matching the corresponding podAffinityTerm, in the range 1-100. + format: int32 + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + description: If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied. + items: + description: Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key matches that of any node on which a pod of the set of pods is running + properties: + labelSelector: + description: A label query over a set of resources, in this case pods. + properties: + matchExpressions: + description: matchExpressions is a list of label selector requirements. The requirements are ANDed. + items: + description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. + properties: + key: + description: key is the label key that the selector applies to. + type: string + operator: + description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed. + type: object + type: object + namespaces: + description: namespaces specifies which namespaces the labelSelector applies to (matches against); null or empty list means "this pod's namespace" + items: + type: string + type: array + topologyKey: + description: This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed. + type: string + required: + - topologyKey + type: object + type: array + type: object + type: object + type: object + security: + description: InfinispanSecurity info for the user application connection + properties: + authorization: + properties: + enabled: + type: boolean + roles: + items: + properties: + name: + type: string + permissions: + items: + type: string + type: array + required: + - name + - permissions + type: object + type: array + type: object + credentialStoreSecretName: + description: A secret that contains CredentialStore alias and password combinations + type: string + endpointAuthentication: + description: Enable or disable user authentication + type: boolean + endpointEncryption: + description: EndpointEncryption configuration + properties: + certSecretName: + description: The secret that contains TLS certificates + type: string + certServiceName: + description: A service that provides TLS certificates + type: string + clientCert: + description: ClientCertType specifies a client certificate validation mechanism. + enum: + - None + - Authenticate + - Validate + type: string + clientCertSecretName: + type: string + type: + description: Disable or modify endpoint encryption. + enum: + - Service + - service + - Secret + - secret + - None + type: string + type: object + endpointSecretName: + description: The secret that contains user credentials. + type: string + type: object + service: + description: InfinispanServiceSpec specify configuration for specific service + properties: + container: + description: InfinispanServiceContainerSpec resource requirements specific for service + properties: + ephemeralStorage: + description: Enable/disable container ephemeral storage + type: boolean + storage: + description: The amount of storage for the persistent volume claim. + type: string + storageClassName: + description: The storage class object for persistent volume claims + type: string + type: object + replicationFactor: + description: Cache replication factor, or number of copies for each entry. + format: int32 + type: integer + sites: + properties: + local: + description: InfinispanSitesLocalSpec enables cross-site replication + properties: + discovery: + description: DiscoverySiteSpec configures the corss-site replication discovery + properties: + cpu: + description: CPU resource request for Gossip Router if enabled + type: string + heartbeats: + description: Configures the Gossip Router heartbeats to keep the connection open + properties: + enabled: + description: Enables the Gossip Router heartbeats + type: boolean + interval: + description: Sends a heartbeat to the GossipRouter every interval milliseconds + format: int64 + type: integer + timeout: + description: Max time (millsecoonds) with no received message or heartbeat after which the connection to a GossipRouter is closed + format: int64 + type: integer + type: object + launchGossipRouter: + description: Enables (default) or disables the Gossip Router pod and cross-site services + type: boolean + memory: + description: Memory resource request for Gossip Router if enabled + type: string + suspectEvents: + description: Enables the JGroups suspect events if the Gossip Router detects a connection closed + type: boolean + type: + description: Configures the discovery mode for cross-site replication + enum: + - gossiprouter + type: string + type: object + encryption: + description: EncryptionSiteSpec enables TLS for cross-site replication + properties: + protocol: + description: TLSProtocol specifies the TLS protocol + enum: + - TLSv1.2 + - TLSv1.3 + type: string + routerKeyStore: + description: CrossSiteKeyStore keystore configuration for cross-site replication with TLS + properties: + alias: + type: string + filename: + type: string + secretName: + type: string + required: + - secretName + type: object + transportKeyStore: + description: CrossSiteKeyStore keystore configuration for cross-site replication with TLS + properties: + alias: + type: string + filename: + type: string + secretName: + type: string + required: + - secretName + type: object + trustStore: + description: CrossSiteTrustStore truststore configuration for cross-site replication with TLS + properties: + filename: + type: string + secretName: + type: string + required: + - secretName + type: object + required: + - routerKeyStore + - transportKeyStore + type: object + expose: + description: CrossSiteExposeSpec describe how Infinispan Cross-Site service will be exposed externally + properties: + annotations: + additionalProperties: + type: string + type: object + nodePort: + format: int32 + type: integer + port: + format: int32 + type: integer + routeHostName: + description: RouteHostName optionally, specifies a custom hostname to be used by Openshift Route. + type: string + type: + description: Type specifies different exposition methods for data grid + enum: + - NodePort + - LoadBalancer + - ClusterIP + - Route + type: string + required: + - type + type: object + maxRelayNodes: + format: int32 + type: integer + name: + type: string + required: + - expose + - name + type: object + locations: + items: + properties: + clusterName: + type: string + host: + description: Deprecated and to be removed on subsequent release. Use .URL with infinispan+xsite schema instead. + type: string + name: + type: string + namespace: + type: string + port: + description: Deprecated and to be removed on subsequent release. Use .URL with infinispan+xsite schema instead. + format: int32 + type: integer + secretName: + description: The access secret that allows backups to a remote site + type: string + url: + pattern: (^(kubernetes|minikube|openshift):\/\/(([a-z0-9]|[a-z0-9][a-z0-9\-]*[a-z0-9])\.)*([a-z0-9]|[a-z0-9][a-z0-9\-]*[a-z0-9])*(:[0-9]+)+$)|(^(infinispan\+xsite):\/\/(([a-z0-9]|[a-z0-9][a-z0-9\-]*[a-z0-9])\.)*([a-z0-9]|[a-z0-9][a-z0-9\-]*[a-z0-9])*(:[0-9]+)*$) + type: string + required: + - name + type: object + type: array + required: + - local + type: object + type: + description: The service type + enum: + - DataGrid + - Cache + type: string + type: object + upgrades: + description: Strategy to use when doing upgrades + properties: + type: + type: string + required: + - type + type: object + version: + description: The semantic version of the Infinispan cluster. + pattern: ^$|^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$ + type: string + required: + - replicas + type: object + status: + description: InfinispanStatus defines the observed state of Infinispan + properties: + conditions: + items: + description: InfinispanCondition define a condition of the cluster + properties: + message: + description: Human-readable message indicating details about last transition. + type: string + status: + description: Status is the status of the condition. + type: string + type: + description: Type is the type of the condition. + type: string + required: + - status + - type + type: object + type: array + consoleUrl: + description: Infinispan Console URL + type: string + hotRodRollingUpgradeStatus: + properties: + SourceStatefulSetName: + type: string + SourceVersion: + type: string + TargetStatefulSetName: + type: string + stage: + type: string + type: object + operand: + description: The Operand status + properties: + image: + description: The Image being used by the Operand currently being reconciled + type: string + phase: + description: The most recently observed Phase of the Operand deployment + type: string + version: + description: The Operand version to be reconciled + type: string + type: object + podStatus: + description: The Pod's currently in the cluster + properties: + ready: + description: Deployments are ready to serve requests + items: + type: string + type: array + starting: + description: Deployments are starting, may or may not succeed + items: + type: string + type: array + stopped: + description: Deployments are not starting, unclear what next step will be + items: + type: string + type: array + type: object + replicas: + format: int32 + type: integer + replicasWantedAtRestart: + format: int32 + type: integer + security: + description: InfinispanSecurity info for the user application connection + properties: + authorization: + properties: + enabled: + type: boolean + roles: + items: + properties: + name: + type: string + permissions: + items: + type: string + type: array + required: + - name + - permissions + type: object + type: array + type: object + credentialStoreSecretName: + description: A secret that contains CredentialStore alias and password combinations + type: string + endpointAuthentication: + description: Enable or disable user authentication + type: boolean + endpointEncryption: + description: EndpointEncryption configuration + properties: + certSecretName: + description: The secret that contains TLS certificates + type: string + certServiceName: + description: A service that provides TLS certificates + type: string + clientCert: + description: ClientCertType specifies a client certificate validation mechanism. + enum: + - None + - Authenticate + - Validate + type: string + clientCertSecretName: + type: string + type: + description: Disable or modify endpoint encryption. + enum: + - Service + - service + - Secret + - secret + - None + type: string + type: object + endpointSecretName: + description: The secret that contains user credentials. + type: string + type: object + statefulSetName: + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/operators/infinispan/2.3.5/manifests/infinispan.org_restores.yaml b/operators/infinispan/2.3.5/manifests/infinispan.org_restores.yaml new file mode 100644 index 00000000000..f4f3efc3ee2 --- /dev/null +++ b/operators/infinispan/2.3.5/manifests/infinispan.org_restores.yaml @@ -0,0 +1,115 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + cert-manager.io/inject-ca-from: infinispan-operator-system/infinispan-operator-serving-cert + controller-gen.kubebuilder.io/version: v0.4.1 + creationTimestamp: null + labels: + app.kubernetes.io/name: infinispan-operator + name: restores.infinispan.org +spec: + group: infinispan.org + names: + kind: Restore + listKind: RestoreList + plural: restores + singular: restore + scope: Namespaced + versions: + - name: v2alpha1 + schema: + openAPIV3Schema: + description: Restore is the Schema for the restores 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: BackupSpec defines the desired state of Backup + properties: + backup: + description: The Infinispan Backup to restore + type: string + cluster: + description: Infinispan cluster name + type: string + container: + description: InfinispanContainerSpec specify resource requirements per container + properties: + cliExtraJvmOpts: + type: string + cpu: + type: string + extraJvmOpts: + type: string + memory: + type: string + routerExtraJvmOpts: + type: string + type: object + resources: + properties: + cacheConfigs: + description: Deprecated and to be removed on subsequent release. Use .Templates instead. + items: + type: string + type: array + caches: + items: + type: string + type: array + counters: + items: + type: string + type: array + protoSchemas: + items: + type: string + type: array + scripts: + description: Deprecated and to be removed on subsequent release. Use .Tasks instead. + items: + type: string + type: array + tasks: + items: + type: string + type: array + templates: + items: + type: string + type: array + type: object + required: + - backup + - cluster + type: object + status: + description: RestoreStatus defines the observed state of Restore + properties: + phase: + description: Current phase of the restore operation + type: string + reason: + description: Reason indicates the reason for any restore related failures. + type: string + required: + - phase + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/operators/infinispan/2.3.5/metadata/annotations.yaml b/operators/infinispan/2.3.5/metadata/annotations.yaml new file mode 100644 index 00000000000..843a846519e --- /dev/null +++ b/operators/infinispan/2.3.5/metadata/annotations.yaml @@ -0,0 +1,12 @@ +annotations: + operators.operatorframework.io.bundle.channel.default.v1: 2.3.x + operators.operatorframework.io.bundle.channels.v1: 2.3.x + 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: infinispan + operators.operatorframework.io.metrics.builder: operator-sdk-v1.3.2 + operators.operatorframework.io.metrics.mediatype.v1: metrics+v1 + operators.operatorframework.io.metrics.project_layout: go.kubebuilder.io/v3 + operators.operatorframework.io.test.config.v1: tests/scorecard/ + operators.operatorframework.io.test.mediatype.v1: scorecard+v1 diff --git a/operators/infinispan/2.3.5/tests/scorecard/config.yaml b/operators/infinispan/2.3.5/tests/scorecard/config.yaml new file mode 100644 index 00000000000..f705d9970ed --- /dev/null +++ b/operators/infinispan/2.3.5/tests/scorecard/config.yaml @@ -0,0 +1,49 @@ +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.3.2 + labels: + suite: basic + test: basic-check-spec-test + - entrypoint: + - scorecard-test + - olm-bundle-validation + image: quay.io/operator-framework/scorecard-test:v1.3.2 + labels: + suite: olm + test: olm-bundle-validation-test + - entrypoint: + - scorecard-test + - olm-crds-have-validation + image: quay.io/operator-framework/scorecard-test:v1.3.2 + labels: + suite: olm + test: olm-crds-have-validation-test + - entrypoint: + - scorecard-test + - olm-crds-have-resources + image: quay.io/operator-framework/scorecard-test:v1.3.2 + labels: + suite: olm + test: olm-crds-have-resources-test + - entrypoint: + - scorecard-test + - olm-spec-descriptors + image: quay.io/operator-framework/scorecard-test:v1.3.2 + labels: + suite: olm + test: olm-spec-descriptors-test + - entrypoint: + - scorecard-test + - olm-status-descriptors + image: quay.io/operator-framework/scorecard-test:v1.3.2 + labels: + suite: olm + test: olm-status-descriptors-test