v1alpha1

package
v0.3.0 Latest Latest
Warning

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

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

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the cloud v1alpha1 API group +kubebuilder:object:generate=true +groupName=compute.functionmesh.io

Package v1alpha1 contains API Schema definitions for the cloud v1alpha1 API group +kubebuilder:object:generate=true +groupName=compute.functionmesh.io

Index

Constants

View Source
const (
	AtleastOnce     ProcessGuarantee = "atleast_once"
	AtmostOnce      ProcessGuarantee = "atmost_once"
	EffectivelyOnce ProcessGuarantee = "effectively_once"

	DefaultTenant    string = "public"
	DefaultNamespace string = "default"
	DefaultCluster   string = "kubernetes"

	DefaultResourceCPU    int64 = 1
	DefaultResourceMemory int64 = 1073741824
)
View Source
const (
	FunctionComponent string = "function"
	SourceComponent   string = "source"
	SinkComponent     string = "sink"

	PackageURLHTTP     string = "http://"
	PackageURLHTTPS    string = "https://"
	PackageURLFunction string = "function://"
	PackageURLSource   string = "source://"
	PackageURLSink     string = "sink://"
)

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "compute.functionmesh.io", 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

This section is empty.

Types

type BuiltinHPARule

type BuiltinHPARule string
const (
	AverageUtilizationCPUPercent80 BuiltinHPARule = "AverageUtilizationCPUPercent80"
	AverageUtilizationCPUPercent50 BuiltinHPARule = "AverageUtilizationCPUPercent50"
	AverageUtilizationCPUPercent20 BuiltinHPARule = "AverageUtilizationCPUPercent20"

	AverageUtilizationMemoryPercent80 BuiltinHPARule = "AverageUtilizationMemoryPercent80"
	AverageUtilizationMemoryPercent50 BuiltinHPARule = "AverageUtilizationMemoryPercent50"
	AverageUtilizationMemoryPercent20 BuiltinHPARule = "AverageUtilizationMemoryPercent20"
)

type Component

type Component string
const (
	StatefulSet Component = "StatefulSet"
	Service     Component = "Service"
	HPA         Component = "HorizontalPodAutoscaler"
)

type Config

type Config struct {
	// Data holds the configuration keys and values.
	// This field exists to work around https://github.com/kubernetes-sigs/kubebuilder/issues/528
	Data map[string]interface{} `json:"-"`
}

Config represents untyped YAML configuration.

func NewConfig

func NewConfig(cfg map[string]interface{}) Config

NewConfig constructs a Config with the given unstructured configuration data.

func (*Config) DeepCopy

func (in *Config) DeepCopy() *Config

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

func (*Config) DeepCopyInto

func (c *Config) DeepCopyInto(out *Config)

DeepCopyInto is an ~autogenerated~ deepcopy function, copying the receiver, writing into out. in must be non-nil. This exists here to work around https://github.com/kubernetes/code-generator/issues/50

func (*Config) MarshalJSON

func (c *Config) MarshalJSON() ([]byte, error)

MarshalJSON implements the Marshaler interface.

func (*Config) UnmarshalJSON

func (c *Config) UnmarshalJSON(data []byte) error

UnmarshalJSON implements the Unmarshaler interface.

type ConsumerConfig

type ConsumerConfig struct {
	SchemaType         string            `json:"schemaType,omitempty"`
	SerdeClassName     string            `json:"serdeClassname,omitempty"`
	IsRegexPattern     bool              `json:"isRegexPattern,omitempty"`
	SchemaProperties   map[string]string `json:"schemaProperties,omitempty"`
	ConsumerProperties map[string]string `json:"consumerProperties,omitempty"`
	ReceiverQueueSize  *int32            `json:"receiverQueueSize,omitempty"`
	CryptoConfig       *CryptoConfig     `json:"cryptoConfig,omitempty"`
}

func (*ConsumerConfig) DeepCopy

func (in *ConsumerConfig) DeepCopy() *ConsumerConfig

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

func (*ConsumerConfig) DeepCopyInto

func (in *ConsumerConfig) DeepCopyInto(out *ConsumerConfig)

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

type CryptoConfig

type CryptoConfig struct {
	CryptoKeyReaderClassName    string            `json:"cryptoKeyReaderClassName,omitempty"`
	CryptoKeyReaderConfig       map[string]string `json:"cryptoKeyReaderConfig,omitempty"`
	EncryptionKeys              []string          `json:"encryptionKeys,omitempty"`
	ProducerCryptoFailureAction string            `json:"producerCryptoFailureAction,omitempty"`
	ConsumerCryptoFailureAction string            `json:"consumerCryptoFailureAction,omitempty"`
	CryptoSecrets               []CryptoSecret    `json:"cryptoSecrets,omitempty"`
}

func (*CryptoConfig) DeepCopy

func (in *CryptoConfig) DeepCopy() *CryptoConfig

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

func (*CryptoConfig) DeepCopyInto

func (in *CryptoConfig) DeepCopyInto(out *CryptoConfig)

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

type CryptoSecret

type CryptoSecret struct {
	SecretName string `json:"secretName"`
	SecretKey  string `json:"secretKey"`
	AsVolume   string `json:"asVolume,omitempty"`
}

func (*CryptoSecret) DeepCopy

func (in *CryptoSecret) DeepCopy() *CryptoSecret

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

func (*CryptoSecret) DeepCopyInto

func (in *CryptoSecret) DeepCopyInto(out *CryptoSecret)

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

type Function

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

	Spec   FunctionSpec   `json:"spec,omitempty"`
	Status FunctionStatus `json:"status,omitempty"`
}

Function is the Schema for the functions API +kubebuilder:pruning:PreserveUnknownFields

func (*Function) DeepCopy

func (in *Function) DeepCopy() *Function

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

func (*Function) DeepCopyInto

func (in *Function) DeepCopyInto(out *Function)

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

func (*Function) DeepCopyObject

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

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

func (*Function) Default

func (r *Function) Default()

Default implements webhook.Defaulter so a webhook will be registered for the type

func (*Function) SetupWebhookWithManager

func (r *Function) SetupWebhookWithManager(mgr ctrl.Manager) error

func (*Function) ValidateCreate

func (r *Function) ValidateCreate() error

ValidateCreate implements webhook.Validator so a webhook will be registered for the type

func (*Function) ValidateDelete

func (r *Function) ValidateDelete() error

ValidateDelete implements webhook.Validator so a webhook will be registered for the type

func (*Function) ValidateUpdate

func (r *Function) ValidateUpdate(old runtime.Object) error

ValidateUpdate implements webhook.Validator so a webhook will be registered for the type

type FunctionList

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

FunctionList contains a list of Function

func (*FunctionList) DeepCopy

func (in *FunctionList) DeepCopy() *FunctionList

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

func (*FunctionList) DeepCopyInto

func (in *FunctionList) DeepCopyInto(out *FunctionList)

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

func (*FunctionList) DeepCopyObject

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

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

type FunctionMesh

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

	Spec   FunctionMeshSpec   `json:"spec,omitempty"`
	Status FunctionMeshStatus `json:"status,omitempty"`
}

FunctionMesh is the Schema for the functionmeshes API

func (*FunctionMesh) DeepCopy

func (in *FunctionMesh) DeepCopy() *FunctionMesh

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

func (*FunctionMesh) DeepCopyInto

func (in *FunctionMesh) DeepCopyInto(out *FunctionMesh)

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

func (*FunctionMesh) DeepCopyObject

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

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

type FunctionMeshList

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

FunctionMeshList contains a list of FunctionMesh

func (*FunctionMeshList) DeepCopy

func (in *FunctionMeshList) DeepCopy() *FunctionMeshList

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

func (*FunctionMeshList) DeepCopyInto

func (in *FunctionMeshList) DeepCopyInto(out *FunctionMeshList)

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

func (*FunctionMeshList) DeepCopyObject

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

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

type FunctionMeshSpec

type FunctionMeshSpec struct {
	Sources   []SourceSpec   `json:"sources,omitempty"`
	Sinks     []SinkSpec     `json:"sinks,omitempty"`
	Functions []FunctionSpec `json:"functions,omitempty"`
}

FunctionMeshSpec defines the desired state of FunctionMesh

func (*FunctionMeshSpec) DeepCopy

func (in *FunctionMeshSpec) DeepCopy() *FunctionMeshSpec

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

func (*FunctionMeshSpec) DeepCopyInto

func (in *FunctionMeshSpec) DeepCopyInto(out *FunctionMeshSpec)

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

type FunctionMeshStatus

type FunctionMeshStatus struct {
	// INSERT ADDITIONAL STATUS FIELD - define observed state of cluster
	// Important: Run "make" to regenerate code after modifying this file
	SourceConditions   map[string]ResourceCondition `json:"sourceConditions,omitempty"`
	SinkConditions     map[string]ResourceCondition `json:"sinkConditions,omitempty"`
	FunctionConditions map[string]ResourceCondition `json:"functionConditions,omitempty"`
}

FunctionMeshStatus defines the observed state of FunctionMesh

func (*FunctionMeshStatus) DeepCopy

func (in *FunctionMeshStatus) DeepCopy() *FunctionMeshStatus

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

func (*FunctionMeshStatus) DeepCopyInto

func (in *FunctionMeshStatus) DeepCopyInto(out *FunctionMeshStatus)

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

type FunctionSpec

type FunctionSpec struct {
	// INSERT ADDITIONAL SPEC FIELDS - desired state of cluster
	// Important: Run "make" to regenerate code after modifying this file
	// +kubebuilder:validation:Required
	Name        string `json:"name,omitempty"`
	ClassName   string `json:"className,omitempty"`
	Tenant      string `json:"tenant,omitempty"`
	Namespace   string `json:"namespace,omitempty"`
	ClusterName string `json:"clusterName,omitempty"`
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Minimum=1
	Replicas *int32 `json:"replicas,omitempty"`

	// MaxReplicas indicates the maximum number of replicas and enables the HorizontalPodAutoscaler
	// If provided, a default HPA with CPU at average of 80% will be used.
	// For complex HPA strategies, please refer to Pod.HPAutoscaler.
	MaxReplicas *int32     `json:"maxReplicas,omitempty"` // if provided, turn on autoscaling
	Input       InputConf  `json:"input,omitempty"`
	Output      OutputConf `json:"output,omitempty"`
	LogTopic    string     `json:"logTopic,omitempty"`
	// +kubebuilder:validation:Optional
	// +kubebuilder:pruning:PreserveUnknownFields
	FuncConfig   *Config                     `json:"funcConfig,omitempty"`
	Resources    corev1.ResourceRequirements `json:"resources,omitempty"`
	SecretsMap   map[string]SecretRef        `json:"secretsMap,omitempty"`
	VolumeMounts []corev1.VolumeMount        `json:"volumeMounts,omitempty"`

	Timeout                      int32            `json:"timeout,omitempty"`
	AutoAck                      *bool            `json:"autoAck,omitempty"`
	MaxMessageRetry              int32            `json:"maxMessageRetry,omitempty"`
	ProcessingGuarantee          ProcessGuarantee `json:"processingGuarantee,omitempty"`
	RetainOrdering               bool             `json:"retainOrdering,omitempty"`
	RetainKeyOrdering            bool             `json:"retainKeyOrdering,omitempty"`
	DeadLetterTopic              string           `json:"deadLetterTopic,omitempty"`
	ForwardSourceMessageProperty *bool            `json:"forwardSourceMessageProperty,omitempty"`
	MaxPendingAsyncRequests      *int32           `json:"maxPendingAsyncRequests,omitempty"`

	RuntimeFlags         string            `json:"runtimeFlags,omitempty"`
	SubscriptionName     string            `json:"subscriptionName,omitempty"`
	CleanupSubscription  bool              `json:"cleanupSubscription,omitempty"`
	SubscriptionPosition SubscribePosition `json:"subscriptionPosition,omitempty"`

	Pod PodPolicy `json:"pod,omitempty"`

	// +kubebuilder:validation:Required
	Messaging `json:",inline"`

	// +kubebuilder:validation:Required
	Runtime `json:",inline"`

	// Image is the container image used to run function pods.
	// default is streamnative/pulsar-functions-java-runner
	Image string `json:"image,omitempty"`

	// Image pull policy, one of Always, Never, IfNotPresent, default to IfNotPresent.
	ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy,omitempty"`

	// +kubebuilder:validation:Optional
	StateConfig *Stateful `json:"statefulConfig,omitempty"`
}

FunctionSpec defines the desired state of Function +kubebuilder:validation:Optional

func (*FunctionSpec) DeepCopy

func (in *FunctionSpec) DeepCopy() *FunctionSpec

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

func (*FunctionSpec) DeepCopyInto

func (in *FunctionSpec) DeepCopyInto(out *FunctionSpec)

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

type FunctionStatus

type FunctionStatus struct {
	// INSERT ADDITIONAL STATUS FIELD - define observed state of cluster
	// Important: Run "make" to regenerate code after modifying this file
	Conditions map[Component]ResourceCondition `json:"conditions"`
	Replicas   int32                           `json:"replicas"`
	Selector   string                          `json:"selector"`
}

FunctionStatus defines the observed state of Function

func (*FunctionStatus) DeepCopy

func (in *FunctionStatus) DeepCopy() *FunctionStatus

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

func (*FunctionStatus) DeepCopyInto

func (in *FunctionStatus) DeepCopyInto(out *FunctionStatus)

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

type GoRuntime

type GoRuntime struct {
	// +kubebuilder:validation:Required
	Go         string `json:"go,omitempty"`
	GoLocation string `json:"goLocation,omitempty"`
}

GoRuntime contains the golang runtime configs +kubebuilder:validation:Optional

func (*GoRuntime) DeepCopy

func (in *GoRuntime) DeepCopy() *GoRuntime

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

func (*GoRuntime) DeepCopyInto

func (in *GoRuntime) DeepCopyInto(out *GoRuntime)

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

type InputConf

type InputConf struct {
	TypeClassName       string                    `json:"typeClassName,omitempty"`
	Topics              []string                  `json:"topics,omitempty"`
	TopicPattern        string                    `json:"topicPattern,omitempty"`
	CustomSerdeSources  map[string]string         `json:"customSerdeSources,omitempty"`
	CustomSchemaSources map[string]string         `json:"customSchemaSources,omitempty"`
	SourceSpecs         map[string]ConsumerConfig `json:"sourceSpecs,omitempty"`
}

func (*InputConf) DeepCopy

func (in *InputConf) DeepCopy() *InputConf

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

func (*InputConf) DeepCopyInto

func (in *InputConf) DeepCopyInto(out *InputConf)

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

type JavaRuntime

type JavaRuntime struct {
	// +kubebuilder:validation:Required
	Jar                  string `json:"jar,omitempty"`
	JarLocation          string `json:"jarLocation,omitempty"`
	ExtraDependenciesDir string `json:"extraDependenciesDir,omitempty"`
}

JavaRuntime contains the java runtime configs +kubebuilder:validation:Optional

func (*JavaRuntime) DeepCopy

func (in *JavaRuntime) DeepCopy() *JavaRuntime

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

func (*JavaRuntime) DeepCopyInto

func (in *JavaRuntime) DeepCopyInto(out *JavaRuntime)

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

type Messaging

type Messaging struct {
	Pulsar *PulsarMessaging `json:"pulsar,omitempty"`
}

func (*Messaging) DeepCopy

func (in *Messaging) DeepCopy() *Messaging

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

func (*Messaging) DeepCopyInto

func (in *Messaging) DeepCopyInto(out *Messaging)

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

type OutputConf

type OutputConf struct {
	TypeClassName      string            `json:"typeClassName,omitempty"`
	Topic              string            `json:"topic,omitempty"`
	SinkSerdeClassName string            `json:"sinkSerdeClassName,omitempty"`
	SinkSchemaType     string            `json:"sinkSchemaType,omitempty"`
	ProducerConf       *ProducerConfig   `json:"producerConf,omitempty"`
	CustomSchemaSinks  map[string]string `json:"customSchemaSinks,omitempty"`
}

func (*OutputConf) DeepCopy

func (in *OutputConf) DeepCopy() *OutputConf

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

func (*OutputConf) DeepCopyInto

func (in *OutputConf) DeepCopyInto(out *OutputConf)

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

type PodPolicy

type PodPolicy struct {
	// Labels specifies the labels to attach to pod the operator creates for the cluster.
	Labels map[string]string `json:"labels,omitempty"`

	// NodeSelector specifies a map of key-value pairs. For a pod to be eligible to run
	// on a node, the node must have each of the indicated key-value pairs as labels.
	NodeSelector map[string]string `json:"nodeSelector,omitempty"`

	// Affinity specifies the scheduling constraints of a pod
	Affinity *corev1.Affinity `json:"affinity,omitempty"`

	// Tolerations specifies the tolerations of a Pod
	Tolerations []corev1.Toleration `json:"tolerations,omitempty"`

	// Annotations specifies the annotations to attach to pods the operator creates
	Annotations map[string]string `json:"annotations,omitempty"`

	// SecurityContext specifies the security context for the entire pod
	// More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context
	SecurityContext *corev1.PodSecurityContext `json:"securityContext,omitempty"`

	// TerminationGracePeriodSeconds is the amount of time that kubernetes will give
	// for a pod before terminating it.
	TerminationGracePeriodSeconds int64 `json:"terminationGracePeriodSeconds,omitempty"`

	// List of volumes that can be mounted by containers belonging to the pod.
	// More info: https://kubernetes.io/docs/concepts/storage/volumes
	Volumes []corev1.Volume `json:"volumes,omitempty"`

	// ImagePullSecrets is an optional list of references to secrets in the same
	// namespace to use for pulling any of the images used by this PodSpec.
	ImagePullSecrets []corev1.LocalObjectReference `json:"imagePullSecrets,omitempty"`

	// Init containers of the pod. A typical use case could be using an init
	// container to download a remote jar to a local path.
	// More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
	InitContainers []corev1.Container `json:"initContainers,omitempty"`

	// Sidecar containers running alongside with the main function container in the
	// pod.
	Sidecars []corev1.Container `json:"sidecars,omitempty"`

	// ServiceAccountName is the name of the ServiceAccount to use to run this pod.
	// +optional
	ServiceAccountName string `json:"serviceAccountName,omitempty"`

	// BuiltinAutoscaler refers to the built-in autoscaling rules
	// Available values: AverageUtilizationCPUPercent80, AverageUtilizationCPUPercent50, AverageUtilizationCPUPercent20
	// AverageUtilizationMemoryPercent80, AverageUtilizationMemoryPercent50, AverageUtilizationMemoryPercent20
	// +optional
	// TODO: validate the rules, user may provide duplicate rules, should check with webhook
	BuiltinAutoscaler []BuiltinHPARule `json:"builtinAutoscaler,omitempty"`

	// AutoScalingMetrics contains the specifications for which to use to calculate the
	// desired replica count (the maximum replica count across all metrics will
	// be used).
	// More info: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.21/#metricspec-v2beta2-autoscaling
	// +optional
	AutoScalingMetrics []autov2beta2.MetricSpec `json:"autoScalingMetrics,omitempty"`

	// AutoScalingBehavior configures the scaling behavior of the target
	// in both Up and Down directions (scaleUp and scaleDown fields respectively).
	// If not set, the default HPAScalingRules for scale up and scale down are used.
	// +optional
	AutoScalingBehavior *autov2beta2.HorizontalPodAutoscalerBehavior `json:"autoScalingBehavior,omitempty"`
}

func (*PodPolicy) DeepCopy

func (in *PodPolicy) DeepCopy() *PodPolicy

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

func (*PodPolicy) DeepCopyInto

func (in *PodPolicy) DeepCopyInto(out *PodPolicy)

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

type ProcessGuarantee

type ProcessGuarantee string

ProcessGuarantee enum type +kubebuilder:validation:Enum=atleast_once;atmost_once;effectively_once

type ProducerConfig

type ProducerConfig struct {
	MaxPendingMessages                 int32         `json:"maxPendingMessages,omitempty"`
	MaxPendingMessagesAcrossPartitions int32         `json:"maxPendingMessagesAcrossPartitions,omitempty"`
	UseThreadLocalProducers            bool          `json:"useThreadLocalProducers,omitempty"`
	CryptoConfig                       *CryptoConfig `json:"cryptoConfig,omitempty"`
	BatchBuilder                       string        `json:"batchBuilder,omitempty"`
}

func (*ProducerConfig) DeepCopy

func (in *ProducerConfig) DeepCopy() *ProducerConfig

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

func (*ProducerConfig) DeepCopyInto

func (in *ProducerConfig) DeepCopyInto(out *ProducerConfig)

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

type PulsarMessaging

type PulsarMessaging struct {
	// The config map need to contain the following fields
	// webServiceURL
	// brokerServiceURL
	PulsarConfig string `json:"pulsarConfig,omitempty"`

	// The auth secret should contain the following fields
	// clientAuthenticationPlugin
	// clientAuthenticationParameters
	AuthSecret string `json:"authSecret,omitempty"`

	// The TLS secret should contain the following fields
	// use_tls
	// tls_allow_insecure
	// hostname_verification_enabled
	// tls_trust_cert_path
	TLSSecret string `json:"tlsSecret,omitempty"`
}

func (*PulsarMessaging) DeepCopy

func (in *PulsarMessaging) DeepCopy() *PulsarMessaging

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

func (*PulsarMessaging) DeepCopyInto

func (in *PulsarMessaging) DeepCopyInto(out *PulsarMessaging)

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

type PulsarStateStore

type PulsarStateStore struct {
	// The service url points to the state store service
	// By default, the state store service is bookkeeper table service
	ServiceURL string `json:"serviceUrl"`

	// The state store config for Java runtime
	JavaProvider *PulsarStateStoreJavaProvider `json:"javaProvider,omitempty"`
}

func (*PulsarStateStore) DeepCopy

func (in *PulsarStateStore) DeepCopy() *PulsarStateStore

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

func (*PulsarStateStore) DeepCopyInto

func (in *PulsarStateStore) DeepCopyInto(out *PulsarStateStore)

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

type PulsarStateStoreJavaProvider

type PulsarStateStoreJavaProvider struct {
	// The java class name of the state store provider implementation
	// The class must implement `org.apache.pulsar.functions.instance.state.StateStoreProvider` interface
	// If not set, `org.apache.pulsar.functions.instance.state.BKStateStoreProviderImpl` will be used
	ClassName string `json:"className"`

	// The configmap of the configuration for the state store provider
	Config *Config `json:"config,omitempty"`
}

func (*PulsarStateStoreJavaProvider) DeepCopy

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

func (*PulsarStateStoreJavaProvider) DeepCopyInto

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

type PythonRuntime

type PythonRuntime struct {
	// +kubebuilder:validation:Required
	Py         string `json:"py,omitempty"`
	PyLocation string `json:"pyLocation,omitempty"`
}

PythonRuntime contains the python runtime configs +kubebuilder:validation:Optional

func (*PythonRuntime) DeepCopy

func (in *PythonRuntime) DeepCopy() *PythonRuntime

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

func (*PythonRuntime) DeepCopyInto

func (in *PythonRuntime) DeepCopyInto(out *PythonRuntime)

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

type ReconcileAction

type ReconcileAction string
const (
	Create   ReconcileAction = "Create"
	Delete   ReconcileAction = "Delete"
	Update   ReconcileAction = "Update"
	Wait     ReconcileAction = "Wait"
	NoAction ReconcileAction = "NoAction"
)

type ResourceCondition

type ResourceCondition struct {
	Condition ResourceConditionType  `json:"condition,omitempty"`
	Status    metav1.ConditionStatus `json:"status,omitempty"`
	Action    ReconcileAction        `json:"action,omitempty"`
}

The `Status` of a given `Condition` and the `Action` needed to reach the `Status`

func (*ResourceCondition) DeepCopy

func (in *ResourceCondition) DeepCopy() *ResourceCondition

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

func (*ResourceCondition) DeepCopyInto

func (in *ResourceCondition) DeepCopyInto(out *ResourceCondition)

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

type ResourceConditionType

type ResourceConditionType string
const (
	FunctionReady ResourceConditionType = "FunctionReady"
	SourceReady   ResourceConditionType = "SourceReady"
	SinkReady     ResourceConditionType = "SinkReady"

	StatefulSetReady ResourceConditionType = "StatefulSetReady"
	ServiceReady     ResourceConditionType = "ServiceReady"
	HPAReady         ResourceConditionType = "HPAReady"
)

type Runtime

type Runtime struct {
	Java   *JavaRuntime   `json:"java,omitempty"`
	Python *PythonRuntime `json:"python,omitempty"`
	Golang *GoRuntime     `json:"golang,omitempty"`
}

func (*Runtime) DeepCopy

func (in *Runtime) DeepCopy() *Runtime

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

func (*Runtime) DeepCopyInto

func (in *Runtime) DeepCopyInto(out *Runtime)

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

type SecretRef

type SecretRef struct {
	Path string `json:"path,omitempty"`
	Key  string `json:"key,omitempty"`
}

func (*SecretRef) DeepCopy

func (in *SecretRef) DeepCopy() *SecretRef

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

func (*SecretRef) DeepCopyInto

func (in *SecretRef) DeepCopyInto(out *SecretRef)

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

type Sink

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

	Spec   SinkSpec   `json:"spec,omitempty"`
	Status SinkStatus `json:"status,omitempty"`
}

Sink is the Schema for the sinks API +kubebuilder:pruning:PreserveUnknownFields

func (*Sink) DeepCopy

func (in *Sink) DeepCopy() *Sink

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

func (*Sink) DeepCopyInto

func (in *Sink) DeepCopyInto(out *Sink)

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

func (*Sink) DeepCopyObject

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

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

func (*Sink) Default

func (r *Sink) Default()

Default implements webhook.Defaulter so a webhook will be registered for the type

func (*Sink) SetupWebhookWithManager

func (r *Sink) SetupWebhookWithManager(mgr ctrl.Manager) error

func (*Sink) ValidateCreate

func (r *Sink) ValidateCreate() error

ValidateCreate implements webhook.Validator so a webhook will be registered for the type

func (*Sink) ValidateDelete

func (r *Sink) ValidateDelete() error

ValidateDelete implements webhook.Validator so a webhook will be registered for the type

func (*Sink) ValidateUpdate

func (r *Sink) ValidateUpdate(old runtime.Object) error

ValidateUpdate implements webhook.Validator so a webhook will be registered for the type

type SinkList

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

SinkList contains a list of Topic

func (*SinkList) DeepCopy

func (in *SinkList) DeepCopy() *SinkList

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

func (*SinkList) DeepCopyInto

func (in *SinkList) DeepCopyInto(out *SinkList)

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

func (*SinkList) DeepCopyObject

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

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

type SinkSpec

type SinkSpec struct {
	// INSERT ADDITIONAL SPEC FIELDS - desired state of cluster
	// Important: Run "make" to regenerate code after modifying this file
	// +kubebuilder:validation:Required
	Name        string `json:"name,omitempty"`
	ClassName   string `json:"className,omitempty"`
	ClusterName string `json:"clusterName,omitempty"`
	Tenant      string `json:"tenant,omitempty"`
	Namespace   string `json:"namespace,omitempty"`
	SinkType    string `json:"sinkType,omitempty"` // refer to `--sink-type` as builtin connector
	// +kubebuilder:validation:Required
	// +kubebuilder:validation:Minimum=1
	Replicas *int32 `json:"replicas,omitempty"`

	// MaxReplicas indicates the maximum number of replicas and enables the HorizontalPodAutoscaler
	// If provided, a default HPA with CPU at average of 80% will be used.
	// For complex HPA strategies, please refer to Pod.HPAutoscaler.
	MaxReplicas *int32    `json:"maxReplicas,omitempty"` // if provided, turn on autoscaling
	Input       InputConf `json:"input,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:pruning:PreserveUnknownFields
	SinkConfig   *Config                     `json:"sinkConfig,omitempty"`
	Resources    corev1.ResourceRequirements `json:"resources,omitempty"`
	SecretsMap   map[string]SecretRef        `json:"secretsMap,omitempty"`
	VolumeMounts []corev1.VolumeMount        `json:"volumeMounts,omitempty"`

	Timeout                      int32            `json:"timeout,omitempty"`
	NegativeAckRedeliveryDelayMs int32            `json:"negativeAckRedeliveryDelayMs,omitempty"`
	AutoAck                      *bool            `json:"autoAck,omitempty"`
	MaxMessageRetry              int32            `json:"maxMessageRetry,omitempty"`
	ProcessingGuarantee          ProcessGuarantee `json:"processingGuarantee,omitempty"`
	RetainOrdering               bool             `json:"retainOrdering,omitempty"`
	DeadLetterTopic              string           `json:"deadLetterTopic,omitempty"`

	RuntimeFlags         string            `json:"runtimeFlags,omitempty"`
	SubscriptionName     string            `json:"subscriptionName,omitempty"`
	CleanupSubscription  bool              `json:"cleanupSubscription,omitempty"`
	SubscriptionPosition SubscribePosition `json:"subscriptionPosition,omitempty"`

	Pod PodPolicy `json:"pod,omitempty"`

	// +kubebuilder:validation:Required
	Messaging `json:",inline"`
	// +kubebuilder:validation:Required
	Runtime `json:",inline"`

	// Image is the container image used to run sink pods.
	// default is streamnative/pulsar-functions-java-runner
	Image string `json:"image,omitempty"`

	// Image pull policy, one of Always, Never, IfNotPresent, default to IfNotPresent.
	ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy,omitempty"`
}

SinkSpec defines the desired state of Topic +kubebuilder:validation:Optional

func (*SinkSpec) DeepCopy

func (in *SinkSpec) DeepCopy() *SinkSpec

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

func (*SinkSpec) DeepCopyInto

func (in *SinkSpec) DeepCopyInto(out *SinkSpec)

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

type SinkStatus

type SinkStatus struct {
	// INSERT ADDITIONAL STATUS FIELD - define observed state of cluster
	// Important: Run "make" to regenerate code after modifying this file
	Conditions map[Component]ResourceCondition `json:"conditions"`
	Replicas   int32                           `json:"replicas"`
	Selector   string                          `json:"selector"`
}

SinkStatus defines the observed state of Topic

func (*SinkStatus) DeepCopy

func (in *SinkStatus) DeepCopy() *SinkStatus

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

func (*SinkStatus) DeepCopyInto

func (in *SinkStatus) DeepCopyInto(out *SinkStatus)

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

type Source

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

	Spec   SourceSpec   `json:"spec,omitempty"`
	Status SourceStatus `json:"status,omitempty"`
}

Source is the Schema for the sources API +kubebuilder:pruning:PreserveUnknownFields

func (*Source) DeepCopy

func (in *Source) DeepCopy() *Source

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

func (*Source) DeepCopyInto

func (in *Source) DeepCopyInto(out *Source)

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

func (*Source) DeepCopyObject

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

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

func (*Source) Default

func (r *Source) Default()

Default implements webhook.Defaulter so a webhook will be registered for the type

func (*Source) SetupWebhookWithManager

func (r *Source) SetupWebhookWithManager(mgr ctrl.Manager) error

func (*Source) ValidateCreate

func (r *Source) ValidateCreate() error

ValidateCreate implements webhook.Validator so a webhook will be registered for the type

func (*Source) ValidateDelete

func (r *Source) ValidateDelete() error

ValidateDelete implements webhook.Validator so a webhook will be registered for the type

func (*Source) ValidateUpdate

func (r *Source) ValidateUpdate(old runtime.Object) error

ValidateUpdate implements webhook.Validator so a webhook will be registered for the type

type SourceList

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

SourceList contains a list of Source

func (*SourceList) DeepCopy

func (in *SourceList) DeepCopy() *SourceList

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

func (*SourceList) DeepCopyInto

func (in *SourceList) DeepCopyInto(out *SourceList)

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

func (*SourceList) DeepCopyObject

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

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

type SourceSpec

type SourceSpec struct {
	// INSERT ADDITIONAL SPEC FIELDS - desired state of cluster
	// Important: Run "make" to regenerate code after modifying this file
	// +kubebuilder:validation:Required
	Name        string `json:"name,omitempty"`
	ClassName   string `json:"className,omitempty"`
	Tenant      string `json:"tenant,omitempty"`
	Namespace   string `json:"namespace,omitempty"`
	ClusterName string `json:"clusterName,omitempty"`
	SourceType  string `json:"sourceType,omitempty"` // refer to `--source-type` as builtin connector
	// +kubebuilder:validation:Required
	Replicas *int32 `json:"replicas,omitempty"`

	// MaxReplicas indicates the maximum number of replicas and enables the HorizontalPodAutoscaler
	// If provided, a default HPA with CPU at average of 80% will be used.
	// For complex HPA strategies, please refer to Pod.HPAutoscaler.
	MaxReplicas *int32     `json:"maxReplicas,omitempty"` // if provided, turn on autoscaling
	Output      OutputConf `json:"output,omitempty"`

	// +kubebuilder:validation:Optional
	// +kubebuilder:pruning:PreserveUnknownFields
	SourceConfig                 *Config                     `json:"sourceConfig,omitempty"`
	Resources                    corev1.ResourceRequirements `json:"resources,omitempty"`
	SecretsMap                   map[string]SecretRef        `json:"secretsMap,omitempty"`
	ProcessingGuarantee          ProcessGuarantee            `json:"processingGuarantee,omitempty"`
	RuntimeFlags                 string                      `json:"runtimeFlags,omitempty"`
	VolumeMounts                 []corev1.VolumeMount        `json:"volumeMounts,omitempty"`
	ForwardSourceMessageProperty *bool                       `json:"forwardSourceMessageProperty,omitempty"`
	Pod                          PodPolicy                   `json:"pod,omitempty"`

	// +kubebuilder:validation:Required
	Messaging `json:",inline"`

	// +kubebuilder:validation:Required
	Runtime `json:",inline"`

	// Image is the container image used to run source pods.
	// default is streamnative/pulsar-functions-java-runner
	Image string `json:"image,omitempty"`

	// Image pull policy, one of Always, Never, IfNotPresent, default to IfNotPresent.
	ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy,omitempty"`
}

SourceSpec defines the desired state of Source +kubebuilder:validation:Optional

func (*SourceSpec) DeepCopy

func (in *SourceSpec) DeepCopy() *SourceSpec

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

func (*SourceSpec) DeepCopyInto

func (in *SourceSpec) DeepCopyInto(out *SourceSpec)

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

type SourceStatus

type SourceStatus struct {
	// INSERT ADDITIONAL STATUS FIELD - define observed state of cluster
	// Important: Run "make" to regenerate code after modifying this file
	Conditions map[Component]ResourceCondition `json:"conditions"`
	Replicas   int32                           `json:"replicas"`
	Selector   string                          `json:"selector"`
}

SourceStatus defines the observed state of Source

func (*SourceStatus) DeepCopy

func (in *SourceStatus) DeepCopy() *SourceStatus

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

func (*SourceStatus) DeepCopyInto

func (in *SourceStatus) DeepCopyInto(out *SourceStatus)

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

type Stateful

type Stateful struct {
	Pulsar *PulsarStateStore `json:"pulsar,omitempty"`
}

func (*Stateful) DeepCopy

func (in *Stateful) DeepCopy() *Stateful

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

func (*Stateful) DeepCopyInto

func (in *Stateful) DeepCopyInto(out *Stateful)

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

type SubscribePosition

type SubscribePosition string

SubscribePosition enum type +kubebuilder:validation:Enum=latest;earliest

const (
	Latest   SubscribePosition = "latest"
	Earliest SubscribePosition = "earliest"
)

Jump to

Keyboard shortcuts

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