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 ¶
- Variables
- func Resource(resource string) schema.GroupResource
- type NodeLabelSelector
- type NodeName
- type NodeReplacement
- type NodeReplacementCondition
- type NodeReplacementConditionReason
- type NodeReplacementConditionType
- type NodeReplacementList
- type NodeReplacementPhase
- type NodeReplacementSpec
- type NodeReplacementStatus
- type NodeRollout
- type NodeRolloutCondition
- type NodeRolloutConditionReason
- type NodeRolloutConditionType
- type NodeRolloutList
- type NodeRolloutPhase
- type NodeRolloutSpec
- type NodeRolloutStatus
- type PodReason
- type ReplacementSpec
Constants ¶
This section is empty.
Variables ¶
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeName.
func (*NodeName) DeepCopyInto ¶
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 ¶
func (in *NodeReplacementCondition) DeepCopy() *NodeReplacementCondition
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 ¶
func (in *NodeReplacementStatus) DeepCopy() *NodeReplacementStatus
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 ¶
func (in *NodeRolloutCondition) DeepCopy() *NodeRolloutCondition
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PodReason.
func (*PodReason) DeepCopyInto ¶
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.