Documentation
      ¶
    
    
  
    
  
    Overview ¶
Converts Kubernetes data models into our own internal data models.
(package name loosely inspired by strconv)
Index ¶
- Variables
 - func ContainerForStatus(pod *v1.Pod, cStatus v1.ContainerStatus) (v1alpha1.Container, error)
 - func ContainerStatusToRuntimeState(status v1alpha1.Container) v1alpha1.RuntimeStatus
 - func ContainsHash(filter *KubernetesApplyFilter, hash k8s.PodTemplateSpecHash) bool
 - func ContainsUID(filter *KubernetesApplyFilter, uid types.UID) bool
 - func FilterPods(filter *KubernetesApplyFilter, pods []v1alpha1.Pod) []v1alpha1.Pod
 - func HasOKPodTemplateSpecHash(pod *v1alpha1.Pod, filter *KubernetesApplyFilter) bool
 - func MostRecentPod(pod []v1alpha1.Pod) v1alpha1.Pod
 - func Pod(ctx context.Context, pod *v1.Pod, ancestorUID types.UID) *v1alpha1.Pod
 - func PodCompare(p1 v1alpha1.Pod, p2 v1alpha1.Pod) bool
 - func PodConditions(conditions []v1.PodCondition) []v1alpha1.PodCondition
 - func PodContainers(ctx context.Context, pod *v1.Pod, containerStatuses []v1.ContainerStatus) []v1alpha1.Container
 - func PodStatusErrorMessages(pod v1.Pod) []string
 - func PodStatusToString(pod v1.Pod) string
 - func SpanIDForPod(mn model.ManifestName, podID k8s.PodID) logstore.SpanID
 - type KubernetesApplyFilter
 - type KubernetesResource
 
Constants ¶
This section is empty.
Variables ¶
Functions ¶
func ContainerForStatus ¶
Convert a Kubernetes Pod and ContainerStatus into a simpler Container model to store in the engine state.
func ContainerStatusToRuntimeState ¶
func ContainerStatusToRuntimeState(status v1alpha1.Container) v1alpha1.RuntimeStatus
func ContainsHash ¶ added in v0.22.12
func ContainsHash(filter *KubernetesApplyFilter, hash k8s.PodTemplateSpecHash) bool
func ContainsUID ¶ added in v0.22.12
func ContainsUID(filter *KubernetesApplyFilter, uid types.UID) bool
func FilterPods ¶ added in v0.22.12
func FilterPods(filter *KubernetesApplyFilter, pods []v1alpha1.Pod) []v1alpha1.Pod
Filter out any pods that are being deleted. Filter pods from old replica sets. Only keep pods that belong in the current filter.
func HasOKPodTemplateSpecHash ¶ added in v0.22.12
func HasOKPodTemplateSpecHash(pod *v1alpha1.Pod, filter *KubernetesApplyFilter) bool
Checks to see if the given pod is allowed by the current filter.
func PodCompare ¶ added in v0.22.12
PodCompare is a stable sort order for pods.
func PodConditions ¶ added in v0.19.7
func PodConditions(conditions []v1.PodCondition) []v1alpha1.PodCondition
func PodContainers ¶
func PodContainers(ctx context.Context, pod *v1.Pod, containerStatuses []v1.ContainerStatus) []v1alpha1.Container
Convert a Kubernetes Pod into a list of simpler Container models to store in the engine state.
func PodStatusErrorMessages ¶ added in v0.20.0
Pull out interesting error messages from the pod status
func PodStatusToString ¶ added in v0.20.0
copied from https://github.com/kubernetes/kubernetes/blob/aedeccda9562b9effe026bb02c8d3c539fc7bb77/pkg/kubectl/resource_printer.go#L692-L764 to match the status column of `kubectl get pods`
func SpanIDForPod ¶ added in v0.19.7
SpanIDForPod creates a span ID for a given pod associated with a manifest.
Generally, a given Pod is only referenced by a single manifest, but there are rare occasions where it can be referenced by multiple. If the span ID is not unique between them, things will behave erratically.
Types ¶
type KubernetesApplyFilter ¶ added in v0.22.12
type KubernetesApplyFilter struct {
	// DeployedRefs are references to the objects that we deployed to a Kubernetes cluster.
	DeployedRefs []v1.ObjectReference
	// Hashes of the pod template specs that we deployed to a Kubernetes cluster.
	PodTemplateSpecHashes []k8s.PodTemplateSpecHash
}
    Filter to determine whether a pod or resource belongs to the current KubernetesApply. Used to filter out pods from previous applies when looking at a KubernetesDiscovery object.
Considered immutable once created.
func NewKubernetesApplyFilter ¶ added in v0.22.12
func NewKubernetesApplyFilter(yaml string) (*KubernetesApplyFilter, error)
type KubernetesResource ¶ added in v0.22.12
type KubernetesResource struct {
	Discovery   *v1alpha1.KubernetesDiscovery
	ApplyStatus *v1alpha1.KubernetesApplyStatus
	// A set of properties we use to determine which pods in Discovery
	// belong to the current Apply.
	ApplyFilter *KubernetesApplyFilter
	// A set of pods that belong to the current Discovery
	// and the current ApplyStatus (if available).
	//
	// Excludes pods that are being deleted
	// or which belong to a previous apply.
	FilteredPods []v1alpha1.Pod
}
    A KubernetesResource exposes a high-level status that summarizes the Pods we care about in a KubernetesDiscovery.
If we have a KubernetesApply, KubernetesResource will use that to narrow down the list of pods to only the pods we care about for the current Apply.
KubernetesResource is intended to be a non-stateful object (i.e., it is immutable and its status can be inferred from the state of child objects.)
Long-term, this may become an explicit API server object, but for now it's intended to provide an API-server compatible layer around KubernetesDiscovery + KubernetesApply.
func NewKubernetesResource ¶ added in v0.22.12
func NewKubernetesResource(discovery *v1alpha1.KubernetesDiscovery, status *v1alpha1.KubernetesApplyStatus) (*KubernetesResource, error)
func NewKubernetesResourceWithFilter ¶ added in v0.30.2
func NewKubernetesResourceWithFilter( discovery *v1alpha1.KubernetesDiscovery, status *v1alpha1.KubernetesApplyStatus, filter *KubernetesApplyFilter) *KubernetesResource
NewKubernetesResourceWithFilter is just NewKubernetesResource but with a specified KubernetesApplyFilter