diff --git a/operators/stackable-listener-operator/25.11.0/manifests/listener-operator-manifests.yaml b/operators/stackable-listener-operator/25.11.0/manifests/listener-operator-manifests.yaml new file mode 100644 index 00000000000..acf5c4c5c74 --- /dev/null +++ b/operators/stackable-listener-operator/25.11.0/manifests/listener-operator-manifests.yaml @@ -0,0 +1,345 @@ +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: listener-operator-deployer-manifests +data: + listener-scc.yaml: | + --- + apiVersion: security.openshift.io/v1 + kind: SecurityContextConstraints + metadata: + name: stackable-listener-operator-scc + labels: + stackable.tech/vendor: Stackable + annotations: + kubernetes.io/description: + The stackable-listener-operator-scc includes the minimum required privileges to run the listener-operator. + allowHostDirVolumePlugin: true + allowHostIPC: false + allowHostNetwork: false + allowHostPID: false + allowHostPorts: false + allowPrivilegeEscalation: false + allowPrivilegedContainer: false + allowedCapabilities: [] + defaultAddCapabilities: null + fsGroup: + type: MustRunAs + groups: [] + priority: null + readOnlyRootFilesystem: true + requiredDropCapabilities: + - ALL + runAsUser: + type: MustRunAs + uid: 0 + seLinuxContext: + # Permit access to the resources in all namespaces + type: RunAsAny + seccompProfiles: + - runtime/default + supplementalGroups: + type: RunAsAny + users: [] + volumes: + - emptyDir + - hostPath + - projected + + csidriver.yaml: | + --- + # Source: listener-operator/templates/csidriver.yaml + apiVersion: storage.k8s.io/v1 + kind: CSIDriver + metadata: + name: listeners.stackable.tech + spec: + attachRequired: false + podInfoOnMount: true + fsGroupPolicy: File + volumeLifecycleModes: + - Ephemeral + - Persistent + + csi-provisioner-deployment.yaml: | + --- + # Source: listener-operator/templates/csi-provisioner-deployment.yaml + apiVersion: apps/v1 + kind: Deployment + metadata: + name: listener-operator-csi-provisioner + labels: + app.kubernetes.io/name: listener-operator + app.kubernetes.io/instance: listener-operator + stackable.tech/vendor: Stackable + app.kubernetes.io/version: "0.0.0-pr344" + spec: + selector: + matchLabels: + app.kubernetes.io/role: provisioner + app.kubernetes.io/name: listener-operator + app.kubernetes.io/instance: listener-operator + stackable.tech/vendor: Stackable + template: + metadata: + annotations: + internal.stackable.tech/image: "oci.stackable.tech/sdp/listener-operator:0.0.0-pr344" + labels: + app.kubernetes.io/role: provisioner + app.kubernetes.io/name: listener-operator + app.kubernetes.io/instance: listener-operator + stackable.tech/vendor: Stackable + spec: + serviceAccountName: listener-operator-serviceaccount + securityContext: {} + containers: + - name: csi-controller-service + securityContext: + runAsUser: 0 + seLinuxOptions: + type: spc_t + image: "oci.stackable.tech/sdp/listener-operator:0.0.0-pr344" + imagePullPolicy: IfNotPresent + resources: + limits: + cpu: 100m + memory: 128Mi + requests: + cpu: 100m + memory: 128Mi + args: + - run + - controller + env: + # The following env vars are passed as clap (think CLI) arguments to the operator. + # They are picked up by clap using the structs defied in the operator. + # (which is turn pulls in https://github.com/stackabletech/operator-rs/blob/main/crates/stackable-operator/src/cli.rs) + # You can read there about the expected values and purposes. + - name: CSI_ENDPOINT + value: /csi/csi.sock + # Sometimes products need to know the operator image, e.g. the opa-bundle-builder OPA + # sidecar uses the operator image. + - name: OPERATOR_IMAGE + # Tilt can use annotations as image paths, but not env variables + valueFrom: + fieldRef: + fieldPath: metadata.annotations['internal.stackable.tech/image'] + # Namespace the operator Pod is running in, e.g. used to construct the conversion + # webhook endpoint. + - name: OPERATOR_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + # The name of the Kubernetes Service that point to the operator Pod, e.g. used to + # construct the conversion webhook endpoint. + - name: OPERATOR_SERVICE_NAME + value: listener-operator + # Operators need to know the node name they are running on, to e.g. discover the + # Kubernetes domain name from the kubelet API. + - name: KUBERNETES_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + volumeMounts: + - name: csi + mountPath: /csi + - name: external-provisioner + image: "oci.stackable.tech/sdp/sig-storage/csi-provisioner:v5.3.0" + imagePullPolicy: IfNotPresent + resources: + limits: + cpu: 100m + memory: 128Mi + requests: + cpu: 100m + memory: 128Mi + args: + - --csi-address=/csi/csi.sock + - --feature-gates=Topology=true + - --extra-create-metadata + volumeMounts: + - name: csi + mountPath: /csi + volumes: + - name: csi + emptyDir: {} + + csi-node-driver-daemonset.yaml: | + --- + # Source: listener-operator/templates/csi-node-driver-daemonset.yaml + apiVersion: apps/v1 + kind: DaemonSet + metadata: + name: listener-operator-csi-node-driver + labels: + app.kubernetes.io/name: listener-operator + app.kubernetes.io/instance: listener-operator + stackable.tech/vendor: Stackable + app.kubernetes.io/version: "0.0.0-pr344" + spec: + selector: + matchLabels: + app.kubernetes.io/role: node-driver + app.kubernetes.io/name: listener-operator + app.kubernetes.io/instance: listener-operator + stackable.tech/vendor: Stackable + template: + metadata: + labels: + app.kubernetes.io/role: node-driver + app.kubernetes.io/name: listener-operator + app.kubernetes.io/instance: listener-operator + stackable.tech/vendor: Stackable + spec: + serviceAccountName: listener-operator-serviceaccount + securityContext: {} + containers: + - name: csi-node-service + securityContext: + runAsUser: 0 + seLinuxOptions: + type: spc_t + image: "oci.stackable.tech/sdp/listener-operator:0.0.0-pr344" + imagePullPolicy: IfNotPresent + resources: + limits: + cpu: 100m + memory: 128Mi + requests: + cpu: 100m + memory: 128Mi + args: + - run + - node + env: + # The following env vars are passed as clap (think CLI) arguments to the operator. + # They are picked up by clap using the structs defied in the operator. + # (which is turn pulls in https://github.com/stackabletech/operator-rs/blob/main/crates/stackable-operator/src/cli.rs) + # You can read there about the expected values and purposes. + - name: CSI_ENDPOINT + value: /csi/csi.sock + # Sometimes products need to know the operator image, e.g. the opa-bundle-builder OPA + # sidecar uses the operator image. + - name: OPERATOR_IMAGE + # Tilt can use annotations as image paths, but not env variables + valueFrom: + fieldRef: + fieldPath: metadata.annotations['internal.stackable.tech/image'] + # Namespace the operator Pod is running in, e.g. used to construct the conversion + # webhook endpoint. + - name: OPERATOR_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + # The name of the Kubernetes Service that point to the operator Pod, e.g. used to + # construct the conversion webhook endpoint. + - name: OPERATOR_SERVICE_NAME + value: listener-operator + # Operators need to know the node name they are running on, to e.g. discover the + # Kubernetes domain name from the kubelet API. + - name: KUBERNETES_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + volumeMounts: + - name: csi + mountPath: /csi + - name: mountpoint + mountPath: /var/lib/kubelet/pods + - name: node-driver-registrar + image: "oci.stackable.tech/sdp/sig-storage/csi-node-driver-registrar:v2.15.0" + imagePullPolicy: IfNotPresent + resources: + limits: + cpu: 100m + memory: 128Mi + requests: + cpu: 100m + memory: 128Mi + args: + - --csi-address=/csi/csi.sock + - --kubelet-registration-path=/var/lib/kubelet/plugins/listeners.stackable.tech/csi.sock + volumeMounts: + - name: registration-sock + mountPath: /registration + - name: csi + mountPath: /csi + volumes: + - name: registration-sock + hostPath: + # node-driver-registrar appends a driver-unique filename to this path to avoid conflicts + # see https://github.com/stackabletech/secret-operator/issues/229 for why this path should not be too long + path: /var/lib/kubelet/plugins_registry + - name: csi + hostPath: + path: /var/lib/kubelet/plugins/listeners.stackable.tech/ + - name: mountpoint + hostPath: + path: /var/lib/kubelet/pods/ + + service.yaml: | + --- + # Source: listener-operator/templates/service.yaml + apiVersion: v1 + kind: Service + metadata: + # Note(@sbernauer): We could also call the Service something like + # "product-operator-conversion-webhook". However, in the future we will have more webhooks, and + # it seems like an overkill to have a dedicated Service per webhook. + name: listener-operator + labels: + app.kubernetes.io/name: listener-operator + app.kubernetes.io/instance: listener-operator + stackable.tech/vendor: Stackable + app.kubernetes.io/version: "0.0.0-pr344" + spec: + selector: + app.kubernetes.io/name: listener-operator + app.kubernetes.io/instance: listener-operator + stackable.tech/vendor: Stackable + ports: + - name: conversion-webhook + protocol: TCP + port: 8443 + targetPort: 8443 + + listener-classes-external-unstable.yaml: | + --- + # Source: listener-operator/templates/listener-classes.yaml + apiVersion: listeners.stackable.tech/v1alpha1 + kind: ListenerClass + metadata: + name: external-unstable + spec: + serviceType: NodePort + pinnedNodePorts: false + + listener-classes-external-stable.yaml: | + --- + # Source: listener-operator/templates/listener-classes.yaml + apiVersion: listeners.stackable.tech/v1alpha1 + kind: ListenerClass + metadata: + name: external-stable + spec: + serviceType: LoadBalancer + + listener-classes-cluster-internal.yaml: | + --- + # Source: listener-operator/templates/listener-classes.yaml + apiVersion: listeners.stackable.tech/v1alpha1 + kind: ListenerClass + metadata: + name: cluster-internal + spec: + serviceType: ClusterIP + storageclass.yaml: | + --- + # Source: listener-operator/templates/storageclass.yaml + apiVersion: storage.k8s.io/v1 + kind: StorageClass + metadata: + name: listeners.stackable.tech + provisioner: listeners.stackable.tech + volumeBindingMode: WaitForFirstConsumer diff --git a/operators/stackable-listener-operator/25.11.0/manifests/listenerclasses.yaml b/operators/stackable-listener-operator/25.11.0/manifests/listenerclasses.yaml new file mode 100644 index 00000000000..016c1343d82 --- /dev/null +++ b/operators/stackable-listener-operator/25.11.0/manifests/listenerclasses.yaml @@ -0,0 +1,107 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + name: listenerclasses.listeners.stackable.tech +spec: + group: listeners.stackable.tech + names: + categories: [] + kind: ListenerClass + plural: listenerclasses + shortNames: [] + singular: listenerclass + scope: Cluster + versions: + - additionalPrinterColumns: [] + name: v1alpha1 + schema: + openAPIV3Schema: + description: Auto-generated derived type for ListenerClassSpec via `CustomResource` + properties: + spec: + description: |- + Defines a policy for how [Listeners](https://docs.stackable.tech/home/nightly/listener-operator/listener) should be exposed. + Read the [ListenerClass documentation](https://docs.stackable.tech/home/nightly/listener-operator/listenerclass) + for more information. + properties: + loadBalancerAllocateNodePorts: + default: true + description: |- + Configures whether a LoadBalancer service should also allocate node ports (like NodePort). + + Ignored unless serviceType is LoadBalancer. + type: boolean + loadBalancerClass: + description: |- + Configures a custom Service loadBalancerClass, which can be used to access secondary + load balancer controllers that are installed in the cluster, or to provision + custom addresses manually. + + Ignored unless serviceType is LoadBalancer. + nullable: true + type: string + pinnedNodePorts: + default: false + description: |- + Whether or not a Pod exposed using a NodePort should be pinned to a specific Kubernetes node. + + By pinning the Pod to a specific (stable) Kubernetes node, stable addresses can be + provided using NodePorts. The pinning is achieved by listener-operator setting the + `volume.kubernetes.io/selected-node` annotation on the Listener PVC. + + However, this only works on setups with long-living nodes. If your nodes are rotated on + a regular basis, the Pods previously running on a removed node will be stuck in Pending + until you delete the PVC with the pinning. + + Because of this we don't enable pinning by default to support all environments. + type: boolean + preferredAddressType: + default: HostnameConservative + description: |- + Whether addresses should prefer using the IP address (`IP`) or the hostname (`Hostname`). + Can also be set to `HostnameConservative`, which will use `IP` for `NodePort` service types, but `Hostname` for everything else. + + The other type will be used if the preferred type is not available. + + Defaults to `HostnameConservative`. + enum: + - Hostname + - IP + - HostnameConservative + type: string + serviceAnnotations: + additionalProperties: + type: string + default: {} + description: Annotations that should be added to the Service object. + type: object + serviceExternalTrafficPolicy: + default: Local + description: |- + `externalTrafficPolicy` that should be set on the created [`Service`] objects. + + The default is `Local` (in contrast to `Cluster`), as we aim to direct traffic to a node running the workload + and we should keep testing that as the primary configuration. Cluster is a fallback option for providers that + break Local mode (IONOS so far). + enum: + - Cluster + - Local + type: string + serviceType: + description: The method used to access the services. + enum: + - NodePort + - LoadBalancer + - ClusterIP + type: string + required: + - serviceType + type: object + required: + - spec + title: ListenerClass + type: object + served: true + storage: true + subresources: {} diff --git a/operators/stackable-listener-operator/25.11.0/manifests/listeners.yaml b/operators/stackable-listener-operator/25.11.0/manifests/listeners.yaml new file mode 100644 index 00000000000..b13213878e7 --- /dev/null +++ b/operators/stackable-listener-operator/25.11.0/manifests/listeners.yaml @@ -0,0 +1,128 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + name: listeners.listeners.stackable.tech +spec: + group: listeners.stackable.tech + names: + categories: [] + kind: Listener + plural: listeners + shortNames: [] + singular: listener + scope: Namespaced + versions: + - additionalPrinterColumns: [] + name: v1alpha1 + schema: + openAPIV3Schema: + description: Auto-generated derived type for ListenerSpec via `CustomResource` + properties: + spec: + description: |- + Exposes a set of pods to the outside world. + + Essentially a Stackable extension of a Kubernetes Service. Compared to a Service, a Listener changes three things: + 1. It uses a cluster-level policy object (ListenerClass) to define how exactly the exposure works + 2. It has a consistent API for reading back the exposed address(es) of the service + 3. The Pod must mount a Volume referring to the Listener, which also allows + ["sticky" scheduling](https://docs.stackable.tech/home/nightly/listener-operator/listener#_sticky_scheduling). + + Learn more in the [Listener documentation](https://docs.stackable.tech/home/nightly/listener-operator/listener). + properties: + className: + description: The name of the [ListenerClass](https://docs.stackable.tech/home/nightly/listener-operator/listenerclass). + nullable: true + type: string + extraPodSelectorLabels: + additionalProperties: + type: string + default: {} + description: Extra labels that the Pods must match in order to be exposed. They must _also_ still have a Volume referring to the Listener. + type: object + ports: + description: Ports that should be exposed. + items: + properties: + name: + description: |- + The name of the port. + + The name of each port *must* be unique within a single Listener. + type: string + port: + description: The port number. + format: int32 + type: integer + protocol: + description: The layer-4 protocol (`TCP` or `UDP`). + nullable: true + type: string + required: + - name + - port + type: object + nullable: true + type: array + publishNotReadyAddresses: + default: true + description: Whether incoming traffic should also be directed to Pods that are not `Ready`. + nullable: true + type: boolean + type: object + status: + description: Informs users about how to reach the Listener. + nullable: true + properties: + ingressAddresses: + description: All addresses that the Listener is currently reachable from. + items: + description: One address that a Listener is accessible from. + properties: + address: + description: The hostname or IP address to the Listener. + type: string + addressType: + description: The type of address (`Hostname` or `IP`). + enum: + - Hostname + - IP + type: string + ports: + additionalProperties: + format: int32 + type: integer + description: Port mapping table. + type: object + required: + - address + - addressType + - ports + type: object + nullable: true + type: array + nodePorts: + additionalProperties: + format: int32 + type: integer + description: |- + Port mappings for accessing the Listener on each Node that the Pods are currently running on. + + This is only intended for internal use by listener-operator itself. This will be left unset if using a ListenerClass that does + not require Node-local access. + nullable: true + type: object + serviceName: + description: The backing Kubernetes Service. + nullable: true + type: string + type: object + required: + - spec + title: Listener + type: object + served: true + storage: true + subresources: + status: {} diff --git a/operators/stackable-listener-operator/25.11.0/manifests/podlisteners.yaml b/operators/stackable-listener-operator/25.11.0/manifests/podlisteners.yaml new file mode 100644 index 00000000000..9fe8add0ee1 --- /dev/null +++ b/operators/stackable-listener-operator/25.11.0/manifests/podlisteners.yaml @@ -0,0 +1,88 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + name: podlisteners.listeners.stackable.tech +spec: + group: listeners.stackable.tech + names: + categories: [] + kind: PodListeners + plural: podlisteners + shortNames: [] + singular: podlisteners + scope: Namespaced + versions: + - additionalPrinterColumns: [] + name: v1alpha1 + schema: + openAPIV3Schema: + description: Auto-generated derived type for PodListenersSpec via `CustomResource` + properties: + spec: + description: |- + Informs users about Listeners that are bound by a given Pod. + + This is not expected to be created or modified by users. It will be created by + the Stackable Listener Operator when mounting the listener volume, and is always + named `pod-{pod.metadata.uid}`. + properties: + listeners: + additionalProperties: + properties: + ingressAddresses: + description: |- + Addresses allowing access to this Pod. + + Compared to `ingress_addresses` on the Listener status, this list is restricted to addresses that can access this Pod. + + This field is intended to be equivalent to the files mounted into the Listener volume. + items: + description: One address that a Listener is accessible from. + properties: + address: + description: The hostname or IP address to the Listener. + type: string + addressType: + description: The type of address (`Hostname` or `IP`). + enum: + - Hostname + - IP + type: string + ports: + additionalProperties: + format: int32 + type: integer + description: Port mapping table. + type: object + required: + - address + - addressType + - ports + type: object + nullable: true + type: array + scope: + description: "`Node` if this address only allows access to Pods hosted on a specific Kubernetes Node, otherwise `Cluster`." + enum: + - Node + - Cluster + type: string + required: + - scope + type: object + description: |- + All Listeners currently bound by the Pod. + + Indexed by Volume name (not PersistentVolume or PersistentVolumeClaim). + type: object + required: + - listeners + type: object + required: + - spec + title: PodListeners + type: object + served: true + storage: true + subresources: {} diff --git a/operators/stackable-listener-operator/25.11.0/manifests/stackable-listener-operator.v25.11.0.clusterserviceversion.yaml b/operators/stackable-listener-operator/25.11.0/manifests/stackable-listener-operator.v25.11.0.clusterserviceversion.yaml new file mode 100644 index 00000000000..69c7c9fe142 --- /dev/null +++ b/operators/stackable-listener-operator/25.11.0/manifests/stackable-listener-operator.v25.11.0.clusterserviceversion.yaml @@ -0,0 +1,299 @@ +--- +apiVersion: operators.coreos.com/v1alpha1 +kind: ClusterServiceVersion +metadata: + name: listener-operator.v25.11.0 + labels: + operatorframework.io/arch.amd64: supported + operatorframework.io/arch.arm64: supported + operatorframework.io/os.linux: supported + annotations: + operatorframework.io/suggested-namespace: stackable-operators + features.operators.openshift.io/cnf: "false" + features.operators.openshift.io/cni: "false" + features.operators.openshift.io/csi: "false" + features.operators.openshift.io/disconnected: "false" + features.operators.openshift.io/fips-compliant: "false" + features.operators.openshift.io/proxy-aware: "false" + features.operators.openshift.io/tls-profiles: "false" + features.operators.openshift.io/token-auth-aws: "false" + features.operators.openshift.io/token-auth-azure: "false" + features.operators.openshift.io/token-auth-gcp: "false" + support: Stackable GmbH + categories: Storage + capabilities: Full Lifecycle + description: Stackable Listener Operator + repository: https://github.com/stackabletech/listener-operator + containerImage: "oci.stackable.tech/sdp/listener-operator:0.0.0-pr344" + +spec: + displayName: Stackable Listener Operator + description: |- + This is an operator for Kubernetes that provisions network listeners according to the cluster policy, and injects connection parameters into Pods. + The Stackable Listener Operator is part of the Stackable Data Platform, a curated selection of the best open source data apps like Kafka, Druid, Trino or + Spark, all working together seamlessly. Based on Kubernetes, it runs everywhere – on prem or in the cloud. + + See it in action in one of our [demos](https://stackable.tech/en/demos/) or follow this + [usage overview](https://docs.stackable.tech/home/stable/listener-operator/usage.html). + + NOTE: Make sure you install this operator in a namespace called "stackable-operators". Failing to do so will result in a broken installation. + + icon: + - base64data: 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nSABAAAARCdIAAAAANEJEgAAAEB0ggQAAAAQnSABAAAARCdIAAAAANEJEgAAAEB0ggQAAAAQnSABAAAARCdIAAAAANEJEgAAAEB0ggQAAAAQnSABAAAARCdIAAAAANEJEgAAAEB0ggQAAAAQnSABAAAARCdIAAAAANEJEgAAAEB0ggQAAAAQnSABAAAARCdIAAAAANEJEgAAAEB0ggQAAAAQnSABAAAARCdIAAAAANEJEgAAAEB0ggQAAAAQnSABAAAARCdIAAAAANEJEgAAAEB0ggQAAAAQnSABAAAARCdIAAAAANEJEgAAAEB0ggQAAAAQnSABAAAARCdIAAAAANEJEgAAAEB0ggQAAAAQnSABAAAARCdIAAAAANEJEgAAAEB0ggQAAAAQnSABAAAARCdIAAAAANEJEgAAAEB0ggQAAAAQnSABAAAARCdIAAAAANEJEgAAAEB0ggQAAAAQnSABAAAARCdIAAAAANEJEgAAAEB0ggQAAAAQnSABAAAARCdIAAAAANEJEgAAAEB0ggQAAAAQnSABAAAARCdIAAAAANEJEgAAAEB0ggQAAAAQnSABAAAARCdIAAAAANEJEgAAAEB0ggQAAAAQnSABAAAARCdIAAAAANEJEgAAAEB0ggQAAAAQnSABAAAARCdIAAAAANEJEgAAAEB0ggQAAAAQnSABAAAARCdIAAAAANEJEgAAAEB0ggQAAAAQnSABAAAARCdIAAAAANEJEgAAAEB0ggQAAAAQnSABAAAARCdIAAAAANEJEgAAAEBcSZL8f1HQsc8tcXUVAAAAAElFTkSuQmCC + mediatype: image/png + keywords: + - listener + maintainers: + - email: info@stackable.tech + name: Stackable GmbH + maturity: stable + provider: + name: Stackable GmbH + url: https://stackable.tech + version: 25.11.0 + minKubeVersion: 1.23.0 + replaces: null + skips: + - listener-operator.v25.7.0 + installModes: + - supported: true + type: OwnNamespace + - supported: true + type: SingleNamespace + - supported: true + type: MultiNamespace + - supported: true + type: AllNamespaces + + customresourcedefinitions: + owned: + # a list of CRDs that this operator owns + # name is the metadata.name of the CRD (which is of the form .) + - name: listenerclasses.listeners.stackable.tech + # version is the spec.versions[].name value defined in the CRD + version: v1alpha1 + # kind is the CamelCased singular value defined in spec.names.kind of the CRD. + kind: ListenerClass + # human-friendly display name of the CRD for rendering in graphical consoles (optional) + displayName: Listener Class + # a short description of the CRDs purpose for rendering in graphical consoles (optional) + description: Represents a Listener Class + - name: listeners.listeners.stackable.tech + version: v1alpha1 + kind: Listener + displayName: Listener + description: Represents a Listener + - name: podlisteners.listeners.stackable.tech + version: v1alpha1 + kind: PodListeners + displayName: PodListeners + description: Represents PodListeners of a Pod + + relatedImages: + - name: listener-operator + image: "oci.stackable.tech/sdp/listener-operator:0.0.0-pr344" + - name: csi-provisioner + image: "oci.stackable.tech/sdp/sig-storage/csi-provisioner:v5.3.0" + - name: csi-node-driver-registrar + image: "oci.stackable.tech/sdp/sig-storage/csi-node-driver-registrar:v2.15.0" + + install: + # strategy indicates what type of deployment artifacts are used + strategy: deployment + # spec for the deployment strategy is a list of deployment specs and required permissions - similar to a pod template used in a deployment + spec: + permissions: [] + # permissions required at the cluster scope + clusterPermissions: + - serviceAccountName: listener-operator-serviceaccount + rules: + - apiGroups: + - "" + resources: + - events + - services + verbs: + - get + - list + - watch + - create + - delete # Needed to set an ownerRef on already existing Services + - patch + - apiGroups: + - "" + resources: + - persistentvolumes + verbs: + - get + - list + - watch + - patch + - create + - delete + - apiGroups: + - "" + resources: + - nodes + - persistentvolumeclaims + - endpoints + verbs: + - get + - list + - watch + # For automatic cluster domain detection + - apiGroups: + - "" + resources: + - nodes/proxy + verbs: + - get + - apiGroups: + - storage.k8s.io + resources: + - csinodes + - storageclasses + verbs: + - get + - list + - watch + - apiGroups: + - "" + resources: + - pods + verbs: + - get + - patch + - apiGroups: + - events.k8s.io + resources: + - events + verbs: + - create + - patch + - apiGroups: + - listeners.stackable.tech + resources: + - listenerclasses + - listeners + verbs: + - get + - list + - watch + - apiGroups: + - listeners.stackable.tech + resources: + - listeners + - listeners/status + - listeners/finalizers + - podlisteners + verbs: + - patch + - create + - delete + - update + - apiGroups: + - security.openshift.io + resources: + - securitycontextconstraints + resourceNames: + - stackable-listener-operator-scc + verbs: + - use + + - serviceAccountName: listener-operator-deployer + rules: + - apiGroups: + - apps + resources: + - deployments + verbs: + - get + - list + - create + - patch + - apiGroups: + - apps + resources: + - daemonsets + verbs: + - create + - patch + - apiGroups: + - "" + resources: + - services + verbs: + - create + - patch + - apiGroups: + - storage.k8s.io + resources: + - csidrivers + - storageclasses + verbs: + - create + - patch + - apiGroups: + - listeners.stackable.tech + resources: + - listeners + - listenerclasses + verbs: + - create + - patch + - apiGroups: + - security.openshift.io + resources: + - securitycontextconstraints + verbs: + - get + - list + - create + - patch + + deployments: + - name: listener-operator-deployer-25.11.0 + spec: + replicas: 1 + strategy: + type: Recreate + selector: + matchLabels: + app.kubernetes.io/name: listener-operator-deployer + app.kubernetes.io/instance: listener-operator-deployer + template: + metadata: + labels: + app.kubernetes.io/name: listener-operator-deployer + app.kubernetes.io/instance: listener-operator-deployer + spec: + serviceAccountName: listener-operator-deployer + securityContext: {} + containers: + - name: listener-operator-deployer + securityContext: {} + image: "oci.stackable.tech/sdp/listener-operator:0.0.0-pr344" + imagePullPolicy: IfNotPresent + env: + - name: NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + resources: + limits: + cpu: 100m + memory: 512Mi + requests: + cpu: 100m + memory: 512Mi + command: ["/usr/bin/bash"] + args: + - "-c" + - "/usr/local/bin/stackable-listener-operator-olm-deployer run --dir /manifests --namespace $NAMESPACE --csv listener-operator.v25.11.0 --deployer listener-operator-deployer-25.11.0 --keep-alive" + volumeMounts: + - name: manifests + mountPath: /manifests + volumes: + - name: manifests + configMap: + name: listener-operator-deployer-manifests diff --git a/operators/stackable-listener-operator/25.11.0/metadata/annotations.yaml b/operators/stackable-listener-operator/25.11.0/metadata/annotations.yaml new file mode 100644 index 00000000000..82cc31ef88f --- /dev/null +++ b/operators/stackable-listener-operator/25.11.0/metadata/annotations.yaml @@ -0,0 +1,10 @@ +--- +annotations: + operators.operatorframework.io.bundle.channel.default.v1: "25.11" + operators.operatorframework.io.bundle.channels.v1: "stable,25.11" + operators.operatorframework.io.bundle.manifests.v1: manifests/ + operators.operatorframework.io.bundle.mediatype.v1: registry+v1 + operators.operatorframework.io.bundle.metadata.v1: metadata/ + operators.operatorframework.io.bundle.package.v1: stackable-listener-operator + + com.redhat.openshift.versions: v4.11-v4.19