From 2e96ebe3adb953c814285fdd9b8b09f469ad2091 Mon Sep 17 00:00:00 2001 From: Ryan Emerson Date: Thu, 26 Sep 2024 11:04:16 +0100 Subject: [PATCH] operator infinispan (2.4.4) --- ...-operator-manager-config_v1_configmap.yaml | 19 + ...nispan-operator.clusterserviceversion.yaml | 916 ++++++ .../manifests/infinispan.org_backups.yaml | 136 + .../manifests/infinispan.org_batches.yaml | 84 + .../manifests/infinispan.org_caches.yaml | 163 ++ .../manifests/infinispan.org_infinispans.yaml | 2480 +++++++++++++++++ .../manifests/infinispan.org_restores.yaml | 127 + .../2.4.4/metadata/annotations.yaml | 15 + .../2.4.4/tests/scorecard/config.yaml | 70 + 9 files changed, 4010 insertions(+) create mode 100644 operators/infinispan/2.4.4/manifests/infinispan-operator-manager-config_v1_configmap.yaml create mode 100644 operators/infinispan/2.4.4/manifests/infinispan-operator.clusterserviceversion.yaml create mode 100644 operators/infinispan/2.4.4/manifests/infinispan.org_backups.yaml create mode 100644 operators/infinispan/2.4.4/manifests/infinispan.org_batches.yaml create mode 100644 operators/infinispan/2.4.4/manifests/infinispan.org_caches.yaml create mode 100644 operators/infinispan/2.4.4/manifests/infinispan.org_infinispans.yaml create mode 100644 operators/infinispan/2.4.4/manifests/infinispan.org_restores.yaml create mode 100644 operators/infinispan/2.4.4/metadata/annotations.yaml create mode 100644 operators/infinispan/2.4.4/tests/scorecard/config.yaml diff --git a/operators/infinispan/2.4.4/manifests/infinispan-operator-manager-config_v1_configmap.yaml b/operators/infinispan/2.4.4/manifests/infinispan-operator-manager-config_v1_configmap.yaml new file mode 100644 index 00000000000..378c57c336f --- /dev/null +++ b/operators/infinispan/2.4.4/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.4.4/manifests/infinispan-operator.clusterserviceversion.yaml b/operators/infinispan/2.4.4/manifests/infinispan-operator.clusterserviceversion.yaml new file mode 100644 index 00000000000..9fb3c899473 --- /dev/null +++ b/operators/infinispan/2.4.4/manifests/infinispan-operator.clusterserviceversion.yaml @@ -0,0 +1,916 @@ +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.4.4.Final + description: Create and manage Infinispan clusters. + operators.operatorframework.io/builder: operator-sdk-v1.24.1 + 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.4.4 + 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 Operator status + displayName: Operator Status + path: operator + - 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: + - label: + app.kubernetes.io/name: infinispan-operator + control-plane: controller-manager + name: infinispan-operator-controller-manager + spec: + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/name: infinispan-operator + control-plane: controller-manager + strategy: {} + template: + metadata: + annotations: + kubectl.kubernetes.io/default-container: manager + 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: "[\n {\n \"upstream-version\": \"14.0.1\",\n \"image\": + \"quay.io/infinispan/server:14.0.1.Final\"\n },\n {\n \"upstream-version\": + \"14.0.6\",\n \"image\": \"quay.io/infinispan/server:14.0.6.Final\"\n + \ },\n {\n \"upstream-version\": \"14.0.9\",\n \"image\": + \"quay.io/infinispan/server:14.0.9.Final\"\n },\n {\n \"upstream-version\": + \"14.0.13\",\n \"image\": \"quay.io/infinispan/server:14.0.13.Final\"\n + \ },\n {\n \"upstream-version\": \"14.0.17\",\n \"image\": + \"quay.io/infinispan/server:14.0.17.Final\"\n },\n {\n \"upstream-version\": + \"14.0.19\",\n \"image\": \"quay.io/infinispan/server:14.0.19.Final\"\n + \ },\n {\n \"upstream-version\": \"14.0.20\",\n \"image\": + \"quay.io/infinispan/server:14.0.20.Final\"\n },\n {\n \"upstream-version\": + \"14.0.21\",\n \"image\": \"quay.io/infinispan/server:14.0.21.Final\"\n + \ },\n {\n \"upstream-version\": \"14.0.24\",\n \"image\": + \"quay.io/infinispan/server:14.0.24.Final\"\n },\n {\n \"upstream-version\": + \"14.0.27\",\n \"image\": \"quay.io/infinispan/server:14.0.27.Final\"\n + \ }, \n {\n \"upstream-version\": \"14.0.32\",\n \"image\": + \"quay.io/infinispan/server:14.0.32.Final\"\n },\n {\n \"upstream-version\": + \"15.0.0\",\n \"image\": \"quay.io/infinispan/server:15.0.0.Final\"\n + \ },\n {\n \"upstream-version\": \"15.0.3\",\n \"image\": + \"quay.io/infinispan/server:15.0.3.Final\"\n },\n {\n \"upstream-version\": + \"15.0.4\",\n \"image\": \"quay.io/infinispan/server:15.0.4.Final\"\n + \ },\n {\n \"upstream-version\": \"15.0.5\",\n \"image\": + \"quay.io/infinispan/server:15.0.5.Final\"\n },\n {\n \"upstream-version\": + \"15.0.8\",\n \"image\": \"quay.io/infinispan/server:15.0.8.Final\"\n + \ }\n]" + - name: POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + image: quay.io/infinispan/operator:2.4.4.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 + minKubeVersion: 1.24.0 + provider: + name: Infinispan + replaces: infinispan-operator.v2.4.3 + version: 2.4.4 + webhookdefinitions: + - 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: 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: 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 + - 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: 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: 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 diff --git a/operators/infinispan/2.4.4/manifests/infinispan.org_backups.yaml b/operators/infinispan/2.4.4/manifests/infinispan.org_backups.yaml new file mode 100644 index 00000000000..756a5650e2f --- /dev/null +++ b/operators/infinispan/2.4.4/manifests/infinispan.org_backups.yaml @@ -0,0 +1,136 @@ +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.14.0 + 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: null + storedVersions: null diff --git a/operators/infinispan/2.4.4/manifests/infinispan.org_batches.yaml b/operators/infinispan/2.4.4/manifests/infinispan.org_batches.yaml new file mode 100644 index 00000000000..3407a485d42 --- /dev/null +++ b/operators/infinispan/2.4.4/manifests/infinispan.org_batches.yaml @@ -0,0 +1,84 @@ +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.14.0 + 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: null + storedVersions: null diff --git a/operators/infinispan/2.4.4/manifests/infinispan.org_caches.yaml b/operators/infinispan/2.4.4/manifests/infinispan.org_caches.yaml new file mode 100644 index 00000000000..cb3b8694c75 --- /dev/null +++ b/operators/infinispan/2.4.4/manifests/infinispan.org_caches.yaml @@ -0,0 +1,163 @@ +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.14.0 + 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 + x-kubernetes-map-type: atomic + 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 + x-kubernetes-map-type: atomic + 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: null + storedVersions: null diff --git a/operators/infinispan/2.4.4/manifests/infinispan.org_infinispans.yaml b/operators/infinispan/2.4.4/manifests/infinispan.org_infinispans.yaml new file mode 100644 index 00000000000..4e168b2b95b --- /dev/null +++ b/operators/infinispan/2.4.4/manifests/infinispan.org_infinispans.yaml @@ -0,0 +1,2480 @@ +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.14.0 + 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 + x-kubernetes-map-type: atomic + 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 + x-kubernetes-map-type: atomic + type: array + required: + - nodeSelectorTerms + type: object + x-kubernetes-map-type: atomic + 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 + x-kubernetes-map-type: atomic + namespaceSelector: + description: |- + A label query over the set of namespaces that the term applies to. + The term is applied to the union of the namespaces selected by this field + and the ones listed in the namespaces field. + null selector and null or empty namespaces list means "this pod's namespace". + An empty selector ({}) matches all namespaces. + 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 + x-kubernetes-map-type: atomic + namespaces: + description: |- + namespaces specifies a static list of namespace names that the term applies to. + The term is applied to the union of the namespaces listed in this field + and the ones selected by namespaceSelector. + null or empty namespaces list and null namespaceSelector 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 + x-kubernetes-map-type: atomic + namespaceSelector: + description: |- + A label query over the set of namespaces that the term applies to. + The term is applied to the union of the namespaces selected by this field + and the ones listed in the namespaces field. + null selector and null or empty namespaces list means "this pod's namespace". + An empty selector ({}) matches all namespaces. + 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 + x-kubernetes-map-type: atomic + namespaces: + description: |- + namespaces specifies a static list of namespace names that the term applies to. + The term is applied to the union of the namespaces listed in this field + and the ones selected by namespaceSelector. + null or empty namespaces list and null namespaceSelector 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 + x-kubernetes-map-type: atomic + namespaceSelector: + description: |- + A label query over the set of namespaces that the term applies to. + The term is applied to the union of the namespaces selected by this field + and the ones listed in the namespaces field. + null selector and null or empty namespaces list means "this pod's namespace". + An empty selector ({}) matches all namespaces. + 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 + x-kubernetes-map-type: atomic + namespaces: + description: |- + namespaces specifies a static list of namespace names that the term applies to. + The term is applied to the union of the namespaces listed in this field + and the ones selected by namespaceSelector. + null or empty namespaces list and null namespaceSelector 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 + x-kubernetes-map-type: atomic + namespaceSelector: + description: |- + A label query over the set of namespaces that the term applies to. + The term is applied to the union of the namespaces selected by this field + and the ones listed in the namespaces field. + null selector and null or empty namespaces list means "this pod's namespace". + An empty selector ({}) matches all namespaces. + 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 + x-kubernetes-map-type: atomic + namespaces: + description: |- + namespaces specifies a static list of namespace names that the term applies to. + The term is applied to the union of the namespaces listed in this field + and the ones selected by namespaceSelector. + null or empty namespaces list and null namespaceSelector 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: Deprecated. Has no effect starting with Infinispan 15.0.0 + servers + 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 + initContainer: + description: InitDependenciesContainerSpec describes the configuration + options for the dependency download init container + properties: + cpu: + description: CPU in limit:request format + type: string + memory: + description: Memory in limit:request format + type: string + type: object + 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 + x-kubernetes-map-type: atomic + 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 + x-kubernetes-map-type: atomic + type: array + required: + - nodeSelectorTerms + type: object + x-kubernetes-map-type: atomic + 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 + x-kubernetes-map-type: atomic + namespaceSelector: + description: |- + A label query over the set of namespaces that the term applies to. + The term is applied to the union of the namespaces selected by this field + and the ones listed in the namespaces field. + null selector and null or empty namespaces list means "this pod's namespace". + An empty selector ({}) matches all namespaces. + 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 + x-kubernetes-map-type: atomic + namespaces: + description: |- + namespaces specifies a static list of namespace names that the term applies to. + The term is applied to the union of the namespaces listed in this field + and the ones selected by namespaceSelector. + null or empty namespaces list and null namespaceSelector 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 + x-kubernetes-map-type: atomic + namespaceSelector: + description: |- + A label query over the set of namespaces that the term applies to. + The term is applied to the union of the namespaces selected by this field + and the ones listed in the namespaces field. + null selector and null or empty namespaces list means "this pod's namespace". + An empty selector ({}) matches all namespaces. + 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 + x-kubernetes-map-type: atomic + namespaces: + description: |- + namespaces specifies a static list of namespace names that the term applies to. + The term is applied to the union of the namespaces listed in this field + and the ones selected by namespaceSelector. + null or empty namespaces list and null namespaceSelector 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 + x-kubernetes-map-type: atomic + namespaceSelector: + description: |- + A label query over the set of namespaces that the term applies to. + The term is applied to the union of the namespaces selected by this field + and the ones listed in the namespaces field. + null selector and null or empty namespaces list means "this pod's namespace". + An empty selector ({}) matches all namespaces. + 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 + x-kubernetes-map-type: atomic + namespaces: + description: |- + namespaces specifies a static list of namespace names that the term applies to. + The term is applied to the union of the namespaces listed in this field + and the ones selected by namespaceSelector. + null or empty namespaces list and null namespaceSelector 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 + x-kubernetes-map-type: atomic + namespaceSelector: + description: |- + A label query over the set of namespaces that the term applies to. + The term is applied to the union of the namespaces selected by this field + and the ones listed in the namespaces field. + null selector and null or empty namespaces list means "this pod's namespace". + An empty selector ({}) matches all namespaces. + 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 + x-kubernetes-map-type: atomic + namespaces: + description: |- + namespaces specifies a static list of namespace names that the term applies to. + The term is applied to the union of the namespaces listed in this field + and the ones selected by namespaceSelector. + null or empty namespaces list and null namespaceSelector 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 + tolerations: + items: + description: |- + The pod this Toleration is attached to tolerates any taint that matches + the triple using the matching operator . + properties: + effect: + description: |- + Effect indicates the taint effect to match. Empty means match all taint effects. + When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute. + type: string + key: + description: |- + Key is the taint key that the toleration applies to. Empty means match all taint keys. + If the key is empty, operator must be Exists; this combination means to match all values and all keys. + type: string + operator: + description: |- + Operator represents a key's relationship to the value. + Valid operators are Exists and Equal. Defaults to Equal. + Exists is equivalent to wildcard for value, so that a pod can + tolerate all taints of a particular category. + type: string + tolerationSeconds: + description: |- + TolerationSeconds represents the period of time the toleration (which must be + of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, + it is not set, which means tolerate the taint forever (do not evict). Zero and + negative values will be treated as 0 (evict immediately) by the system. + format: int64 + type: integer + value: + description: |- + Value is the taint value the toleration matches to. + If the operator is Exists, the value should be empty, otherwise just a regular string. + type: string + type: object + type: array + topologySpreadConstraints: + items: + description: TopologySpreadConstraint specifies how to spread + matching pods among the given topology. + properties: + labelSelector: + description: |- + LabelSelector is used to find matching pods. + Pods that match this label selector are counted to determine the number of pods + in their corresponding topology domain. + 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 + x-kubernetes-map-type: atomic + maxSkew: + description: |- + MaxSkew describes the degree to which pods may be unevenly distributed. + When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference + between the number of matching pods in the target topology and the global minimum. + The global minimum is the minimum number of matching pods in an eligible domain + or zero if the number of eligible domains is less than MinDomains. + For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same + labelSelector spread as 2/2/1: + In this case, the global minimum is 1. + | zone1 | zone2 | zone3 | + | P P | P P | P | + - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2; + scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2) + violate MaxSkew(1). + - if MaxSkew is 2, incoming pod can be scheduled onto any zone. + When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence + to topologies that satisfy it. + It's a required field. Default value is 1 and 0 is not allowed. + format: int32 + type: integer + minDomains: + description: |- + MinDomains indicates a minimum number of eligible domains. + When the number of eligible domains with matching topology keys is less than minDomains, + Pod Topology Spread treats "global minimum" as 0, and then the calculation of Skew is performed. + And when the number of eligible domains with matching topology keys equals or greater than minDomains, + this value has no effect on scheduling. + As a result, when the number of eligible domains is less than minDomains, + scheduler won't schedule more than maxSkew Pods to those domains. + If value is nil, the constraint behaves as if MinDomains is equal to 1. + Valid values are integers greater than 0. + When value is not nil, WhenUnsatisfiable must be DoNotSchedule. + + + For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same + labelSelector spread as 2/2/2: + | zone1 | zone2 | zone3 | + | P P | P P | P P | + The number of domains is less than 5(MinDomains), so "global minimum" is treated as 0. + In this situation, new pod with the same labelSelector cannot be scheduled, + because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, + it will violate MaxSkew. + + + This is an alpha field and requires enabling MinDomainsInPodTopologySpread feature gate. + format: int32 + type: integer + topologyKey: + description: |- + TopologyKey is the key of node labels. Nodes that have a label with this key + and identical values are considered to be in the same topology. + We consider each as a "bucket", and try to put balanced number + of pods into each bucket. + We define a domain as a particular instance of a topology. + Also, we define an eligible domain as a domain whose nodes match the node selector. + e.g. If TopologyKey is "kubernetes.io/hostname", each Node is a domain of that topology. + And, if TopologyKey is "topology.kubernetes.io/zone", each zone is a domain of that topology. + It's a required field. + type: string + whenUnsatisfiable: + description: |- + WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy + the spread constraint. + - DoNotSchedule (default) tells the scheduler not to schedule it. + - ScheduleAnyway tells the scheduler to schedule the pod in any location, + but giving higher precedence to topologies that would help reduce the + skew. + A constraint is considered "Unsatisfiable" for an incoming pod + if and only if every possible node assignment for that pod would violate + "MaxSkew" on some topology. + For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same + labelSelector spread as 3/1/1: + | zone1 | zone2 | zone3 | + | P P P | P | P | + If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled + to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies + MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler + won't make it *more* imbalanced. + It's a required field. + type: string + required: + - maxSkew + - topologyKey + - whenUnsatisfiable + type: object + type: array + 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 + livenessProbe: + description: |- + Periodic probe of container liveness. + Container will be restarted if the probe fails. + properties: + failureThreshold: + description: Minimum consecutive failures for the probe + to be considered failed after having succeeded. + format: int32 + type: integer + initialDelaySeconds: + description: Number of seconds after the container has + started before liveness probes are initiated. + format: int32 + type: integer + periodSeconds: + description: How often (in seconds) to perform the probe. + format: int32 + type: integer + successThreshold: + description: Minimum consecutive successes for the probe + to be considered successful after having failed. + format: int32 + type: integer + timeoutSeconds: + description: Number of seconds after which the probe times + out. + format: int32 + type: integer + type: object + readinessProbe: + description: |- + Periodic probe of container service readiness. + Container will be removed from service endpoints if the probe fails. + properties: + failureThreshold: + description: Minimum consecutive failures for the probe + to be considered failed after having succeeded. + format: int32 + type: integer + initialDelaySeconds: + description: Number of seconds after the container has + started before liveness probes are initiated. + format: int32 + type: integer + periodSeconds: + description: How often (in seconds) to perform the probe. + format: int32 + type: integer + successThreshold: + description: Minimum consecutive successes for the probe + to be considered successful after having failed. + format: int32 + type: integer + timeoutSeconds: + description: Number of seconds after which the probe times + out. + format: int32 + type: integer + type: object + startupProbe: + description: |- + StartupProbe indicates that the Pod has successfully initialized. + If specified, no other probes are executed until this completes successfully. + If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. + This can be used to provide different probe parameters at the beginning of a Pod's lifecycle, + when it might take a long time to load data or warm a cache, than during steady-state operation. + properties: + failureThreshold: + description: Minimum consecutive failures for the probe + to be considered failed after having succeeded. + format: int32 + type: integer + initialDelaySeconds: + description: Number of seconds after the container has + started before liveness probes are initiated. + format: int32 + type: integer + periodSeconds: + description: How often (in seconds) to perform the probe. + format: int32 + type: integer + successThreshold: + description: Minimum consecutive successes for the probe + to be considered successful after having failed. + format: int32 + type: integer + timeoutSeconds: + description: Number of seconds after which the probe times + out. + format: int32 + type: integer + type: object + 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: + customImage: + description: Whether the Operand installed/pending is using a + custom image + type: boolean + deprecated: + description: Whether the Operand has been deprecated and is subject + for removal in a subsequent release + type: boolean + 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 + operator: + description: The Operator status + properties: + pod: + description: The name of the pod reconciling this resource + 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: null + storedVersions: null diff --git a/operators/infinispan/2.4.4/manifests/infinispan.org_restores.yaml b/operators/infinispan/2.4.4/manifests/infinispan.org_restores.yaml new file mode 100644 index 00000000000..54eddb5d78a --- /dev/null +++ b/operators/infinispan/2.4.4/manifests/infinispan.org_restores.yaml @@ -0,0 +1,127 @@ +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.14.0 + 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: null + storedVersions: null diff --git a/operators/infinispan/2.4.4/metadata/annotations.yaml b/operators/infinispan/2.4.4/metadata/annotations.yaml new file mode 100644 index 00000000000..7c98c050660 --- /dev/null +++ b/operators/infinispan/2.4.4/metadata/annotations.yaml @@ -0,0 +1,15 @@ +annotations: + # Core bundle annotations. + operators.operatorframework.io.bundle.mediatype.v1: registry+v1 + operators.operatorframework.io.bundle.manifests.v1: manifests/ + operators.operatorframework.io.bundle.metadata.v1: metadata/ + operators.operatorframework.io.bundle.package.v1: infinispan + operators.operatorframework.io.bundle.channels.v1: stable + operators.operatorframework.io.bundle.channel.default.v1: stable + operators.operatorframework.io.metrics.builder: operator-sdk-v1.24.1 + operators.operatorframework.io.metrics.mediatype.v1: metrics+v1 + operators.operatorframework.io.metrics.project_layout: go.kubebuilder.io/v3 + # Annotations for testing. + operators.operatorframework.io.test.mediatype.v1: scorecard+v1 + operators.operatorframework.io.test.config.v1: tests/scorecard/ + com.redhat.openshift.versions: v4.11 diff --git a/operators/infinispan/2.4.4/tests/scorecard/config.yaml b/operators/infinispan/2.4.4/tests/scorecard/config.yaml new file mode 100644 index 00000000000..7bc6d0b5afe --- /dev/null +++ b/operators/infinispan/2.4.4/tests/scorecard/config.yaml @@ -0,0 +1,70 @@ +apiVersion: scorecard.operatorframework.io/v1alpha3 +kind: Configuration +metadata: + name: config +stages: +- parallel: true + tests: + - entrypoint: + - scorecard-test + - basic-check-spec + image: quay.io/operator-framework/scorecard-test:v1.24.1 + labels: + suite: basic + test: basic-check-spec-test + storage: + spec: + mountPath: {} + - entrypoint: + - scorecard-test + - olm-bundle-validation + image: quay.io/operator-framework/scorecard-test:v1.24.1 + labels: + suite: olm + test: olm-bundle-validation-test + storage: + spec: + mountPath: {} + - entrypoint: + - scorecard-test + - olm-crds-have-validation + image: quay.io/operator-framework/scorecard-test:v1.24.1 + labels: + suite: olm + test: olm-crds-have-validation-test + storage: + spec: + mountPath: {} + - entrypoint: + - scorecard-test + - olm-crds-have-resources + image: quay.io/operator-framework/scorecard-test:v1.24.1 + labels: + suite: olm + test: olm-crds-have-resources-test + storage: + spec: + mountPath: {} + - entrypoint: + - scorecard-test + - olm-spec-descriptors + image: quay.io/operator-framework/scorecard-test:v1.24.1 + labels: + suite: olm + test: olm-spec-descriptors-test + storage: + spec: + mountPath: {} + - entrypoint: + - scorecard-test + - olm-status-descriptors + image: quay.io/operator-framework/scorecard-test:v1.24.1 + labels: + suite: olm + test: olm-status-descriptors-test + storage: + spec: + mountPath: {} +storage: + spec: + mountPath: {}