Documentation
¶
Overview ¶
Package spec define the specs
Index ¶
- Constants
- Variables
- func CheckIfHPASpecIsEqual(spec *autov2.HorizontalPodAutoscalerSpec, ...) bool
- func CheckIfHPAV2Beta2SpecIsEqual(spec *autoscalingv2beta2.HorizontalPodAutoscalerSpec, ...) bool
- func CheckIfStatefulSetSpecIsEqual(spec *appsv1.StatefulSetSpec, desiredSpec *appsv1.StatefulSetSpec) bool
- func CreateDiff(orj, modified *appsv1.StatefulSet) (string, error)
- func GenerateContainerEnvFrom(messagingConfig string, authSecret string, tlsSecret string) []corev1.EnvFromSource
- func GenerateContainerVolumeMounts(volumeMounts []corev1.VolumeMount, producerConf *v1alpha1.ProducerConfig, ...) []corev1.VolumeMount
- func GenerateJavaLogConfigCommand(runtime *v1alpha1.JavaRuntime, agent v1alpha1.LogTopicAgent) string
- func GenerateJavaLogConfigFileName(runtime *v1alpha1.JavaRuntime) string
- func GeneratePodVolumes(podVolumes []corev1.Volume, producerConf *v1alpha1.ProducerConfig, ...) []corev1.Volume
- func GetDownloadCommand(downloadPath, componentPackage string, ...) []string
- func GetRuntimeLogConfigNames(java *v1alpha1.JavaRuntime, python *v1alpha1.PythonRuntime, ...) map[int32]*v1alpha1.RuntimeLogConfig
- func IsManaged(object metav1.Object) bool
- func IsPauseRollout(object metav1.Object) bool
- func MakeFunctionCleanUpJob(function *v1alpha1.Function) *v1.Job
- func MakeFunctionComponent(functionName string, mesh *v1alpha1.FunctionMesh, spec *v1alpha1.FunctionSpec) *v1alpha1.Function
- func MakeFunctionHPA(function *v1alpha1.Function) *autov2.HorizontalPodAutoscaler
- func MakeFunctionObjectMeta(function *v1alpha1.Function) *metav1.ObjectMeta
- func MakeFunctionService(function *v1alpha1.Function) *corev1.Service
- func MakeFunctionStatefulSet(ctx context.Context, cli client.Client, function *v1alpha1.Function) (*appsv1.StatefulSet, error)
- func MakeGenericFunctionCommand(downloadPath, functionFile, language, clusterName, details, uid string, ...) []string
- func MakeGoFunctionCommand(downloadPath, goExecFilePath string, function *v1alpha1.Function) []string
- func MakeHPA(objectMeta *metav1.ObjectMeta, targetRef autov2.CrossVersionObjectReference, ...) *autov2.HorizontalPodAutoscaler
- func MakeHeadlessServiceName(serviceName string) string
- func MakeJavaFunctionCommand(...) []string
- func MakeLivenessProbe(liveness *v1alpha1.Liveness) *corev1.Probe
- func MakeMetricsFromBuiltinHPARules(builtinRules []v1alpha1.BuiltinHPARule) []autov2.MetricSpec
- func MakePythonFunctionCommand(...) []string
- func MakeService(objectMeta *metav1.ObjectMeta, labels map[string]string) *corev1.Service
- func MakeSinkCleanUpJob(sink *v1alpha1.Sink) *v1.Job
- func MakeSinkCommand(sink *v1alpha1.Sink) []string
- func MakeSinkComponent(sinkName string, mesh *v1alpha1.FunctionMesh, spec *v1alpha1.SinkSpec) *v1alpha1.Sink
- func MakeSinkHPA(sink *v1alpha1.Sink) *autov2.HorizontalPodAutoscaler
- func MakeSinkObjectMeta(sink *v1alpha1.Sink) *metav1.ObjectMeta
- func MakeSinkService(sink *v1alpha1.Sink) *corev1.Service
- func MakeSinkServiceName(sink *v1alpha1.Sink) string
- func MakeSinkStatefulSet(ctx context.Context, cli client.Client, sink *v1alpha1.Sink) (*appsv1.StatefulSet, error)
- func MakeSourceCleanUpJob(source *v1alpha1.Source) *v1.Job
- func MakeSourceComponent(sourceName string, mesh *v1alpha1.FunctionMesh, spec *v1alpha1.SourceSpec) *v1alpha1.Source
- func MakeSourceHPA(source *v1alpha1.Source) *autov2.HorizontalPodAutoscaler
- func MakeSourceObjectMeta(source *v1alpha1.Source) *metav1.ObjectMeta
- func MakeSourceService(source *v1alpha1.Source) *corev1.Service
- func MakeSourceStatefulSet(ctx context.Context, cli client.Client, source *v1alpha1.Source) (*appsv1.StatefulSet, error)
- func MakeStatefulSet(objectMeta *metav1.ObjectMeta, replicas *int32, downloaderImage string, ...) *appsv1.StatefulSet
- func MakeStatefulSetSpec(replicas *int32, container *corev1.Container, ...) *appsv1.StatefulSetSpec
- func MakeVPA(objectMeta *metav1.ObjectMeta, targetRef *autov2.CrossVersionObjectReference, ...) *vpav1.VerticalPodAutoscaler
- func NeedCleanup(object metav1.Object) bool
- func ParseControllerConfigs(configFilePath string) error
- func PatchStatefulSet(ctx context.Context, cli client.Client, namespace string, ...) (string, string, error)
- func TriggerCleanup(ctx context.Context, k8sclient client.Client, restClient rest.Interface, ...) error
- type BuiltinAutoScaler
- type ControllerConfigs
- type GoFunctionConf
- type HPARuleAverageUtilizationCPUPercent
- type HPARuleAverageUtilizationResourceMemoryPercent
- type RunnerImages
- type TLSConfig
Constants ¶
View Source
const ( EnvShardID = "SHARD_ID" FunctionsInstanceClasspath = "pulsar.functions.instance.classpath" DefaultRunnerTag = "2.10.0.0-rc10" DefaultGenericRunnerTag = "0.1.0" DefaultRunnerPrefix = "streamnative/" DefaultRunnerImage = DefaultRunnerPrefix + "pulsar-all:" + DefaultRunnerTag DefaultJavaRunnerImage = DefaultRunnerPrefix + "pulsar-functions-java-runner:" + DefaultRunnerTag DefaultPythonRunnerImage = DefaultRunnerPrefix + "pulsar-functions-python-runner:" + DefaultRunnerTag DefaultGoRunnerImage = DefaultRunnerPrefix + "pulsar-functions-go-runner:" + DefaultRunnerTag DefaultGenericNodejsRunnerImage = DefaultRunnerPrefix + "pulsar-functions-generic-nodejs-runner:" + DefaultGenericRunnerTag DefaultGenericPythonRunnerImage = DefaultRunnerPrefix + "pulsar-functions-generic-python-runner:" + DefaultGenericRunnerTag DefaultGenericRunnerImage = DefaultRunnerPrefix + "pulsar-functions-generic-base-runner:" + DefaultGenericRunnerTag PulsarAdminExecutableFile = "/pulsar/bin/pulsar-admin" WorkDir = "/pulsar/" RunnerImageHasPulsarctl = "pulsar-functions-(pulsarctl|sn|generic)-(java|python|go|nodejs|base)-runner" PulsarctlExecutableFile = "pulsarctl" DownloaderName = "downloader" DownloaderVolume = "downloader-volume" DownloaderImage = DefaultRunnerPrefix + "pulsarctl:2.10.2.3" DownloadDir = "/pulsar/download" CleanupContainerName = "cleanup" WindowFunctionConfigKeyName = "__WINDOWCONFIGS__" WindowFunctionExecutorClass = "org.apache.pulsar.functions.windowing.WindowFunctionExecutor" DefaultForAllowInsecure = "false" DefaultForEnableHostNameVerification = "true" AppFunctionMesh = "function-mesh" ComponentSource = "source" ComponentSink = "sink" ComponentFunction = "function" PackageNameFunctionPrefix = "function://" PackageNameSinkPrefix = "sink://" PackageNameSourcePrefix = "source://" HTTPPrefix = "http://" HTTPSPrefix = "https://" AnnotationPrometheusScrape = "prometheus.io/scrape" AnnotationPrometheusPort = "prometheus.io/port" AnnotationManaged = "compute.functionmesh.io/managed" AnnotationPauseRollout = "compute.functionmesh.io/pause-rollout" AnnotationNeedCleanup = "compute.functionmesh.io/need-cleanup" // if labels contains below, we think it comes from function-mesh-worker-service LabelPulsarCluster = "compute.functionmesh.io/pulsar-cluster" LabelPulsarClusterDeprecated = "pulsar-cluster" EnvGoFunctionConfigs = "GO_FUNCTION_CONF" DefaultRunnerUserID int64 = 10000 DefaultRunnerGroupID int64 = 10001 OAuth2AuthenticationPlugin = "org.apache.pulsar.client.impl.auth.oauth2.AuthenticationOAuth2" TokenAuthenticationPlugin = "org.apache.pulsar.client.impl.auth.AuthenticationToken" JavaLogConfigDirectory = "/pulsar/conf/java-log/" JavaLogConfigFileXML = "java_instance_log4j.xml" JavaLogConfigFileYAML = "java_instance_log4j.yaml" DefaultJavaLogConfigPath = JavaLogConfigDirectory + JavaLogConfigFileXML DefaultJavaLogConfigPathYAML = JavaLogConfigDirectory + JavaLogConfigFileYAML PythonLogConifgDirectory = "/pulsar/conf/python-log/" PythonLogConfigFile = "python_instance_logging.ini" DefaultPythonLogConfigPath = PythonLogConifgDirectory + PythonLogConfigFile DefaultFilebeatConfig = "/usr/share/filebeat/config/filebeat.yaml" DefaultFilebeatImage = "streamnative/filebeat:v0.6.0" EnvGoFunctionLogLevel = "LOGGING_LEVEL" FunctionContainerName = "pulsar-function" SinkContainerName = "pulsar-sink" SourceContainerName = "pulsar-source" )
Variables ¶
View Source
var Configs = DefaultConfigs()
View Source
var GRPCPort = corev1.ContainerPort{ Name: "tcp-grpc", ContainerPort: 9093, Protocol: corev1.ProtocolTCP, }
View Source
var MetricsPort = corev1.ContainerPort{ Name: "http-metrics", ContainerPort: 9094, Protocol: corev1.ProtocolTCP, }
Functions ¶
func CheckIfHPASpecIsEqual ¶ added in v0.6.0
func CheckIfHPASpecIsEqual(spec *autov2.HorizontalPodAutoscalerSpec, desiredSpec *autov2.HorizontalPodAutoscalerSpec) bool
func CheckIfHPAV2Beta2SpecIsEqual ¶ added in v0.15.0
func CheckIfHPAV2Beta2SpecIsEqual(spec *autoscalingv2beta2.HorizontalPodAutoscalerSpec, desiredSpec *autoscalingv2beta2.HorizontalPodAutoscalerSpec) bool
func CheckIfStatefulSetSpecIsEqual ¶ added in v0.6.0
func CheckIfStatefulSetSpecIsEqual(spec *appsv1.StatefulSetSpec, desiredSpec *appsv1.StatefulSetSpec) bool
func CreateDiff ¶ added in v0.22.1
func CreateDiff(orj, modified *appsv1.StatefulSet) (string, error)
func GenerateContainerEnvFrom ¶ added in v0.21.3
func GenerateContainerEnvFrom(messagingConfig string, authSecret string, tlsSecret string) []corev1.EnvFromSource
func GenerateContainerVolumeMounts ¶ added in v0.21.3
func GenerateContainerVolumeMounts(volumeMounts []corev1.VolumeMount, producerConf *v1alpha1.ProducerConfig, consumerConfs map[string]v1alpha1.ConsumerConfig, tlsConfig TLSConfig, authConfig *v1alpha1.AuthConfig, logConfigs map[int32]*v1alpha1.RuntimeLogConfig, agent v1alpha1.LogTopicAgent) []corev1.VolumeMount
func GenerateJavaLogConfigCommand ¶ added in v0.21.3
func GenerateJavaLogConfigCommand(runtime *v1alpha1.JavaRuntime, agent v1alpha1.LogTopicAgent) string
func GenerateJavaLogConfigFileName ¶ added in v0.21.3
func GenerateJavaLogConfigFileName(runtime *v1alpha1.JavaRuntime) string
func GeneratePodVolumes ¶ added in v0.21.3
func GeneratePodVolumes(podVolumes []corev1.Volume, producerConf *v1alpha1.ProducerConfig, consumerConfs map[string]v1alpha1.ConsumerConfig, tlsConfig TLSConfig, authConfig *v1alpha1.AuthConfig, logConfigs map[int32]*v1alpha1.RuntimeLogConfig, agent v1alpha1.LogTopicAgent) []corev1.Volume
func GetDownloadCommand ¶ added in v0.21.3
func GetRuntimeLogConfigNames ¶ added in v0.21.3
func GetRuntimeLogConfigNames(java *v1alpha1.JavaRuntime, python *v1alpha1.PythonRuntime, golang *v1alpha1.GoRuntime) map[int32]*v1alpha1.RuntimeLogConfig
func IsPauseRollout ¶ added in v0.22.1
func MakeFunctionCleanUpJob ¶ added in v0.14.0
func MakeFunctionComponent ¶
func MakeFunctionComponent(functionName string, mesh *v1alpha1.FunctionMesh, spec *v1alpha1.FunctionSpec) *v1alpha1.Function
func MakeFunctionHPA ¶
func MakeFunctionHPA(function *v1alpha1.Function) *autov2.HorizontalPodAutoscaler
func MakeFunctionObjectMeta ¶
func MakeFunctionObjectMeta(function *v1alpha1.Function) *metav1.ObjectMeta
func MakeFunctionStatefulSet ¶
func MakeGenericFunctionCommand ¶ added in v0.18.0
func MakeGoFunctionCommand ¶
func MakeHPA ¶ added in v0.21.3
func MakeHPA(objectMeta *metav1.ObjectMeta, targetRef autov2.CrossVersionObjectReference, minReplicas, maxReplicas *int32, policy v1alpha1.PodPolicy) *autov2.HorizontalPodAutoscaler
func MakeHeadlessServiceName ¶
MakeHeadlessServiceName changes the name of service to headless style
func MakeJavaFunctionCommand ¶
func MakeJavaFunctionCommand(downloadPath, packageFile, name, clusterName, generateLogConfigCommand, logLevel, details, extraDependenciesDir, uid string, javaOpts []string, hasPulsarctl, hasWget, authProvided, tlsProvided bool, secretMaps map[string]v1alpha1.SecretRef, state *v1alpha1.Stateful, tlsConfig TLSConfig, authConfig *v1alpha1.AuthConfig, maxPendingAsyncRequests *int32, logConfigFileName string) []string
func MakeLivenessProbe ¶ added in v0.9.0
func MakeMetricsFromBuiltinHPARules ¶
func MakeMetricsFromBuiltinHPARules(builtinRules []v1alpha1.BuiltinHPARule) []autov2.MetricSpec
func MakePythonFunctionCommand ¶
func MakePythonFunctionCommand(downloadPath, packageFile, name, clusterName, generateLogConfigCommand, details, uid string, hasPulsarctl, hasWget, authProvided, tlsProvided bool, secretMaps map[string]v1alpha1.SecretRef, state *v1alpha1.Stateful, tlsConfig TLSConfig, authConfig *v1alpha1.AuthConfig) []string
func MakeService ¶
func MakeSinkCommand ¶
func MakeSinkComponent ¶
func MakeSinkHPA ¶
func MakeSinkHPA(sink *v1alpha1.Sink) *autov2.HorizontalPodAutoscaler
func MakeSinkObjectMeta ¶
func MakeSinkObjectMeta(sink *v1alpha1.Sink) *metav1.ObjectMeta
func MakeSinkServiceName ¶
func MakeSinkStatefulSet ¶
func MakeSourceCleanUpJob ¶ added in v0.14.0
func MakeSourceComponent ¶
func MakeSourceComponent(sourceName string, mesh *v1alpha1.FunctionMesh, spec *v1alpha1.SourceSpec) *v1alpha1.Source
func MakeSourceHPA ¶
func MakeSourceHPA(source *v1alpha1.Source) *autov2.HorizontalPodAutoscaler
func MakeSourceObjectMeta ¶
func MakeSourceObjectMeta(source *v1alpha1.Source) *metav1.ObjectMeta
func MakeSourceStatefulSet ¶
func MakeStatefulSet ¶
func MakeStatefulSet(objectMeta *metav1.ObjectMeta, replicas *int32, downloaderImage string, container *corev1.Container, volumes []corev1.Volume, labels map[string]string, policy v1alpha1.PodPolicy, authConfig *v1alpha1.AuthConfig, tlsConfig TLSConfig, pulsarConfig, authSecret, tlsSecret string, javaRuntime *v1alpha1.JavaRuntime, pythonRuntime *v1alpha1.PythonRuntime, goRuntime *v1alpha1.GoRuntime, env []corev1.EnvVar, name, logTopic, filebeatImage string, logTopicAgent v1alpha1.LogTopicAgent, definedVolumeMounts []corev1.VolumeMount, volumeClaimTemplates []corev1.PersistentVolumeClaim, persistentVolumeClaimRetentionPolicy *appsv1.StatefulSetPersistentVolumeClaimRetentionPolicy) *appsv1.StatefulSet
func MakeStatefulSetSpec ¶
func MakeStatefulSetSpec(replicas *int32, container *corev1.Container, filebeatContainer *corev1.Container, volumes []corev1.Volume, labels map[string]string, policy v1alpha1.PodPolicy, serviceName string, downloaderContainer *corev1.Container, volumeClaimTemplates []corev1.PersistentVolumeClaim, persistentVolumeClaimRetentionPolicy *appsv1.StatefulSetPersistentVolumeClaimRetentionPolicy) *appsv1.StatefulSetSpec
func MakeVPA ¶ added in v0.8.0
func MakeVPA(objectMeta *metav1.ObjectMeta, targetRef *autov2.CrossVersionObjectReference, vpa *v1alpha1.VPASpec) *vpav1.VerticalPodAutoscaler
func NeedCleanup ¶ added in v0.14.0
func ParseControllerConfigs ¶
Types ¶
type BuiltinAutoScaler ¶
type BuiltinAutoScaler interface {
Metrics() []autov2.MetricSpec
}
func GetBuiltinAutoScaler ¶
func GetBuiltinAutoScaler(builtinRule v1alpha1.BuiltinHPARule) (BuiltinAutoScaler, int)
func NewHPARuleAverageUtilizationCPUPercent ¶
func NewHPARuleAverageUtilizationCPUPercent(cpuPercentage int32) BuiltinAutoScaler
func NewHPARuleAverageUtilizationMemoryPercent ¶
func NewHPARuleAverageUtilizationMemoryPercent(memoryPercentage int32) BuiltinAutoScaler
type ControllerConfigs ¶
type ControllerConfigs struct { RunnerImages RunnerImages `yaml:"runnerImages,omitempty"` RunnerImagePullSecrets []map[string]string `yaml:"runnerImagePullSecrets,omitempty"` RunnerImagePullPolicy corev1.PullPolicy `yaml:"imagePullPolicy,omitempty"` ResourceLabels map[string]string `yaml:"resourceLabels,omitempty"` ResourceAnnotations map[string]string `yaml:"resourceAnnotations,omitempty"` }
func DefaultConfigs ¶
func DefaultConfigs() *ControllerConfigs
type GoFunctionConf ¶
type GoFunctionConf struct { PulsarServiceURL string `json:"pulsarServiceURL" yaml:"pulsarServiceURL"` InstanceID int `json:"instanceID" yaml:"instanceID"` FuncID string `json:"funcID" yaml:"funcID"` FuncVersion string `json:"funcVersion" yaml:"funcVersion"` MaxBufTuples int `json:"maxBufTuples" yaml:"maxBufTuples"` Port int `json:"port" yaml:"port"` ClusterName string `json:"clusterName" yaml:"clusterName"` KillAfterIdle time.Duration `json:"killAfterIdleMs" yaml:"killAfterIdleMs"` // function details config Tenant string `json:"tenant" yaml:"tenant"` NameSpace string `json:"nameSpace" yaml:"nameSpace"` Name string `json:"name" yaml:"name"` LogTopic string `json:"logTopic" yaml:"logTopic"` ProcessingGuarantees int32 `json:"processingGuarantees" yaml:"processingGuarantees"` SecretsMap string `json:"secretsMap" yaml:"secretsMap"` Runtime int32 `json:"runtime" yaml:"runtime"` AutoACK bool `json:"autoAck" yaml:"autoAck"` Parallelism int32 `json:"parallelism" yaml:"parallelism"` //source config SubscriptionType int32 `json:"subscriptionType" yaml:"subscriptionType"` TimeoutMs uint64 `json:"timeoutMs" yaml:"timeoutMs"` SubscriptionName string `json:"subscriptionName" yaml:"subscriptionName"` CleanupSubscription bool `json:"cleanupSubscription" yaml:"cleanupSubscription"` //source input specs SourceSpecTopic string `json:"sourceSpecsTopic" yaml:"sourceSpecsTopic"` SourceSchemaType string `json:"sourceSchemaType" yaml:"sourceSchemaType"` IsRegexPatternSubscription bool `json:"isRegexPatternSubscription" yaml:"isRegexPatternSubscription"` ReceiverQueueSize int32 `json:"receiverQueueSize" yaml:"receiverQueueSize"` //sink spec config SinkSpecTopic string `json:"sinkSpecsTopic" yaml:"sinkSpecsTopic"` SinkSchemaType string `json:"sinkSchemaType" yaml:"sinkSchemaType"` //resources config CPU float64 `json:"cpu" yaml:"cpu"` RAM int64 `json:"ram" yaml:"ram"` Disk int64 `json:"disk" yaml:"disk"` //retryDetails config MaxMessageRetries int32 `json:"maxMessageRetries" yaml:"maxMessageRetries"` DeadLetterTopic string `json:"deadLetterTopic" yaml:"deadLetterTopic"` ExpectedHealthCheckInterval int32 `json:"expectedHealthCheckInterval" yaml:"expectedHealthCheckInterval"` UserConfig string `json:"userConfig" yaml:"userConfig"` //metrics config MetricsPort int `json:"metricsPort" yaml:"metricsPort"` }
type HPARuleAverageUtilizationCPUPercent ¶
type HPARuleAverageUtilizationCPUPercent struct {
// contains filtered or unexported fields
}
func (*HPARuleAverageUtilizationCPUPercent) Metrics ¶
func (H *HPARuleAverageUtilizationCPUPercent) Metrics() []autov2.MetricSpec
type HPARuleAverageUtilizationResourceMemoryPercent ¶
type HPARuleAverageUtilizationResourceMemoryPercent struct {
// contains filtered or unexported fields
}
func (*HPARuleAverageUtilizationResourceMemoryPercent) Metrics ¶
func (H *HPARuleAverageUtilizationResourceMemoryPercent) Metrics() []autov2.MetricSpec
type RunnerImages ¶
Click to show internal directories.
Click to hide internal directories.