diff --git a/operators/temporal-operator/0.13.1/manifests/temporal-operator-webhook-service_v1_service.yaml b/operators/temporal-operator/0.13.1/manifests/temporal-operator-webhook-service_v1_service.yaml
new file mode 100644
index 00000000000..f08f3b74954
--- /dev/null
+++ b/operators/temporal-operator/0.13.1/manifests/temporal-operator-webhook-service_v1_service.yaml
@@ -0,0 +1,21 @@
+apiVersion: v1
+kind: Service
+metadata:
+ creationTimestamp: null
+ labels:
+ app.kubernetes.io/component: webhook
+ app.kubernetes.io/created-by: temporal-operator
+ app.kubernetes.io/instance: webhook-service
+ app.kubernetes.io/managed-by: kustomize
+ app.kubernetes.io/name: service
+ app.kubernetes.io/part-of: temporal-operator
+ name: temporal-operator-webhook-service
+spec:
+ ports:
+ - port: 443
+ protocol: TCP
+ targetPort: 9443
+ selector:
+ control-plane: controller-manager
+status:
+ loadBalancer: {}
diff --git a/operators/temporal-operator/0.13.1/manifests/temporal-operator.clusterserviceversion.yaml b/operators/temporal-operator/0.13.1/manifests/temporal-operator.clusterserviceversion.yaml
new file mode 100644
index 00000000000..a4fd627797d
--- /dev/null
+++ b/operators/temporal-operator/0.13.1/manifests/temporal-operator.clusterserviceversion.yaml
@@ -0,0 +1,660 @@
+apiVersion: operators.coreos.com/v1alpha1
+kind: ClusterServiceVersion
+metadata:
+ annotations:
+ alm-examples: |-
+ [
+ {
+ "apiVersion": "temporal.io/v1beta1",
+ "kind": "TemporalCluster",
+ "metadata": {
+ "name": "prod",
+ "namespace": "demo"
+ },
+ "spec": {
+ "jobTtlSecondsAfterFinished": 300,
+ "numHistoryShards": 1,
+ "persistence": {
+ "defaultStore": {
+ "passwordSecretRef": {
+ "key": "PASSWORD",
+ "name": "postgres-password"
+ },
+ "sql": {
+ "connectAddr": "postgres.demo.svc.cluster.local:5432",
+ "connectProtocol": "tcp",
+ "databaseName": "temporal",
+ "pluginName": "postgres",
+ "user": "temporal"
+ }
+ },
+ "visibilityStore": {
+ "passwordSecretRef": {
+ "key": "PASSWORD",
+ "name": "postgres-password"
+ },
+ "sql": {
+ "connectAddr": "postgres.demo.svc.cluster.local:5432",
+ "connectProtocol": "tcp",
+ "databaseName": "temporal_visibility",
+ "pluginName": "postgres",
+ "user": "temporal"
+ }
+ }
+ },
+ "ui": {
+ "enabled": true
+ },
+ "version": "1.20.0"
+ }
+ },
+ {
+ "apiVersion": "temporal.io/v1beta1",
+ "kind": "TemporalClusterClient",
+ "metadata": {
+ "name": "my-worker",
+ "namespace": "demo"
+ },
+ "spec": {
+ "clusterRef": {
+ "name": "prod"
+ }
+ }
+ },
+ {
+ "apiVersion": "temporal.io/v1beta1",
+ "kind": "TemporalNamespace",
+ "metadata": {
+ "name": "accounting"
+ },
+ "spec": {
+ "clusterRef": {
+ "name": "prod"
+ },
+ "description": "Accounting team namespace",
+ "retentionPeriod": "168h"
+ }
+ },
+ {
+ "apiVersion": "temporal.io/v1beta1",
+ "kind": "TemporalWorkerProcess",
+ "metadata": {
+ "name": "temporalworkerprocess-sample"
+ },
+ "spec": {
+ "builder": {
+ "attempt": 3,
+ "buildDir": "samples-go/helloworld",
+ "buildRegistry": {
+ "passwordSecretRef": {
+ "key": "PASSWORD",
+ "name": "docker-password"
+ },
+ "repository": "docker.io",
+ "username": "ktenzer"
+ },
+ "enabled": false,
+ "gitRepository": {
+ "reference": {
+ "branch": "main"
+ },
+ "url": "https://github.com/ktenzer/samples-go.git"
+ },
+ "image": "quay.io/podman/stable",
+ "version": "latest"
+ },
+ "clusterRef": {
+ "name": "prod",
+ "namespace": "temporal"
+ },
+ "image": "ghcr.io/alexandrevilain/example-worker-process:latest",
+ "jobTtlSecondsAfterFinished": 300,
+ "pullPolicy": "Always",
+ "replicas": 3,
+ "temporalNamespace": "default",
+ "version": "latest"
+ }
+ }
+ ]
+ capabilities: Seamless Upgrades
+ categories: Application Runtime, Developer Tools, AI/Machine Learning
+ containerImage: ghcr.io/alexandrevilain/temporal-operator
+ createdAt: "2023-06-08T08:17:32Z"
+ operators.operatorframework.io/builder: operator-sdk-v1.26.1
+ operators.operatorframework.io/project_layout: go.kubebuilder.io/v3
+ name: temporal-operator.v0.13.1
+ namespace: placeholder
+spec:
+ apiservicedefinitions: {}
+ customresourcedefinitions:
+ owned:
+ - description: A TemporalClusterClient creates a new mTLS client in the targeted
+ temporal cluster.
+ displayName: Temporal Cluster Client
+ kind: TemporalClusterClient
+ name: temporalclusterclients.temporal.io
+ version: v1beta1
+ - description: TemporalCluster defines a temporal cluster deployment.
+ displayName: Temporal Cluster
+ kind: TemporalCluster
+ name: temporalclusters.temporal.io
+ version: v1beta1
+ - description: A TemporalNamespace creates a namespace in the targeted temporal
+ cluster.
+ displayName: Temporal Namespace
+ kind: TemporalNamespace
+ name: temporalnamespaces.temporal.io
+ version: v1beta1
+ - description: TemporalWorkerProcess is the Schema for the temporalworkerprocesses
+ API.
+ displayName: Temporal Worker Process
+ kind: TemporalWorkerProcess
+ name: temporalworkerprocesses.temporal.io
+ version: v1beta1
+ description: |
+ ## Temporal
+ Temporal is a durable workflow execution environment for applications. The Temporal operator will deploy all required Temporal server services and dependencies. You will need to deploy database, elasticsearch (optional) and prometheus/grafana (optional) separately. Temporal supports native MySQL, PostgreSQL or Cassandra databases.
+
+ ## Quick Setup
+ Follow these steps to deploy a Temporal cluster instance with a test PostgreSQL database.
+
+ ### Create Demo Namespace
+
+ $ kubectl apply -f https://raw.githubusercontent.com/alexandrevilain/temporal-operator/main/examples/cluster-postgres/00-namespace.yaml
+
+
+ ### Deploy PostgreSQL database
+
+ $ kubectl apply -f https://raw.githubusercontent.com/alexandrevilain/temporal-operator/main/examples/cluster-postgres/01-postgresql.yaml
+
+
+ ### Create TemporalCluster CustomResource
+
+ $ vi temporalcluster.yaml
+ apiVersion: temporal.io/v1beta1
+ kind: TemporalCluster
+ metadata:
+ name: prod
+ spec:
+ jobTtlSecondsAfterFinished: 300
+ numHistoryShards: 512
+ persistence:
+ defaultStore:
+ passwordSecretRef:
+ key: PASSWORD
+ name: postgres-password
+ sql:
+ connectAddr: 'postgres.demo.svc.cluster.local:5432'
+ connectProtocol: tcp
+ databaseName: temporal
+ pluginName: postgres
+ user: temporal
+ visibilityStore:
+ passwordSecretRef:
+ key: PASSWORD
+ name: postgres-password
+ sql:
+ connectAddr: 'postgres.demo.svc.cluster.local:5432'
+ connectProtocol: tcp
+ databaseName: temporal_visibility
+ pluginName: postgres
+ user: temporal
+ ui:
+ enabled: true
+ version: 1.20.0
+
+
+ ### Apply TemporalCluster CustomResource
+
+ $ kubectl apply -f temporal.yaml -n demo
+
+ displayName: Temporal Operator
+ icon:
+ - base64data: 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
+ mediatype: image/png
+ install:
+ spec:
+ clusterPermissions:
+ - rules:
+ - apiGroups:
+ - ""
+ resources:
+ - configmaps
+ verbs:
+ - create
+ - get
+ - list
+ - update
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - events
+ verbs:
+ - create
+ - get
+ - patch
+ - apiGroups:
+ - ""
+ resources:
+ - secrets
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - update
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - serviceaccounts
+ verbs:
+ - create
+ - get
+ - list
+ - update
+ - watch
+ - apiGroups:
+ - ""
+ resources:
+ - services
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - update
+ - watch
+ - apiGroups:
+ - apps
+ resources:
+ - deployments
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - update
+ - watch
+ - apiGroups:
+ - batch
+ resources:
+ - jobs
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - update
+ - watch
+ - apiGroups:
+ - cert-manager.io
+ resources:
+ - certificates
+ - issuers
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - update
+ - watch
+ - apiGroups:
+ - monitoring.coreos.com
+ resources:
+ - servicemonitors
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - update
+ - watch
+ - apiGroups:
+ - networking.istio.io
+ resources:
+ - destinationrules
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - update
+ - watch
+ - apiGroups:
+ - networking.k8s.io
+ resources:
+ - ingresses
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - update
+ - watch
+ - apiGroups:
+ - security.istio.io
+ resources:
+ - peerauthentications
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - update
+ - watch
+ - apiGroups:
+ - temporal.io
+ resources:
+ - temporalclusterclients
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - temporal.io
+ resources:
+ - temporalclusterclients/finalizers
+ verbs:
+ - update
+ - apiGroups:
+ - temporal.io
+ resources:
+ - temporalclusterclients/status
+ verbs:
+ - get
+ - patch
+ - update
+ - apiGroups:
+ - temporal.io
+ resources:
+ - temporalclusters
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - temporal.io
+ resources:
+ - temporalclusters/finalizers
+ verbs:
+ - update
+ - apiGroups:
+ - temporal.io
+ resources:
+ - temporalclusters/status
+ verbs:
+ - get
+ - patch
+ - update
+ - apiGroups:
+ - temporal.io
+ resources:
+ - temporalnamespaces
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - temporal.io
+ resources:
+ - temporalnamespaces/finalizers
+ verbs:
+ - update
+ - apiGroups:
+ - temporal.io
+ resources:
+ - temporalnamespaces/status
+ verbs:
+ - get
+ - patch
+ - update
+ - apiGroups:
+ - temporal.io
+ resources:
+ - temporalworkerprocesses
+ verbs:
+ - create
+ - delete
+ - get
+ - list
+ - patch
+ - update
+ - watch
+ - apiGroups:
+ - temporal.io
+ resources:
+ - temporalworkerprocesses/finalizers
+ verbs:
+ - update
+ - apiGroups:
+ - temporal.io
+ resources:
+ - temporalworkerprocesses/status
+ verbs:
+ - get
+ - patch
+ - update
+ serviceAccountName: temporal-operator-controller-manager
+ deployments:
+ - label:
+ control-plane: controller-manager
+ name: temporal-operator-controller-manager
+ spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ control-plane: controller-manager
+ strategy: {}
+ template:
+ metadata:
+ annotations:
+ kubectl.kubernetes.io/default-container: manager
+ labels:
+ control-plane: controller-manager
+ spec:
+ containers:
+ - args:
+ - --leader-elect
+ command:
+ - /manager
+ image: ghcr.io/alexandrevilain/temporal-operator:v0.13.1
+ 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:
+ limits:
+ cpu: 500m
+ memory: 128Mi
+ requests:
+ cpu: 10m
+ memory: 64Mi
+ securityContext:
+ allowPrivilegeEscalation: false
+ volumeMounts:
+ - mountPath: /tmp/k8s-webhook-server/serving-certs
+ name: cert
+ readOnly: true
+ securityContext:
+ runAsNonRoot: true
+ serviceAccountName: temporal-operator-controller-manager
+ terminationGracePeriodSeconds: 10
+ volumes:
+ - name: cert
+ secret:
+ defaultMode: 420
+ secretName: webhook-server-cert
+ permissions:
+ - rules:
+ - apiGroups:
+ - ""
+ resources:
+ - configmaps
+ verbs:
+ - get
+ - list
+ - watch
+ - create
+ - update
+ - patch
+ - delete
+ - apiGroups:
+ - coordination.k8s.io
+ resources:
+ - leases
+ verbs:
+ - get
+ - list
+ - watch
+ - create
+ - update
+ - patch
+ - delete
+ - apiGroups:
+ - ""
+ resources:
+ - events
+ verbs:
+ - create
+ - patch
+ serviceAccountName: temporal-operator-controller-manager
+ strategy: deployment
+ installModes:
+ - supported: true
+ type: OwnNamespace
+ - supported: true
+ type: SingleNamespace
+ - supported: true
+ type: MultiNamespace
+ - supported: true
+ type: AllNamespaces
+ keywords:
+ - durable
+ - execution
+ - workflow
+ - sdk
+ - application
+ - distributed
+ links:
+ - name: Temporal Operator
+ url: https://github.com/alexandrevilain/temporal-operator
+ maintainers:
+ - email: alexandre.vilain@me.com
+ name: alexandrevilain
+ - email: keith.tenzer@temporal.io
+ name: ktenzer
+ maturity: alpha
+ minKubeVersion: 1.22.0
+ provider:
+ name: Temporal Community
+ url: https://temporal.io/
+ replaces: temporal-operator.v0.13.0
+ version: 0.13.1
+ webhookdefinitions:
+ - admissionReviewVersions:
+ - v1
+ containerPort: 443
+ deploymentName: temporal-operator-controller-manager
+ failurePolicy: Fail
+ generateName: mtemporalc.kb.io
+ rules:
+ - apiGroups:
+ - temporal.io
+ apiVersions:
+ - v1beta1
+ operations:
+ - CREATE
+ - UPDATE
+ resources:
+ - temporalclusters
+ sideEffects: None
+ targetPort: 9443
+ type: MutatingAdmissionWebhook
+ webhookPath: /mutate-temporal-io-v1beta1-temporalcluster
+ - admissionReviewVersions:
+ - v1
+ containerPort: 443
+ deploymentName: temporal-operator-controller-manager
+ failurePolicy: Fail
+ generateName: mtemporalworkerprocess.kb.io
+ rules:
+ - apiGroups:
+ - temporal.io
+ apiVersions:
+ - v1beta1
+ operations:
+ - CREATE
+ - UPDATE
+ resources:
+ - temporalworkerprocesses
+ sideEffects: None
+ targetPort: 9443
+ type: MutatingAdmissionWebhook
+ webhookPath: /mutate-temporal-io-v1beta1-temporalworkerprocess
+ - admissionReviewVersions:
+ - v1
+ containerPort: 443
+ deploymentName: temporal-operator-controller-manager
+ failurePolicy: Fail
+ generateName: vtemporalc.kb.io
+ rules:
+ - apiGroups:
+ - temporal.io
+ apiVersions:
+ - v1beta1
+ operations:
+ - CREATE
+ - UPDATE
+ resources:
+ - temporalclusters
+ sideEffects: None
+ targetPort: 9443
+ type: ValidatingAdmissionWebhook
+ webhookPath: /validate-temporal-io-v1beta1-temporalcluster
+ - admissionReviewVersions:
+ - v1
+ containerPort: 443
+ deploymentName: temporal-operator-controller-manager
+ failurePolicy: Fail
+ generateName: vtemporalworkerprocess.kb.io
+ rules:
+ - apiGroups:
+ - temporal.io
+ apiVersions:
+ - v1beta1
+ operations:
+ - CREATE
+ - UPDATE
+ resources:
+ - temporalworkerprocesses
+ sideEffects: None
+ targetPort: 9443
+ type: ValidatingAdmissionWebhook
+ webhookPath: /validate-temporal-io-v1beta1-temporalworkerprocess
diff --git a/operators/temporal-operator/0.13.1/manifests/temporal.io_temporalclusterclients.yaml b/operators/temporal-operator/0.13.1/manifests/temporal.io_temporalclusterclients.yaml
new file mode 100644
index 00000000000..739296bab04
--- /dev/null
+++ b/operators/temporal-operator/0.13.1/manifests/temporal.io_temporalclusterclients.yaml
@@ -0,0 +1,83 @@
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.11.3
+ creationTimestamp: null
+ name: temporalclusterclients.temporal.io
+spec:
+ group: temporal.io
+ names:
+ kind: TemporalClusterClient
+ listKind: TemporalClusterClientList
+ plural: temporalclusterclients
+ singular: temporalclusterclient
+ scope: Namespaced
+ versions:
+ - name: v1beta1
+ schema:
+ openAPIV3Schema:
+ description: A TemporalClusterClient creates a new mTLS client in the targeted
+ temporal cluster.
+ 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: TemporalClusterClientSpec defines the desired state of ClusterClient.
+ properties:
+ clusterRef:
+ description: Reference to the temporal cluster the client will get
+ access to.
+ properties:
+ name:
+ description: The name of the TemporalCluster to reference.
+ type: string
+ namespace:
+ description: The namespace of the TemporalCluster to reference.
+ Defaults to the namespace of the requested resource if omitted.
+ type: string
+ type: object
+ required:
+ - clusterRef
+ type: object
+ status:
+ description: TemporalClusterClientStatus defines the observed state of
+ ClusterClient.
+ properties:
+ secretRef:
+ description: Reference to the Kubernetes Secret containing the certificate
+ for the client.
+ properties:
+ 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
+ type: object
+ x-kubernetes-map-type: atomic
+ serverName:
+ description: ServerName is the hostname returned by the certificate.
+ type: string
+ required:
+ - serverName
+ type: object
+ type: object
+ served: true
+ storage: true
+ subresources:
+ status: {}
+status:
+ acceptedNames:
+ kind: ""
+ plural: ""
+ conditions: null
+ storedVersions: null
diff --git a/operators/temporal-operator/0.13.1/manifests/temporal.io_temporalclusters.yaml b/operators/temporal-operator/0.13.1/manifests/temporal.io_temporalclusters.yaml
new file mode 100644
index 00000000000..273f9b42dbc
--- /dev/null
+++ b/operators/temporal-operator/0.13.1/manifests/temporal.io_temporalclusters.yaml
@@ -0,0 +1,2662 @@
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.11.3
+ creationTimestamp: null
+ name: temporalclusters.temporal.io
+spec:
+ group: temporal.io
+ names:
+ kind: TemporalCluster
+ listKind: TemporalClusterList
+ plural: temporalclusters
+ singular: temporalcluster
+ scope: Namespaced
+ versions:
+ - additionalPrinterColumns:
+ - jsonPath: .status.conditions[?(@.type == 'Ready')].status
+ name: Ready
+ type: string
+ - jsonPath: .status.conditions[?(@.type == 'ReconcileSuccess')].status
+ name: ReconcileSuccess
+ type: string
+ - jsonPath: .metadata.creationTimestamp
+ name: Age
+ type: date
+ name: v1beta1
+ schema:
+ openAPIV3Schema:
+ description: TemporalCluster defines a temporal cluster deployment.
+ 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: Specification of the desired behavior of the Temporal cluster.
+ properties:
+ admintools:
+ description: AdminTools allows configuration of the optional admin
+ tool pod deployed alongside the cluster.
+ properties:
+ enabled:
+ description: Enabled defines if the operator should deploy the
+ admin tools alongside the cluster.
+ type: boolean
+ image:
+ description: Image defines the temporal admin tools docker image
+ the instance should run.
+ type: string
+ type: object
+ dynamicConfig:
+ description: DynamicConfig allows advanced configuration for the temporal
+ cluster.
+ properties:
+ pollInterval:
+ description: PollInterval defines how often the config should
+ be updated by checking provided values. Defaults to 10s.
+ type: string
+ values:
+ additionalProperties:
+ items:
+ description: ConstrainedValue is an alias for temporal's dynamicconfig.ConstrainedValue.
+ properties:
+ constraints:
+ description: Constraints describe under what conditions
+ a ConstrainedValue should be used.
+ properties:
+ namespace:
+ type: string
+ namespaceId:
+ type: string
+ shardId:
+ format: int32
+ type: integer
+ taskQueueName:
+ type: string
+ taskQueueType:
+ type: string
+ taskType:
+ type: string
+ type: object
+ value:
+ description: 'Value is the value for the configuration
+ key. The type of the Value field depends on the key.
+ Acceptable types will be one of: int, float64, bool,
+ string, map[string]any, time.Duration'
+ x-kubernetes-preserve-unknown-fields: true
+ required:
+ - value
+ type: object
+ type: array
+ description: Values contains all dynamic config keys and their
+ constained values.
+ type: object
+ required:
+ - values
+ type: object
+ image:
+ description: Image defines the temporal server docker image the cluster
+ should use for each services.
+ type: string
+ imagePullSecrets:
+ description: An optional list of references to secrets in the same
+ namespace to use for pulling temporal images from registries.
+ items:
+ description: LocalObjectReference contains enough information to
+ let you locate the referenced object inside the same namespace.
+ properties:
+ 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
+ type: object
+ x-kubernetes-map-type: atomic
+ type: array
+ jobTtlSecondsAfterFinished:
+ default: 300
+ description: JobTTLSecondsAfterFinished is amount of time to keep
+ job pods after jobs are completed. Defaults to 300 seconds.
+ format: int32
+ minimum: 1
+ type: integer
+ mTLS:
+ description: MTLS allows configuration of the network traffic encryption
+ for the cluster.
+ properties:
+ certificatesDuration:
+ description: CertificatesDuration allows configuration of maximum
+ certificates lifetime. Useless if mTLS provider is not cert-manager.
+ properties:
+ clientCertificates:
+ description: ClientCertificates is the 'duration' (i.e. lifetime)
+ of the client certificates. It defaults to 1 year.
+ type: string
+ frontendCertificate:
+ description: FrontendCertificate is the 'duration' (i.e. lifetime)
+ of the frontend certificate. It defaults to 1 year.
+ type: string
+ intermediateCAsCertificates:
+ description: IntermediateCACertificates is the 'duration'
+ (i.e. lifetime) of the intermediate CAs Certificates. It
+ defaults to 5 years.
+ type: string
+ internodeCertificate:
+ description: InternodeCertificate is the 'duration' (i.e.
+ lifetime) of the internode certificate. It defaults to 1
+ year.
+ type: string
+ rootCACertificate:
+ description: RootCACertificate is the 'duration' (i.e. lifetime)
+ of the Root CA Certificate. It defaults to 10 years.
+ type: string
+ type: object
+ frontend:
+ description: Frontend allows configuration of the frontend's public
+ endpoint traffic encryption. Useless if mTLS provider is not
+ cert-manager.
+ properties:
+ enabled:
+ description: Enabled defines if the operator should enable
+ mTLS for cluster's public endpoints.
+ type: boolean
+ type: object
+ internode:
+ description: Internode allows configuration of the internode traffic
+ encryption. Useless if mTLS provider is not cert-manager.
+ properties:
+ enabled:
+ description: Enabled defines if the operator should enable
+ mTLS for network between cluster nodes.
+ type: boolean
+ type: object
+ provider:
+ default: cert-manager
+ description: Provider defines the tool used to manage mTLS certificates.
+ enum:
+ - cert-manager
+ - linkerd
+ - istio
+ type: string
+ refreshInterval:
+ description: RefreshInterval defines interval between refreshes
+ of certificates in the cluster components. Defaults to 1 hour.
+ Useless if mTLS provider is not cert-manager.
+ type: string
+ type: object
+ metrics:
+ description: Metrics allows configuration of scraping endpoints for
+ stats. prometheus or m3.
+ properties:
+ enabled:
+ description: Enabled defines if the operator should enable metrics
+ exposition on temporal components.
+ type: boolean
+ prometheus:
+ description: Prometheus reporter configuration.
+ properties:
+ listenAddress:
+ description: Deprecated. Address for prometheus to serve metrics
+ from.
+ type: string
+ listenPort:
+ description: ListenPort for prometheus to serve metrics from.
+ format: int32
+ type: integer
+ scrapeConfig:
+ description: ScrapeConfig is the prometheus scrape configuration.
+ properties:
+ annotations:
+ description: Annotations defines if the operator should
+ add prometheus scrape annotations to the services pods.
+ type: boolean
+ serviceMonitor:
+ description: PrometheusScrapeConfigServiceMonitor is the
+ configuration for prometheus operator ServiceMonitor.
+ properties:
+ enabled:
+ description: Enabled defines if the operator should
+ create a ServiceMonitor for each services.
+ type: boolean
+ metricRelabelings:
+ description: MetricRelabelConfigs to apply to samples
+ before ingestion.
+ items:
+ description: 'RelabelConfig allows dynamic rewriting
+ of the label set, being applied to samples before
+ ingestion. It defines ``-section
+ of Prometheus configuration. More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs'
+ properties:
+ action:
+ default: replace
+ description: Action to perform based on regex
+ matching. Default is 'replace'. uppercase
+ and lowercase actions require Prometheus >=
+ 2.36.
+ enum:
+ - replace
+ - Replace
+ - keep
+ - Keep
+ - drop
+ - Drop
+ - hashmod
+ - HashMod
+ - labelmap
+ - LabelMap
+ - labeldrop
+ - LabelDrop
+ - labelkeep
+ - LabelKeep
+ - lowercase
+ - Lowercase
+ - uppercase
+ - Uppercase
+ - keepequal
+ - KeepEqual
+ - dropequal
+ - DropEqual
+ type: string
+ modulus:
+ description: Modulus to take of the hash of
+ the source label values.
+ format: int64
+ type: integer
+ regex:
+ description: Regular expression against which
+ the extracted value is matched. Default is
+ '(.*)'
+ type: string
+ replacement:
+ description: Replacement value against which
+ a regex replace is performed if the regular
+ expression matches. Regex capture groups are
+ available. Default is '$1'
+ type: string
+ separator:
+ description: Separator placed between concatenated
+ source label values. default is ';'.
+ type: string
+ sourceLabels:
+ description: The source labels select values
+ from existing labels. Their content is concatenated
+ using the configured separator and matched
+ against the configured regular expression
+ for the replace, keep, and drop actions.
+ items:
+ description: LabelName is a valid Prometheus
+ label name which may only contain ASCII
+ letters, numbers, as well as underscores.
+ pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$
+ type: string
+ type: array
+ targetLabel:
+ description: Label to which the resulting value
+ is written in a replace action. It is mandatory
+ for replace actions. Regex capture groups
+ are available.
+ type: string
+ type: object
+ type: array
+ override:
+ description: Override allows customization of the
+ created ServiceMonitor. All fields can be overritten
+ except "endpoints", "selector" and "namespaceSelector".
+ properties:
+ attachMetadata:
+ description: Attaches node metadata to discovered
+ targets. Requires Prometheus v2.37.0 and above.
+ properties:
+ node:
+ description: When set to true, Prometheus
+ must have permissions to get Nodes.
+ type: boolean
+ type: object
+ endpoints:
+ description: A list of endpoints allowed as part
+ of this ServiceMonitor.
+ items:
+ description: Endpoint defines a scrapeable endpoint
+ serving Prometheus metrics.
+ properties:
+ authorization:
+ description: Authorization section for this
+ endpoint
+ properties:
+ credentials:
+ description: The secret's key that contains
+ the credentials of the request
+ 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:
+ description: Set the authentication
+ type. Defaults to Bearer, Basic will
+ cause an error
+ type: string
+ type: object
+ basicAuth:
+ description: 'BasicAuth allow an endpoint
+ to authenticate over basic authentication
+ More info: https://prometheus.io/docs/operating/configuration/#endpoints'
+ properties:
+ password:
+ description: The secret in the service
+ monitor namespace that contains the
+ 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
+ username:
+ description: The secret in the service
+ monitor namespace that contains the
+ 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
+ bearerTokenFile:
+ description: File to read bearer token for
+ scraping targets.
+ type: string
+ bearerTokenSecret:
+ description: Secret to mount to read bearer
+ token for scraping targets. The secret
+ needs to be in the same namespace as the
+ service monitor and accessible by the
+ Prometheus Operator.
+ 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
+ enableHttp2:
+ description: Whether to enable HTTP2.
+ type: boolean
+ filterRunning:
+ description: 'Drop pods that are not running.
+ (Failed, Succeeded). Enabled by default.
+ More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-phase'
+ type: boolean
+ followRedirects:
+ description: FollowRedirects configures
+ whether scrape requests follow HTTP 3xx
+ redirects.
+ type: boolean
+ honorLabels:
+ description: HonorLabels chooses the metric's
+ labels on collisions with target labels.
+ type: boolean
+ honorTimestamps:
+ description: HonorTimestamps controls whether
+ Prometheus respects the timestamps present
+ in scraped data.
+ type: boolean
+ interval:
+ description: Interval at which metrics should
+ be scraped If not specified Prometheus'
+ global scrape interval is used.
+ pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$
+ type: string
+ metricRelabelings:
+ description: MetricRelabelConfigs to apply
+ to samples before ingestion.
+ items:
+ description: 'RelabelConfig allows dynamic
+ rewriting of the label set, being applied
+ to samples before ingestion. It defines
+ ``-section of
+ Prometheus configuration. More info:
+ https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs'
+ properties:
+ action:
+ default: replace
+ description: Action to perform based
+ on regex matching. Default is 'replace'.
+ uppercase and lowercase actions
+ require Prometheus >= 2.36.
+ enum:
+ - replace
+ - Replace
+ - keep
+ - Keep
+ - drop
+ - Drop
+ - hashmod
+ - HashMod
+ - labelmap
+ - LabelMap
+ - labeldrop
+ - LabelDrop
+ - labelkeep
+ - LabelKeep
+ - lowercase
+ - Lowercase
+ - uppercase
+ - Uppercase
+ - keepequal
+ - KeepEqual
+ - dropequal
+ - DropEqual
+ type: string
+ modulus:
+ description: Modulus to take of the
+ hash of the source label values.
+ format: int64
+ type: integer
+ regex:
+ description: Regular expression against
+ which the extracted value is matched.
+ Default is '(.*)'
+ type: string
+ replacement:
+ description: Replacement value against
+ which a regex replace is performed
+ if the regular expression matches.
+ Regex capture groups are available.
+ Default is '$1'
+ type: string
+ separator:
+ description: Separator placed between
+ concatenated source label values.
+ default is ';'.
+ type: string
+ sourceLabels:
+ description: The source labels select
+ values from existing labels. Their
+ content is concatenated using the
+ configured separator and matched
+ against the configured regular expression
+ for the replace, keep, and drop
+ actions.
+ items:
+ description: LabelName is a valid
+ Prometheus label name which may
+ only contain ASCII letters, numbers,
+ as well as underscores.
+ pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$
+ type: string
+ type: array
+ targetLabel:
+ description: Label to which the resulting
+ value is written in a replace action.
+ It is mandatory for replace actions.
+ Regex capture groups are available.
+ type: string
+ type: object
+ type: array
+ oauth2:
+ description: OAuth2 for the URL. Only valid
+ in Prometheus versions 2.27.0 and newer.
+ properties:
+ clientId:
+ description: The secret or configmap
+ containing the OAuth2 client id
+ properties:
+ configMap:
+ description: ConfigMap containing
+ data to use for the targets.
+ properties:
+ key:
+ description: The key to select.
+ 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 ConfigMap or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ secret:
+ description: Secret containing data
+ to use for the targets.
+ 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
+ clientSecret:
+ description: The secret containing the
+ OAuth2 client secret
+ 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
+ endpointParams:
+ additionalProperties:
+ type: string
+ description: Parameters to append to
+ the token URL
+ type: object
+ scopes:
+ description: OAuth2 scopes used for
+ the token request
+ items:
+ type: string
+ type: array
+ tokenUrl:
+ description: The URL to fetch the token
+ from
+ minLength: 1
+ type: string
+ required:
+ - clientId
+ - clientSecret
+ - tokenUrl
+ type: object
+ params:
+ additionalProperties:
+ items:
+ type: string
+ type: array
+ description: Optional HTTP URL parameters
+ type: object
+ path:
+ description: HTTP path to scrape for metrics.
+ If empty, Prometheus uses the default
+ value (e.g. `/metrics`).
+ type: string
+ port:
+ description: Name of the service port this
+ endpoint refers to. Mutually exclusive
+ with targetPort.
+ type: string
+ proxyUrl:
+ description: ProxyURL eg http://proxyserver:2195
+ Directs scrapes to proxy through this
+ endpoint.
+ type: string
+ relabelings:
+ description: 'RelabelConfigs to apply to
+ samples before scraping. Prometheus Operator
+ automatically adds relabelings for a few
+ standard Kubernetes fields. The original
+ scrape job''s name is available via the
+ `__tmp_prometheus_job_name` label. More
+ info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config'
+ items:
+ description: 'RelabelConfig allows dynamic
+ rewriting of the label set, being applied
+ to samples before ingestion. It defines
+ ``-section of
+ Prometheus configuration. More info:
+ https://prometheus.io/docs/prometheus/latest/configuration/configuration/#metric_relabel_configs'
+ properties:
+ action:
+ default: replace
+ description: Action to perform based
+ on regex matching. Default is 'replace'.
+ uppercase and lowercase actions
+ require Prometheus >= 2.36.
+ enum:
+ - replace
+ - Replace
+ - keep
+ - Keep
+ - drop
+ - Drop
+ - hashmod
+ - HashMod
+ - labelmap
+ - LabelMap
+ - labeldrop
+ - LabelDrop
+ - labelkeep
+ - LabelKeep
+ - lowercase
+ - Lowercase
+ - uppercase
+ - Uppercase
+ - keepequal
+ - KeepEqual
+ - dropequal
+ - DropEqual
+ type: string
+ modulus:
+ description: Modulus to take of the
+ hash of the source label values.
+ format: int64
+ type: integer
+ regex:
+ description: Regular expression against
+ which the extracted value is matched.
+ Default is '(.*)'
+ type: string
+ replacement:
+ description: Replacement value against
+ which a regex replace is performed
+ if the regular expression matches.
+ Regex capture groups are available.
+ Default is '$1'
+ type: string
+ separator:
+ description: Separator placed between
+ concatenated source label values.
+ default is ';'.
+ type: string
+ sourceLabels:
+ description: The source labels select
+ values from existing labels. Their
+ content is concatenated using the
+ configured separator and matched
+ against the configured regular expression
+ for the replace, keep, and drop
+ actions.
+ items:
+ description: LabelName is a valid
+ Prometheus label name which may
+ only contain ASCII letters, numbers,
+ as well as underscores.
+ pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$
+ type: string
+ type: array
+ targetLabel:
+ description: Label to which the resulting
+ value is written in a replace action.
+ It is mandatory for replace actions.
+ Regex capture groups are available.
+ type: string
+ type: object
+ type: array
+ scheme:
+ description: HTTP scheme to use for scraping.
+ `http` and `https` are the expected values
+ unless you rewrite the `__scheme__` label
+ via relabeling. If empty, Prometheus uses
+ the default value `http`.
+ enum:
+ - http
+ - https
+ type: string
+ scrapeTimeout:
+ description: Timeout after which the scrape
+ is ended If not specified, the Prometheus
+ global scrape timeout is used unless it
+ is less than `Interval` in which the latter
+ is used.
+ pattern: ^(0|(([0-9]+)y)?(([0-9]+)w)?(([0-9]+)d)?(([0-9]+)h)?(([0-9]+)m)?(([0-9]+)s)?(([0-9]+)ms)?)$
+ type: string
+ targetPort:
+ anyOf:
+ - type: integer
+ - type: string
+ description: Name or number of the target
+ port of the Pod behind the Service, the
+ port must be specified with container
+ port property. Mutually exclusive with
+ port.
+ x-kubernetes-int-or-string: true
+ tlsConfig:
+ description: TLS configuration to use when
+ scraping the endpoint
+ properties:
+ ca:
+ description: Certificate authority used
+ when verifying server certificates.
+ properties:
+ configMap:
+ description: ConfigMap containing
+ data to use for the targets.
+ properties:
+ key:
+ description: The key to select.
+ 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 ConfigMap or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ secret:
+ description: Secret containing data
+ to use for the targets.
+ 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
+ caFile:
+ description: Path to the CA cert in
+ the Prometheus container to use for
+ the targets.
+ type: string
+ cert:
+ description: Client certificate to present
+ when doing client-authentication.
+ properties:
+ configMap:
+ description: ConfigMap containing
+ data to use for the targets.
+ properties:
+ key:
+ description: The key to select.
+ 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 ConfigMap or its key must
+ be defined
+ type: boolean
+ required:
+ - key
+ type: object
+ x-kubernetes-map-type: atomic
+ secret:
+ description: Secret containing data
+ to use for the targets.
+ 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
+ certFile:
+ description: Path to the client cert
+ file in the Prometheus container for
+ the targets.
+ type: string
+ insecureSkipVerify:
+ description: Disable target certificate
+ validation.
+ type: boolean
+ keyFile:
+ description: Path to the client key
+ file in the Prometheus container for
+ the targets.
+ type: string
+ keySecret:
+ description: Secret containing the client
+ key file for the targets.
+ 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
+ serverName:
+ description: Used to verify the hostname
+ for the targets.
+ type: string
+ type: object
+ type: object
+ type: array
+ jobLabel:
+ description: "JobLabel selects the label from
+ the associated Kubernetes service which will
+ be used as the `job` label for all metrics.
+ \n For example: If in `ServiceMonitor.spec.jobLabel:
+ foo` and in `Service.metadata.labels.foo: bar`,
+ then the `job=\"bar\"` label is added to all
+ metrics. \n If the value of this field is empty
+ or if the label doesn't exist for the given
+ Service, the `job` label of the metrics defaults
+ to the name of the Kubernetes Service."
+ type: string
+ labelLimit:
+ description: Per-scrape limit on number of labels
+ that will be accepted for a sample. Only valid
+ in Prometheus versions 2.27.0 and newer.
+ format: int64
+ type: integer
+ labelNameLengthLimit:
+ description: Per-scrape limit on length of labels
+ name that will be accepted for a sample. Only
+ valid in Prometheus versions 2.27.0 and newer.
+ format: int64
+ type: integer
+ labelValueLengthLimit:
+ description: Per-scrape limit on length of labels
+ value that will be accepted for a sample. Only
+ valid in Prometheus versions 2.27.0 and newer.
+ format: int64
+ type: integer
+ namespaceSelector:
+ description: Selector to select which namespaces
+ the Kubernetes Endpoints objects are discovered
+ from.
+ properties:
+ any:
+ description: Boolean describing whether all
+ namespaces are selected in contrast to a
+ list restricting them.
+ type: boolean
+ matchNames:
+ description: List of namespace names to select
+ from.
+ items:
+ type: string
+ type: array
+ type: object
+ podTargetLabels:
+ description: PodTargetLabels transfers labels
+ on the Kubernetes `Pod` onto the created metrics.
+ items:
+ type: string
+ type: array
+ sampleLimit:
+ description: SampleLimit defines per-scrape limit
+ on number of scraped samples that will be accepted.
+ format: int64
+ type: integer
+ selector:
+ description: Selector to select Endpoints objects.
+ 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
+ targetLabels:
+ description: TargetLabels transfers labels from
+ the Kubernetes `Service` onto the created metrics.
+ items:
+ type: string
+ type: array
+ targetLimit:
+ description: TargetLimit defines a limit on the
+ number of scraped targets that will be accepted.
+ format: int64
+ type: integer
+ required:
+ - endpoints
+ - selector
+ type: object
+ type: object
+ type: object
+ type: object
+ required:
+ - enabled
+ type: object
+ numHistoryShards:
+ description: NumHistoryShards is the desired number of history shards.
+ This field is immutable.
+ format: int32
+ minimum: 1
+ type: integer
+ persistence:
+ description: Persistence defines temporal persistence configuration.
+ properties:
+ advancedVisibilityStore:
+ description: AdvancedVisibilityStore holds the avanced visibility
+ datastore specs.
+ properties:
+ cassandra:
+ description: Cassandra holds all connection parameters for
+ Cassandra datastore.
+ properties:
+ connectTimeout:
+ description: ConnectTimeout is a timeout for initial dial
+ to cassandra server.
+ type: string
+ consistency:
+ description: Consistency configuration.
+ properties:
+ consistency:
+ description: Consistency sets the default consistency
+ level. Values identical to gocql Consistency values.
+ (defaults to LOCAL_QUORUM if not set).
+ enum:
+ - ANY
+ - ONE
+ - TWO
+ - THREE
+ - QUORUM
+ - ALL
+ - LOCAL_QUORUM
+ - EACH_QUORUM
+ - LOCAL_ONE
+ type: integer
+ serialConsistency:
+ description: SerialConsistency sets the consistency
+ for the serial prtion of queries. Values identical
+ to gocql SerialConsistency values. (defaults to
+ LOCAL_SERIAL if not set)
+ enum:
+ - SERIAL
+ - LOCAL_SERIAL
+ type: integer
+ type: object
+ datacenter:
+ description: Datacenter is the data center filter arg
+ for cassandra.
+ type: string
+ disableInitialHostLookup:
+ description: DisableInitialHostLookup instructs the gocql
+ client to connect only using the supplied hosts.
+ type: boolean
+ hosts:
+ description: Hosts is a list of cassandra endpoints.
+ items:
+ type: string
+ type: array
+ keyspace:
+ description: Keyspace is the cassandra keyspace.
+ type: string
+ maxConns:
+ description: MaxConns is the max number of connections
+ to this datastore for a single keyspace.
+ type: integer
+ port:
+ description: Port is the cassandra port used for connection
+ by gocql client.
+ type: integer
+ user:
+ description: User is the cassandra user used for authentication
+ by gocql client.
+ type: string
+ required:
+ - datacenter
+ - hosts
+ - keyspace
+ - port
+ - user
+ type: object
+ elasticsearch:
+ description: Elasticsearch holds all connection parameters
+ for Elasticsearch datastores.
+ properties:
+ closeIdleConnectionsInterval:
+ description: CloseIdleConnectionsInterval is the max duration
+ a connection stay open while idle.
+ type: string
+ enableHealthcheck:
+ description: EnableHealthcheck enables or disables healthcheck
+ on the temporal cluster's es client.
+ type: boolean
+ enableSniff:
+ description: EnableSniff enables or disables sniffer on
+ the temporal cluster's es client.
+ type: boolean
+ indices:
+ description: Indices holds visibility index names.
+ properties:
+ secondaryVisibility:
+ description: SecondaryVisibility defines secondary
+ visibility's index name.
+ type: string
+ visibility:
+ description: Visibility defines visibility's index
+ name.
+ type: string
+ required:
+ - visibility
+ type: object
+ logLevel:
+ description: LogLevel defines the temporal cluster's es
+ client logger level.
+ type: string
+ url:
+ description: URL is the connection url to connect to the
+ instance.
+ pattern: ^https?:\/\/.+$
+ type: string
+ username:
+ description: Username is the username to be used for the
+ connection.
+ type: string
+ version:
+ default: v7
+ description: Version defines the elasticsearch version.
+ pattern: ^v(6|7)$
+ type: string
+ required:
+ - indices
+ - url
+ - username
+ - version
+ type: object
+ name:
+ description: Name is the name of the datatstore. It should
+ be unique and will be referenced within the persitence spec.
+ Defaults to "default" for default sore, "visibility" for
+ visibility store and "advancedVisibility" for advanced visibility
+ store.
+ type: string
+ passwordSecretRef:
+ description: PasswordSecret is the reference to the secret
+ holding the password.
+ properties:
+ key:
+ description: Key in the Secret.
+ type: string
+ name:
+ description: Name of the Secret.
+ type: string
+ required:
+ - name
+ type: object
+ sql:
+ description: SQL holds all connection parameters for SQL datastores.
+ properties:
+ connectAddr:
+ description: ConnectAddr is the remote addr of the database.
+ type: string
+ connectAttributes:
+ additionalProperties:
+ type: string
+ description: ConnectAttributes is a set of key-value attributes
+ to be sent as part of connect data_source_name url
+ type: object
+ connectProtocol:
+ description: ConnectProtocol is the protocol that goes
+ with the ConnectAddr.
+ type: string
+ databaseName:
+ description: DatabaseName is the name of SQL database
+ to connect to.
+ type: string
+ maxConnLifetime:
+ description: MaxConnLifetime is the maximum time a connection
+ can be alive
+ type: string
+ maxConns:
+ description: MaxConns the max number of connections to
+ this datastore.
+ type: integer
+ maxIdleConns:
+ description: MaxIdleConns is the max number of idle connections
+ to this datastore.
+ type: integer
+ pluginName:
+ description: PluginName is the name of SQL plugin.
+ enum:
+ - postgres
+ - postgres12
+ - mysql
+ - mysql8
+ type: string
+ taskScanPartitions:
+ description: TaskScanPartitions is the number of partitions
+ to sequentially scan during ListTaskQueue operations.
+ type: integer
+ user:
+ description: User is the username to be used for the connection.
+ type: string
+ required:
+ - connectAddr
+ - databaseName
+ - pluginName
+ - user
+ type: object
+ tls:
+ description: TLS is an optional option to connect to the datastore
+ using TLS.
+ properties:
+ caFileRef:
+ description: CaFileRef is a reference to a secret containing
+ the ca file.
+ properties:
+ key:
+ description: Key in the Secret.
+ type: string
+ name:
+ description: Name of the Secret.
+ type: string
+ required:
+ - name
+ type: object
+ certFileRef:
+ description: CertFileRef is a reference to a secret containing
+ the cert file.
+ properties:
+ key:
+ description: Key in the Secret.
+ type: string
+ name:
+ description: Name of the Secret.
+ type: string
+ required:
+ - name
+ type: object
+ enableHostVerification:
+ description: EnableHostVerification defines if the hostname
+ should be verified when connecting to the datastore.
+ type: boolean
+ enabled:
+ description: Enabled defines if the cluster should use
+ a TLS connection to connect to the datastore.
+ type: boolean
+ keyFileRef:
+ description: KeyFileRef is a reference to a secret containing
+ the key file.
+ properties:
+ key:
+ description: Key in the Secret.
+ type: string
+ name:
+ description: Name of the Secret.
+ type: string
+ required:
+ - name
+ type: object
+ serverName:
+ description: ServerName the datastore should present.
+ type: string
+ required:
+ - enableHostVerification
+ - enabled
+ type: object
+ required:
+ - passwordSecretRef
+ type: object
+ defaultStore:
+ description: DefaultStore holds the default datastore specs.
+ properties:
+ cassandra:
+ description: Cassandra holds all connection parameters for
+ Cassandra datastore.
+ properties:
+ connectTimeout:
+ description: ConnectTimeout is a timeout for initial dial
+ to cassandra server.
+ type: string
+ consistency:
+ description: Consistency configuration.
+ properties:
+ consistency:
+ description: Consistency sets the default consistency
+ level. Values identical to gocql Consistency values.
+ (defaults to LOCAL_QUORUM if not set).
+ enum:
+ - ANY
+ - ONE
+ - TWO
+ - THREE
+ - QUORUM
+ - ALL
+ - LOCAL_QUORUM
+ - EACH_QUORUM
+ - LOCAL_ONE
+ type: integer
+ serialConsistency:
+ description: SerialConsistency sets the consistency
+ for the serial prtion of queries. Values identical
+ to gocql SerialConsistency values. (defaults to
+ LOCAL_SERIAL if not set)
+ enum:
+ - SERIAL
+ - LOCAL_SERIAL
+ type: integer
+ type: object
+ datacenter:
+ description: Datacenter is the data center filter arg
+ for cassandra.
+ type: string
+ disableInitialHostLookup:
+ description: DisableInitialHostLookup instructs the gocql
+ client to connect only using the supplied hosts.
+ type: boolean
+ hosts:
+ description: Hosts is a list of cassandra endpoints.
+ items:
+ type: string
+ type: array
+ keyspace:
+ description: Keyspace is the cassandra keyspace.
+ type: string
+ maxConns:
+ description: MaxConns is the max number of connections
+ to this datastore for a single keyspace.
+ type: integer
+ port:
+ description: Port is the cassandra port used for connection
+ by gocql client.
+ type: integer
+ user:
+ description: User is the cassandra user used for authentication
+ by gocql client.
+ type: string
+ required:
+ - datacenter
+ - hosts
+ - keyspace
+ - port
+ - user
+ type: object
+ elasticsearch:
+ description: Elasticsearch holds all connection parameters
+ for Elasticsearch datastores.
+ properties:
+ closeIdleConnectionsInterval:
+ description: CloseIdleConnectionsInterval is the max duration
+ a connection stay open while idle.
+ type: string
+ enableHealthcheck:
+ description: EnableHealthcheck enables or disables healthcheck
+ on the temporal cluster's es client.
+ type: boolean
+ enableSniff:
+ description: EnableSniff enables or disables sniffer on
+ the temporal cluster's es client.
+ type: boolean
+ indices:
+ description: Indices holds visibility index names.
+ properties:
+ secondaryVisibility:
+ description: SecondaryVisibility defines secondary
+ visibility's index name.
+ type: string
+ visibility:
+ description: Visibility defines visibility's index
+ name.
+ type: string
+ required:
+ - visibility
+ type: object
+ logLevel:
+ description: LogLevel defines the temporal cluster's es
+ client logger level.
+ type: string
+ url:
+ description: URL is the connection url to connect to the
+ instance.
+ pattern: ^https?:\/\/.+$
+ type: string
+ username:
+ description: Username is the username to be used for the
+ connection.
+ type: string
+ version:
+ default: v7
+ description: Version defines the elasticsearch version.
+ pattern: ^v(6|7)$
+ type: string
+ required:
+ - indices
+ - url
+ - username
+ - version
+ type: object
+ name:
+ description: Name is the name of the datatstore. It should
+ be unique and will be referenced within the persitence spec.
+ Defaults to "default" for default sore, "visibility" for
+ visibility store and "advancedVisibility" for advanced visibility
+ store.
+ type: string
+ passwordSecretRef:
+ description: PasswordSecret is the reference to the secret
+ holding the password.
+ properties:
+ key:
+ description: Key in the Secret.
+ type: string
+ name:
+ description: Name of the Secret.
+ type: string
+ required:
+ - name
+ type: object
+ sql:
+ description: SQL holds all connection parameters for SQL datastores.
+ properties:
+ connectAddr:
+ description: ConnectAddr is the remote addr of the database.
+ type: string
+ connectAttributes:
+ additionalProperties:
+ type: string
+ description: ConnectAttributes is a set of key-value attributes
+ to be sent as part of connect data_source_name url
+ type: object
+ connectProtocol:
+ description: ConnectProtocol is the protocol that goes
+ with the ConnectAddr.
+ type: string
+ databaseName:
+ description: DatabaseName is the name of SQL database
+ to connect to.
+ type: string
+ maxConnLifetime:
+ description: MaxConnLifetime is the maximum time a connection
+ can be alive
+ type: string
+ maxConns:
+ description: MaxConns the max number of connections to
+ this datastore.
+ type: integer
+ maxIdleConns:
+ description: MaxIdleConns is the max number of idle connections
+ to this datastore.
+ type: integer
+ pluginName:
+ description: PluginName is the name of SQL plugin.
+ enum:
+ - postgres
+ - postgres12
+ - mysql
+ - mysql8
+ type: string
+ taskScanPartitions:
+ description: TaskScanPartitions is the number of partitions
+ to sequentially scan during ListTaskQueue operations.
+ type: integer
+ user:
+ description: User is the username to be used for the connection.
+ type: string
+ required:
+ - connectAddr
+ - databaseName
+ - pluginName
+ - user
+ type: object
+ tls:
+ description: TLS is an optional option to connect to the datastore
+ using TLS.
+ properties:
+ caFileRef:
+ description: CaFileRef is a reference to a secret containing
+ the ca file.
+ properties:
+ key:
+ description: Key in the Secret.
+ type: string
+ name:
+ description: Name of the Secret.
+ type: string
+ required:
+ - name
+ type: object
+ certFileRef:
+ description: CertFileRef is a reference to a secret containing
+ the cert file.
+ properties:
+ key:
+ description: Key in the Secret.
+ type: string
+ name:
+ description: Name of the Secret.
+ type: string
+ required:
+ - name
+ type: object
+ enableHostVerification:
+ description: EnableHostVerification defines if the hostname
+ should be verified when connecting to the datastore.
+ type: boolean
+ enabled:
+ description: Enabled defines if the cluster should use
+ a TLS connection to connect to the datastore.
+ type: boolean
+ keyFileRef:
+ description: KeyFileRef is a reference to a secret containing
+ the key file.
+ properties:
+ key:
+ description: Key in the Secret.
+ type: string
+ name:
+ description: Name of the Secret.
+ type: string
+ required:
+ - name
+ type: object
+ serverName:
+ description: ServerName the datastore should present.
+ type: string
+ required:
+ - enableHostVerification
+ - enabled
+ type: object
+ required:
+ - passwordSecretRef
+ type: object
+ visibilityStore:
+ description: VisibilityStore holds the visibility datastore specs.
+ properties:
+ cassandra:
+ description: Cassandra holds all connection parameters for
+ Cassandra datastore.
+ properties:
+ connectTimeout:
+ description: ConnectTimeout is a timeout for initial dial
+ to cassandra server.
+ type: string
+ consistency:
+ description: Consistency configuration.
+ properties:
+ consistency:
+ description: Consistency sets the default consistency
+ level. Values identical to gocql Consistency values.
+ (defaults to LOCAL_QUORUM if not set).
+ enum:
+ - ANY
+ - ONE
+ - TWO
+ - THREE
+ - QUORUM
+ - ALL
+ - LOCAL_QUORUM
+ - EACH_QUORUM
+ - LOCAL_ONE
+ type: integer
+ serialConsistency:
+ description: SerialConsistency sets the consistency
+ for the serial prtion of queries. Values identical
+ to gocql SerialConsistency values. (defaults to
+ LOCAL_SERIAL if not set)
+ enum:
+ - SERIAL
+ - LOCAL_SERIAL
+ type: integer
+ type: object
+ datacenter:
+ description: Datacenter is the data center filter arg
+ for cassandra.
+ type: string
+ disableInitialHostLookup:
+ description: DisableInitialHostLookup instructs the gocql
+ client to connect only using the supplied hosts.
+ type: boolean
+ hosts:
+ description: Hosts is a list of cassandra endpoints.
+ items:
+ type: string
+ type: array
+ keyspace:
+ description: Keyspace is the cassandra keyspace.
+ type: string
+ maxConns:
+ description: MaxConns is the max number of connections
+ to this datastore for a single keyspace.
+ type: integer
+ port:
+ description: Port is the cassandra port used for connection
+ by gocql client.
+ type: integer
+ user:
+ description: User is the cassandra user used for authentication
+ by gocql client.
+ type: string
+ required:
+ - datacenter
+ - hosts
+ - keyspace
+ - port
+ - user
+ type: object
+ elasticsearch:
+ description: Elasticsearch holds all connection parameters
+ for Elasticsearch datastores.
+ properties:
+ closeIdleConnectionsInterval:
+ description: CloseIdleConnectionsInterval is the max duration
+ a connection stay open while idle.
+ type: string
+ enableHealthcheck:
+ description: EnableHealthcheck enables or disables healthcheck
+ on the temporal cluster's es client.
+ type: boolean
+ enableSniff:
+ description: EnableSniff enables or disables sniffer on
+ the temporal cluster's es client.
+ type: boolean
+ indices:
+ description: Indices holds visibility index names.
+ properties:
+ secondaryVisibility:
+ description: SecondaryVisibility defines secondary
+ visibility's index name.
+ type: string
+ visibility:
+ description: Visibility defines visibility's index
+ name.
+ type: string
+ required:
+ - visibility
+ type: object
+ logLevel:
+ description: LogLevel defines the temporal cluster's es
+ client logger level.
+ type: string
+ url:
+ description: URL is the connection url to connect to the
+ instance.
+ pattern: ^https?:\/\/.+$
+ type: string
+ username:
+ description: Username is the username to be used for the
+ connection.
+ type: string
+ version:
+ default: v7
+ description: Version defines the elasticsearch version.
+ pattern: ^v(6|7)$
+ type: string
+ required:
+ - indices
+ - url
+ - username
+ - version
+ type: object
+ name:
+ description: Name is the name of the datatstore. It should
+ be unique and will be referenced within the persitence spec.
+ Defaults to "default" for default sore, "visibility" for
+ visibility store and "advancedVisibility" for advanced visibility
+ store.
+ type: string
+ passwordSecretRef:
+ description: PasswordSecret is the reference to the secret
+ holding the password.
+ properties:
+ key:
+ description: Key in the Secret.
+ type: string
+ name:
+ description: Name of the Secret.
+ type: string
+ required:
+ - name
+ type: object
+ sql:
+ description: SQL holds all connection parameters for SQL datastores.
+ properties:
+ connectAddr:
+ description: ConnectAddr is the remote addr of the database.
+ type: string
+ connectAttributes:
+ additionalProperties:
+ type: string
+ description: ConnectAttributes is a set of key-value attributes
+ to be sent as part of connect data_source_name url
+ type: object
+ connectProtocol:
+ description: ConnectProtocol is the protocol that goes
+ with the ConnectAddr.
+ type: string
+ databaseName:
+ description: DatabaseName is the name of SQL database
+ to connect to.
+ type: string
+ maxConnLifetime:
+ description: MaxConnLifetime is the maximum time a connection
+ can be alive
+ type: string
+ maxConns:
+ description: MaxConns the max number of connections to
+ this datastore.
+ type: integer
+ maxIdleConns:
+ description: MaxIdleConns is the max number of idle connections
+ to this datastore.
+ type: integer
+ pluginName:
+ description: PluginName is the name of SQL plugin.
+ enum:
+ - postgres
+ - postgres12
+ - mysql
+ - mysql8
+ type: string
+ taskScanPartitions:
+ description: TaskScanPartitions is the number of partitions
+ to sequentially scan during ListTaskQueue operations.
+ type: integer
+ user:
+ description: User is the username to be used for the connection.
+ type: string
+ required:
+ - connectAddr
+ - databaseName
+ - pluginName
+ - user
+ type: object
+ tls:
+ description: TLS is an optional option to connect to the datastore
+ using TLS.
+ properties:
+ caFileRef:
+ description: CaFileRef is a reference to a secret containing
+ the ca file.
+ properties:
+ key:
+ description: Key in the Secret.
+ type: string
+ name:
+ description: Name of the Secret.
+ type: string
+ required:
+ - name
+ type: object
+ certFileRef:
+ description: CertFileRef is a reference to a secret containing
+ the cert file.
+ properties:
+ key:
+ description: Key in the Secret.
+ type: string
+ name:
+ description: Name of the Secret.
+ type: string
+ required:
+ - name
+ type: object
+ enableHostVerification:
+ description: EnableHostVerification defines if the hostname
+ should be verified when connecting to the datastore.
+ type: boolean
+ enabled:
+ description: Enabled defines if the cluster should use
+ a TLS connection to connect to the datastore.
+ type: boolean
+ keyFileRef:
+ description: KeyFileRef is a reference to a secret containing
+ the key file.
+ properties:
+ key:
+ description: Key in the Secret.
+ type: string
+ name:
+ description: Name of the Secret.
+ type: string
+ required:
+ - name
+ type: object
+ serverName:
+ description: ServerName the datastore should present.
+ type: string
+ required:
+ - enableHostVerification
+ - enabled
+ type: object
+ required:
+ - passwordSecretRef
+ type: object
+ required:
+ - defaultStore
+ - visibilityStore
+ type: object
+ services:
+ description: Services allows customizations for each temporal services
+ deployment.
+ properties:
+ frontend:
+ description: Frontend service custom specifications.
+ properties:
+ membershipPort:
+ description: 'Port defines a custom membership port for the
+ service. Default values are: 6933 for Frontend service 6934
+ for History service 6935 for Matching service 6939 for Worker
+ service'
+ type: integer
+ overrides:
+ description: Overrides adds some overrides to the resources
+ deployed for the service. Those overrides takes precedence
+ over spec.services.overrides.
+ properties:
+ deployment:
+ description: Override configuration for the temporal service
+ Deployment.
+ properties:
+ metadata:
+ description: ObjectMetaOverride provides the ability
+ to override an object metadata. It's a subset of
+ the fields included in k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta.
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ description: Annotations is an unstructured key
+ value map stored with a resource that may be
+ set by external tools to store and retrieve
+ arbitrary metadata.
+ type: object
+ labels:
+ additionalProperties:
+ type: string
+ description: Map of string keys and values that
+ can be used to organize and categorize (scope
+ and select) objects.
+ type: object
+ type: object
+ spec:
+ description: Specification of the desired behavior
+ of the Deployment.
+ properties:
+ template:
+ description: Template describes the pods that
+ will be created.
+ properties:
+ metadata:
+ description: ObjectMetaOverride provides the
+ ability to override an object metadata.
+ It's a subset of the fields included in
+ k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta.
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ description: Annotations is an unstructured
+ key value map stored with a resource
+ that may be set by external tools to
+ store and retrieve arbitrary metadata.
+ type: object
+ labels:
+ additionalProperties:
+ type: string
+ description: Map of string keys and values
+ that can be used to organize and categorize
+ (scope and select) objects.
+ type: object
+ type: object
+ spec:
+ description: Specification of the desired
+ behavior of the pod.
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ type: object
+ type: object
+ type: object
+ type: object
+ port:
+ description: 'Port defines a custom gRPC port for the service.
+ Default values are: 7233 for Frontend service 7234 for History
+ service 7235 for Matching service 7239 for Worker service'
+ type: integer
+ replicas:
+ description: Number of desired replicas for the service. Default
+ to 1.
+ format: int32
+ minimum: 1
+ type: integer
+ type: object
+ history:
+ description: History service custom specifications.
+ properties:
+ membershipPort:
+ description: 'Port defines a custom membership port for the
+ service. Default values are: 6933 for Frontend service 6934
+ for History service 6935 for Matching service 6939 for Worker
+ service'
+ type: integer
+ overrides:
+ description: Overrides adds some overrides to the resources
+ deployed for the service. Those overrides takes precedence
+ over spec.services.overrides.
+ properties:
+ deployment:
+ description: Override configuration for the temporal service
+ Deployment.
+ properties:
+ metadata:
+ description: ObjectMetaOverride provides the ability
+ to override an object metadata. It's a subset of
+ the fields included in k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta.
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ description: Annotations is an unstructured key
+ value map stored with a resource that may be
+ set by external tools to store and retrieve
+ arbitrary metadata.
+ type: object
+ labels:
+ additionalProperties:
+ type: string
+ description: Map of string keys and values that
+ can be used to organize and categorize (scope
+ and select) objects.
+ type: object
+ type: object
+ spec:
+ description: Specification of the desired behavior
+ of the Deployment.
+ properties:
+ template:
+ description: Template describes the pods that
+ will be created.
+ properties:
+ metadata:
+ description: ObjectMetaOverride provides the
+ ability to override an object metadata.
+ It's a subset of the fields included in
+ k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta.
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ description: Annotations is an unstructured
+ key value map stored with a resource
+ that may be set by external tools to
+ store and retrieve arbitrary metadata.
+ type: object
+ labels:
+ additionalProperties:
+ type: string
+ description: Map of string keys and values
+ that can be used to organize and categorize
+ (scope and select) objects.
+ type: object
+ type: object
+ spec:
+ description: Specification of the desired
+ behavior of the pod.
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ type: object
+ type: object
+ type: object
+ type: object
+ port:
+ description: 'Port defines a custom gRPC port for the service.
+ Default values are: 7233 for Frontend service 7234 for History
+ service 7235 for Matching service 7239 for Worker service'
+ type: integer
+ replicas:
+ description: Number of desired replicas for the service. Default
+ to 1.
+ format: int32
+ minimum: 1
+ type: integer
+ type: object
+ internalFrontend:
+ description: Internal Frontend service custom specifications.
+ Only compatible with temporal >= 1.20.0
+ properties:
+ enabled:
+ default: false
+ description: Enabled defines if we want to spawn the internal
+ frontend service.
+ type: boolean
+ membershipPort:
+ description: 'Port defines a custom membership port for the
+ service. Default values are: 6933 for Frontend service 6934
+ for History service 6935 for Matching service 6939 for Worker
+ service'
+ type: integer
+ overrides:
+ description: Overrides adds some overrides to the resources
+ deployed for the service. Those overrides takes precedence
+ over spec.services.overrides.
+ properties:
+ deployment:
+ description: Override configuration for the temporal service
+ Deployment.
+ properties:
+ metadata:
+ description: ObjectMetaOverride provides the ability
+ to override an object metadata. It's a subset of
+ the fields included in k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta.
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ description: Annotations is an unstructured key
+ value map stored with a resource that may be
+ set by external tools to store and retrieve
+ arbitrary metadata.
+ type: object
+ labels:
+ additionalProperties:
+ type: string
+ description: Map of string keys and values that
+ can be used to organize and categorize (scope
+ and select) objects.
+ type: object
+ type: object
+ spec:
+ description: Specification of the desired behavior
+ of the Deployment.
+ properties:
+ template:
+ description: Template describes the pods that
+ will be created.
+ properties:
+ metadata:
+ description: ObjectMetaOverride provides the
+ ability to override an object metadata.
+ It's a subset of the fields included in
+ k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta.
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ description: Annotations is an unstructured
+ key value map stored with a resource
+ that may be set by external tools to
+ store and retrieve arbitrary metadata.
+ type: object
+ labels:
+ additionalProperties:
+ type: string
+ description: Map of string keys and values
+ that can be used to organize and categorize
+ (scope and select) objects.
+ type: object
+ type: object
+ spec:
+ description: Specification of the desired
+ behavior of the pod.
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ type: object
+ type: object
+ type: object
+ type: object
+ port:
+ description: 'Port defines a custom gRPC port for the service.
+ Default values are: 7233 for Frontend service 7234 for History
+ service 7235 for Matching service 7239 for Worker service'
+ type: integer
+ replicas:
+ description: Number of desired replicas for the service. Default
+ to 1.
+ format: int32
+ minimum: 1
+ type: integer
+ type: object
+ matching:
+ description: Matching service custom specifications.
+ properties:
+ membershipPort:
+ description: 'Port defines a custom membership port for the
+ service. Default values are: 6933 for Frontend service 6934
+ for History service 6935 for Matching service 6939 for Worker
+ service'
+ type: integer
+ overrides:
+ description: Overrides adds some overrides to the resources
+ deployed for the service. Those overrides takes precedence
+ over spec.services.overrides.
+ properties:
+ deployment:
+ description: Override configuration for the temporal service
+ Deployment.
+ properties:
+ metadata:
+ description: ObjectMetaOverride provides the ability
+ to override an object metadata. It's a subset of
+ the fields included in k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta.
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ description: Annotations is an unstructured key
+ value map stored with a resource that may be
+ set by external tools to store and retrieve
+ arbitrary metadata.
+ type: object
+ labels:
+ additionalProperties:
+ type: string
+ description: Map of string keys and values that
+ can be used to organize and categorize (scope
+ and select) objects.
+ type: object
+ type: object
+ spec:
+ description: Specification of the desired behavior
+ of the Deployment.
+ properties:
+ template:
+ description: Template describes the pods that
+ will be created.
+ properties:
+ metadata:
+ description: ObjectMetaOverride provides the
+ ability to override an object metadata.
+ It's a subset of the fields included in
+ k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta.
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ description: Annotations is an unstructured
+ key value map stored with a resource
+ that may be set by external tools to
+ store and retrieve arbitrary metadata.
+ type: object
+ labels:
+ additionalProperties:
+ type: string
+ description: Map of string keys and values
+ that can be used to organize and categorize
+ (scope and select) objects.
+ type: object
+ type: object
+ spec:
+ description: Specification of the desired
+ behavior of the pod.
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ type: object
+ type: object
+ type: object
+ type: object
+ port:
+ description: 'Port defines a custom gRPC port for the service.
+ Default values are: 7233 for Frontend service 7234 for History
+ service 7235 for Matching service 7239 for Worker service'
+ type: integer
+ replicas:
+ description: Number of desired replicas for the service. Default
+ to 1.
+ format: int32
+ minimum: 1
+ type: integer
+ type: object
+ overrides:
+ description: Overrides adds some overrides to the resources deployed
+ for all temporal services services. Those overrides can be customized
+ per service using spec.services..overrides.
+ properties:
+ deployment:
+ description: Override configuration for the temporal service
+ Deployment.
+ properties:
+ metadata:
+ description: ObjectMetaOverride provides the ability to
+ override an object metadata. It's a subset of the fields
+ included in k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta.
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ description: Annotations is an unstructured key value
+ map stored with a resource that may be set by external
+ tools to store and retrieve arbitrary metadata.
+ type: object
+ labels:
+ additionalProperties:
+ type: string
+ description: Map of string keys and values that can
+ be used to organize and categorize (scope and select)
+ objects.
+ type: object
+ type: object
+ spec:
+ description: Specification of the desired behavior of
+ the Deployment.
+ properties:
+ template:
+ description: Template describes the pods that will
+ be created.
+ properties:
+ metadata:
+ description: ObjectMetaOverride provides the ability
+ to override an object metadata. It's a subset
+ of the fields included in k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta.
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ description: Annotations is an unstructured
+ key value map stored with a resource that
+ may be set by external tools to store and
+ retrieve arbitrary metadata.
+ type: object
+ labels:
+ additionalProperties:
+ type: string
+ description: Map of string keys and values
+ that can be used to organize and categorize
+ (scope and select) objects.
+ type: object
+ type: object
+ spec:
+ description: Specification of the desired behavior
+ of the pod.
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ type: object
+ type: object
+ type: object
+ type: object
+ worker:
+ description: Worker service custom specifications.
+ properties:
+ membershipPort:
+ description: 'Port defines a custom membership port for the
+ service. Default values are: 6933 for Frontend service 6934
+ for History service 6935 for Matching service 6939 for Worker
+ service'
+ type: integer
+ overrides:
+ description: Overrides adds some overrides to the resources
+ deployed for the service. Those overrides takes precedence
+ over spec.services.overrides.
+ properties:
+ deployment:
+ description: Override configuration for the temporal service
+ Deployment.
+ properties:
+ metadata:
+ description: ObjectMetaOverride provides the ability
+ to override an object metadata. It's a subset of
+ the fields included in k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta.
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ description: Annotations is an unstructured key
+ value map stored with a resource that may be
+ set by external tools to store and retrieve
+ arbitrary metadata.
+ type: object
+ labels:
+ additionalProperties:
+ type: string
+ description: Map of string keys and values that
+ can be used to organize and categorize (scope
+ and select) objects.
+ type: object
+ type: object
+ spec:
+ description: Specification of the desired behavior
+ of the Deployment.
+ properties:
+ template:
+ description: Template describes the pods that
+ will be created.
+ properties:
+ metadata:
+ description: ObjectMetaOverride provides the
+ ability to override an object metadata.
+ It's a subset of the fields included in
+ k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta.
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ description: Annotations is an unstructured
+ key value map stored with a resource
+ that may be set by external tools to
+ store and retrieve arbitrary metadata.
+ type: object
+ labels:
+ additionalProperties:
+ type: string
+ description: Map of string keys and values
+ that can be used to organize and categorize
+ (scope and select) objects.
+ type: object
+ type: object
+ spec:
+ description: Specification of the desired
+ behavior of the pod.
+ type: object
+ x-kubernetes-preserve-unknown-fields: true
+ type: object
+ type: object
+ type: object
+ type: object
+ port:
+ description: 'Port defines a custom gRPC port for the service.
+ Default values are: 7233 for Frontend service 7234 for History
+ service 7235 for Matching service 7239 for Worker service'
+ type: integer
+ replicas:
+ description: Number of desired replicas for the service. Default
+ to 1.
+ format: int32
+ minimum: 1
+ type: integer
+ type: object
+ type: object
+ ui:
+ description: UI allows configuration of the optional temporal web
+ ui deployed alongside the cluster.
+ properties:
+ enabled:
+ description: Enabled defines if the operator should deploy the
+ web ui alongside the cluster.
+ type: boolean
+ image:
+ description: Image defines the temporal ui docker image the instance
+ should run.
+ type: string
+ ingress:
+ description: Ingress is an optional ingress configuration for
+ the UI. If lived empty, no ingress configuration will be created
+ and the UI will only by available trough ClusterIP service.
+ properties:
+ annotations:
+ additionalProperties:
+ type: string
+ description: Annotations allows custom annotations on the
+ ingress ressource.
+ type: object
+ hosts:
+ description: Host is the list of host the ingress should use.
+ items:
+ type: string
+ type: array
+ ingressClassName:
+ description: IngressClassName is the name of the IngressClass
+ the deployed ingress resource should use.
+ type: string
+ tls:
+ description: TLS configuration.
+ items:
+ description: IngressTLS describes the transport layer security
+ associated with an ingress.
+ properties:
+ hosts:
+ description: hosts is a list of hosts included in the
+ TLS certificate. The values in this list must match
+ the name/s used in the tlsSecret. Defaults to the
+ wildcard host setting for the loadbalancer controller
+ fulfilling this Ingress, if left unspecified.
+ items:
+ type: string
+ type: array
+ x-kubernetes-list-type: atomic
+ secretName:
+ description: secretName is the name of the secret used
+ to terminate TLS traffic on port 443. Field is left
+ optional to allow TLS routing based on SNI hostname
+ alone. If the SNI host in a listener conflicts with
+ the "Host" header field used by an IngressRule, the
+ SNI host is used for termination and value of the
+ "Host" header is used for routing.
+ type: string
+ type: object
+ type: array
+ required:
+ - hosts
+ type: object
+ version:
+ description: Version defines the temporal ui version the instance
+ should run.
+ type: string
+ type: object
+ version:
+ description: Version defines the temporal version the cluster to be
+ deployed. This version impacts the underlying persistence schemas
+ versions.
+ type: string
+ required:
+ - numHistoryShards
+ - persistence
+ type: object
+ status:
+ description: Most recent observed status of the Temporal cluster.
+ properties:
+ conditions:
+ description: Conditions represent the latest available observations
+ of the Cluster state.
+ items:
+ description: "Condition contains details for one aspect of the current
+ state of this API Resource. --- This struct is intended for direct
+ use as an array at the field path .status.conditions. For example,
+ \n type FooStatus struct{ // Represents the observations of a
+ foo's current state. // Known .status.conditions.type are: \"Available\",
+ \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge
+ // +listType=map // +listMapKey=type Conditions []metav1.Condition
+ `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\"
+ protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }"
+ properties:
+ lastTransitionTime:
+ description: lastTransitionTime is the last time the condition
+ transitioned from one status to another. This should be when
+ the underlying condition changed. If that is not known, then
+ using the time when the API field changed is acceptable.
+ format: date-time
+ type: string
+ message:
+ description: message is a human readable message indicating
+ details about the transition. This may be an empty string.
+ maxLength: 32768
+ type: string
+ observedGeneration:
+ description: observedGeneration represents the .metadata.generation
+ that the condition was set based upon. For instance, if .metadata.generation
+ is currently 12, but the .status.conditions[x].observedGeneration
+ is 9, the condition is out of date with respect to the current
+ state of the instance.
+ format: int64
+ minimum: 0
+ type: integer
+ reason:
+ description: reason contains a programmatic identifier indicating
+ the reason for the condition's last transition. Producers
+ of specific condition types may define expected values and
+ meanings for this field, and whether the values are considered
+ a guaranteed API. The value should be a CamelCase string.
+ This field may not be empty.
+ maxLength: 1024
+ minLength: 1
+ pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
+ type: string
+ status:
+ description: status of the condition, one of True, False, Unknown.
+ enum:
+ - "True"
+ - "False"
+ - Unknown
+ type: string
+ type:
+ description: type of condition in CamelCase or in foo.example.com/CamelCase.
+ --- Many .condition.type values are consistent across resources
+ like Available, but because arbitrary conditions can be useful
+ (see .node.status.conditions), the ability to deconflict is
+ important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
+ maxLength: 316
+ pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
+ type: string
+ required:
+ - lastTransitionTime
+ - message
+ - reason
+ - status
+ - type
+ type: object
+ type: array
+ persistence:
+ description: Persistence holds all datastores statuses.
+ properties:
+ advancedVisibilityStore:
+ description: AdvancedVisibilityStore holds the avanced visibility
+ datastore status.
+ properties:
+ created:
+ description: Created indicates if the database or keyspace
+ has been created.
+ type: boolean
+ schemaVersion:
+ description: SchemaVersion report the current schema version.
+ type: string
+ setup:
+ description: Setup indicates if tables have been set up.
+ type: boolean
+ required:
+ - created
+ - setup
+ type: object
+ defaultStore:
+ description: DefaultStore holds the default datastore status.
+ properties:
+ created:
+ description: Created indicates if the database or keyspace
+ has been created.
+ type: boolean
+ schemaVersion:
+ description: SchemaVersion report the current schema version.
+ type: string
+ setup:
+ description: Setup indicates if tables have been set up.
+ type: boolean
+ required:
+ - created
+ - setup
+ type: object
+ visibilityStore:
+ description: VisibilityStore holds the visibility datastore status.
+ properties:
+ created:
+ description: Created indicates if the database or keyspace
+ has been created.
+ type: boolean
+ schemaVersion:
+ description: SchemaVersion report the current schema version.
+ type: string
+ setup:
+ description: Setup indicates if tables have been set up.
+ type: boolean
+ required:
+ - created
+ - setup
+ type: object
+ required:
+ - defaultStore
+ - visibilityStore
+ type: object
+ services:
+ description: Services holds all services statuses.
+ items:
+ description: ServiceStatus reports a service status.
+ properties:
+ name:
+ description: Name of the temporal service.
+ type: string
+ ready:
+ description: Ready defines if the service is ready.
+ type: boolean
+ version:
+ description: Current observed version of the service.
+ type: string
+ required:
+ - name
+ - ready
+ - version
+ type: object
+ type: array
+ version:
+ description: Version holds the current temporal version.
+ type: string
+ required:
+ - conditions
+ type: object
+ type: object
+ served: true
+ storage: true
+ subresources:
+ status: {}
+status:
+ acceptedNames:
+ kind: ""
+ plural: ""
+ conditions: null
+ storedVersions: null
diff --git a/operators/temporal-operator/0.13.1/manifests/temporal.io_temporalnamespaces.yaml b/operators/temporal-operator/0.13.1/manifests/temporal.io_temporalnamespaces.yaml
new file mode 100644
index 00000000000..f0da6ec9698
--- /dev/null
+++ b/operators/temporal-operator/0.13.1/manifests/temporal.io_temporalnamespaces.yaml
@@ -0,0 +1,172 @@
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.11.3
+ creationTimestamp: null
+ name: temporalnamespaces.temporal.io
+spec:
+ group: temporal.io
+ names:
+ kind: TemporalNamespace
+ listKind: TemporalNamespaceList
+ plural: temporalnamespaces
+ singular: temporalnamespace
+ scope: Namespaced
+ versions:
+ - name: v1beta1
+ schema:
+ openAPIV3Schema:
+ description: A TemporalNamespace creates a namespace in the targeted temporal
+ cluster.
+ 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: TemporalNamespaceSpec defines the desired state of Namespace.
+ properties:
+ activeClusterName:
+ description: The name of active Temporal Cluster. Only applicable
+ if the namespace is a global namespace.
+ type: string
+ allowDeletion:
+ description: AllowDeletion makes the controller delete the Temporal
+ namespace if the CRD is deleted.
+ type: boolean
+ clusterRef:
+ description: Reference to the temporal cluster the namespace will
+ be created.
+ properties:
+ 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
+ type: object
+ x-kubernetes-map-type: atomic
+ clusters:
+ description: List of clusters names to which the namespace can fail
+ over. Only applicable if the namespace is a global namespace.
+ items:
+ type: string
+ type: array
+ data:
+ additionalProperties:
+ type: string
+ description: Data is a key-value map for any customized purpose.
+ type: object
+ description:
+ description: Namespace description.
+ type: string
+ isGlobalNamespace:
+ description: IsGlobalNamespace defines whether the namespace is a
+ global namespace.
+ type: boolean
+ ownerEmail:
+ description: Namespace owner email.
+ type: string
+ retentionPeriod:
+ description: RetentionPeriod to apply on closed workflow executions.
+ type: string
+ securityToken:
+ type: string
+ required:
+ - clusterRef
+ - retentionPeriod
+ type: object
+ status:
+ description: TemporalNamespaceStatus defines the observed state of Namespace.
+ properties:
+ conditions:
+ description: Conditions represent the latest available observations
+ of the Namespace state.
+ items:
+ description: "Condition contains details for one aspect of the current
+ state of this API Resource. --- This struct is intended for direct
+ use as an array at the field path .status.conditions. For example,
+ \n type FooStatus struct{ // Represents the observations of a
+ foo's current state. // Known .status.conditions.type are: \"Available\",
+ \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge
+ // +listType=map // +listMapKey=type Conditions []metav1.Condition
+ `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\"
+ protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }"
+ properties:
+ lastTransitionTime:
+ description: lastTransitionTime is the last time the condition
+ transitioned from one status to another. This should be when
+ the underlying condition changed. If that is not known, then
+ using the time when the API field changed is acceptable.
+ format: date-time
+ type: string
+ message:
+ description: message is a human readable message indicating
+ details about the transition. This may be an empty string.
+ maxLength: 32768
+ type: string
+ observedGeneration:
+ description: observedGeneration represents the .metadata.generation
+ that the condition was set based upon. For instance, if .metadata.generation
+ is currently 12, but the .status.conditions[x].observedGeneration
+ is 9, the condition is out of date with respect to the current
+ state of the instance.
+ format: int64
+ minimum: 0
+ type: integer
+ reason:
+ description: reason contains a programmatic identifier indicating
+ the reason for the condition's last transition. Producers
+ of specific condition types may define expected values and
+ meanings for this field, and whether the values are considered
+ a guaranteed API. The value should be a CamelCase string.
+ This field may not be empty.
+ maxLength: 1024
+ minLength: 1
+ pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
+ type: string
+ status:
+ description: status of the condition, one of True, False, Unknown.
+ enum:
+ - "True"
+ - "False"
+ - Unknown
+ type: string
+ type:
+ description: type of condition in CamelCase or in foo.example.com/CamelCase.
+ --- Many .condition.type values are consistent across resources
+ like Available, but because arbitrary conditions can be useful
+ (see .node.status.conditions), the ability to deconflict is
+ important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
+ maxLength: 316
+ pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
+ type: string
+ required:
+ - lastTransitionTime
+ - message
+ - reason
+ - status
+ - type
+ type: object
+ type: array
+ required:
+ - conditions
+ type: object
+ type: object
+ served: true
+ storage: true
+ subresources:
+ status: {}
+status:
+ acceptedNames:
+ kind: ""
+ plural: ""
+ conditions: null
+ storedVersions: null
diff --git a/operators/temporal-operator/0.13.1/manifests/temporal.io_temporalworkerprocesses.yaml b/operators/temporal-operator/0.13.1/manifests/temporal.io_temporalworkerprocesses.yaml
new file mode 100644
index 00000000000..0a45c3ebbcf
--- /dev/null
+++ b/operators/temporal-operator/0.13.1/manifests/temporal.io_temporalworkerprocesses.yaml
@@ -0,0 +1,283 @@
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ controller-gen.kubebuilder.io/version: v0.11.3
+ creationTimestamp: null
+ name: temporalworkerprocesses.temporal.io
+spec:
+ group: temporal.io
+ names:
+ kind: TemporalWorkerProcess
+ listKind: TemporalWorkerProcessList
+ plural: temporalworkerprocesses
+ singular: temporalworkerprocess
+ scope: Namespaced
+ versions:
+ - additionalPrinterColumns:
+ - jsonPath: .status.conditions[?(@.type == 'Ready')].status
+ name: Ready
+ type: string
+ - jsonPath: .status.conditions[?(@.type == 'ReconcileSuccess')].status
+ name: ReconcileSuccess
+ type: string
+ - jsonPath: .metadata.creationTimestamp
+ name: Age
+ type: date
+ name: v1beta1
+ schema:
+ openAPIV3Schema:
+ description: TemporalWorkerProcess is the Schema for the temporalworkerprocesses
+ 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: TemporalWorkerProcessSpec defines the desired state of TemporalWorkerProcess.
+ properties:
+ builder:
+ description: Builder is the configuration for building a TemporalWorkerProcess.
+ THIS FEATURE IS HIGHLY EXPERIMENTAL.
+ properties:
+ attempt:
+ description: BuildAttempt is the build attempt number of a given
+ version
+ format: int32
+ type: integer
+ buildDir:
+ description: BuildDir is the location of where the sources will
+ be built.
+ type: string
+ buildRegistry:
+ description: BuildRegistry specifies how to connect to container
+ registry.
+ properties:
+ passwordSecretRef:
+ description: PasswordSecret is the reference to the secret
+ holding the docker repo password.
+ properties:
+ key:
+ description: Key in the Secret.
+ type: string
+ name:
+ description: Name of the Secret.
+ type: string
+ required:
+ - name
+ type: object
+ repository:
+ description: Repository is the fqdn to the image repo.
+ type: string
+ username:
+ description: Username is the username for the container repo.
+ type: string
+ required:
+ - passwordSecretRef
+ - repository
+ - username
+ type: object
+ enabled:
+ description: Enabled defines if the operator should build the
+ temporal worker process.
+ type: boolean
+ gitRepository:
+ description: GitRepository specifies how to connect to Git source
+ control.
+ properties:
+ reference:
+ description: Reference specifies the Git reference to resolve
+ and monitor for changes, defaults to the 'master' branch.
+ properties:
+ branch:
+ description: Branch to check out, defaults to 'main' if
+ no other field is defined.
+ type: string
+ type: object
+ url:
+ description: URL specifies the Git repository URL, it can
+ be an HTTP/S or SSH address.
+ pattern: ^(http|https|ssh)://.*$
+ type: string
+ required:
+ - url
+ type: object
+ image:
+ description: Image is the image that will be used to build worker
+ image.
+ type: string
+ version:
+ description: Version is the version of the image that will be
+ used to build worker image.
+ type: string
+ required:
+ - enabled
+ type: object
+ clusterRef:
+ description: Reference to the temporal cluster the worker will connect
+ to.
+ properties:
+ name:
+ description: The name of the TemporalCluster to reference.
+ type: string
+ namespace:
+ description: The namespace of the TemporalCluster to reference.
+ Defaults to the namespace of the requested resource if omitted.
+ type: string
+ type: object
+ image:
+ description: Image defines the temporal worker docker image the instance
+ should run.
+ type: string
+ imagePullSecrets:
+ description: An optional list of references to secrets in the same
+ namespace to use for pulling temporal images from registries.
+ items:
+ description: LocalObjectReference contains enough information to
+ let you locate the referenced object inside the same namespace.
+ properties:
+ 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
+ type: object
+ x-kubernetes-map-type: atomic
+ type: array
+ jobTtlSecondsAfterFinished:
+ default: 300
+ description: JobTTLSecondsAfterFinished is amount of time to keep
+ job pods after jobs are completed. Defaults to 300 seconds.
+ format: int32
+ minimum: 1
+ type: integer
+ pullPolicy:
+ description: Image pull policy for determining how to pull worker
+ process images.
+ type: string
+ replicas:
+ description: Number of desired replicas. Default to 1.
+ format: int32
+ minimum: 1
+ type: integer
+ temporalNamespace:
+ description: TemporalNamespace that worker will poll.
+ type: string
+ version:
+ description: Version defines the worker process version.
+ type: string
+ required:
+ - clusterRef
+ - image
+ - temporalNamespace
+ type: object
+ status:
+ description: TemporalWorkerProcessStatus defines the observed state of
+ TemporalWorkerProcess.
+ properties:
+ attempt:
+ description: BuildAttempt is the build attempt number of a given version
+ format: int32
+ type: integer
+ conditions:
+ description: Conditions represent the latest available observations
+ of the worker process state.
+ items:
+ description: "Condition contains details for one aspect of the current
+ state of this API Resource. --- This struct is intended for direct
+ use as an array at the field path .status.conditions. For example,
+ \n type FooStatus struct{ // Represents the observations of a
+ foo's current state. // Known .status.conditions.type are: \"Available\",
+ \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge
+ // +listType=map // +listMapKey=type Conditions []metav1.Condition
+ `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\"
+ protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }"
+ properties:
+ lastTransitionTime:
+ description: lastTransitionTime is the last time the condition
+ transitioned from one status to another. This should be when
+ the underlying condition changed. If that is not known, then
+ using the time when the API field changed is acceptable.
+ format: date-time
+ type: string
+ message:
+ description: message is a human readable message indicating
+ details about the transition. This may be an empty string.
+ maxLength: 32768
+ type: string
+ observedGeneration:
+ description: observedGeneration represents the .metadata.generation
+ that the condition was set based upon. For instance, if .metadata.generation
+ is currently 12, but the .status.conditions[x].observedGeneration
+ is 9, the condition is out of date with respect to the current
+ state of the instance.
+ format: int64
+ minimum: 0
+ type: integer
+ reason:
+ description: reason contains a programmatic identifier indicating
+ the reason for the condition's last transition. Producers
+ of specific condition types may define expected values and
+ meanings for this field, and whether the values are considered
+ a guaranteed API. The value should be a CamelCase string.
+ This field may not be empty.
+ maxLength: 1024
+ minLength: 1
+ pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
+ type: string
+ status:
+ description: status of the condition, one of True, False, Unknown.
+ enum:
+ - "True"
+ - "False"
+ - Unknown
+ type: string
+ type:
+ description: type of condition in CamelCase or in foo.example.com/CamelCase.
+ --- Many .condition.type values are consistent across resources
+ like Available, but because arbitrary conditions can be useful
+ (see .node.status.conditions), the ability to deconflict is
+ important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
+ maxLength: 316
+ pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
+ type: string
+ required:
+ - lastTransitionTime
+ - message
+ - reason
+ - status
+ - type
+ type: object
+ type: array
+ created:
+ description: Created indicates if the worker process image was created.
+ type: boolean
+ ready:
+ description: Ready defines if the worker process is ready.
+ type: boolean
+ version:
+ description: Version is the version of the image that will be used
+ to build worker image.
+ type: string
+ required:
+ - conditions
+ type: object
+ type: object
+ served: true
+ storage: true
+ subresources:
+ status: {}
+status:
+ acceptedNames:
+ kind: ""
+ plural: ""
+ conditions: null
+ storedVersions: null
diff --git a/operators/temporal-operator/0.13.1/metadata/annotations.yaml b/operators/temporal-operator/0.13.1/metadata/annotations.yaml
new file mode 100644
index 00000000000..e57b8c775d7
--- /dev/null
+++ b/operators/temporal-operator/0.13.1/metadata/annotations.yaml
@@ -0,0 +1,10 @@
+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: temporal-operator
+ operators.operatorframework.io.bundle.channels.v1: alpha
+ operators.operatorframework.io.metrics.builder: operator-sdk-v1.23.0
+ operators.operatorframework.io.metrics.mediatype.v1: metrics+v1
+ operators.operatorframework.io.metrics.project_layout: go.kubebuilder.io/v3