Documentation
¶
Overview ¶
pkg/resources/common/probes.go
pkg/resources/common/resource.go
pkg/resources/common/rolling_update.go
pkg/resources/common/security.go
Index ¶
- func ApplyProbes(c *corev1.Container, probes *orktypes.ProbesConfig, containerPort int32, ...)
- func ApplySecurityContext(container *corev1.Container, pod *corev1.PodSpec, ...)
- func BuildContainerSecurityContext(sc *orktypes.ContainerSecurityContext) *corev1.SecurityContext
- func BuildDeploymentRollingUpdateStrategy(r *orktypes.RollingUpdateBehavior) appsv1.DeploymentStrategy
- func BuildPodSecurityContext(ps *orktypes.PodSecurityContext) *corev1.PodSecurityContext
- func BuildProbe(cfg *orktypes.ProbeConfig, containerPort int32, reg orktypes.ProfileRegistry) *corev1.Probe
- func BuildResourceRequirements(r *orktypes.ResourceRequirements) corev1.ResourceRequirements
- func BuildStatefulSetUpdateStrategy(r *orktypes.RollingUpdateBehavior) appsv1.StatefulSetUpdateStrategy
- func BuildVolumeMounts(mounts []orktypes.VolumeMount) []corev1.VolumeMount
- func BuildVolumes(vols []orktypes.VolumeSource) []corev1.Volume
- func LabelsEqual(a, b map[string]string) bool
- func ParseBool(s string) bool
- func ParseIntOrPercent(s string) intstr.IntOrString
- func ParsePort(s string) int
- func ParseProtocol(s string) corev1.Protocol
- func ParseReplicas(s string) int32
- func ResolveContainerSecurityContext(sc *orktypes.ContainerSecurityContext, reg orktypes.ProfileRegistry) *orktypes.ContainerSecurityContext
- func ResolveNamespace(owner domain.Object, namespace string) string
- func ResolvePodSecurityContext(ps *orktypes.PodSecurityContext, reg orktypes.ProfileRegistry) *orktypes.PodSecurityContext
- func ResolveResources(r *orktypes.ResourceRequirements, reg orktypes.ProfileRegistry) *orktypes.ResourceRequirements
- func ResourceRequirementsEqual(a, b corev1.ResourceRequirements) bool
- func SleepIfNeeded(s string) error
- func SyncContainerSpec(existing *corev1.Container, desired corev1.Container) bool
- func SyncPodSpec(existing *corev1.PodSpec, desired corev1.PodSpec) bool
- func ToPullSecrets(names []string) []corev1.LocalObjectReference
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ApplyProbes ¶
func ApplyProbes(c *corev1.Container, probes *orktypes.ProbesConfig, containerPort int32, reg orktypes.ProfileRegistry)
ApplyProbes sets startup, liveness, and readiness probes on c. containerPort is used for probes that do not declare their own port. No-op when probes is nil.
func ApplySecurityContext ¶
func ApplySecurityContext(container *corev1.Container, pod *corev1.PodSpec, sc *orktypes.ContainerSecurityContext, ps *orktypes.PodSecurityContext)
ApplySecurityContext sets the container security context and pod security context on the given container and pod spec. No-op when both are nil.
func BuildContainerSecurityContext ¶
func BuildContainerSecurityContext(sc *orktypes.ContainerSecurityContext) *corev1.SecurityContext
BuildContainerSecurityContext converts an orktypes.ContainerSecurityContext to a Kubernetes corev1.SecurityContext. Returns nil when sc is nil.
func BuildDeploymentRollingUpdateStrategy ¶
func BuildDeploymentRollingUpdateStrategy(r *orktypes.RollingUpdateBehavior) appsv1.DeploymentStrategy
BuildDeploymentRollingUpdateStrategy converts a RollingUpdateBehavior into an appsv1.DeploymentStrategy. Both MaxSurge and MaxUnavailable are applied.
func BuildPodSecurityContext ¶
func BuildPodSecurityContext(ps *orktypes.PodSecurityContext) *corev1.PodSecurityContext
BuildPodSecurityContext converts an orktypes.PodSecurityContext to a Kubernetes corev1.PodSecurityContext. Returns nil when ps is nil.
func BuildProbe ¶
func BuildProbe(cfg *orktypes.ProbeConfig, containerPort int32, reg orktypes.ProfileRegistry) *corev1.Probe
BuildProbe constructs a Kubernetes Probe from a ProbeConfig. containerPort is used as the probe target when cfg.Port is 0. Returns nil if cfg is nil or no probe type can be inferred.
func BuildResourceRequirements ¶
func BuildResourceRequirements(r *orktypes.ResourceRequirements) corev1.ResourceRequirements
BuildResourceRequirements converts an Orkestra ResourceRequirements spec into a Kubernetes corev1.ResourceRequirements object.
func BuildStatefulSetUpdateStrategy ¶
func BuildStatefulSetUpdateStrategy(r *orktypes.RollingUpdateBehavior) appsv1.StatefulSetUpdateStrategy
BuildStatefulSetUpdateStrategy converts a RollingUpdateBehavior into an appsv1.StatefulSetUpdateStrategy. Only MaxUnavailable applies — StatefulSets do not support MaxSurge.
func BuildVolumeMounts ¶
func BuildVolumeMounts(mounts []orktypes.VolumeMount) []corev1.VolumeMount
BuildVolumeMounts converts a slice of VolumeMount declarations into Kubernetes corev1.VolumeMount objects ready to set on a Container. Returns nil when the input is empty.
func BuildVolumes ¶
func BuildVolumes(vols []orktypes.VolumeSource) []corev1.Volume
BuildVolumes converts a slice of VolumeSource declarations into Kubernetes corev1.Volume objects ready to set on PodSpec.Volumes. Returns nil when the input is empty.
func LabelsEqual ¶
LabelsEqual reports whether two maps of labels are equivalent.
func ParseIntOrPercent ¶
func ParseIntOrPercent(s string) intstr.IntOrString
ParseIntOrPercent converts a string to intstr.IntOrString. Strings ending in "%" are treated as percentage strings; others as integers.
func ParseProtocol ¶
ParseProtocol converts a protocol string to a corev1.Protocol. Accepted values: TCP (default), UDP, SCTP — case-insensitive. Empty string and anything unrecognised defaults to TCP, matching Kubernetes behaviour.
func ParseReplicas ¶
ParseReplicas parses a replica count string, defaulting to 1 when empty or unparseable.
func ResolveContainerSecurityContext ¶
func ResolveContainerSecurityContext(sc *orktypes.ContainerSecurityContext, reg orktypes.ProfileRegistry) *orktypes.ContainerSecurityContext
ResolveContainerSecurityContext resolves a ContainerSecurityContext: if a profile is set it expands to explicit fields; otherwise the block is returned as-is. Returns nil when sc is nil.
func ResolveNamespace ¶
ResolveNamespace — priority: spec.Namespace → owner namespace → "default"
func ResolvePodSecurityContext ¶
func ResolvePodSecurityContext(ps *orktypes.PodSecurityContext, reg orktypes.ProfileRegistry) *orktypes.PodSecurityContext
ResolvePodSecurityContext resolves a PodSecurityContext: if a profile is set it expands to explicit fields; otherwise the block is returned as-is. Returns nil when ps is nil.
func ResolveResources ¶
func ResolveResources(r *orktypes.ResourceRequirements, reg orktypes.ProfileRegistry) *orktypes.ResourceRequirements
ResolveResources resolves resource requirements: if resources.profile is set it expands to explicit requests/limits; otherwise the block is returned as-is. Returns nil when neither profile nor explicit values are declared.
func ResourceRequirementsEqual ¶
func ResourceRequirementsEqual(a, b corev1.ResourceRequirements) bool
ResourceRequirementsEqual reports whether two ResourceRequirements are equivalent.
func SleepIfNeeded ¶
SleepIfNeeded parses an extended duration string and sleeps if non-zero. Used by all operatorBox resources to inject artificial latency for autoscaling tests, chaos engineering, and latency simulation.
func SyncContainerSpec ¶
SyncContainerSpec applies template-declared fields from desired to existing and returns true if anything changed.
Guard: a field is only synced when desired is non-zero/non-nil. A zero value means the Orkestra template did not declare the field — Kubernetes may have defaulted it, and we must not overwrite its defaults with empty values on every reconcile. This is the standard "declared intent" principle: only correct drift for fields the operator owns.
func SyncPodSpec ¶
SyncPodSpec applies template-declared pod-level fields from desired to existing. Returns true if anything changed. Same guard principle as SyncContainerSpec — zero/nil in desired means the template did not declare the field.
func ToPullSecrets ¶
func ToPullSecrets(names []string) []corev1.LocalObjectReference
ToPullSecrets converts a slice of string to a []corev1.LocalObjectReference Acceptable as Pull secrets
Types ¶
This section is empty.