common

package
v0.6.43 Latest Latest
Warning

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

Go to latest
Published: May 30, 2026 License: AGPL-3.0, Apache-2.0, MIT Imports: 41 Imported by: 0

Documentation

Index

Constants

View Source
const (
	GitSigningKeyMountPath = "/plural/git/git-signing.key"

	ManagedByLabel  = "plural.sh/managed-by"
	AgentLabelValue = "agent"
)
View Source
const (
	// non-namespaced
	NamespaceKind                = "Namespace"
	StorageClassKind             = "StorageClass"
	ClusterRoleKind              = "ClusterRole"
	ClusterRoleListKind          = "ClusterRoleList"
	ClusterRoleBindingKind       = "ClusterRoleBinding"
	ClusterRoleBindingListKind   = "ClusterRoleBindingList"
	NodeKind                     = "Node"
	CustomResourceDefinitionKind = "CustomResourceDefinition"
	PersistentVolumeKind         = "PersistentVolume"

	// namespaced
	SecretKind                  = "Secret"
	SecretListKind              = "SecretList"
	ServiceKind                 = "Service"
	ServiceAccountKind          = "ServiceAccount"
	EndpointsKind               = "Endpoints"
	DeploymentKind              = "Deployment"
	ReplicaSetKind              = "ReplicaSet"
	StatefulSetKind             = "StatefulSet"
	DaemonSetKind               = "DaemonSet"
	IngressKind                 = "Ingress"
	JobKind                     = "Job"
	PersistentVolumeClaimKind   = "PersistentVolumeClaim"
	PodKind                     = "Pod"
	APIServiceKind              = "APIService"
	HorizontalPodAutoscalerKind = "HorizontalPodAutoscaler"
	CanaryKind                  = "Canary"
	NetworkPolicyKind           = "NetworkPolicy"
	ResourceQuotaKind           = "ResourceQuota"
	LimitRangeKind              = "LimitRange"
	PodDisruptionBudgetKind     = "PodDisruptionBudget"
	PodSecurityPolicyKind       = "PodSecurityPolicy"
	RoleKind                    = "Role"
	RoleListKind                = "RoleList"
	RoleBindingKind             = "RoleBinding"
	RoleBindingListKind         = "RoleBindingList"
	IngressClassKind            = "IngressClass"
	CronJobKind                 = "CronJob"
	ConfigMapKind               = "ConfigMap"
	ReplicationControllerKind   = "ReplicationController"
)
View Source
const (
	AgentMCPServerPort    = 8080
	AgentMCPServerAddress = ":8080"
	AgentMCPServerURL     = "http://127.0.0.1:8080/mcp"

	AgentMCPGRPCPort          = 8081
	AgentMCPGRPCServerAddress = ":8081"
	AgentMCPGRPCAddress       = "127.0.0.1:8081"

	AgentRunSharedWorkDir = "/plural/shared"
)

Variables

This section is empty.

Functions

func ComponentAttributesKey

func ComponentAttributesKey(c console.ComponentAttributes) string

func ConvertNodeMetrics

func ConvertNodeMetrics(metrics []v1beta1.NodeMetrics, availableResources map[string]corev1.ResourceList) ([]v1alpha1.MetricsAggregateStatus, error)

func FindPodStatusCondition

func FindPodStatusCondition(conditions []corev1.PodCondition, conditionType corev1.PodConditionType) *corev1.PodCondition

func GetHealthCheckFunc

func GetHealthCheckFunc(gvk schema.GroupVersionKind) func(obj *unstructured.Unstructured) (*HealthStatus, error)

GetHealthCheckFunc returns built-in health check function or nil if health check is not supported

func GetHealthCheckFuncByGroupVersionKind

func GetHealthCheckFuncByGroupVersionKind(gvk schema.GroupVersionKind) func(obj *unstructured.Unstructured) (*HealthStatus, error)

func GetMetricsAggregateStatus

func GetMetricsAggregateStatus(ctx context.Context, client k8sClient.Client, metricsClient metricsclientset.Interface, metricsAPIAvailable bool) (*v1alpha1.MetricsAggregateStatus, error)

func GetOpenShiftVersion

func GetOpenShiftVersion(c k8sClient.Client) (string, error)

func GetResourceVersion

func GetResourceVersion(obj runtime.Object, fallbackResourceVersion string) string

func GetRunJobSpec

func GetRunJobSpec(name string, jobSpecFragment *console.JobSpecFragment) *batchv1.JobSpec

func IsRunningOnOpenShift

func IsRunningOnOpenShift(apiGroups []schema.GroupVersion) bool

func ParseAPIVersion

func ParseAPIVersion(apiVersion string) (group, version string)

func SupportedMetricsAPIVersionAvailable

func SupportedMetricsAPIVersionAvailable(apiGroups []schema.GroupVersion) bool

func ToUnstructured

func ToUnstructured(obj runtime.Object) (*unstructured.Unstructured, error)

func Unmarshal

func Unmarshal(s string) (map[string]interface{}, error)

func WithJitter

func WithJitter(interval time.Duration) time.Duration

WithJitter adds a random jitter to the interval based on the global jitter factor.

Types

type ConditionSimple

type ConditionSimple struct {
	Type               string `json:"type"`
	Status             string `json:"status"`
	LastTransitionTime string `json:"lastTransitionTime"`
}

type ConfigurationManager

type ConfigurationManager struct {
	// contains filtered or unexported fields
}

Configuration is a thread-safe structure for agent configuration

func GetConfigurationManager

func GetConfigurationManager() *ConfigurationManager

func (*ConfigurationManager) GetBaseRegistryURL

func (s *ConfigurationManager) GetBaseRegistryURL() *string

func (*ConfigurationManager) GetClusterPingInterval

func (s *ConfigurationManager) GetClusterPingInterval() *time.Duration

func (*ConfigurationManager) GetCompatibilityUploadInterval

func (s *ConfigurationManager) GetCompatibilityUploadInterval() *time.Duration

func (*ConfigurationManager) GetMaxAgentRunPods

func (s *ConfigurationManager) GetMaxAgentRunPods() int

func (*ConfigurationManager) GetMaxConcurrentReconciles

func (s *ConfigurationManager) GetMaxConcurrentReconciles() *int

func (*ConfigurationManager) GetMaxSentinelRunJobs

func (s *ConfigurationManager) GetMaxSentinelRunJobs() int

func (*ConfigurationManager) GetMaxStackRunJobs

func (s *ConfigurationManager) GetMaxStackRunJobs() int

func (*ConfigurationManager) GetPipelineGateInterval

func (s *ConfigurationManager) GetPipelineGateInterval() *time.Duration

func (*ConfigurationManager) GetRuntimeServicesPingInterval

func (s *ConfigurationManager) GetRuntimeServicesPingInterval() *time.Duration

func (*ConfigurationManager) GetServicePollInterval

func (s *ConfigurationManager) GetServicePollInterval() *time.Duration

func (*ConfigurationManager) GetStackPollInterval

func (s *ConfigurationManager) GetStackPollInterval() *time.Duration

func (*ConfigurationManager) IsWebsocketDisabled

func (s *ConfigurationManager) IsWebsocketDisabled() bool

func (*ConfigurationManager) SetValue

SetValue sets the value of the string in a thread-safe manner

func (*ConfigurationManager) SwapBaseRegistry

func (s *ConfigurationManager) SwapBaseRegistry(image string) string

type HealthStatus

type HealthStatus struct {
	Status  HealthStatusCode `json:"status,omitempty"`
	Message string           `json:"message,omitempty"`
}

func GetLuaHealthConvert

func GetLuaHealthConvert(obj *unstructured.Unstructured, luaScript string) (*HealthStatus, error)

func GetOtherHealthStatus

func GetOtherHealthStatus(obj *unstructured.Unstructured) (*HealthStatus, error)

func GetResourceHealth

func GetResourceHealth(obj *unstructured.Unstructured) (health *HealthStatus, err error)

GetResourceHealth returns the health of a k8s resource

type HealthStatusCode

type HealthStatusCode string

Represents resource health status

const (
	// Indicates that health assessment failed and actual health status is unknown
	HealthStatusUnknown HealthStatusCode = "Unknown"
	// Progressing health status means that resource is not healthy but still have a chance to reach healthy state
	HealthStatusProgressing HealthStatusCode = "Progressing"
	// Resource is 100% healthy
	HealthStatusHealthy HealthStatusCode = "Healthy"
	// Assigned to resources that are suspended or paused. The typical example is a
	// [suspended](https://kubernetes.io/docs/tasks/job/automated-tasks-with-cron-jobs/#suspend) CronJob.
	HealthStatusSuspended HealthStatusCode = "Suspended"
	HealthStatusPaused    HealthStatusCode = "Paused"
	// Degrade status is used if resource status indicates failure or resource could not reach healthy state
	// within some timeout.
	HealthStatusDegraded HealthStatusCode = "Degraded"
	// Indicates that resource is missing in the cluster.
	HealthStatusMissing HealthStatusCode = "Missing"
)

type LuaScript

type LuaScript struct {
	// contains filtered or unexported fields
}

LuaScript is a thread-safe structure for string manipulation

func GetLuaScript

func GetLuaScript() *LuaScript

func (*LuaScript) GetValue

func (s *LuaScript) GetValue() string

GetValue retrieves the value of the string in a thread-safe manner

func (*LuaScript) IsLuaScriptValue

func (s *LuaScript) IsLuaScriptValue() bool

func (*LuaScript) SetValue

func (s *LuaScript) SetValue(val string)

SetValue sets the value of the string in a thread-safe manner

type Progress

type Progress struct {
	LastProgress time.Time
	PingTime     time.Time
}

type ResourceMetricsInfo

type ResourceMetricsInfo struct {
	Name      string
	Metrics   corev1.ResourceList
	Available corev1.ResourceList
}

Jump to

Keyboard shortcuts

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