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.