Documentation ¶
Overview ¶
Package v1 contains API Schema definitions for the atlassian v1 API group +k8s:deepcopy-gen=package,register +groupName=atlassian.com
Package v1 contains API Schema definitions for the atlassian v1 API group +k8s:deepcopy-gen=package,register +groupName=atlassian.com
Index ¶
- Constants
- Variables
- func RegisterDefaults(scheme *runtime.Scheme) error
- type CycleNodeRequest
- func (in *CycleNodeRequest) DeepCopy() *CycleNodeRequest
- func (in *CycleNodeRequest) DeepCopyInto(out *CycleNodeRequest)
- func (in *CycleNodeRequest) DeepCopyObject() runtime.Object
- func (in *CycleNodeRequest) GetNodeGroupNames() []string
- func (in *CycleNodeRequest) NodeLabelSelector() (labels.Selector, error)
- type CycleNodeRequestList
- type CycleNodeRequestMethod
- type CycleNodeRequestNode
- type CycleNodeRequestPhase
- type CycleNodeRequestSpec
- type CycleNodeRequestStatus
- type CycleNodeStatus
- type CycleNodeStatusList
- type CycleNodeStatusPhase
- type CycleNodeStatusSpec
- type CycleNodeStatusStatus
- type CycleSettings
- type HealthCheck
- type HealthCheckStatus
- type NodeGroup
- type NodeGroupList
- type NodeGroupSpec
- type NodeGroupStatus
- type PreTerminationCheck
- type PreTerminationCheckStatus
- type PreTerminationCheckStatusList
- type TLSConfig
Constants ¶
const ( // CycleNodeRequestMethodDrain actively drains pods off the node before terminating it. // This is the default method. CycleNodeRequestMethodDrain = "Drain" // CycleNodeRequestMethodWait waits for pods to leave the node before terminating it. // It will ignore DaemonSets and select pods. These can be configured in the CRD spec. CycleNodeRequestMethodWait = "Wait" )
Variables ¶
var ( // SchemeGroupVersion is group version used to register these objects SchemeGroupVersion = schema.GroupVersion{Group: "atlassian.com", Version: "v1"} // SchemeBuilder is used to add go types to the GroupVersionKind scheme SchemeBuilder = &scheme.Builder{GroupVersion: SchemeGroupVersion} )
Functions ¶
func RegisterDefaults ¶
RegisterDefaults adds defaulters functions to the given scheme. Public to allow building arbitrary schemes. All generated defaulters are covering - they call all nested defaulters.
Types ¶
type CycleNodeRequest ¶
type CycleNodeRequest struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` ClusterName string `json:"clusterName,omitempty"` Spec CycleNodeRequestSpec `json:"spec,omitempty"` Status CycleNodeRequestStatus `json:"status,omitempty"` }
CycleNodeRequest is the Schema for the cyclenoderequests API +k8s:openapi-gen=true +kubebuilder:resource:path=cyclenoderequests,shortName=cnr,scope=Namespaced +kubebuilder:printcolumn:name="Node Group Name",type="string",JSONPath=".spec.nodeGroupName",description="The node group being cycled" +kubebuilder:printcolumn:name="Method",type="string",JSONPath=".spec.cycleSettings.method",description="The method being used for the cycle operation" +kubebuilder:printcolumn:name="Concurrency",type="integer",JSONPath=".spec.cycleSettings.concurrency",description="Max nodes the request is cycling at once" +kubebuilder:printcolumn:name="Status",type="string",JSONPath=".status.phase",description="The status of the request" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp",description="Age of the request"
func (*CycleNodeRequest) DeepCopy ¶
func (in *CycleNodeRequest) DeepCopy() *CycleNodeRequest
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CycleNodeRequest.
func (*CycleNodeRequest) DeepCopyInto ¶
func (in *CycleNodeRequest) DeepCopyInto(out *CycleNodeRequest)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*CycleNodeRequest) DeepCopyObject ¶
func (in *CycleNodeRequest) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*CycleNodeRequest) GetNodeGroupNames ¶
func (in *CycleNodeRequest) GetNodeGroupNames() []string
GetNodeGroupNames gets a union of cloud provider node group names based on CycleNodeRequestSpec `NodeGroupName` and `NodeGroupsList`
func (*CycleNodeRequest) NodeLabelSelector ¶
func (in *CycleNodeRequest) NodeLabelSelector() (labels.Selector, error)
NodeLabelSelector converts a metav1.LabelSelector to a labels.Selector
type CycleNodeRequestList ¶
type CycleNodeRequestList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []CycleNodeRequest `json:"items"` }
CycleNodeRequestList contains a list of CycleNodeRequest
func (*CycleNodeRequestList) DeepCopy ¶
func (in *CycleNodeRequestList) DeepCopy() *CycleNodeRequestList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CycleNodeRequestList.
func (*CycleNodeRequestList) DeepCopyInto ¶
func (in *CycleNodeRequestList) DeepCopyInto(out *CycleNodeRequestList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*CycleNodeRequestList) DeepCopyObject ¶
func (in *CycleNodeRequestList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type CycleNodeRequestMethod ¶
type CycleNodeRequestMethod string
CycleNodeRequestMethod is the method to use when cycling nodes.
type CycleNodeRequestNode ¶
type CycleNodeRequestNode struct { // Name of the node Name string `json:"name"` // Cloud Provider ID of the node ProviderID string `json:"providerId"` // NodeGroupName stores current cloud provider node group name // which this node belongs to NodeGroupName string `json:"nodeGroupName"` // Private ip of the instance PrivateIP string `json:"privateIp,omitempty"` }
CycleNodeRequestNode stores a current node that is being worked on
func (*CycleNodeRequestNode) DeepCopy ¶
func (in *CycleNodeRequestNode) DeepCopy() *CycleNodeRequestNode
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CycleNodeRequestNode.
func (*CycleNodeRequestNode) DeepCopyInto ¶
func (in *CycleNodeRequestNode) DeepCopyInto(out *CycleNodeRequestNode)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CycleNodeRequestPhase ¶
type CycleNodeRequestPhase string
CycleNodeRequestPhase is the phase that the cycleNodeRequest is in
const ( // CycleNodeRequestUndefined is for cycleNodeRequests that aren't in any phase CycleNodeRequestUndefined CycleNodeRequestPhase = "" // CycleNodeRequestPending is for pending cycleNodeRequests CycleNodeRequestPending CycleNodeRequestPhase = "Pending" // CycleNodeRequestFailed is for failed cycleNodeRequests CycleNodeRequestFailed CycleNodeRequestPhase = "Failed" // CycleNodeRequestInitialised is for initialised cycleNodeRequests CycleNodeRequestInitialised CycleNodeRequestPhase = "Initialised" // CycleNodeRequestScalingUp is for cycleNodeRequests that are scaling up CycleNodeRequestScalingUp CycleNodeRequestPhase = "ScalingUp" // CycleNodeRequestCordoningNode is for cycleNodeRequests that are cordoning the current node CycleNodeRequestCordoningNode CycleNodeRequestPhase = "CordoningNode" // CycleNodeRequestWaitingTermination is for cycleNodeRequests that are waiting for a current batch of nodes to terminate CycleNodeRequestWaitingTermination CycleNodeRequestPhase = "WaitingTermination" // CycleNodeRequestSuccessful is for successful cycleNodeRequests CycleNodeRequestSuccessful CycleNodeRequestPhase = "Successful" // CycleNodeRequestHealing is for the state before Failing where cyclops will try to put the cluster back in a consistent state CycleNodeRequestHealing CycleNodeRequestPhase = "Healing" )
type CycleNodeRequestSpec ¶
type CycleNodeRequestSpec struct { // NodeGroupName is the name of the node group in the cloud provider that will be increased to bring // up replacement nodes. NodeGroupName string `json:"nodeGroupName"` // NodeGroupsList is a list of node groups in the cloud provider which includes target nodes // selected by node selector NodeGroupsList []string `json:"nodeGroupsList,omitempty"` // Selector is the label selector used to select the nodes that are to be terminated Selector metav1.LabelSelector `json:"selector"` // NodeNames is an optional list of the names of nodes to rotate. This is used to only // rotate specific nodes belonging to the NodeGroup, rather than every node in the group. // If no node names are provided in NodeNames then the entire node group will be rotated. NodeNames []string `json:"nodeNames,omitempty"` // CycleSettings stores the settings to use for cycling the nodes. CycleSettings CycleSettings `json:"cycleSettings"` // HealthChecks stores the settings to configure instance custom health checks HealthChecks []HealthCheck `json:"healthChecks,omitempty"` // PreTerminationChecks stores the settings to configure instance pre-termination checks PreTerminationChecks []PreTerminationCheck `json:"preTerminationChecks,omitempty"` // SkipInitialHealthChecks is an optional flag to skip the initial set of node health checks before cycling begins // This does not affect the health checks performed as part of the pre-termination checks. SkipInitialHealthChecks bool `json:"skipInitialHealthChecks,omitempty"` // SkipPreTerminationChecks is an optional flag to skip pre-termination checks during cycling SkipPreTerminationChecks bool `json:"skipPreTerminationChecks,omitempty"` }
CycleNodeRequestSpec defines the desired state of CycleNodeRequest +k8s:openapi-gen=true
func (*CycleNodeRequestSpec) DeepCopy ¶
func (in *CycleNodeRequestSpec) DeepCopy() *CycleNodeRequestSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CycleNodeRequestSpec.
func (*CycleNodeRequestSpec) DeepCopyInto ¶
func (in *CycleNodeRequestSpec) DeepCopyInto(out *CycleNodeRequestSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CycleNodeRequestStatus ¶
type CycleNodeRequestStatus struct { // Phase stores the current phase of the CycleNodeRequest Phase CycleNodeRequestPhase `json:"phase"` // A human readable message indicating details about why the CycleNodeRequest is in this condition. Message string `json:"message"` // CurrentNodes stores the current nodes that are being "worked on". Used to batch operations // against the node group in the cloud provider. Once a node is passed off to a CycleNodeStatus // CRD, it is no longer listed here. CurrentNodes []CycleNodeRequestNode `json:"currentNodes,omitempty"` // NodesToTerminate stores the old nodes that will be terminated. // The cycling of nodes is considered successful when all of these nodes no longer exist in the cluster. NodesToTerminate []CycleNodeRequestNode `json:"nodesToTerminate,omitempty"` // ScaleUpStarted stores the time when the scale up started // This is used to track the time limit of the scale up. If we breach the time limit // we fail the request. ScaleUpStarted *metav1.Time `json:"scaleUpStarted,omitempty"` // EquilibriumWaitStarted stores the time when we started waiting for equilibrium of Kube nodes and node group instances. // This is used to give some leeway if we start a request at the same time as a cluster scaling event. // If we breach the time limit we fail the request. EquilibriumWaitStarted *metav1.Time `json:"equilibriumWaitStarted,omitempty"` // ActiveChildren is the active number of CycleNodeStatuses that this CycleNodeRequest was aware of // when it last checked for progress in the cycle operation. ActiveChildren int64 `json:"activeChildren,omitempty"` // ThreadTimestamp is the timestamp of the thread in the messaging provider ThreadTimestamp string `json:"threadTimestamp,omitempty"` // SelectedNodes stores all selected nodes so that new nodes which are selected are only posted in a notification once SelectedNodes map[string]bool `json:"selectedNodes,omitempty"` // NumNodesCycled counts how many nodes have finished being cycled NumNodesCycled int `json:"numNodesCycled,omitempty"` // NodesAvailable stores the nodes still available to pick up for cycling from the list of nodes to terminate NodesAvailable []CycleNodeRequestNode `json:"nodesAvailable,omitempty"` // HealthChecks keeps track of instance health check information HealthChecks map[string]HealthCheckStatus `json:"healthChecks,omitempty"` // PreTerminationChecks keeps track of the instance pre termination check information PreTerminationChecks map[string]PreTerminationCheckStatusList `json:"preTerminationChecks,omitempty"` }
CycleNodeRequestStatus defines the observed state of CycleNodeRequest +k8s:openapi-gen=true
func (*CycleNodeRequestStatus) DeepCopy ¶
func (in *CycleNodeRequestStatus) DeepCopy() *CycleNodeRequestStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CycleNodeRequestStatus.
func (*CycleNodeRequestStatus) DeepCopyInto ¶
func (in *CycleNodeRequestStatus) DeepCopyInto(out *CycleNodeRequestStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CycleNodeStatus ¶
type CycleNodeStatus struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec CycleNodeStatusSpec `json:"spec,omitempty"` Status CycleNodeStatusStatus `json:"status,omitempty"` }
CycleNodeStatus is the Schema for the cyclenodestatus API +k8s:openapi-gen=true +kubebuilder:resource:path=cyclenodestatuses,shortName=cns,scope=Namespaced +kubebuilder:printcolumn:name="Node",type="string",JSONPath=".status.currentNode.name",description="The name of the node" +kubebuilder:printcolumn:name="Provider ID",type="string",JSONPath=".status.currentNode.providerId",description="The provider ID of the node" +kubebuilder:printcolumn:name="Method",type="string",JSONPath=".spec.cycleSettings.method",description="The method being used for the cycle operation" +kubebuilder:printcolumn:name="Status",type="string",JSONPath=".status.phase",description="The status of the request" +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp",description="Age of the request"
func (*CycleNodeStatus) DeepCopy ¶
func (in *CycleNodeStatus) DeepCopy() *CycleNodeStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CycleNodeStatus.
func (*CycleNodeStatus) DeepCopyInto ¶
func (in *CycleNodeStatus) DeepCopyInto(out *CycleNodeStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*CycleNodeStatus) DeepCopyObject ¶
func (in *CycleNodeStatus) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type CycleNodeStatusList ¶
type CycleNodeStatusList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []CycleNodeStatus `json:"items"` }
CycleNodeStatusList contains a list of CycleNodeStatus
func (*CycleNodeStatusList) DeepCopy ¶
func (in *CycleNodeStatusList) DeepCopy() *CycleNodeStatusList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CycleNodeStatusList.
func (*CycleNodeStatusList) DeepCopyInto ¶
func (in *CycleNodeStatusList) DeepCopyInto(out *CycleNodeStatusList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*CycleNodeStatusList) DeepCopyObject ¶
func (in *CycleNodeStatusList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type CycleNodeStatusPhase ¶
type CycleNodeStatusPhase string
CycleNodeStatusPhase is the phase that the cycleNodeStatus is in
const ( // CycleNodeStatusUndefined is for cycleNodeStatuses that aren't in any phase CycleNodeStatusUndefined CycleNodeStatusPhase = "" // CycleNodeStatusPending is for pending cycleNodeStatus CycleNodeStatusPending CycleNodeStatusPhase = "Pending" // CycleNodeStatusFailed is for failed cycleNodeStatuses CycleNodeStatusFailed CycleNodeStatusPhase = "Failed" // CycleNodeStatusRemovingLabelsFromPods is for cycleNodeStatuses that are removing labels from pods on the node CycleNodeStatusRemovingLabelsFromPods CycleNodeStatusPhase = "RemovingLabelsFromPods" // CycleNodeStatusWaitingPods is for cycleNodeStatuses that are waiting for pods to finish on the node CycleNodeStatusWaitingPods CycleNodeStatusPhase = "WaitingPods" // CycleNodeStatusDrainingPods is for cycleNodeStatuses that are draining pods from the node CycleNodeStatusDrainingPods CycleNodeStatusPhase = "DrainingPods" // CycleNodeStatusDeletingNode is for cycleNodeStatuses that are deleting the node out of the Kubernetes API CycleNodeStatusDeletingNode CycleNodeStatusPhase = "DeletingNode" // CycleNodeStatusTerminatingNode is for cyclenodeStatuses that are terminating the node from AWS CycleNodeStatusTerminatingNode CycleNodeStatusPhase = "TerminatingNode" // CycleNodeStatusSuccessful is for successful cycleNodeStatuses CycleNodeStatusSuccessful CycleNodeStatusPhase = "Successful" )
type CycleNodeStatusSpec ¶
type CycleNodeStatusSpec struct { // NodeName is the name of the node object in Kubernetes that will be drained and terminated. NodeName string `json:"nodeName"` // CycleSettings stores the settings to use for cycling the node. CycleSettings CycleSettings `json:"cycleSettings"` }
CycleNodeStatusSpec defines the desired state of CycleNodeStatus +k8s:openapi-gen=true
func (*CycleNodeStatusSpec) DeepCopy ¶
func (in *CycleNodeStatusSpec) DeepCopy() *CycleNodeStatusSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CycleNodeStatusSpec.
func (*CycleNodeStatusSpec) DeepCopyInto ¶
func (in *CycleNodeStatusSpec) DeepCopyInto(out *CycleNodeStatusSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CycleNodeStatusStatus ¶
type CycleNodeStatusStatus struct { // Phase stores the current phase of the CycleNodeStatus Phase CycleNodeStatusPhase `json:"phase"` // A human readable message indicating details about why the CycleNodeStatus is in this condition Message string `json:"message"` // CurrentNode stores this node that is being "worked on" CurrentNode CycleNodeRequestNode `json:"currentNode"` // StartedTimestamp stores the timestamp that work on this node began StartedTimestamp *metav1.Time `json:"startedTimestamp,omitempty"` // TimeoutTimestamp stores the timestamp of when this CNS will timeout TimeoutTimestamp *metav1.Time `json:"timeoutTimestamp,omitempty"` }
CycleNodeStatusStatus defines the observed state of a node being cycled by a CycleNodeRequest +k8s:openapi-gen=true
func (*CycleNodeStatusStatus) DeepCopy ¶
func (in *CycleNodeStatusStatus) DeepCopy() *CycleNodeStatusStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CycleNodeStatusStatus.
func (*CycleNodeStatusStatus) DeepCopyInto ¶
func (in *CycleNodeStatusStatus) DeepCopyInto(out *CycleNodeStatusStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CycleSettings ¶
type CycleSettings struct { // Method describes the type of cycle operation to use. // +kubebuilder:validation:Enum=Drain;Wait Method CycleNodeRequestMethod `json:"method"` // Concurrency is the number of nodes that one CycleNodeRequest will work on in parallel. // Defaults to the size of the node group. Concurrency int64 `json:"concurrency,omitempty"` // LabelsToRemove is an array of labels to remove off of the pods running on the node // This can be used to remove a pod from a service/endpoint before evicting/deleting // it to prevent traffic being sent to it. LabelsToRemove []string `json:"labelsToRemove,omitempty"` // IgnorePodLabels is a map of values for labels that describes which pods should be ignored when // deciding whether a node has no more pods running. This map defines a union: any pod that // matches any of the values for a given label name will be ignored. IgnorePodsLabels map[string][]string `json:"ignorePodsLabels,omitempty"` // IgnoreNamespaces is a list of namespace names in which running pods should be ignored // when deciding whether a node has no more pods running. IgnoreNamespaces []string `json:"ignoreNamespaces,omitempty"` // CyclingTimeout is a string in time duration format that defines how long a until an // in-progress CNS request timeout from the time it's worked on by the controller. // If no cyclingTimeout is provided, CNS will use the default controller CNS cyclingTimeout. CyclingTimeout *metav1.Duration `json:"cyclingTimeout,omitempty"` }
CycleSettings are configuration options to control how nodes are cycled +k8s:openapi-gen=true
func (*CycleSettings) DeepCopy ¶
func (in *CycleSettings) DeepCopy() *CycleSettings
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CycleSettings.
func (*CycleSettings) DeepCopyInto ¶
func (in *CycleSettings) DeepCopyInto(out *CycleSettings)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*CycleSettings) HasValidMethod ¶
func (in *CycleSettings) HasValidMethod() bool
HasValidMethod returns true if the Method of the CycleSettings is a valid value.
type HealthCheck ¶ added in v1.7.0
type HealthCheck struct { // Endpoint url of the health check. Optional: {{ .NodeIP }} gets replaced by the private IP of the node being scaled up. Endpoint string `json:"endpoint"` // WaitPeriod is the time allowed for the health check to pass before considering the // service unhealthy and failing the CycleNodeRequest. WaitPeriod *metav1.Duration `json:"waitPeriod"` // ValidStatusCodes keeps track of the list of possible status codes returned by // the endpoint denoting the service as healthy. Defaults to [200]. ValidStatusCodes []uint `json:"validStatusCodes,omitempty"` // RegexMatch specifies a regex string the body of the http result to should. By default no matching is done. RegexMatch string `json:"regexMatch,omitempty"` // TLS configuration for the http client to make requests. Can either make standard https requests // or optionally forward certs signed by the root CA for mTLS. TLSConfig `json:"tls,omitempty"` }
HealthCheck defines the health check configuration for the NodeGroup +k8s:openapi-gen=true
func (*HealthCheck) DeepCopy ¶ added in v1.7.0
func (in *HealthCheck) DeepCopy() *HealthCheck
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HealthCheck.
func (*HealthCheck) DeepCopyInto ¶ added in v1.7.0
func (in *HealthCheck) DeepCopyInto(out *HealthCheck)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type HealthCheckStatus ¶ added in v1.7.0
type HealthCheckStatus struct { // Ready keeps track of the first timestamp at which the node status was reported as "ready" NodeReady *metav1.Time `json:"ready,omitempty"` // Checks keeps track of the list of health checks performed on the node and which have already passed Checks []bool `json:"checks,omitempty"` // Skip denotes whether a node is part of a nodegroup before cycling has begun. If this is the case, // health checks on the instance are skipped, like this only new instances are checked. Skip bool `json:"skip,omitempty"` }
HealthCheckStatus groups all health checks status information for a node
func (*HealthCheckStatus) DeepCopy ¶ added in v1.7.0
func (in *HealthCheckStatus) DeepCopy() *HealthCheckStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HealthCheckStatus.
func (*HealthCheckStatus) DeepCopyInto ¶ added in v1.7.0
func (in *HealthCheckStatus) DeepCopyInto(out *HealthCheckStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NodeGroup ¶
type NodeGroup struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` Spec NodeGroupSpec `json:"spec,omitempty"` Status NodeGroupStatus `json:"status,omitempty"` }
NodeGroup is the Schema for the nodegroups API +k8s:openapi-gen=true +genclient:nonNamespaced +kubebuilder:resource:path=nodegroups,shortName=ng,scope=Cluster +kubebuilder:printcolumn:name="Node Group Name",type="string",JSONPath=".spec.nodeGroupName",description="The name of the node group in the cloud provider" +kubebuilder:printcolumn:name="Method",type="string",JSONPath=".spec.cycleSettings.method",description="The method to use when cycling nodes" +kubebuilder:printcolumn:name="Concurrency",type="integer",JSONPath=".spec.cycleSettings.concurrency",description="The number of nodes to cycle in parallel"
func (*NodeGroup) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeGroup.
func (*NodeGroup) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*NodeGroup) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*NodeGroup) GetNodeGroupNames ¶
GetNodeGroupNames gets a list of cloud provider node group names based on NodeGroupSpec `NodeGroupName` and `NodeGroupsList`
type NodeGroupList ¶
type NodeGroupList struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` Items []NodeGroup `json:"items"` }
NodeGroupList contains a list of NodeGroup
func (*NodeGroupList) DeepCopy ¶
func (in *NodeGroupList) DeepCopy() *NodeGroupList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeGroupList.
func (*NodeGroupList) DeepCopyInto ¶
func (in *NodeGroupList) DeepCopyInto(out *NodeGroupList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*NodeGroupList) DeepCopyObject ¶
func (in *NodeGroupList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type NodeGroupSpec ¶
type NodeGroupSpec struct { // NodeGroupName is the name of the node group in the cloud provider that corresponds to this NodeGroup resource. NodeGroupName string `json:"nodeGroupName"` // NodeGroupsList is a list of cloud provider node groups that corresponds to this NodeGroup resource. NodeGroupsList []string `json:"nodeGroupsList,omitempty"` // NodeSelector is the label selector used to select nodes that belong to this NodeGroup. NodeSelector metav1.LabelSelector `json:"nodeSelector"` // CycleSettings stores the settings to use for cycling the nodes. CycleSettings CycleSettings `json:"cycleSettings"` // Healthchecks stores the settings to configure instance custom health checks HealthChecks []HealthCheck `json:"healthChecks,omitempty"` // PreTerminationChecks stores the settings to configure instance pre-termination checks PreTerminationChecks []PreTerminationCheck `json:"preTerminationChecks,omitempty"` // SkipInitialHealthChecks is an optional flag to skip the initial set of node health checks before cycling begins // This does not affect the health checks performed as part of the pre-termination checks. SkipInitialHealthChecks bool `json:"skipInitialHealthChecks,omitempty"` // SkipPreTerminationChecks is an optional flag to skip pre-termination checks during cycling SkipPreTerminationChecks bool `json:"skipPreTerminationChecks,omitempty"` }
NodeGroupSpec defines the desired state of NodeGroup +k8s:openapi-gen=true
func (*NodeGroupSpec) DeepCopy ¶
func (in *NodeGroupSpec) DeepCopy() *NodeGroupSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeGroupSpec.
func (*NodeGroupSpec) DeepCopyInto ¶
func (in *NodeGroupSpec) DeepCopyInto(out *NodeGroupSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NodeGroupStatus ¶
type NodeGroupStatus struct { }
NodeGroupStatus defines the observed state of NodeGroup +k8s:openapi-gen=true
func (*NodeGroupStatus) DeepCopy ¶
func (in *NodeGroupStatus) DeepCopy() *NodeGroupStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeGroupStatus.
func (*NodeGroupStatus) DeepCopyInto ¶
func (in *NodeGroupStatus) DeepCopyInto(out *NodeGroupStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PreTerminationCheck ¶ added in v1.8.1
type PreTerminationCheck struct { // Endpoint url of the health check. Optional: {{ .NodeIP }} gets replaced by the private IP of the node being scaled up. Endpoint string `json:"triggerEndpoint"` // ValidStatusCodes keeps track of the list of possible status codes returned by // the endpoint denoting the service as healthy. Defaults to [200]. ValidStatusCodes []uint `json:"validStatusCodes,omitempty"` // HealthCheck denotes the configuration for performing health checks after the trigger has been sent. This works the // exact same way as health check on new nodes. HealthCheck `json:"healthCheck"` // TLS configuration for the http client to make requests. Can either make standard https requests // or optionally forward certs signed by the root CA for mTLS. TLSConfig `json:"tls,omitempty"` }
PreTerminationCheck defines the configuration for the check done before terminating an instance. The trigger can be considered a http sigterm and the subsequent check to know when the process has completed it's triggered action. +k8s:openapi-gen=true
func (*PreTerminationCheck) DeepCopy ¶ added in v1.8.1
func (in *PreTerminationCheck) DeepCopy() *PreTerminationCheck
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PreTerminationCheck.
func (*PreTerminationCheck) DeepCopyInto ¶ added in v1.8.1
func (in *PreTerminationCheck) DeepCopyInto(out *PreTerminationCheck)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PreTerminationCheckStatus ¶ added in v1.8.1
type PreTerminationCheckStatus struct { // Trigger marks the timestamp at which the trigger is sent. Trigger *metav1.Time `json:"trigger,omitempty"` // Check keeps track of health check result performed on the node Check bool `json:"check,omitempty"` }
PreTerminationCheckStatus groups all status information for the pre-termination trigger and ensuing heath checks
func (*PreTerminationCheckStatus) DeepCopy ¶ added in v1.8.1
func (in *PreTerminationCheckStatus) DeepCopy() *PreTerminationCheckStatus
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PreTerminationCheckStatus.
func (*PreTerminationCheckStatus) DeepCopyInto ¶ added in v1.8.1
func (in *PreTerminationCheckStatus) DeepCopyInto(out *PreTerminationCheckStatus)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type PreTerminationCheckStatusList ¶ added in v1.8.1
type PreTerminationCheckStatusList struct {
Checks []PreTerminationCheckStatus `json:"checks,omitempty"`
}
PreTerminationCheckStatusList groups all the PreTerminationCheckStatus for a node
func (*PreTerminationCheckStatusList) DeepCopy ¶ added in v1.8.1
func (in *PreTerminationCheckStatusList) DeepCopy() *PreTerminationCheckStatusList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PreTerminationCheckStatusList.
func (*PreTerminationCheckStatusList) DeepCopyInto ¶ added in v1.8.1
func (in *PreTerminationCheckStatusList) DeepCopyInto(out *PreTerminationCheckStatusList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type TLSConfig ¶ added in v1.8.1
type TLSConfig struct { // RootCA is the root CA shared between Cyclops and the upstream host. RootCA string `json:"rootCA,omitempty"` // Certificate is the crt given to Cyclops for mTLS. It is sent as part // of the request to the upstream host. Certificate string `json:"crt,omitempty"` // Key is the private key which forms a pair with the certificate. It is // sent as part of the request to the upstream host for mTLS. Key string `json:"key,omitempty"` }
TLSConfig defined the tls configuration for the http client to make a request. +k8s:openapi-gen=true
func (*TLSConfig) DeepCopy ¶ added in v1.8.1
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TLSConfig.
func (*TLSConfig) DeepCopyInto ¶ added in v1.8.1
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.