common

package
v0.6.58 Latest Latest
Warning

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

Go to latest
Published: Aug 14, 2026 License: AGPL-3.0, Apache-2.0, MIT Imports: 38 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"

	AgentOpenAIChatCompletionsPath = "/v1/chat/completions"
	AgentOpenAIChatCompletionsURL  = "http://127.0.0.1:8080/v1/chat/completions"
	AgentOpenAIResponsesPath       = "/v1/responses"
	AgentOpenAIResponsesURL        = "http://127.0.0.1:8080/v1/responses"
	AgentOpenAIBaseURL             = "http://127.0.0.1:8080/v1"

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

	AgentRunSharedWorkDir = "/plural/shared"

	CodebaseMemoryMCPServerName = "codebase-memory-mcp"
	CodebaseMemoryMCPCommand    = "/usr/local/bin/codebase-memory-mcp"
	CodebaseMemoryCacheEnv      = "CBM_CACHE_DIR"
	CodebaseMemoryCacheDir      = "/plural/.cache/codebase-memory-mcp"
)

Variables

This section is empty.

Functions

func ClearLuaScripts added in v0.6.45

func ClearLuaScripts()

ClearLuaScripts clears all Lua scripts from the store in a thread-safe manner. Useful for testing to avoid cross-test contamination.

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 GetLuaScriptForGVK added in v0.6.45

func GetLuaScriptForGVK(gvk schema.GroupVersionKind) string

GetLuaScriptForGVK retrieves the Lua script for a given GVK.

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 IsLuaScriptValueForGVK added in v0.6.45

func IsLuaScriptValueForGVK(gvk schema.GroupVersionKind) bool

func IsRunningOnOpenShift

func IsRunningOnOpenShift(apiGroups []schema.GroupVersion) bool

func ParseAPIVersion

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

func RemoveLuaScriptForGVK added in v0.6.46

func RemoveLuaScriptForGVK(gvk schema.GroupVersionKind)

RemoveLuaScriptForGVK removes the Lua script for a specific GVK.

func SetLuaScriptForGVK added in v0.6.45

func SetLuaScriptForGVK(gvk schema.GroupVersionKind, val string)

SetLuaScriptForGVK sets the Lua script for a specific GVK in a thread-safe manner.

func SupportedMetricsAPIVersionAvailable

func SupportedMetricsAPIVersionAvailable(apiGroups []schema.GroupVersion) bool

func SyncLuaScriptsFromCustomHealths added in v0.6.46

func SyncLuaScriptsFromCustomHealths(scripts []v1alpha1.CustomHealth)

SyncLuaScriptsFromCustomHealths rebuilds the in-memory Lua script cache from the current CustomHealth resources. Terminating and empty-script CRs are omitted.

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.

func WithJitterFactor added in v0.6.57

func WithJitterFactor(interval time.Duration, factor float64) time.Duration

WithJitterFactor adds random jitter up to factor of interval in either direction. Factor must be in the range [0, 1]; zero leaves the interval unchanged.

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) GetComponentShaCacheTTL added in v0.6.58

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

func (*ConfigurationManager) GetManagedNamespacePollInterval added in v0.6.56

func (s *ConfigurationManager) GetManagedNamespacePollInterval() *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) GetSentinelPollInterval added in v0.6.54

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

func (*ConfigurationManager) GetServicePollInterval

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

func (*ConfigurationManager) GetStackPollInterval

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

func (*ConfigurationManager) IsPollImmediately added in v0.6.57

func (s *ConfigurationManager) IsPollImmediately() bool

func (*ConfigurationManager) IsWebsocketDisabled

func (s *ConfigurationManager) IsWebsocketDisabled() bool

func (*ConfigurationManager) SetDefaults added in v0.6.50

SetDefaults configures the fallback values used when AgentConfiguration omits fields.

func (*ConfigurationManager) SetPollImmediately added in v0.6.57

func (s *ConfigurationManager) SetPollImmediately(value bool)

SetPollImmediately overrides the initial polling behavior without changing the remaining AgentConfiguration values.

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 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