diff --git a/community-operators/infinispan/1.0.1/infinispan-operator.v1.0.1.clusterserviceversion.yaml b/community-operators/infinispan/1.0.1/infinispan-operator.v1.0.1.clusterserviceversion.yaml index da6a8785ed..1611f93a33 100644 --- a/community-operators/infinispan/1.0.1/infinispan-operator.v1.0.1.clusterserviceversion.yaml +++ b/community-operators/infinispan/1.0.1/infinispan-operator.v1.0.1.clusterserviceversion.yaml @@ -1,5 +1,3 @@ -#! validate-crd: deploy/chart/templates/0000_30_02-clusterserviceversion.crd.yaml -#! parse-kind: ClusterServiceVersion apiVersion: operators.coreos.com/v1alpha1 kind: ClusterServiceVersion metadata: diff --git a/community-operators/infinispan/1.1.2/infinispan-operator.v1.1.2.Final.clusterserviceversion.yaml b/community-operators/infinispan/1.1.2/infinispan-operator.v1.1.2.clusterserviceversion.yaml similarity index 100% rename from community-operators/infinispan/1.1.2/infinispan-operator.v1.1.2.Final.clusterserviceversion.yaml rename to community-operators/infinispan/1.1.2/infinispan-operator.v1.1.2.clusterserviceversion.yaml diff --git a/community-operators/infinispan/2.0.1/infinispan-operator.v2.0.1.clusterserviceversion.yaml b/community-operators/infinispan/2.0.1/infinispan-operator.v2.0.1.clusterserviceversion.yaml new file mode 100644 index 0000000000..29fa64a7be --- /dev/null +++ b/community-operators/infinispan/2.0.1/infinispan-operator.v2.0.1.clusterserviceversion.yaml @@ -0,0 +1,308 @@ +apiVersion: operators.coreos.com/v1alpha1 +kind: ClusterServiceVersion +metadata: + name: infinispan-operator.v2.0.1 + namespace: placeholder + annotations: + tectonic-visibility: ocs + capabilities: Full Lifecycle + categories: "Database" + repository: https://github.com/infinispan/infinispan-operator + alm-examples: | + [ + { + "apiVersion": "infinispan.org/v1", + "kind": "Infinispan", + "metadata": { + "name": "example-infinispan" + }, + "spec": { + "replicas": 1 + } + }, + { + "apiVersion": "infinispan.org/v2alpha1", + "kind": "Cache", + "metadata": { + "name": "example-cache" + }, + "spec": { + "adminAuth": { + "secretName": "basic-auth" + }, + "clusterName": "example-infinispan", + "name": "mycache" + } + } + ] + description: Create and manage Infinispan clusters. + containerImage: quay.io/infinispan/operator:2.0.0.Final-1 + createdAt: 2020-06-30T16:52:04Z + support: Infinispan + certified: "false" +spec: + displayName: Infinispan + description: | + Infinispan is a distributed, in-memory data store that increases application performance and delivers open-source capabilites to handle demanding use cases. + + ### Core Capabilities + * **Schemaless data structure:** Store different objects as key-value pairs. + * **Grid-based data storage:** Distribute and replicate data across clusters. + * **Elastic scaling:** Dynamically adjust the number of nodes to meet demand without service disruption. + * **Data interoperability:** Store, retrieve, and query data in the grid from different endpoints. + * **High availability:** Always have access to your data. + + ### Infinispan Operator Features + * Operational intelligence that simplifies Infinispan cluster deployment. + * REST and Hot Rod endpoints available at port `11222`. + * Cache service for a high-performance, ephemeral data store. + * Data Grid service for a fully configurable Infinispan cluster. + * 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. + keywords: ['infinispan', 'key value', 'database', 'datagrid', 'open source'] + version: 2.0.1 + minKubeVersion: 1.11.0 + maturity: alpha + maintainers: + - name: Infinispan Community + email: infinispan-dev@lists.jboss.org + provider: + name: Infinispan + replaces: infinispan-operator.v2.0.0 + relatedImages: + - name: infinispan-server + image: infinispan/server:11.0.1.Final + labels: + operated-by: infinispan-operator + selector: + matchLabels: + operated-by: infinispan-operator + links: + - name: Blog + url: https://blog.infinispan.org/ + - name: Documentation + url: https://infinispan.org/ + - name: Quickstart + url: https://github.com/infinispan/infinispan-simple-tutorials/tree/master/operator + - name: Operator Source Code + url: https://github.com/infinispan/infinispan-operator + + icon: + - base64data: iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAADSZJREFUeNrcW3uMVFcZP+fcO7PLc4cilEd11ypV2rQzGKvRqnupsSomMo0m1bawI7WNUSlDKCyU0p21DxFTXKsYExqYRdNENGYa/MPWSIcaImkTMmstirXtEB4FQZxhKbA7997j953HfSy7y8LODOze2bPn3juPe3+/8/u+7zy+S3P7D3My+FaCUoBSVHUh+bH37yFjYHv69/viJmOWaRotpmEkTIPFVE2gVgX3Wd7UXzIZJS7nULzfiUGxgj8MZIkKSh5rIOTQtQC4fcfLTYzRJACDwiyAEeMj/C7VCpg2MUIohRP4gtp1uSDEdmWp2C5xLv7VnCKi+2oAX771xTYAnJQl2LIGiZhQcF/URqg2GCMMQKICPAKumxTxwFNBjSIDd6m8IBLSb3NywXbIhYobvJcifCazeEF9iHhwy642kxkZ02QtIdACIIPalOcCoPF4WAKmT4p64KliIEyGrw7cHFDFuX5HFCRGvSeI+Er8hpoQsWzzzjZiRDKGYUrgJiMXE6DqERLg+YChwGuz8EmQ/1BesYlYIoKEs302mA1pgc9n//i3oylKafqLt87pqQbw1MbtccrMLkK455M4vrjYGdXG9A6CqICRy+KKXw76BI8MSlXxz01uMMisqY1k6gQT2KUEHJIF5wt/euPYitGCb3vilx2EuwXhkLmCzq8MteBrwHfNIAHniBP2kKqlG0BqjVgihmcCnnkEzGJqo0kmARlnztuCSDjftfvAuxbILWXNn1W+nJtd+vjmJsLMnB+JELhL6AjAC3UosCKygTRduBmX6poTZlCPgKyK9Tr0JdR+AsNJP3h/LL1wAlt3UtQgkwFoFIjxyAg4yghlwp+cr0izAHqS8F7+lYPHrc99ZGQkLHn0h3G46yzoU94L3AgHEJSNrIWRo0FUUlB9m9A5OtwPgoNsVoRAKxIAQluYMovGCBMtHoVaO0jiqULWqIIzFyr6TAmIsD5z0/XD+oUla34QJ4aZp0Y0RkwMzaA6Mwrsg5M2G8Q+MyLKsfmef0AYLKKDg/fyBtQrFi0Ysr9CL0eWf+g5Ege4aSAhpf0AmkYTOELsSJGAEqj6aQda7swFW7QOnAESqPWpD88clIT7Vz0WB9nnAWSMMADPJPihCAh6eAU+azAjm7nnjhH3WOmVOJOX/n6sCSokIsMUEZMbTOEMgz5BXwDB9wIJGDop9hkYTXzixhkhc7gv3d4MyArY8hQAot4l+IaLCQBliFjvh8EuCG1dG5csvOyeKR2NhwYH14yODkhI4g9FUQ0QCRgNmoNSAtjkWSBB297tN85YoA/uXb6yCaSeJ2Y04YE3ooMTEGkgBipAAkeJp7oeuOvQqMPglWx33jz70ML5s+8GvCkIfSVsYZS743WMpBrQOiLwzwuTlCb2v3PqJ773crPa+XLXHrqthBcUhJbA1aV+9tCXFo4G/KgVENz2vnkC/UMOALcwBAsOEv2Cbw5yB/sYGCGUOpKbNnWKIYloeeihgb5lS4cU0AAMNsJbQglFBoOe577/1ap0sli1CLhj3vU9cP8JaF0RWt7rc8TIcqASdJ8CzQSOs+vWZvIqRMGHjSHuUkYacCYFkEiiWuCrSgBun/zQzDLcK4bMAgK+UHFkj5JI8FSVCRFDm0IMDtNwMu33rlhYoMwIxHHX2pb+Wrma91xVAnD7+AdnlHFsDvhK6P37oBMlFOApQXSVgQQmFc9IZsO6jiK8kRWQmRFqeWU6RWh5a9uqb5arfb9VJwC3Bc3vO4SRAVsdhxW240oTUBcUXWwxbPVMoQuQZ3xnp8BrNXCe3N7eVq7FvdaEANxu+8D0PQAugzhsGf/9gZR6oT8wBAE0mVm7Dj+Rl5ZgiKIiRCb76Ld7anWfNSMAt1tuuK4TwBV1t1j7AKYKRgnToNIUCMlQZQa+H+CF7se/21nLe6wpAUQ6vzRT843oEIPOUI42hQIAM03CiXx4dMPTNb+/Wl/gptnTXgDQRQQJw4KQM6RyVkb7gdiT7Y9AZ4gWFPrcjs70njFPgFSB9AWiX6B9HPFNAVWgfQG8ma9X64cmRGpMAPYQS4A1hpZgsHAHFEQgx/CEW6CLNB7seGpNXabc66KA5hlTyzgpIgdJPOQDsBhM9YIpbfnR2pVgAjxTr6l1Wq8LHT3d2wYXyxrK8wcvju7RduRcH+xbs6dNqdsKFKvbhaB7LLy9mixhAUeIPX2DecdWPRdX6kYAtGqPN6usxgc0MJ+oHSIj9d3qej0mF078afXgFLu/b41bAij2Cqm/vqBbnVIaWpSp52bWWXEXSV97QRUgQvOJ45IAXw3+zLFAzq/OfdSVAD4AJ1f/5UKGX8YvAeJFZZeYBymQNiGHSzw2nhVQcgmu14EDVCslRKuCy/wD+EuM2ygA4AoocbFYSXTPTy9lysESknDsdG/ruCQAwBUQoKNs3VUlaPvqnDXuCLj3ew93ALY8zgngAgrmIIWcn+odykQtnhxXBAB4XGXOrN6wPoEqcFTylVzK5modX3aKpDJ4oniyHB9PCsiqOglA8wgWV4gwD0UXzv1eoPQTJD0uCLjv4VWthDJt0xa0btZVqXduUAVEZnMYXr4iT715vNQ89hXAzKxc8hKtm1jfuaEonKErF03CfoCIqTGifYHLu8Y0Afc/sqGDMKNFrPb4Kz5oBl2OyDl0dexX0UAqAdNvVEhMHjhyunVMErBk7VOY7ZER4A0TrMDU8/2ZebNi3QAOlSBU4HrOUBLBmBwpKhJyrx/+b9OYImDphmeaoMVzsuUBPC59AwlSBbQFokIrmEAGl80w4xTDIifhPgFmpKl+QQw+mxszBLR1/hzB5wF8CwLGdX5Ri6JJINn5c6d1i5CIGacVmW3qvVSvaELU0A7R2l88tf2aJyD19FYJnhoJ2fINEjxVPkCYgoGmgCpYAcDSrvIF/QGHqMMizhtKEoQppF57+2TVSaja9MO3Nu1o5o6dI66dgFqO6zDdBfa5UxGFuFDbuN8P+3YJUCba13RgvE/jnWBWCaXUHyWq7jHmGfRecHR6bBYISX963szyNaOAZZt3LobmLkArJ0SLY0oLKkC3vDIBEQ4xAUru55/f8uwhwJhxlClgfpHLXT8qKBIw+QozULUSwETyfzl4In7VCXhwy66mB559YTs6PCgxKvJ7GkHqCrCQP/P2iVgExXV/TIczU6Jj0Dy9DCBTAKyEzySIlvacIVejRkkCKkR3laHk8/84vuKqmMDyrS82Oa6bdhwnDS0Xcx0H1/FFkbJHmdtS8kr+3O6X51H6jm39+pknQmv+r751cjFAFd4e8wYw79CfMtHmIHuQ5XMVFT7F+xhOU1+4Zc6emhOwunt3MwBPOQ6Ad90YZoG6rpzHESM8JEKB9mwfjyt9PnjXtn618bFBEx72/fs/bWjjaOsYBjUJRM8YBMzivT7bS8lTqihCnYGSWxSfW64aAZ0797YC4IQtgScQtATuesnJcF6cw1QYv+Vt4ey43acVIcDveHL1sNkee/91oo3j4An+4RJa00TTmzzVTpErJkTyZZ/jZaGqXmUJO0846IKP5i/1XBPd+uc3OjQoURyUmWsBKGxhCdjx3w9mY9vee46o8dgVJFQC4G1UAcjesbozy0eU6vLKweNCCcJJ4ZKyyEVmHnDvOQk1j4AqPNvvqDR9d+Dka5H4T74NzBYv0udePsCDAJGAICF6xKa7q0FCbP290DF0air9MtQJ8HYBWz67/qHLClv5fx6Po7fXT4BNwWcRosaA2WUeAov7fep5Jnz+Af3EpS5jYmeDA7sGDEAEEIYMMk9STgCk7aKHxs9TUTNV62NKVZ6+8PYG7ndl25euvBLnZH10Vs/uA++2oJxxxbgEju8cyB3TbTGhYqBP0H4iYsjsM/QfeKZfOUv5kJekCh2pfugLlMXEkxhRcDo288FSqmw6AJIBMVwnM+B6PqoCx+8u9eTJIOy5zACHxFPbV98zqmXuO2+ejapZ+NLrx1bAnWTOV5wYptlOiMqQaIh7J2HTCPgJLvyI/IwgTX0GlaEJYEwlLuKNM/E0FVPH9JK1WOflerZfnC9ByTDoEG1b+fWqrfHfdeucn+J0OVwrh8o8C32Fo//rI6d6+0XeMQ+A12OJgfONwc8EV19MIWOiQHtyZqqFiWpxrhRAxVNF2hd4wCktwfsQw1n6F99ZVJOExi/fNhe9+d27Ckda4foY7qxeCIVYcBZpCkgen2LR6TdB4AOPg4tP9Pm/viWcYNQ0Al5d2TzEdTSDio1PlME+1OGI4RbhO11wQ9kft32+JsCH2nL7D8fFGIIQnEH2VpOQAJxQiZoy6SIiEpDC4PsBE0YMdIL0N/ve5jK8Ec+TI/BQZAiHwiLsgxTdbOc3PttDrvIGRDQpErBYQTKCnR2dlqPXHhz5kHSe/vbVd1QY5IOBLcE+DFTcArR0AUJifs3i26+JB6aHIaRVEYFLbC2EDLvUlqe/e63YOjD+Qy+vuMyaf00DvQKVDEZE6f8CDAC/X7OPLTIfKgAAAABJRU5ErkJggg== + mediatype: image/png + + installModes: + - type: OwnNamespace + supported: true + - type: SingleNamespace + supported: true + - type: MultiNamespace + supported: false + - type: AllNamespaces + supported: false + install: + strategy: deployment + spec: + permissions: + - serviceAccountName: infinispan-operator + rules: + - apiGroups: + - "" + resources: + - pods + - services + - endpoints + - persistentvolumeclaims + - events + - configmaps + - secrets + verbs: + - '*' + - apiGroups: + - "" + resources: + - pods/exec + verbs: + - create + - apiGroups: + - "" + resources: + - namespaces + verbs: + - get + - apiGroups: + - apps + resources: + - deployments + - daemonsets + - replicasets + - statefulsets + verbs: + - '*' + - apiGroups: + - monitoring.coreos.com + resources: + - servicemonitors + verbs: + - get + - create + - apiGroups: + - infinispan.org + resources: + - '*' + verbs: + - '*' + clusterPermissions: + - serviceAccountName: infinispan-operator + rules: + - apiGroups: + - "" + resources: + - nodes + - nodes/status + verbs: + - get + - list + - watch + - apiGroups: + - apiextensions.k8s.io + resources: + - customresourcedefinitions + - customresourcedefinitions/status + verbs: + - get + - list + - watch + - apiGroups: + - "" + resources: + - nodes/metrics + - nodes/spec + verbs: + - get + - apiGroups: + - "" + resources: + - nodes/stats + verbs: + - get + deployments: + - name: infinispan-operator + spec: + replicas: 1 + selector: + matchLabels: + name: infinispan-operator-alm-owned + template: + metadata: + name: infinispan-operator-alm-owned + labels: + name: infinispan-operator-alm-owned + spec: + serviceAccountName: infinispan-operator + containers: + - name: infinispan-operator + command: + - infinispan-operator + image: quay.io/infinispan/operator:2.0.0.Final-1 + ports: + - containerPort: 60000 + name: metrics + env: + - name: WATCH_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.annotations['olm.targetNamespaces'] + - name: POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: OPERATOR_NAME + value: "infinispan-operator" + - name: DEFAULT_IMAGE + value: "infinispan/server:11.0.1.Final" + customresourcedefinitions: + owned: + - description: Cache is the Schema for the caches API + kind: Cache + name: caches.infinispan.org + version: v2alpha1 + - name: infinispans.infinispan.org + version: v1 + kind: Infinispan + displayName: Infinispan Cluster + description: An Infinispan cluster instance. + resources: + - kind: ConfigMap + version: v1 + - kind: Secret + version: v1 + - kind: Service + version: v1 + - kind: Pod + version: v1 + specDescriptors: + - description: Sets the number of nodes in the cluster. + displayName: Replicas + path: replicas + - description: Sets an image to bootstrap the Infinispan nodes. + displayName: Image + path: image + - description: Sets the CPU limits for each Infinispan node. + displayName: CPU + path: container.cpu + - description: Sets the memory limits for each Infinispan node. + displayName: Memory + path: container.memory + - description: Appends JVM options to each Infinispan node. + displayName: Extra JVM Options + path: container.extraJvmOpts + - description: Name of the secrect that contains auth info. + displayName: Endpoint Secret Name + path: security.endpointSecretName + - description: Select how encryption certificates are provided [Secret,Service]. + displayName: Endpoint Encryption Type + path: security.endpointEncryption.type + - description: Platform service that serves certificates (openshift.io/service-cert is supported). + displayName: Serving Certs Service Name + path: security.endpointEncryption.certServiceName + - description: Name of the secrect that contains certificates. + displayName: Certificates Secret Name + path: security.endpointEncryption.certSecretName + - description: Select service type provided [Cache,DataGrid]. + displayName: Service Type + path: service.type + - description: Local Infinispan node storage capacity (DataGrid service only). + displayName: Local Storage Capacity + path: service.container.storage + - description: Name of local site (DataGrid service only). + displayName: Name Of Local Site + path: service.sites.local.name + - description: Kubernetes service type for cross-site communications [LoadBalancer,NodePort] (DataGrid service only). + displayName: Kubernetes Service Type For Cross-Site Network + path: service.sites.local.expose.type + - description: Name of one of the sites (DataGrid service only) + displayName: Name Of Site + path: service.sites.locations[0].name + - description: Site URL for communicating with site (DataGrid service only). Prefixed with minikube:// for Minikube sites, and openshift:// for OpenShift sites. + displayName: Site URL + path: service.sites.locations[0].url + - description: Secret name containing credentials to talk to site (DataGrid service only). + displayName: Secret For Site + path: service.sites.locations[0].secretName + - description: Defines logging categories and log levels. + displayName: Logging Categories + path: logging.categories + - description: Externally exposed Kubernetes service type. + displayName: Exposed Kubernetes Service Type + path: expose.type + statusDescriptors: + - description: Type of condition. + displayName: Condition Type + path: conditions[0].type + - description: Status of condition. + displayName: Condition Status + path: conditions[0].status + - description: Message of condition. + displayName: Condition Message + path: conditions[0].message diff --git a/community-operators/infinispan/2.0.1/infinispan.org_caches_crd.yaml b/community-operators/infinispan/2.0.1/infinispan.org_caches_crd.yaml new file mode 100644 index 0000000000..658be954f8 --- /dev/null +++ b/community-operators/infinispan/2.0.1/infinispan.org_caches_crd.yaml @@ -0,0 +1,122 @@ +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + name: caches.infinispan.org +spec: + group: infinispan.org + names: + kind: Cache + listKind: CacheList + plural: caches + singular: cache + scope: Namespaced + subresources: + status: {} + validation: + 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: Authentication info + properties: + password: + description: Secret and key containing the admin password for authentication. + properties: + key: + description: The key of the secret to select from. Must be + a valid secret key. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + secretName: + description: name of the secret containing both admin username and + password + type: string + username: + description: Secret and key containing the admin username for authentication. + properties: + key: + description: The key of the secret to select from. Must be + a valid secret key. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the Secret or its key must be defined + type: boolean + required: + - key + type: object + type: object + clusterName: + description: Name of the cluster where to create the cache + 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 + 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: Service name that exposes the cache inside the cluster + type: string + type: object + type: object + version: v2alpha1 + versions: + - name: v2alpha1 + served: true + storage: true diff --git a/community-operators/infinispan/2.0.1/infinispan.org_infinispans_crd.yaml b/community-operators/infinispan/2.0.1/infinispan.org_infinispans_crd.yaml new file mode 100644 index 0000000000..b4c77da031 --- /dev/null +++ b/community-operators/infinispan/2.0.1/infinispan.org_infinispans_crd.yaml @@ -0,0 +1,427 @@ +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + name: infinispans.infinispan.org +spec: + group: infinispan.org + names: + kind: Infinispan + listKind: InfinispanList + plural: infinispans + singular: infinispan + scope: Namespaced + subresources: + status: {} + validation: + 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: + autoscale: + description: Autoscale describe autoscaling configuration for the cluster + properties: + maxMemUsagePercent: + type: integer + maxReplicas: + format: int32 + type: integer + minMemUsagePercent: + type: integer + minReplicas: + format: int32 + type: integer + required: + - maxMemUsagePercent + - maxReplicas + - minMemUsagePercent + - minReplicas + type: object + container: + description: InfinispanContainerSpec specify resource requirements per + container + properties: + cpu: + type: string + extraJvmOpts: + type: string + memory: + type: string + type: object + expose: + description: ExposeSpec describe how Infinispan will be exposed externally + properties: + host: + type: string + nodePort: + format: int32 + type: integer + type: + description: Type specifies different exposition methods for datagrid + enum: + - NodePort + - LoadBalancer + - Route + type: string + required: + - type + type: object + image: + type: string + logging: + properties: + categories: + additionalProperties: + type: string + type: object + type: object + replicas: + format: int32 + type: integer + security: + description: InfinispanSecurity info for the user application connection + properties: + endpointEncryption: + description: EndpointEncryption configuration + properties: + certSecretName: + type: string + certServiceName: + type: string + type: + type: string + required: + - type + type: object + endpointSecretName: + type: string + type: object + service: + description: InfinispanServiceSpec specify configuration for specific + service + properties: + container: + description: InfinispanServiceContainerSpec resource requirements + specific for service + properties: + storage: + type: string + required: + - storage + type: object + replicationFactor: + format: int32 + type: integer + sites: + properties: + local: + properties: + expose: + description: ServiceSpec describes the attributes that a + user creates on a service. + properties: + clusterIP: + description: 'clusterIP is the IP address of the service + and is usually assigned randomly by the master. If + an address is specified manually and is not in use + by others, it will be allocated to the service; otherwise, + creation of the service will fail. This field can + not be changed through updates. Valid values are "None", + empty string (""), or a valid IP address. "None" can + be specified for headless services when proxying is + not required. Only applies to types ClusterIP, NodePort, + and LoadBalancer. Ignored if type is ExternalName. + More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies' + type: string + externalIPs: + description: externalIPs is a list of IP addresses for + which nodes in the cluster will also accept traffic + for this service. These IPs are not managed by Kubernetes. The + user is responsible for ensuring that traffic arrives + at a node with this IP. A common example is external + load-balancers that are not part of the Kubernetes + system. + items: + type: string + type: array + externalName: + description: externalName is the external reference + that kubedns or equivalent will return as a CNAME + record for this service. No proxying will be involved. + Must be a valid RFC-1123 hostname (https://tools.ietf.org/html/rfc1123) + and requires Type to be ExternalName. + type: string + externalTrafficPolicy: + description: externalTrafficPolicy denotes if this Service + desires to route external traffic to node-local or + cluster-wide endpoints. "Local" preserves the client + source IP and avoids a second hop for LoadBalancer + and Nodeport type services, but risks potentially + imbalanced traffic spreading. "Cluster" obscures the + client source IP and may cause a second hop to another + node, but should have good overall load-spreading. + type: string + healthCheckNodePort: + description: healthCheckNodePort specifies the healthcheck + nodePort for the service. If not specified, HealthCheckNodePort + is created by the service api backend with the allocated + nodePort. Will use user-specified nodePort value if + specified by the client. Only effects when Type is + set to LoadBalancer and ExternalTrafficPolicy is set + to Local. + format: int32 + type: integer + ipFamily: + description: ipFamily specifies whether this Service + has a preference for a particular IP family (e.g. + IPv4 vs. IPv6). If a specific IP family is requested, + the clusterIP field will be allocated from that family, + if it is available in the cluster. If no IP family + is requested, the cluster's primary IP family will + be used. Other IP fields (loadBalancerIP, loadBalancerSourceRanges, + externalIPs) and controllers which allocate external + load-balancers should use the same IP family. Endpoints + for this Service will be of this family. This field + is immutable after creation. Assigning a ServiceIPFamily + not available in the cluster (e.g. IPv6 in IPv4 only + cluster) is an error condition and will fail during + clusterIP assignment. + type: string + loadBalancerIP: + description: 'Only applies to Service Type: LoadBalancer + LoadBalancer will get created with the IP specified + in this field. This feature depends on whether the + underlying cloud-provider supports specifying the + loadBalancerIP when a load balancer is created. This + field will be ignored if the cloud-provider does not + support the feature.' + type: string + loadBalancerSourceRanges: + description: 'If specified and supported by the platform, + this will restrict traffic through the cloud-provider + load-balancer will be restricted to the specified + client IPs. This field will be ignored if the cloud-provider + does not support the feature." More info: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/' + items: + type: string + type: array + ports: + description: 'The list of ports that are exposed by + this service. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies' + items: + description: ServicePort contains information on service's + port. + properties: + name: + description: The name of this port within the + service. This must be a DNS_LABEL. All ports + within a ServiceSpec must have unique names. + When considering the endpoints for a Service, + this must match the 'name' field in the EndpointPort. + Optional if only one ServicePort is defined + on this service. + type: string + nodePort: + description: 'The port on each node on which this + service is exposed when type=NodePort or LoadBalancer. + Usually assigned by the system. If specified, + it will be allocated to the service if unused + or else creation of the service will fail. Default + is to auto-allocate a port if the ServiceType + of this Service requires one. More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport' + format: int32 + type: integer + port: + description: The port that will be exposed by + this service. + format: int32 + type: integer + protocol: + description: The IP protocol for this port. Supports + "TCP", "UDP", and "SCTP". Default is TCP. + type: string + targetPort: + anyOf: + - type: integer + - type: string + description: 'Number or name of the port to access + on the pods targeted by the service. Number + must be in the range 1 to 65535. Name must be + an IANA_SVC_NAME. If this is a string, it will + be looked up as a named port in the target Pod''s + container ports. If this is not specified, the + value of the ''port'' field is used (an identity + map). This field is ignored for services with + clusterIP=None, and should be omitted or set + equal to the ''port'' field. More info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service' + x-kubernetes-int-or-string: true + required: + - port + type: object + type: array + publishNotReadyAddresses: + description: publishNotReadyAddresses, when set to true, + indicates that DNS implementations must publish the + notReadyAddresses of subsets for the Endpoints associated + with the Service. The default value is false. The + primary use case for setting this field is to use + a StatefulSet's Headless Service to propagate SRV + records for its Pods without respect to their readiness + for purpose of peer discovery. + type: boolean + selector: + additionalProperties: + type: string + description: 'Route service traffic to pods with label + keys and values matching this selector. If empty or + not present, the service is assumed to have an external + process managing its endpoints, which Kubernetes will + not modify. Only applies to types ClusterIP, NodePort, + and LoadBalancer. Ignored if type is ExternalName. + More info: https://kubernetes.io/docs/concepts/services-networking/service/' + type: object + sessionAffinity: + description: 'Supports "ClientIP" and "None". Used to + maintain session affinity. Enable client IP based + session affinity. Must be ClientIP or None. Defaults + to None. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies' + type: string + sessionAffinityConfig: + description: sessionAffinityConfig contains the configurations + of session affinity. + properties: + clientIP: + description: clientIP contains the configurations + of Client IP based session affinity. + properties: + timeoutSeconds: + description: timeoutSeconds specifies the seconds + of ClientIP type session sticky time. The + value must be >0 && <=86400(for 1 day) if + ServiceAffinity == "ClientIP". Default value + is 10800(for 3 hours). + format: int32 + type: integer + type: object + type: object + type: + description: 'type determines how the Service is exposed. + Defaults to ClusterIP. Valid options are ExternalName, + ClusterIP, NodePort, and LoadBalancer. "ExternalName" + maps to the specified externalName. "ClusterIP" allocates + a cluster-internal IP address for load-balancing to + endpoints. Endpoints are determined by the selector + or if that is not specified, by manual construction + of an Endpoints object. If clusterIP is "None", no + virtual IP is allocated and the endpoints are published + as a set of endpoints rather than a stable IP. "NodePort" + builds on ClusterIP and allocates a port on every + node which routes to the clusterIP. "LoadBalancer" + builds on NodePort and creates an external load-balancer + (if supported in the current cloud) which routes to + the clusterIP. More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types' + type: string + type: object + name: + type: string + required: + - expose + - name + type: object + locations: + items: + properties: + name: + type: string + secretName: + type: string + url: + type: string + required: + - name + - secretName + - url + type: object + type: array + required: + - local + type: object + type: + type: string + required: + - type + type: object + required: + - replicas + type: object + status: + description: InfinispanStatus defines the observed state of Infinispan + properties: + conditions: + description: 'Important: Run "operator-sdk generate k8s" to regenerate + code after modifying this file' + 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: + - message + - status + - type + type: object + type: array + replicasWantedAtRestart: + format: int32 + type: integer + security: + description: InfinispanSecurity info for the user application connection + properties: + endpointEncryption: + description: EndpointEncryption configuration + properties: + certSecretName: + type: string + certServiceName: + type: string + type: + type: string + required: + - type + type: object + endpointSecretName: + type: string + type: object + statefulSetName: + type: string + required: + - security + - statefulSetName + type: object + type: object + version: v1 + versions: + - name: v1 + served: true + storage: true diff --git a/community-operators/infinispan/infinispan.package.yaml b/community-operators/infinispan/infinispan.package.yaml index 8e4a9267fd..f00fbeab36 100644 --- a/community-operators/infinispan/infinispan.package.yaml +++ b/community-operators/infinispan/infinispan.package.yaml @@ -1,9 +1,11 @@ channels: -- currentCSV: infinispan-operator.v2.0.0 +- currentCSV: infinispan-operator.v2.0.1 name: dev-preview - currentCSV: infinispan-operator.v1.1.2 name: stable - currentCSV: infinispan-operator.v1.1.2 name: 1.1.x -defaultChannel: 1.1.x +- currentCSV: infinispan-operator.v2.0.1 + name: 2.0.x +defaultChannel: 2.0.x packageName: infinispan