primitives

package
v0.15.0 Latest Latest
Warning

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

Go to latest
Published: Jun 1, 2026 License: Apache-2.0 Imports: 3 Imported by: 0

Documentation

Overview

Package primitives hosts cross-kind contracts shared by the concrete primitive packages under pkg/primitives. It depends only on the mutation editor and selector packages, never on its own subpackages, so the subpackages can import it without creating an import cycle.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type WorkloadMutator

type WorkloadMutator interface {
	EditContainers(selector selectors.ContainerSelector, edit func(*editors.ContainerEditor) error)
	EditInitContainers(selector selectors.ContainerSelector, edit func(*editors.ContainerEditor) error)
	EnsureContainer(container corev1.Container)
	RemoveContainer(name string)
	RemoveContainers(names []string)
	EnsureInitContainer(container corev1.Container)
	RemoveInitContainer(name string)
	RemoveInitContainers(names []string)
	EditPodSpec(edit func(*editors.PodSpecEditor) error)
	EditPodTemplateMetadata(edit func(*editors.ObjectMetaEditor) error)
	EditObjectMetadata(edit func(*editors.ObjectMetaEditor) error)
	EnsureContainerEnvVar(ev corev1.EnvVar)
	RemoveContainerEnvVar(name string)
	RemoveContainerEnvVars(names []string)
	EnsureContainerArg(arg string)
	RemoveContainerArg(arg string)
	RemoveContainerArgs(args []string)
}

WorkloadMutator is the editing surface shared by the StatefulSet, Deployment, and DaemonSet mutators (*statefulset.Mutator, *deployment.Mutator, *daemonset.Mutator). It lets a consumer express one workload-kind-agnostic mutation (for example, emitting a shared set of environment variables on the application container) and apply it to any of those kinds through the per-package LiftMutation adapters.

It is exactly the intersection of those three mutators' editing methods. Kind-specific operations are intentionally excluded and remain on the concrete types: the spec editors (EditStatefulSetSpec, EditDeploymentSpec, EditDaemonSetSpec), EnsureReplicas (absent from the DaemonSet mutator, which has no replica field), and the StatefulSet-only VolumeClaimTemplate methods. The lifecycle methods Apply and NextFeature are also excluded; they are driven by the framework, not by an emitter.

Directories

Path Synopsis
Package clusterrole provides a builder and resource for managing Kubernetes ClusterRoles.
Package clusterrole provides a builder and resource for managing Kubernetes ClusterRoles.
Package clusterrolebinding provides a builder and resource for managing Kubernetes ClusterRoleBindings.
Package clusterrolebinding provides a builder and resource for managing Kubernetes ClusterRoleBindings.
Package configmap provides a builder and resource for managing Kubernetes ConfigMaps.
Package configmap provides a builder and resource for managing Kubernetes ConfigMaps.
Package cronjob provides a builder and resource for managing Kubernetes CronJobs.
Package cronjob provides a builder and resource for managing Kubernetes CronJobs.
Package daemonset provides a builder and resource for managing Kubernetes DaemonSets.
Package daemonset provides a builder and resource for managing Kubernetes DaemonSets.
Package deployment provides a builder and resource for managing Kubernetes Deployments.
Package deployment provides a builder and resource for managing Kubernetes Deployments.
Package hpa provides a builder and resource for managing Kubernetes HorizontalPodAutoscalers.
Package hpa provides a builder and resource for managing Kubernetes HorizontalPodAutoscalers.
Package ingress provides a builder and resource for managing Kubernetes Ingresses.
Package ingress provides a builder and resource for managing Kubernetes Ingresses.
Package job provides a builder and resource for managing Kubernetes Jobs.
Package job provides a builder and resource for managing Kubernetes Jobs.
Package networkpolicy provides a builder and resource for managing Kubernetes NetworkPolicies.
Package networkpolicy provides a builder and resource for managing Kubernetes NetworkPolicies.
Package pdb provides a builder and resource for managing Kubernetes PodDisruptionBudgets.
Package pdb provides a builder and resource for managing Kubernetes PodDisruptionBudgets.
Package pod provides a builder and resource for managing Kubernetes Pods.
Package pod provides a builder and resource for managing Kubernetes Pods.
Package pv provides a builder and resource for managing Kubernetes PersistentVolumes.
Package pv provides a builder and resource for managing Kubernetes PersistentVolumes.
Package pvc provides a builder and resource for managing Kubernetes PersistentVolumeClaims.
Package pvc provides a builder and resource for managing Kubernetes PersistentVolumeClaims.
Package replicaset provides a builder and resource for managing Kubernetes ReplicaSets.
Package replicaset provides a builder and resource for managing Kubernetes ReplicaSets.
Package role provides a builder and resource for managing Kubernetes Roles.
Package role provides a builder and resource for managing Kubernetes Roles.
Package rolebinding provides a builder and resource for managing Kubernetes RoleBindings.
Package rolebinding provides a builder and resource for managing Kubernetes RoleBindings.
Package secret provides a builder and resource for managing Kubernetes Secrets.
Package secret provides a builder and resource for managing Kubernetes Secrets.
Package service provides a builder and resource for managing Kubernetes Services.
Package service provides a builder and resource for managing Kubernetes Services.
Package serviceaccount provides a builder and resource for managing Kubernetes ServiceAccounts.
Package serviceaccount provides a builder and resource for managing Kubernetes ServiceAccounts.
Package statefulset provides a builder and resource for managing Kubernetes StatefulSets.
Package statefulset provides a builder and resource for managing Kubernetes StatefulSets.
Package unstructured provides shared types for building unstructured Kubernetes resource primitives.
Package unstructured provides shared types for building unstructured Kubernetes resource primitives.
integration
Package integration provides an unstructured resource primitive for Kubernetes integration objects that depend on external assignments and require operational status tracking and suspension support.
Package integration provides an unstructured resource primitive for Kubernetes integration objects that depend on external assignments and require operational status tracking and suspension support.
static
Package static provides an unstructured resource primitive for static Kubernetes objects that do not model convergence health, grace periods, or suspension.
Package static provides an unstructured resource primitive for static Kubernetes objects that do not model convergence health, grace periods, or suspension.
task
Package task provides an unstructured resource primitive for Kubernetes objects that run to completion, requiring completion status tracking and suspension support.
Package task provides an unstructured resource primitive for Kubernetes objects that run to completion, requiring completion status tracking and suspension support.
workload
Package workload provides an unstructured resource primitive for long-running Kubernetes workload objects that require health tracking, graceful rollouts, and suspension support.
Package workload provides an unstructured resource primitive for long-running Kubernetes workload objects that require health tracking, graceful rollouts, and suspension support.

Jump to

Keyboard shortcuts

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