diff --git a/charts/lh-operator/crds/lhcanaryaggregators.littlehorse.io-v1.yml b/charts/lh-operator/crds/lhcanaryaggregators.littlehorse.io-v1.yml new file mode 100644 index 0000000..b32f342 --- /dev/null +++ b/charts/lh-operator/crds/lhcanaryaggregators.littlehorse.io-v1.yml @@ -0,0 +1,134 @@ +# Generated by Fabric8 CRDGenerator, manual edits might get overwritten! +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + name: lhcanaryaggregators.littlehorse.io +spec: + group: littlehorse.io + names: + kind: LHCanaryAggregator + plural: lhcanaryaggregators + shortNames: + - lhca + singular: lhcanaryaggregator + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .status.problems + name: PROBLEMS + priority: 0 + type: string + name: v1 + schema: + openAPIV3Schema: + properties: + spec: + properties: + defaultLabels: + additionalProperties: + type: string + description: Labels to put on all created resources + type: object + image: + description: The Docker Image to use + type: string + imagePullPolicy: + description: Image Pull Policy for the Canary Image + enum: + - Always + - IfNotPresent + - Never + type: string + kafka: + description: Configures access to the Kafka cluster + properties: + lhKafkaRef: + description: Points to an LHKafka Cluster + properties: + clusterName: + description: The name of the `LHKaka` resource that the Aggregator + connects to + type: string + clusterWideQuotas: + description: Quotas for the Canary. Includes Metronomes as + well as the Aggregator since both share the same credentials. + properties: + consumerThroughputPerSecond: + anyOf: + - type: integer + - type: string + description: The throughput in bytes per second that may + be consumed by this Kafka principal + x-kubernetes-int-or-string: true + producerThroughputPerSecond: + anyOf: + - type: integer + - type: string + description: The throughput in bytes per second that may + be produced by this Kafka principal + x-kubernetes-int-or-string: true + required: + - producerThroughputPerSecond + - consumerThroughputPerSecond + type: object + required: + - clusterWideQuotas + type: object + partitions: + description: Number of partitions to use for the Canary's internal + Kafka topics + minimum: 1.0 + type: integer + replicationFactor: + description: Replication factor for the Canary Kafka Topics + minimum: 0.0 + type: integer + type: object + podMonitor: + description: Configures `PodMonitor` resources for the Aggregator + properties: + podMonitorLabels: + additionalProperties: + type: string + description: Labels to add to the generated `PodMonitor` resources + type: object + type: object + replicas: + description: Number of replicas for the LH Canary Statefulset + minimum: 1.0 + type: integer + storage: + description: Configures storage for the LHCanary Statefulset + properties: + storageClassName: + description: The name of the storageclass with which to provision + storage for the server + type: string + volumeSize: + anyOf: + - type: integer + - type: string + description: The size of the persistent volume. + x-kubernetes-int-or-string: true + required: + - storageClassName + - volumeSize + type: object + required: + - storage + - kafka + - imagePullPolicy + - image + type: object + status: + properties: + observedGeneration: + type: integer + problems: + type: string + type: object + type: object + served: true + storage: true + subresources: + status: {} diff --git a/charts/lh-operator/crds/lhclusters.littlehorse.io-v1.yml b/charts/lh-operator/crds/lhclusters.littlehorse.io-v1.yml index a01e30c..8bf8594 100644 --- a/charts/lh-operator/crds/lhclusters.littlehorse.io-v1.yml +++ b/charts/lh-operator/crds/lhclusters.littlehorse.io-v1.yml @@ -93,13 +93,15 @@ spec: anyOf: - type: integer - type: string - nullable: true + description: The throughput in bytes per second that may + be consumed by this Kafka principal x-kubernetes-int-or-string: true producerThroughputPerSecond: anyOf: - type: integer - type: string - nullable: true + description: The throughput in bytes per second that may + be produced by this Kafka principal x-kubernetes-int-or-string: true required: - producerThroughputPerSecond @@ -154,6 +156,7 @@ spec: podMonitor: properties: metricRelabelings: + description: Relabelings for the metrics exposed by the server items: properties: action: @@ -177,11 +180,14 @@ spec: podMonitorLabels: additionalProperties: type: string + description: Labels to add to the generated `PodMonitor` resources type: object type: object server: properties: authentication: + description: Determines how the LH Servers will determine Principal + identity nullable: true properties: mtls: @@ -223,18 +229,25 @@ spec: type: object type: object compute: + description: Specifies the compute resources allocated to the + Server pods nullable: true properties: cpu: anyOf: - type: integer - type: string + description: The amount of CPU to assign to the server pod. + Sets request and limit. Influences rocksdb and kafka streams + configs. nullable: true x-kubernetes-int-or-string: true memory: anyOf: - type: integer - type: string + description: The amount of memory to assign to the server + pod. Sets request and limit. Influences RocksDB Configs. nullable: true x-kubernetes-int-or-string: true type: object @@ -253,10 +266,20 @@ spec: description: The number of Kafka Streams standby replicas type: integer image: + description: Image to use for the LH Server + nullable: true type: string imagePullPolicy: + description: Image Pull Policy for LH Server Pods + enum: + - Always + - IfNotPresent + - Never + nullable: true type: string internalPort: + description: Configures authentication on the internal port used + for interactive queries properties: mtls: properties: @@ -274,9 +297,12 @@ spec: - mtls type: object lingerMs: + description: Desired value for `linger.ms` on the Command Producer. nullable: true type: integer listeners: + description: Listeners to expose on the LH Server for use by clients + of the LHCluster items: properties: advertisedListeners: @@ -309,6 +335,10 @@ spec: authentication: properties: type: + enum: + - MTLS + - NONE + - OAUTH type: string required: - type @@ -317,6 +347,9 @@ spec: nullable: true properties: ingress: + description: Specifies to create Ingress resources for + the listener. + nullable: true properties: ingressAnnotations: additionalProperties: @@ -327,22 +360,52 @@ spec: required: - ingressClassName type: object - istio: + tlsRoute: + description: Specifies to create TLSRoute according + to the Gateway API. Requires a listener with the 'Passthrough' + TLS mode enabled. + nullable: true properties: - gateway: + advertisedPort: + description: The advertised port. May differ from + Gateway port depending on load balancer configuration. + type: integer + gatewayRef: + description: Specifies the Gateway to create routes + for. properties: - port: + name: + description: The name of the Gateway. + type: string + namespace: + description: The namespace of the Gateway to + attach to. Defaults to current namespace. nullable: true - type: integer - selector: - additionalProperties: - type: string - type: object + type: string + sectionName: + description: "The sectionName, usually a port\ + \ name, of the referenced Gateway to attach\ + \ to." + type: string required: - - selector + - name + - sectionName + type: object + tlsRouteAnnotations: + additionalProperties: + type: string + description: Optional additional annotations to + apply to the generated TLSRoutes. + type: object + tlsRouteLabels: + additionalProperties: + type: string + description: Optional additional labels to apply + to the generated TLSRoutes. type: object required: - - gateway + - gatewayRef + - advertisedPort type: object type: object name: @@ -352,7 +415,14 @@ spec: tls: properties: issuerRef: - type: string + properties: + kind: + description: Kind of the CertManager Issuer or ClusterIssuer + type: string + name: + description: Name of the CertManager Issuer or ClusterIssuer + type: string + type: object secretRef: properties: name: @@ -367,6 +437,12 @@ spec: type: object type: array logLevel: + description: Log Level for the LH Server + enum: + - DEBUG + - INFO + - TRACE + - WARN type: string nodeSelector: additionalProperties: @@ -374,6 +450,8 @@ spec: description: Node Selector for LH Server pods. type: object operatorListener: + description: Configures a listener on the Servers for the Operator + to perform admin operations nullable: true properties: name: @@ -396,19 +474,25 @@ spec: nullable: true type: string rackAwareness: + description: Specifies rack awareness for the LH Servers nullable: true properties: zoneIds: + description: List of all possible Racks. Required to avoid + giving the Operator a ClusterRole. items: type: string type: array zoneKey: + description: The name of the label on K8s nodes which contains + the Rack information type: string required: - zoneKey - zoneIds type: object replicas: + description: Desired number of LH Server pods minimum: 1.0 type: integer serviceAnnotations: @@ -422,20 +506,31 @@ spec: description: Labels to put on LH Server Services type: object storage: + description: Specification for persistent storage used by the + server properties: storageClassName: + description: The name of the storageclass with which to provision + storage for the server type: string volumeSize: anyOf: - type: integer - type: string - nullable: true + description: The size of the persistent volume. x-kubernetes-int-or-string: true required: - storageClassName - volumeSize type: object streamsMetricsLevel: + description: Level of Kafka Streams metrics to collect. Setting + to DEBUG or TRACE impacts performance. + enum: + - DEBUG + - INFO + - TRACE + - WARN nullable: true type: string tolerations: @@ -455,6 +550,7 @@ spec: type: object type: array version: + description: Version of the LH Server to deploy type: string required: - replicas @@ -526,7 +622,6 @@ spec: anyOf: - type: integer - type: string - nullable: true x-kubernetes-int-or-string: true type: object type: object diff --git a/charts/lh-operator/crds/lhdashboards.littlehorse.io-v1.yml b/charts/lh-operator/crds/lhdashboards.littlehorse.io-v1.yml index cf6179b..5a39b7d 100644 --- a/charts/lh-operator/crds/lhdashboards.littlehorse.io-v1.yml +++ b/charts/lh-operator/crds/lhdashboards.littlehorse.io-v1.yml @@ -68,7 +68,6 @@ spec: anyOf: - type: integer - type: string - nullable: true x-kubernetes-int-or-string: true resource: type: string @@ -114,7 +113,6 @@ spec: anyOf: - type: integer - type: string - nullable: true x-kubernetes-int-or-string: true resource: type: string @@ -169,7 +167,6 @@ spec: anyOf: - type: integer - type: string - nullable: true x-kubernetes-int-or-string: true type: object requests: @@ -177,7 +174,6 @@ spec: anyOf: - type: integer - type: string - nullable: true x-kubernetes-int-or-string: true type: object type: object diff --git a/charts/lh-operator/crds/lhkafkas.littlehorse.io-v1.yml b/charts/lh-operator/crds/lhkafkas.littlehorse.io-v1.yml index 74ca738..bcc8b84 100644 --- a/charts/lh-operator/crds/lhkafkas.littlehorse.io-v1.yml +++ b/charts/lh-operator/crds/lhkafkas.littlehorse.io-v1.yml @@ -34,12 +34,17 @@ spec: anyOf: - type: integer - type: string + description: The amount of CPU to assign to the server pod. + Sets request and limit. Influences rocksdb and kafka streams + configs. nullable: true x-kubernetes-int-or-string: true memory: anyOf: - type: integer - type: string + description: The amount of memory to assign to the server + pod. Sets request and limit. Influences RocksDB Configs. nullable: true x-kubernetes-int-or-string: true type: object @@ -81,12 +86,14 @@ spec: storage: properties: storageClassName: + description: The name of the storageclass with which to provision + storage for the server type: string volumeSize: anyOf: - type: integer - type: string - nullable: true + description: The size of the persistent volume. x-kubernetes-int-or-string: true required: - storageClassName @@ -121,12 +128,17 @@ spec: anyOf: - type: integer - type: string + description: The amount of CPU to assign to the server pod. + Sets request and limit. Influences rocksdb and kafka streams + configs. nullable: true x-kubernetes-int-or-string: true memory: anyOf: - type: integer - type: string + description: The amount of memory to assign to the server + pod. Sets request and limit. Influences RocksDB Configs. nullable: true x-kubernetes-int-or-string: true type: object @@ -168,12 +180,14 @@ spec: storage: properties: storageClassName: + description: The name of the storageclass with which to provision + storage for the server type: string volumeSize: anyOf: - type: integer - type: string - nullable: true + description: The size of the persistent volume. x-kubernetes-int-or-string: true required: - storageClassName @@ -226,6 +240,8 @@ spec: type: integer numControllers: type: integer + observedGeneration: + type: integer ongoingRebalance: properties: dedicatedBrokersAfter: diff --git a/charts/lh-operator/crds/lhkafkausers.littlehorse.io-v1.yml b/charts/lh-operator/crds/lhkafkausers.littlehorse.io-v1.yml index 573382e..88d2362 100644 --- a/charts/lh-operator/crds/lhkafkausers.littlehorse.io-v1.yml +++ b/charts/lh-operator/crds/lhkafkausers.littlehorse.io-v1.yml @@ -46,13 +46,15 @@ spec: anyOf: - type: integer - type: string - nullable: true + description: The throughput in bytes per second that may be consumed + by this Kafka principal x-kubernetes-int-or-string: true producerThroughputPerSecond: anyOf: - type: integer - type: string - nullable: true + description: The throughput in bytes per second that may be produced + by this Kafka principal x-kubernetes-int-or-string: true required: - producerThroughputPerSecond diff --git a/charts/lh-operator/templates/deployment.yaml b/charts/lh-operator/templates/deployment.yaml index 555a93b..9e92718 100644 --- a/charts/lh-operator/templates/deployment.yaml +++ b/charts/lh-operator/templates/deployment.yaml @@ -47,8 +47,6 @@ spec: fieldPath: metadata.namespace - name: LHO_STRIMZI_ENABLED value: "{{ .Values.strimzi.enabled }}" - - name: LHO_ISTIO_ENABLED - value: "{{ .Values.istio.enabled }}" - name: LHO_CERTMANAGER_ENABLED value: "{{ .Values.certManager.enabled }}" - name: LHO_PROMETHEUS_ENABLED diff --git a/charts/lh-operator/templates/role.yaml b/charts/lh-operator/templates/role.yaml index 8b17a44..2f5ebf2 100644 --- a/charts/lh-operator/templates/role.yaml +++ b/charts/lh-operator/templates/role.yaml @@ -11,7 +11,7 @@ rules: resources: ["secrets", "pods", "configmaps", "serviceaccounts", "persistentvolumeclaims", "services"] verbs: ["get", "list", "watch", "create", "delete", "patch", "update"] - apiGroups: ["apps"] - resources: ["deployments"] + resources: ["deployments", "statefulsets"] verbs: ["get", "list", "watch", "create", "delete", "patch", "update"] - apiGroups: ["networking.k8s.io"] resources: ["ingresses"] @@ -22,16 +22,14 @@ rules: - apiGroups: ["littlehorse.io"] resources: ["*"] verbs: ["*"] +- apiGroups: ["gateway.networking.k8s.io"] + resources: ["tlsroutes"] + verbs: ["get", "list", "watch", "create", "delete", "patch", "update"] {{- if .Values.strimzi.enabled }} - apiGroups: ["kafka.strimzi.io"] resources: ["kafkausers", "kafkatopics", "kafkas", "kafkanodepools", "kafkarebalances"] verbs: ["get", "list", "watch", "create", "delete", "patch", "update"] {{- end -}} -{{- if .Values.istio.enabled }} -- apiGroups: ["networking.istio.io"] - resources: ["virtualservices", "gateways"] - verbs: ["get", "list", "watch", "create", "delete", "patch", "update"] -{{- end -}} {{- if .Values.certManager.enabled }} - apiGroups: ["cert-manager.io"] resources: ["certificates"] diff --git a/charts/lh-operator/values.yaml b/charts/lh-operator/values.yaml index c4efc72..24f9eb7 100644 --- a/charts/lh-operator/values.yaml +++ b/charts/lh-operator/values.yaml @@ -33,10 +33,6 @@ strimzi: # Specifies if the operator can create Strimzi topics and users enabled: true -istio: - # Specifies if the operator can create Istio VirtualServices - enabled: false - prometheus: # Specifies if the operator can create prometheus PodMonitors enabled: false @@ -79,4 +75,4 @@ affinity: {} helm: addHelmLabels: true -logLevel: INFO \ No newline at end of file +logLevel: INFO