v1alpha1

package
v0.6.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 22, 2022 License: Apache-2.0 Imports: 15 Imported by: 0

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the apps v1alpha1 API group +kubebuilder:object:generate=true +groupName=apps.alexandrevilain.dev

Licensed to Alexandre VILAIN under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. Alexandre VILAIN licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Index

Constants

View Source
const (
	// ReconcileErrorCondition indicates a transient or persistent reconciliation error.
	ReconcileErrorCondition string = "ReconcileError"
	// ReconcileSuccessCondition indicates a successful reconciliation.
	ReconcileSuccessCondition string = "ReconcileSuccess"
	// ReadyCondition indicates the cluster is ready to receive traffic.
	ReadyCondition string = "Ready"
)
View Source
const (
	// ProgressingReason signals a reconciliation has started.
	ProgressingReason string = "Progressing"
	// ReconcileErrorReason signals a unknown reconciliation error.
	ReconcileErrorReason string = "LastReconcileCycleFailed"
	// ReconcileSuccessReason signals a successful reconciliation.
	ReconcileSuccessReason string = "LastReconcileCycleSucceded"
	// ServicesReadyReason signals all temporal services for the cluster are in ready state.
	ServicesReadyReason string = "ServicesReady"
	// ServicesNotReadyReason signals that not all temporal services for the cluster are in ready state.
	ServicesNotReadyReason string = "ServicesNotReady"
	// PersistenceReconciliationFailedReason signals an error while reconciling persistence.
	PersistenceReconciliationFailedReason string = "PersistenceReconciliationFailed"
	// ResourcesReconciliationFailedReason signals an error while reconciling cluster resources.
	ResourcesReconciliationFailedReason string = "ResoucesReconciliationFailed"
	// TemporalClusterValidationFailedReason signals an error while validation desired cluster version.
	TemporalClusterValidationFailedReason string = "TemporalClusterValidationFailed"
)
View Source
const (
	DataStoreClientTLSCertFileName = "client.pem"
	DataStoreClientTLSKeyFileName  = "client.key"
	DataStoreClientTLSCaFileName   = "ca.pem"
)

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "apps.alexandrevilain.dev", Version: "v1alpha1"}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)

Functions

func GetTemporalClusterReadyCondition added in v0.6.0

func GetTemporalClusterReadyCondition(c *TemporalCluster) (*metav1.Condition, bool)

GetTemporalClusterReadyCondition returns the ready condition for the provided cluster if found.

func SetTemporalClusterReady added in v0.2.0

func SetTemporalClusterReady(c *TemporalCluster, status metav1.ConditionStatus, reason, message string)

SetTemporalClusterReady sets the ReadyCondition status for a temporal cluster.

func SetTemporalClusterReconcileError added in v0.2.0

func SetTemporalClusterReconcileError(c *TemporalCluster, status metav1.ConditionStatus, reason, message string)

SetTemporalClusterReconcileError sets the ReconcileErrorCondition status for a temporal cluster.

func SetTemporalClusterReconcileSuccess added in v0.2.0

func SetTemporalClusterReconcileSuccess(c *TemporalCluster, status metav1.ConditionStatus, reason, message string)

SetTemporalClusterReconcileSuccess sets the ReconcileSuccessCondition status for a temporal cluster.

func SetTemporalNamespaceReconcileError added in v0.4.0

func SetTemporalNamespaceReconcileError(c *TemporalNamespace, status metav1.ConditionStatus, reason, message string)

SetTemporalNamespaceReconcileError sets the ReconcileErrorCondition status for a temporal namespace.

func SetTemporalNamespaceReconcileSuccess added in v0.4.0

func SetTemporalNamespaceReconcileSuccess(c *TemporalNamespace, status metav1.ConditionStatus, reason, message string)

SetTemporalNamespaceReconcileSuccess sets the ReconcileSuccessCondition status for a temporal namespace.

Types

type CassandraConsistencySpec added in v0.1.0

type CassandraConsistencySpec struct {
	// Consistency sets the default consistency level.
	// Values identical to gocql Consistency values. (defaults to LOCAL_QUORUM if not set).
	// +kubebuilder:validation:Enum=ANY;ONE;TWO;THREE;QUORUM;ALL;LOCAL_QUORUM;EACH_QUORUM;LOCAL_ONE
	// +optional
	Consistency *gocql.Consistency `json:"consistency"`
	// SerialConsistency sets the consistency for the serial prtion of queries. Values identical to gocql SerialConsistency values.
	// (defaults to LOCAL_SERIAL if not set)
	// +kubebuilder:validation:Enum=SERIAL;LOCAL_SERIAL
	// +optional
	SerialConsistency *gocql.SerialConsistency `json:"serialConsistency"`
}

CassandraConsistencySpec sets the consistency level for regular & serial queries to Cassandra.

func (*CassandraConsistencySpec) DeepCopy added in v0.1.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CassandraConsistencySpec.

func (*CassandraConsistencySpec) DeepCopyInto added in v0.1.0

func (in *CassandraConsistencySpec) DeepCopyInto(out *CassandraConsistencySpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CassandraSpec added in v0.1.0

type CassandraSpec struct {
	// Hosts is a list of cassandra endpoints.
	Hosts []string `json:"hosts"`
	// Port is the cassandra port used for connection by gocql client.
	Port int `json:"port"`
	// User is the cassandra user used for authentication by gocql client.
	User string `json:"user"`
	// Keyspace is the cassandra keyspace.
	Keyspace string `json:"keyspace"`
	// Datacenter is the data center filter arg for cassandra.
	Datacenter string `json:"datacenter"`
	// MaxConns is the max number of connections to this datastore for a single keyspace.
	// +optional
	MaxConns int `json:"maxConns"`
	// ConnectTimeout is a timeout for initial dial to cassandra server.
	// +optional
	ConnectTimeout *metav1.Duration `json:"connectTimeout"`
	// Consistency configuration.
	// +optional
	Consistency *CassandraConsistencySpec `json:"consistency"`
	// DisableInitialHostLookup instructs the gocql client to connect only using the supplied hosts.
	// +optional
	DisableInitialHostLookup bool `json:"disableInitialHostLookup"`
}

CassandraSpec contains cassandra datastore connections specifications.

func (*CassandraSpec) DeepCopy added in v0.1.0

func (in *CassandraSpec) DeepCopy() *CassandraSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CassandraSpec.

func (*CassandraSpec) DeepCopyInto added in v0.1.0

func (in *CassandraSpec) DeepCopyInto(out *CassandraSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CertificatesDurationSpec added in v0.3.0

type CertificatesDurationSpec struct {
	// RootCACertificate is the 'duration' (i.e. lifetime) of the Root CA Certificate.
	// It defaults to 10 years.
	// +optional
	RootCACertificate *metav1.Duration `json:"rootCACertificate"`
	// IntermediateCACertificates is the 'duration' (i.e. lifetime) of the intermediate CAs Certificates.
	// It defaults to 5 years.
	// +optional
	IntermediateCAsCertificates *metav1.Duration `json:"intermediateCAsCertificates"`
	// ClientCertificates is the 'duration' (i.e. lifetime) of the client certificates.
	// It defaults to 1 year.
	// +optional
	ClientCertificates *metav1.Duration `json:"clientCertificates"`
	// FrontendCertificate is the 'duration' (i.e. lifetime) of the frontend certificate.
	// It defaults to 1 year.
	// +optional
	FrontendCertificate *metav1.Duration `json:"frontendCertificate"`
	// InternodeCertificate is the 'duration' (i.e. lifetime) of the internode certificate.
	// It defaults to 1 year.
	// +optional
	InternodeCertificate *metav1.Duration `json:"internodeCertificate"`
}

CertificatesDurationSpec defines parameters for the temporal mTLS certificates duration.

func (*CertificatesDurationSpec) DeepCopy added in v0.3.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificatesDurationSpec.

func (*CertificatesDurationSpec) DeepCopyInto added in v0.3.0

func (in *CertificatesDurationSpec) DeepCopyInto(out *CertificatesDurationSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DatastoreTLSSpec

type DatastoreTLSSpec struct {
	// Enabled defines if the cluster should use a TLS connection to connect to the datastore.
	Enabled bool `json:"enabled"`
	// CertFileRef is a reference to a secret containing the cert file.
	// +optional
	CertFileRef *SecretKeyReference `json:"certFileRef"`
	// KeyFileRef is a reference to a secret containing the key file.
	// +optional
	KeyFileRef *SecretKeyReference `json:"keyFileRef"`
	// CaFileRef is a reference to a secret containing the ca file.
	// +optional
	CaFileRef *SecretKeyReference `json:"caFileRef"`
	// EnableHostVerification defines if the hostname should be verified when connecting to the datastore.
	EnableHostVerification bool `json:"enableHostVerification"`
	// ServerName the datastore should present.
	// +optional
	ServerName string `json:"serverName"`
}

DatastoreTLSSpec contains datastore TLS connections specifications.

func (*DatastoreTLSSpec) DeepCopy

func (in *DatastoreTLSSpec) DeepCopy() *DatastoreTLSSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatastoreTLSSpec.

func (*DatastoreTLSSpec) DeepCopyInto

func (in *DatastoreTLSSpec) DeepCopyInto(out *DatastoreTLSSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DatastoreType

type DatastoreType string
const (
	CassandraDatastore     DatastoreType = "cassandra"
	PostgresSQLDatastore   DatastoreType = "postgresql"
	MySQLDatastore         DatastoreType = "mysql"
	ElasticsearchDatastore DatastoreType = "elasticsearch"
)

type ElasticsearchIndices added in v0.1.0

type ElasticsearchIndices struct {
	// Visibility defines visibility's index name.
	Visibility string `json:"visibility"`
	// SecondaryVisibility defines secondary visibility's index name.
	// +optional
	SecondaryVisibility string `json:"secondaryVisibility"`
}

ElasticsearchIndices holds index names.

func (*ElasticsearchIndices) DeepCopy added in v0.1.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ElasticsearchIndices.

func (*ElasticsearchIndices) DeepCopyInto added in v0.1.0

func (in *ElasticsearchIndices) DeepCopyInto(out *ElasticsearchIndices)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ElasticsearchSpec added in v0.1.0

type ElasticsearchSpec struct {
	// Version defines the elasticsearch version.
	// +kubebuilder:default=v7
	// +kubebuilder:validation:Pattern=`^v(6|7)$`
	Version string `json:"version"`
	// URL is the connection url to connect to the instance.
	// +kubebuilder:validation:Pattern=`^https?:\/\/.+$`
	URL string `json:"url"`
	// Username is the username to be used for the connection.
	Username string `json:"username"`
	// Indices holds visibility index names.
	Indices ElasticsearchIndices `json:"indices"`
	// LogLevel defines the temporal cluster's es client logger level.
	// +optional
	LogLevel string `json:"logLevel"`
	// CloseIdleConnectionsInterval is the max duration a connection stay open while idle.
	// +optional
	CloseIdleConnectionsInterval metav1.Duration `json:"closeIdleConnectionsInterval"`
	// EnableSniff enables or disables sniffer on the temporal cluster's es client.
	// +optional
	EnableSniff bool `json:"enableSniff"`
	// EnableHealthcheck enables or disables healthcheck on the temporal cluster's es client.
	// +optional
	EnableHealthcheck bool `json:"enableHealthcheck"`
}

ElasticsearchSpec contains Elasticsearch datastore connections specifications.

func (*ElasticsearchSpec) DeepCopy added in v0.1.0

func (in *ElasticsearchSpec) DeepCopy() *ElasticsearchSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ElasticsearchSpec.

func (*ElasticsearchSpec) DeepCopyInto added in v0.1.0

func (in *ElasticsearchSpec) DeepCopyInto(out *ElasticsearchSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type FrontendMTLSSpec added in v0.3.0

type FrontendMTLSSpec struct {
	// Enabled defines if the operator should enable mTLS for cluster's public endpoints.
	// +optional
	Enabled bool `json:"enabled"`
}

InternodeMTLSSpec defines parameters for the temporal encryption in transit with mTLS.

func (*FrontendMTLSSpec) DeepCopy added in v0.3.0

func (in *FrontendMTLSSpec) DeepCopy() *FrontendMTLSSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FrontendMTLSSpec.

func (*FrontendMTLSSpec) DeepCopyInto added in v0.3.0

func (in *FrontendMTLSSpec) DeepCopyInto(out *FrontendMTLSSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (FrontendMTLSSpec) GetCertificateMountPath added in v0.3.0

func (FrontendMTLSSpec) GetCertificateMountPath() string

GetCertificateMountPath returns the mount path for the frontend certificate.

func (FrontendMTLSSpec) GetIntermediateCACertificateMountPath added in v0.3.0

func (FrontendMTLSSpec) GetIntermediateCACertificateMountPath() string

GetIntermediateCACertificateMountPath returns the mount path for intermediate CA certificates.

func (FrontendMTLSSpec) GetWorkerCertificateMountPath added in v0.3.0

func (FrontendMTLSSpec) GetWorkerCertificateMountPath() string

GetWorkerCertificateMountPath returns the mount path for the worker certificate.

func (FrontendMTLSSpec) ServerName added in v0.3.0

func (FrontendMTLSSpec) ServerName(serverName string) string

ServerName returns frontend servername for mTLS certificates.

type InternodeMTLSSpec added in v0.3.0

type InternodeMTLSSpec struct {
	// Enabled defines if the operator should enable mTLS for network between cluster nodes.
	// +optional
	Enabled bool `json:"enabled"`
}

InternodeMTLSSpec defines parameters for the temporal encryption in transit with mTLS.

func (*InternodeMTLSSpec) DeepCopy added in v0.3.0

func (in *InternodeMTLSSpec) DeepCopy() *InternodeMTLSSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InternodeMTLSSpec.

func (*InternodeMTLSSpec) DeepCopyInto added in v0.3.0

func (in *InternodeMTLSSpec) DeepCopyInto(out *InternodeMTLSSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (InternodeMTLSSpec) GetCertificateMountPath added in v0.3.0

func (InternodeMTLSSpec) GetCertificateMountPath() string

GetCertificateMountPath returns the mount path for the internode certificate.

func (InternodeMTLSSpec) GetIntermediateCACertificateMountPath added in v0.3.0

func (InternodeMTLSSpec) GetIntermediateCACertificateMountPath() string

GetIntermediateCACertificateMountPath returns the mount path for intermediate CA certificates.

func (InternodeMTLSSpec) ServerName added in v0.3.0

func (InternodeMTLSSpec) ServerName(serverName string) string

ServerName returns internode servername for mTLS certificates.

type MTLSProvider added in v0.3.0

type MTLSProvider string

MTLSProvider is the enum for support mTLS provider.

const (
	// CertManagerMTLSProvider uses cert-manager to manage mTLS certificate.
	CertManagerMTLSProvider MTLSProvider = "cert-manager"
	LinkerdMTLSProvider     MTLSProvider = "linkerd"
	IstioMTLSProvider       MTLSProvider = "istio"
)

type MTLSSpec added in v0.3.0

type MTLSSpec struct {
	// Provider defines the tool used to manage mTLS certificates.
	// +kubebuilder:default=cert-manager
	// +kubebuilder:validation:Enum=cert-manager;linkerd;istio
	// +optional
	Provider MTLSProvider `json:"provider"`
	// Internode allows configuration of the internode traffic encryption.
	// Useless if mTLS provider is not cert-manager.
	// +optional
	Internode *InternodeMTLSSpec `json:"internode"`
	// Frontend allows configuration of the frontend's public endpoint traffic encryption.
	// Useless if mTLS provider is not cert-manager.
	// +optional
	Frontend *FrontendMTLSSpec `json:"frontend"`
	// CertificatesDuration allows configuration of maximum certificates lifetime.
	// Useless if mTLS provider is not cert-manager.
	// +optional
	CertificatesDuration *CertificatesDurationSpec `json:"certificatesDuration,omitempty"`
	// RefreshInterval defines interval between refreshes of certificates in the cluster components.
	// Defaults to 1 hour.
	// Useless if mTLS provider is not cert-manager.
	// +optional
	RefreshInterval *metav1.Duration `json:"refreshInterval"`
}

MTLSSpec defines parameters for the temporal encryption in transit with mTLS.

func (*MTLSSpec) DeepCopy added in v0.3.0

func (in *MTLSSpec) DeepCopy() *MTLSSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MTLSSpec.

func (*MTLSSpec) DeepCopyInto added in v0.3.0

func (in *MTLSSpec) DeepCopyInto(out *MTLSSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*MTLSSpec) FrontendEnabled added in v0.3.0

func (m *MTLSSpec) FrontendEnabled() bool

func (*MTLSSpec) InternodeEnabled added in v0.3.0

func (m *MTLSSpec) InternodeEnabled() bool

type SQLSpec

type SQLSpec struct {
	// User is the username to be used for the connection.
	User string `json:"user"`
	// PluginName is the name of SQL plugin.
	PluginName string `json:"pluginName"`
	// DatabaseName is the name of SQL database to connect to.
	DatabaseName string `json:"databaseName"`
	// ConnectAddr is the remote addr of the database.
	ConnectAddr string `json:"connectAddr"`
	// ConnectProtocol is the protocol that goes with the ConnectAddr.
	// +optional
	ConnectProtocol string `json:"connectProtocol"`
	// ConnectAttributes is a set of key-value attributes to be sent as part of connect data_source_name url
	// +optional
	ConnectAttributes map[string]string `json:"connectAttributes"`
	// MaxConns the max number of connections to this datastore.
	// +optional
	MaxConns int `json:"maxConns"`
	// MaxIdleConns is the max number of idle connections to this datastore.
	// +optional
	MaxIdleConns int `json:"maxIdleConns"`
	// MaxConnLifetime is the maximum time a connection can be alive
	// +optional
	MaxConnLifetime time.Duration `json:"maxConnLifetime"`
	// TaskScanPartitions is the number of partitions to sequentially scan during ListTaskQueue operations.
	// +optional
	TaskScanPartitions int `json:"taskScanPartitions"`
}

SQLSpec contains SQL datastore connections specifications.

func (*SQLSpec) DeepCopy

func (in *SQLSpec) DeepCopy() *SQLSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SQLSpec.

func (*SQLSpec) DeepCopyInto

func (in *SQLSpec) DeepCopyInto(out *SQLSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SecretKeyReference

type SecretKeyReference struct {
	// Name of the Secret.
	// +required
	Name string `json:"name"`
	// Key in the Secret.
	// +optional
	Key string `json:"key,omitempty"`
}

SecretKeyReference contains enough information to locate the referenced Kubernetes Secret object in the same namespace.

func (*SecretKeyReference) DeepCopy

func (in *SecretKeyReference) DeepCopy() *SecretKeyReference

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretKeyReference.

func (*SecretKeyReference) DeepCopyInto

func (in *SecretKeyReference) DeepCopyInto(out *SecretKeyReference)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ServiceSpec

type ServiceSpec struct {
	// 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
	// +optional
	Port *int `json:"port"`
	// 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
	// +optional
	MembershipPort *int `json:"membershipPort"`
	// Number of desired replicas for the service. Default to 1.
	// +kubebuilder:validation:Minimum=1
	// +optional
	Replicas *int32 `json:"replicas"`
}

ServiceSpec contains a temporal service specifications.

func (*ServiceSpec) DeepCopy

func (in *ServiceSpec) DeepCopy() *ServiceSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceSpec.

func (*ServiceSpec) DeepCopyInto

func (in *ServiceSpec) DeepCopyInto(out *ServiceSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ServiceStatus

type ServiceStatus struct {
	// Name of the temporal service.
	Name string `json:"name"`
	// Current observed version of the service.
	Version string `json:"version"`
	// Ready defines if the service is ready.
	Ready bool `json:"ready"`
}

ServiceStatus reports a service status.

func (*ServiceStatus) DeepCopy

func (in *ServiceStatus) DeepCopy() *ServiceStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceStatus.

func (*ServiceStatus) DeepCopyInto

func (in *ServiceStatus) DeepCopyInto(out *ServiceStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TemporalAdminToolsSpec added in v0.0.4

type TemporalAdminToolsSpec struct {
	// Enabled defines if the operator should deploy the admin tools alongside the cluster.
	// +optional
	Enabled bool `json:"enabled"`
	// Image defines the temporal admin tools docker image the instance should run.
	// +optional
	Image string `json:"image"`
}

TemporalUISpec defines parameters for the temporal admin tools within a Temporal cluster deployment. Note that deployed admin tools version is the same as the cluster's version.

func (*TemporalAdminToolsSpec) DeepCopy added in v0.0.4

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TemporalAdminToolsSpec.

func (*TemporalAdminToolsSpec) DeepCopyInto added in v0.0.4

func (in *TemporalAdminToolsSpec) DeepCopyInto(out *TemporalAdminToolsSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TemporalCluster

type TemporalCluster struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	// Specification of the desired behavior of the Temporal cluster.
	Spec TemporalClusterSpec `json:"spec,omitempty"`
	// Most recent observed status of the Temporal cluster.
	Status TemporalClusterStatus `json:"status,omitempty"`
}

TemporalCluster defines a temporal cluster deployment.

func (*TemporalCluster) ChildResourceName

func (c *TemporalCluster) ChildResourceName(resource string) string

ChildResourceName returns child resource name using the cluster's name.

func (*TemporalCluster) DeepCopy

func (in *TemporalCluster) DeepCopy() *TemporalCluster

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TemporalCluster.

func (*TemporalCluster) DeepCopyInto

func (in *TemporalCluster) DeepCopyInto(out *TemporalCluster)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*TemporalCluster) DeepCopyObject

func (in *TemporalCluster) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*TemporalCluster) GetAdvancedVisibilityDatastore added in v0.1.0

func (c *TemporalCluster) GetAdvancedVisibilityDatastore() (*TemporalDatastoreSpec, bool)

GetAdvancedVisibilityDatastore returns the cluster's advanced visibility datastore.

func (*TemporalCluster) GetDefaultDatastore

func (c *TemporalCluster) GetDefaultDatastore() (*TemporalDatastoreSpec, bool)

GetDefaultDatastore returns the cluster's default datastore.

func (*TemporalCluster) GetPublicClientAddress added in v0.4.0

func (c *TemporalCluster) GetPublicClientAddress() string

func (*TemporalCluster) GetVisibilityDatastore

func (c *TemporalCluster) GetVisibilityDatastore() (*TemporalDatastoreSpec, bool)

GetVisibilityDatastore returns the cluster's visibility datastore.

func (*TemporalCluster) MTLSWithCertManagerEnabled added in v0.4.0

func (c *TemporalCluster) MTLSWithCertManagerEnabled() bool

MTLSEnabled returns true if mTLS is enabled for internode or frontend using cert-manager.

func (*TemporalCluster) ServerName added in v0.3.0

func (c *TemporalCluster) ServerName() string

ServerName returns cluster's server name.

type TemporalClusterClient added in v0.3.0

type TemporalClusterClient struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   TemporalClusterClientSpec   `json:"spec,omitempty"`
	Status TemporalClusterClientStatus `json:"status,omitempty"`
}

TemporalClusterClient is the Schema for the temporalclusterclients API

func (*TemporalClusterClient) DeepCopy added in v0.3.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TemporalClusterClient.

func (*TemporalClusterClient) DeepCopyInto added in v0.3.0

func (in *TemporalClusterClient) DeepCopyInto(out *TemporalClusterClient)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*TemporalClusterClient) DeepCopyObject added in v0.3.0

func (in *TemporalClusterClient) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type TemporalClusterClientList added in v0.3.0

type TemporalClusterClientList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []TemporalClusterClient `json:"items"`
}

TemporalClusterClientList contains a list of TemporalClusterClient

func (*TemporalClusterClientList) DeepCopy added in v0.3.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TemporalClusterClientList.

func (*TemporalClusterClientList) DeepCopyInto added in v0.3.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*TemporalClusterClientList) DeepCopyObject added in v0.3.0

func (in *TemporalClusterClientList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type TemporalClusterClientSpec added in v0.3.0

type TemporalClusterClientSpec struct {
	// Reference to the temporal cluster the client will get access to.
	TemporalClusterRef corev1.LocalObjectReference `json:"temporalClusterRef"`
}

TemporalClusterClientSpec defines the desired state of TemporalClusterClient

func (*TemporalClusterClientSpec) DeepCopy added in v0.3.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TemporalClusterClientSpec.

func (*TemporalClusterClientSpec) DeepCopyInto added in v0.3.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TemporalClusterClientStatus added in v0.3.0

type TemporalClusterClientStatus struct {
	// ServerName is the hostname returned by the certificate.
	ServerName string `json:"serverName"`
	// Reference to the Kubernetes Secret containing the certificate for the client.
	SecretRef corev1.LocalObjectReference `json:"secretRef"`
}

TemporalClusterClientStatus defines the observed state of TemporalClusterClient

func (*TemporalClusterClientStatus) DeepCopy added in v0.3.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TemporalClusterClientStatus.

func (*TemporalClusterClientStatus) DeepCopyInto added in v0.3.0

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TemporalClusterList

type TemporalClusterList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []TemporalCluster `json:"items"`
}

TemporalClusterList contains a list of TemporalCluster

func (*TemporalClusterList) DeepCopy

func (in *TemporalClusterList) DeepCopy() *TemporalClusterList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TemporalClusterList.

func (*TemporalClusterList) DeepCopyInto

func (in *TemporalClusterList) DeepCopyInto(out *TemporalClusterList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*TemporalClusterList) DeepCopyObject

func (in *TemporalClusterList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type TemporalClusterSpec

type TemporalClusterSpec struct {
	// Image defines the temporal server docker image the cluster should use for each services.
	// +optional
	Image string `json:"image"`
	// Version defines the temporal version the cluster to be deployed.
	// This version impacts the underlying persistence schemas versions.
	Version string `json:"version"`
	// NumHistoryShards is the desired number of history shards.
	// This field is immutable.
	//+kubebuilder:validation:Minimum=1
	NumHistoryShards int32 `json:"numHistoryShards"`
	// Services allows customizations for for each temporal services deployment.
	// +optional
	Services *TemporalServicesSpec `json:"services,omitempty"`
	// Persistence defines temporal persistence configuration.
	Persistence TemporalPersistenceSpec `json:"persistence"`
	// Datastores the cluster can use. Datastore names are then referenced in the PersistenceSpec to use them
	// for the cluster's persistence layer.
	Datastores []TemporalDatastoreSpec `json:"datastores"`
	// An optional list of references to secrets in the same namespace
	// to use for pulling temporal images from registries.
	// +optional
	ImagePullSecrets []corev1.LocalObjectReference `json:"imagePullSecrets,omitempty"`
	// UI allows configuration of the optional temporal web ui deployed alongside the cluster.
	// +optional
	UI *TemporalUISpec `json:"ui,omitempty"`
	// AdminTools allows configuration of the optional admin tool pod deployed alongside the cluster.
	// +optional
	AdminTools *TemporalAdminToolsSpec `json:"admintools,omitempty"`
	// MTLS allows configuration of the network traffic encryption for the cluster.
	// +optional
	MTLS *MTLSSpec `json:"mTLS,omitempty"`
}

TemporalClusterSpec defines the desired state of TemporalCluster.

func (*TemporalClusterSpec) DeepCopy

func (in *TemporalClusterSpec) DeepCopy() *TemporalClusterSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TemporalClusterSpec.

func (*TemporalClusterSpec) DeepCopyInto

func (in *TemporalClusterSpec) DeepCopyInto(out *TemporalClusterSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TemporalClusterStatus

type TemporalClusterStatus struct {
	// Version holds the current temporal version.
	Version string `json:"version,omitempty"`
	// Services holds all services statuses.
	Services []ServiceStatus `json:"services,omitempty"`
	// Conditions represent the latest available observations of the TemporalCluster state.
	Conditions []metav1.Condition `json:"conditions"`
}

TemporalClusterStatus defines the observed state of TemporalCluster.

func (*TemporalClusterStatus) AddServiceStatus added in v0.2.0

func (s *TemporalClusterStatus) AddServiceStatus(status *ServiceStatus)

AddServiceStatus adds the provided service status to the cluster's status.

func (*TemporalClusterStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TemporalClusterStatus.

func (*TemporalClusterStatus) DeepCopyInto

func (in *TemporalClusterStatus) DeepCopyInto(out *TemporalClusterStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TemporalDatastoreSpec

type TemporalDatastoreSpec struct {
	// Name is the name of the datatstore.
	// It should be unique and will be referenced within the persitence spec.
	// +required
	Name string `json:"name"`
	// SQL holds all connection parameters for SQL datastores.
	// +optional
	SQL *SQLSpec `json:"sql"`
	// Elasticsearch holds all connection parameters for Elasticsearch datastores.
	// +optional
	Elasticsearch *ElasticsearchSpec `json:"elasticsearch"`
	// Cassandra holds all connection parameters for Cassandra datastore.
	// +optional
	Cassandra *CassandraSpec `json:"cassandra"`
	// PasswordSecret is the reference to the secret holding the password.
	// +required
	PasswordSecretRef SecretKeyReference `json:"passwordSecretRef"`
	// TLS is an optional option to connect to the datastore using TLS.
	// +optional
	TLS *DatastoreTLSSpec `json:"tls"`
}

TemporalDatastoreSpec contains temporal datastore specifications.

func (*TemporalDatastoreSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TemporalDatastoreSpec.

func (*TemporalDatastoreSpec) DeepCopyInto

func (in *TemporalDatastoreSpec) DeepCopyInto(out *TemporalDatastoreSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*TemporalDatastoreSpec) GetDatastoreType

func (s *TemporalDatastoreSpec) GetDatastoreType() (DatastoreType, error)

func (*TemporalDatastoreSpec) GetPasswordEnvVarName

func (s *TemporalDatastoreSpec) GetPasswordEnvVarName() string

GetPasswordEnvVarName crafts the environment variable name for the datastore.

func (*TemporalDatastoreSpec) GetTLSCaFileMountPath

func (s *TemporalDatastoreSpec) GetTLSCaFileMountPath() string

GetTLSCaFileMountPath returns the CA key mount path. It returns empty if the tls config is nil or if no secret key ref has been specified.

func (*TemporalDatastoreSpec) GetTLSCertFileMountPath

func (s *TemporalDatastoreSpec) GetTLSCertFileMountPath() string

GetTLSKeyFileMountPath returns the client TLS cert mount path. It returns empty if the tls config is nil or if no secret key ref has been specified.

func (*TemporalDatastoreSpec) GetTLSKeyFileMountPath

func (s *TemporalDatastoreSpec) GetTLSKeyFileMountPath() string

GetTLSKeyFileMountPath returns the client TLS key mount path. It returns empty if the tls config is nil or if no secret key ref has been specified.

type TemporalNamespace added in v0.4.0

type TemporalNamespace struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   TemporalNamespaceSpec   `json:"spec,omitempty"`
	Status TemporalNamespaceStatus `json:"status,omitempty"`
}

TemporalNamespace is the Schema for the temporalnamespaces API

func (*TemporalNamespace) DeepCopy added in v0.4.0

func (in *TemporalNamespace) DeepCopy() *TemporalNamespace

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TemporalNamespace.

func (*TemporalNamespace) DeepCopyInto added in v0.4.0

func (in *TemporalNamespace) DeepCopyInto(out *TemporalNamespace)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*TemporalNamespace) DeepCopyObject added in v0.4.0

func (in *TemporalNamespace) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type TemporalNamespaceList added in v0.4.0

type TemporalNamespaceList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []TemporalNamespace `json:"items"`
}

TemporalNamespaceList contains a list of TemporalNamespace

func (*TemporalNamespaceList) DeepCopy added in v0.4.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TemporalNamespaceList.

func (*TemporalNamespaceList) DeepCopyInto added in v0.4.0

func (in *TemporalNamespaceList) DeepCopyInto(out *TemporalNamespaceList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*TemporalNamespaceList) DeepCopyObject added in v0.4.0

func (in *TemporalNamespaceList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type TemporalNamespaceSpec added in v0.4.0

type TemporalNamespaceSpec struct {
	// Reference to the temporal cluster the namespace will be created.
	TemporalClusterRef corev1.LocalObjectReference `json:"temporalClusterRef"`
	// Namespace description.
	// +optional
	Description string `json:"description,omitempty"`
	// Namespace owner email.
	// +optional
	OwnerEmail string `json:"ownerEmail,omitempty"`
	// RetentionPeriod to apply on closed workflow executions.
	RetentionPeriod *metav1.Duration `json:"retentionPeriod"`
	// Data is a key-value map for any customized purpose.
	// +optional
	Data map[string]string `json:"data,omitempty"`
	// +optional
	SecurityToken string `json:"securityToken,omitempty"`
	// IsGlobalNamespace defines whether the namespace is a global namespace.
	// +optional
	IsGlobalNamespace bool `json:"isGlobalNamespace,omitempty"`
	// List of clusters names to which the namespace can fail over.
	// Only applicable if the namespace is a global namespace.
	// +optional
	Clusters []string `json:"clusters,omitempty"`
	// The name of active Temporal Cluster.
	// Only applicable if the namespace is a global namespace.
	// +optional
	ActiveClusterName string `json:"activeClusterName,omitempty"`
}

TemporalNamespaceSpec defines the desired state of TemporalNamespace

func (*TemporalNamespaceSpec) DeepCopy added in v0.4.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TemporalNamespaceSpec.

func (*TemporalNamespaceSpec) DeepCopyInto added in v0.4.0

func (in *TemporalNamespaceSpec) DeepCopyInto(out *TemporalNamespaceSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TemporalNamespaceStatus added in v0.4.0

type TemporalNamespaceStatus struct {
	// Conditions represent the latest available observations of the TemporalNamespace state.
	Conditions []metav1.Condition `json:"conditions"`
}

TemporalNamespaceStatus defines the observed state of TemporalNamespace

func (*TemporalNamespaceStatus) DeepCopy added in v0.4.0

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TemporalNamespaceStatus.

func (*TemporalNamespaceStatus) DeepCopyInto added in v0.4.0

func (in *TemporalNamespaceStatus) DeepCopyInto(out *TemporalNamespaceStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TemporalPersistenceSpec

type TemporalPersistenceSpec struct {
	// DefaultStore is the name of the default data store to use.
	DefaultStore string `json:"defaultStore"`
	// VisibilityStore is the name of the datastore to be used for visibility records.
	VisibilityStore string `json:"visibilityStore"`
	// AdvancedVisibilityStore is the name of the datastore to be used for visibility records
	// +optional
	AdvancedVisibilityStore string `json:"advancedVisibilityStore"`
}

TemporalPersistenceSpec contains temporal persistence specifications.

func (*TemporalPersistenceSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TemporalPersistenceSpec.

func (*TemporalPersistenceSpec) DeepCopyInto

func (in *TemporalPersistenceSpec) DeepCopyInto(out *TemporalPersistenceSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TemporalServicesSpec

type TemporalServicesSpec struct {
	// Frontend service custom specifications.
	// +optional
	Frontend *ServiceSpec `json:"frontend"`
	// History service custom specifications.
	// +optional
	History *ServiceSpec `json:"history"`
	// Matching service custom specifications.
	// +optional
	Matching *ServiceSpec `json:"matching"`
	// Worker service custom specifications.
	// +optional
	Worker *ServiceSpec `json:"worker"`
}

TemporalServicesSpec contains all temporal services specifications.

func (*TemporalServicesSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TemporalServicesSpec.

func (*TemporalServicesSpec) DeepCopyInto

func (in *TemporalServicesSpec) DeepCopyInto(out *TemporalServicesSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*TemporalServicesSpec) GetServiceSpec

func (s *TemporalServicesSpec) GetServiceSpec(name string) (*ServiceSpec, error)

GetServiceSpec returns service spec from its name.

type TemporalUIIngressSpec added in v0.0.4

type TemporalUIIngressSpec struct {
	// Annotations allows custom annotations on the ingress ressource.
	Annotations map[string]string `json:"annotations,omitempty"`
	// IngressClassName is the name of the IngressClass the deployed ingress resource should use.
	IngressClassName *string `json:"ingressClassName,omitempty"`
	// Host is the list of host the ingress should use.
	Hosts []string `json:"hosts"`
	// TLS configuration.
	TLS []networkingv1.IngressTLS `json:"tls,omitempty" protobuf:"bytes,2,rep,name=tls"`
}

TemporalUIIngressSpec contains all configurations options for the UI ingress.

func (*TemporalUIIngressSpec) DeepCopy added in v0.0.4

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TemporalUIIngressSpec.

func (*TemporalUIIngressSpec) DeepCopyInto added in v0.0.4

func (in *TemporalUIIngressSpec) DeepCopyInto(out *TemporalUIIngressSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TemporalUISpec added in v0.0.4

type TemporalUISpec struct {
	// Enabled defines if the operator should deploy the web ui alongside the cluster.
	// +optional
	Enabled bool `json:"enabled"`
	// Version defines the temporal ui version the instance should run.
	// +optional
	Version string `json:"version"`
	// Image defines the temporal ui docker image the instance should run.
	// +optional
	Image string `json:"image"`
	// 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.
	// +optional
	Ingress *TemporalUIIngressSpec `json:"ingress,omitempty"`
}

TemporalUISpec defines parameters for the temporal UI within a Temporal cluster deployment.

func (*TemporalUISpec) DeepCopy added in v0.0.4

func (in *TemporalUISpec) DeepCopy() *TemporalUISpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TemporalUISpec.

func (*TemporalUISpec) DeepCopyInto added in v0.0.4

func (in *TemporalUISpec) DeepCopyInto(out *TemporalUISpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL