v1alpha1

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Nov 29, 2019 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the navarchos v1alpha1 API group +k8s:openapi-gen=true +k8s:deepcopy-gen=package,register +k8s:conversion-gen=github.com/pusher/navarchos/pkg/apis/navarchos +k8s:defaulter-gen=TypeMeta +groupName=navarchos.pusher.com

Package v1alpha1 contains API Schema definitions for the navarchos v1alpha1 API group +k8s:openapi-gen=true +k8s:deepcopy-gen=package,register +k8s:conversion-gen=github.com/pusher/navarchos/pkg/apis/navarchos +k8s:defaulter-gen=TypeMeta +groupName=navarchos.pusher.com

Index

Constants

This section is empty.

Variables

View Source
var (
	// SchemeGroupVersion is group version used to register these objects
	SchemeGroupVersion = schema.GroupVersion{Group: "navarchos.pusher.com", Version: "v1alpha1"}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = &scheme.Builder{GroupVersion: SchemeGroupVersion}

	// AddToScheme is required by pkg/client/...
	AddToScheme = SchemeBuilder.AddToScheme
)

Functions

func Resource

func Resource(resource string) schema.GroupResource

Resource is required by pkg/client/listers/...

Types

type NodeLabelSelector

type NodeLabelSelector struct {
	metav1.LabelSelector `json:",inline"`
	ReplacementSpec      ReplacementSpec `json:"replacement,omitempty"`
}

NodeLabelSelector adds a ReplacementSpec field to the metav1.LabelSelector

func (*NodeLabelSelector) DeepCopy

func (in *NodeLabelSelector) DeepCopy() *NodeLabelSelector

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeLabelSelector.

func (*NodeLabelSelector) DeepCopyInto

func (in *NodeLabelSelector) DeepCopyInto(out *NodeLabelSelector)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NodeName

type NodeName struct {
	Name            string          `json:"name"`
	ReplacementSpec ReplacementSpec `json:"replacement,omitempty"`
}

NodeName pairs a Name with ReplacementSpec

func (*NodeName) DeepCopy

func (in *NodeName) DeepCopy() *NodeName

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeName.

func (*NodeName) DeepCopyInto

func (in *NodeName) DeepCopyInto(out *NodeName)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NodeReplacement

type NodeReplacement struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   NodeReplacementSpec   `json:"spec,omitempty"`
	Status NodeReplacementStatus `json:"status,omitempty"`
}

NodeReplacement is the Schema for the nodereplacements API +k8s:openapi-gen=true +kubebuilder:resource:path=nodereplacements,shortName=nrep;nreps;nrp;nrps +kubebuilder:printcolumn:name="Node Pods",type="integer",JSONPath=".status.nodePodsCount",description="Number of pods on the node" +kubebuilder:printcolumn:name="Ignored Pods",type="integer",JSONPath=".status.ignoredPodsCount",description="Number of pods ignored" +kubebuilder:printcolumn:name="Evicted Pods",type="integer",JSONPath=".status.evictedPodsCount",description="Number of pods evicted" +kubebuilder:printcolumn:name="Failed Pods",type="integer",JSONPath=".status.failedPodsCount",description="Number of pods failed" +kubebuilder:printcolumn:name="Phase",type="string",JSONPath=".status.phase" +kubebuilder:printcolumn:name="Priority",type="integer",JSONPath=".spec.replacement.priority",description="The priority of the replacement",priority="1" +kubebuilder:printcolumn:name="Completed",type="date",JSONPath=".status.completionTimestamp",description="The time since the replacement completed" +kubebuilder:printcolumn:name="Owners",type="string",JSONPath=".metadata.ownerReferences[].name",description="The owner of the replacement",priority="1" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp"

func (*NodeReplacement) DeepCopy

func (in *NodeReplacement) DeepCopy() *NodeReplacement

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeReplacement.

func (*NodeReplacement) DeepCopyInto

func (in *NodeReplacement) DeepCopyInto(out *NodeReplacement)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*NodeReplacement) DeepCopyObject

func (in *NodeReplacement) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type NodeReplacementCondition

type NodeReplacementCondition struct {
	// Type of this condition
	Type NodeReplacementConditionType `json:"type"`

	// Status of this condition
	Status corev1.ConditionStatus `json:"status"`

	// LastUpdateTime of this condition
	LastUpdateTime metav1.Time `json:"lastUpdateTime,omitempty"`

	// LastTransitionTime of this condition
	LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty"`

	// Reason for the current status of this condition
	Reason NodeReplacementConditionReason `json:"reason,omitempty"`

	// Message associated with this condition
	Message string `json:"message,omitempty"`
}

NodeReplacementCondition is a status condition for a NodeReplacement

func (*NodeReplacementCondition) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeReplacementCondition.

func (*NodeReplacementCondition) DeepCopyInto

func (in *NodeReplacementCondition) DeepCopyInto(out *NodeReplacementCondition)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NodeReplacementConditionReason

type NodeReplacementConditionReason string

NodeReplacementConditionReason represents a valid condition reason for a NodeReplacement

const (
	// ReasonNodeCordoned refers to whether the controller successfully managed to
	// cordon the node
	ReasonNodeCordoned NodeReplacementConditionReason = "NodeCordoned"

	// ReasonErrorCordoningNode is a replacement condition for a failed node cordon
	ReasonErrorCordoningNode NodeReplacementConditionReason = "ErrorCordoningNode"
)

type NodeReplacementConditionType

type NodeReplacementConditionType string

NodeReplacementConditionType is the type of a NodeRolloutCondition

const (
	// NodeCordonedType refers to the type of condition where the controller
	// successfully managed to cordon the node
	NodeCordonedType NodeReplacementConditionType = "NodeCordoned"
)

type NodeReplacementList

type NodeReplacementList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []NodeReplacement `json:"items"`
}

NodeReplacementList contains a list of NodeReplacement

func (*NodeReplacementList) DeepCopy

func (in *NodeReplacementList) DeepCopy() *NodeReplacementList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeReplacementList.

func (*NodeReplacementList) DeepCopyInto

func (in *NodeReplacementList) DeepCopyInto(out *NodeReplacementList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*NodeReplacementList) DeepCopyObject

func (in *NodeReplacementList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type NodeReplacementPhase

type NodeReplacementPhase string

NodeReplacementPhase determines the phase in which the NodeRollout currently is

const (
	ReplacementPhaseNew        NodeReplacementPhase = "New"
	ReplacementPhaseInProgress NodeReplacementPhase = "InProgress"
	ReplacementPhaseCompleted  NodeReplacementPhase = "Completed"
)

The following ReplacementPhases enumerate all possible NodeReplacementPhases

type NodeReplacementSpec

type NodeReplacementSpec struct {
	ReplacementSpec ReplacementSpec `json:"replacement,omitempty"`

	// NodeName should match the Name of the Node this NodeReplacement intends to
	// replace.
	NodeName string `json:"nodeName,omitempty"`

	// NodeUID should match the UID of the Node this NodeReplacement intends to
	// replace.
	NodeUID types.UID `json:"nodeUID,omitempty"`
}

NodeReplacementSpec defines the desired state of NodeReplacement

func (*NodeReplacementSpec) DeepCopy

func (in *NodeReplacementSpec) DeepCopy() *NodeReplacementSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeReplacementSpec.

func (*NodeReplacementSpec) DeepCopyInto

func (in *NodeReplacementSpec) DeepCopyInto(out *NodeReplacementSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NodeReplacementStatus

type NodeReplacementStatus struct {
	// Phase is used to determine which phase of the replacement cycle a Replacement
	// is currently in.
	Phase NodeReplacementPhase `json:"phase"`

	// NodePods lists all pods on the node when the  controller cordoned it.
	NodePods []string `json:"nodePods,omitempty"`

	// NodePodsCount is the count of NodePods.
	NodePodsCount int `json:"nodePodsCount,omitempty"`

	// EvictedPods lists all pods successfully evicted by the controller.
	EvictedPods []string `json:"evictedPods,omitempty"`

	// EvictedPodsCount is the count of EvictedPods
	EvictedPodsCount int `json:"evictedPodsCount,omitempty"`

	// IgnoredPods lists all pods not being evicted by the controller.
	// This should contain daemonset pods at the minimum.
	IgnoredPods []PodReason `json:"ignoredPods,omitempty"`

	// IgnoredPodsCount is the count of IgnoredPods.
	IgnoredPodsCount int `json:"ignoredPodsCount,omitempty"`

	// FailedPods lists all pods the controller has failed to evict.
	FailedPods []PodReason `json:"failedPods,omitempty"`

	// FailedPodsCount is the count of FailedPods.
	FailedPodsCount int `json:"failedPodsCount,omitempty"`

	// CompletionTimestamp is a timestamp for when the replacement has completed
	CompletionTimestamp *metav1.Time `json:"completionTimestamp,omitempty"`

	// Conditions gives detailed condition information about the NodeReplacement
	Conditions []NodeReplacementCondition `json:"conditions,omitempty"`
}

NodeReplacementStatus defines the observed state of NodeReplacement

func (*NodeReplacementStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeReplacementStatus.

func (*NodeReplacementStatus) DeepCopyInto

func (in *NodeReplacementStatus) DeepCopyInto(out *NodeReplacementStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NodeRollout

type NodeRollout struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   NodeRolloutSpec   `json:"spec,omitempty"`
	Status NodeRolloutStatus `json:"status,omitempty"`
}

NodeRollout is the Schema for the noderollouts API +k8s:openapi-gen=true +kubebuilder:resource:path=noderollouts,shortName=nroll;nrolls;nr;nrs +kubebuilder:printcolumn:name="Replacements created",type="integer",JSONPath=".status.replacementsCreatedCount",description="Number of replacements created" +kubebuilder:printcolumn:name="Replacements completed",type="integer",JSONPath=".status.replacementsCompletedCount",description="Number of replacements completed" +kubebuilder:printcolumn:name="Phase",type="string",JSONPath=".status.phase" +kubebuilder:printcolumn:name="Completed",type="date",JSONPath=".status.completionTimestamp",description="The time since the rollout completed" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp"

func (*NodeRollout) DeepCopy

func (in *NodeRollout) DeepCopy() *NodeRollout

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeRollout.

func (*NodeRollout) DeepCopyInto

func (in *NodeRollout) DeepCopyInto(out *NodeRollout)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*NodeRollout) DeepCopyObject

func (in *NodeRollout) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type NodeRolloutCondition

type NodeRolloutCondition struct {
	// Type of this condition
	Type NodeRolloutConditionType `json:"type"`

	// Status of this condition
	Status corev1.ConditionStatus `json:"status"`

	// LastUpdateTime of this condition
	LastUpdateTime metav1.Time `json:"lastUpdateTime,omitempty"`

	// LastTransitionTime of this condition
	LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty"`

	// Reason for the current status of this condition
	Reason NodeRolloutConditionReason `json:"reason,omitempty"`

	// Message associated with this condition
	Message string `json:"message,omitempty"`
}

NodeRolloutCondition is a status condition for a NodeRollout

func (*NodeRolloutCondition) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeRolloutCondition.

func (*NodeRolloutCondition) DeepCopyInto

func (in *NodeRolloutCondition) DeepCopyInto(out *NodeRolloutCondition)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NodeRolloutConditionReason

type NodeRolloutConditionReason string

NodeRolloutConditionReason represents a valid condition reason for a NodeRollout

type NodeRolloutConditionType

type NodeRolloutConditionType string

NodeRolloutConditionType is the type of a NodeRolloutCondition

const (
	// ReplacementsCreatedType refers to whether the controller successfully
	// created all of the required NodeRollouts
	ReplacementsCreatedType NodeRolloutConditionType = "ReplacementsCreated"

	// ReplacementsInProgressType refers to whether the controller is currently
	// processing replacements
	ReplacementsInProgressType NodeRolloutConditionType = "ReplacementsInProgress"
)

type NodeRolloutList

type NodeRolloutList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []NodeRollout `json:"items"`
}

NodeRolloutList contains a list of NodeRollout

func (*NodeRolloutList) DeepCopy

func (in *NodeRolloutList) DeepCopy() *NodeRolloutList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeRolloutList.

func (*NodeRolloutList) DeepCopyInto

func (in *NodeRolloutList) DeepCopyInto(out *NodeRolloutList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*NodeRolloutList) DeepCopyObject

func (in *NodeRolloutList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type NodeRolloutPhase

type NodeRolloutPhase string

NodeRolloutPhase determines the phase in which the NodeRollout currently is

const (
	RolloutPhaseNew        NodeRolloutPhase = "New"
	RolloutPhaseInProgress NodeRolloutPhase = "InProgress"
	RolloutPhaseCompleted  NodeRolloutPhase = "Completed"
)

The following RolloutPhases enumerate all possible NodeRolloutPhases

type NodeRolloutSpec

type NodeRolloutSpec struct {
	// NodeSelectors uses label selectors to select a group of nodes.
	// The priority set on the label selector will be passed to the NodeReplacement.
	// The highest priority of any matching LabelSelector will be used,
	NodeSelectors []NodeLabelSelector `json:"nodeSelectors,omitempty"`

	// NodeNames allows specific nodes to be requested for replacement by name.
	// The priority set on the name will be passed to the NodeReplacement.
	// NodeName priorities always override NodeSelector priorities.
	NodeNames []NodeName `json:"nodeNames,omitempty"`
}

NodeRolloutSpec defines the desired state of NodeRollout

func (*NodeRolloutSpec) DeepCopy

func (in *NodeRolloutSpec) DeepCopy() *NodeRolloutSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeRolloutSpec.

func (*NodeRolloutSpec) DeepCopyInto

func (in *NodeRolloutSpec) DeepCopyInto(out *NodeRolloutSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NodeRolloutStatus

type NodeRolloutStatus struct {
	// Phase is used to determine which phase of the replacement cycle a Rollout
	// is currently in.
	Phase NodeRolloutPhase `json:"phase"`

	// ReplacementsCreated lists the names of all NodeReplacements created by the
	// controller for this NodeRollout.
	ReplacementsCreated []string `json:"replacementsCreated,omitempty"`

	// ReplacementsCreatedCount is the count of ReplacementsCreated.
	// This is used for printing in kubectl.
	ReplacementsCreatedCount int `json:"replacementsCreatedCount,omitempty"`

	// ReplacementsCompleted lists the names of all NodeReplacements that have
	// successfully replaced their node.
	ReplacementsCompleted []string `json:"replacementsCompleted,omitempty"`

	// ReplacementsCompletedCount is the count of ReplacementsCompleted.
	// This is used for printing in kubectl.
	ReplacementsCompletedCount int `json:"replacementsCompletedCount,omitempty"`

	// CompletionTimestamp is a timestamp for when the rollout has completed
	CompletionTimestamp *metav1.Time `json:"completionTimestamp,omitempty"`

	// Conditions gives detailed condition information about the NodeRollout
	Conditions []NodeRolloutCondition `json:"conditions,omitempty"`
}

NodeRolloutStatus defines the observed state of NodeRollout

func (*NodeRolloutStatus) DeepCopy

func (in *NodeRolloutStatus) DeepCopy() *NodeRolloutStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeRolloutStatus.

func (*NodeRolloutStatus) DeepCopyInto

func (in *NodeRolloutStatus) DeepCopyInto(out *NodeRolloutStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PodReason

type PodReason struct {
	// Name is the name of the pod
	Name string `json:"name"`

	// Reason is the message to display to the user as to why this Pod is ignored/failed
	Reason string `json:"reason"`
}

PodReason is used to add details to a Pods eviction status

func (*PodReason) DeepCopy

func (in *PodReason) DeepCopy() *PodReason

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodReason.

func (*PodReason) DeepCopyInto

func (in *PodReason) DeepCopyInto(out *PodReason)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ReplacementSpec

type ReplacementSpec struct {
	// Priority determines the priority of this NodeReplacement.
	// Higher priorities should be replaced sooner.
	Priority *int `json:"priority,omitempty"`
}

ReplacementSpec contains configuration for the replacement of the Node reference in the NodeReplacement

func (*ReplacementSpec) DeepCopy

func (in *ReplacementSpec) DeepCopy() *ReplacementSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplacementSpec.

func (*ReplacementSpec) DeepCopyInto

func (in *ReplacementSpec) DeepCopyInto(out *ReplacementSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

Jump to

Keyboard shortcuts

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