Documentation
¶
Overview ¶
+kubebuilder:object:generate=true +groupName=node.eks.aws +kubebuilder:validation:Optional
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ( GroupVersion = schema.GroupVersion{Group: api.GroupName, Version: "v1alpha1"} SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion} AddToScheme = SchemeBuilder.AddToScheme )
Functions ¶
This section is empty.
Types ¶
type ClusterDetails ¶
type ClusterDetails struct {
// Name is the name of your EKS cluster
Name string `json:"name,omitempty"`
// Region is an AWS region (e.g. us-east-1) used to retrieve regional artifacts
// as well as region where EKS cluster lives.
Region string `json:"region,omitempty"`
// APIServerEndpoint is the URL of your EKS cluster's kube-apiserver.
APIServerEndpoint string `json:"apiServerEndpoint,omitempty"`
// CertificateAuthority is a base64-encoded string of your cluster's certificate authority chain.
CertificateAuthority []byte `json:"certificateAuthority,omitempty"`
// CIDR is your cluster's Pod IP CIDR. This value is used to infer your cluster's DNS address.
CIDR string `json:"cidr,omitempty"`
// EnableOutpost determines how your node is configured when running on an AWS Outpost.
EnableOutpost *bool `json:"enableOutpost,omitempty"`
// ID is an identifier for your cluster; this is only used when your node is running on an AWS Outpost.
ID string `json:"id,omitempty"`
}
ClusterDetails contains the coordinates of your EKS cluster. These details can be found using the [DescribeCluster API](https://docs.aws.amazon.com/eks/latest/APIReference/API_DescribeCluster.html).
func (*ClusterDetails) DeepCopy ¶
func (in *ClusterDetails) DeepCopy() *ClusterDetails
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterDetails.
func (*ClusterDetails) DeepCopyInto ¶
func (in *ClusterDetails) DeepCopyInto(out *ClusterDetails)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type ContainerdOptions ¶
type ContainerdOptions struct {
// Config is inline [`containerd` configuration TOML](https://github.com/containerd/containerd/blob/main/docs/man/containerd-config.toml.5.md)
// that will be [imported](https://github.com/containerd/containerd/blob/32169d591dbc6133ef7411329b29d0c0433f8c4d/docs/man/containerd-config.toml.5.md?plain=1#L146-L154)
// by the default configuration file.
Config string `json:"config,omitempty"`
}
ContainerdOptions are additional parameters passed to `containerd`.
func (*ContainerdOptions) DeepCopy ¶
func (in *ContainerdOptions) DeepCopy() *ContainerdOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ContainerdOptions.
func (*ContainerdOptions) DeepCopyInto ¶
func (in *ContainerdOptions) DeepCopyInto(out *ContainerdOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type HybridOptions ¶
type HybridOptions struct {
// EnableCredentialsFile enables a shared credentials file on the host at /eks-hybrid/.aws/credentials
// For SSM, this means that nodeadm will not create symlink from `/root/.aws/credentials` to `/eks-hybrid/.aws/credentials`.
// For IAM Roles Anywhere, this means that nodeadm will not set up a systemd service to write and refresh the credentials to `/eks-hybrid/.aws/credentials`.
EnableCredentialsFile bool `json:"enableCredentialsFile,omitempty"`
// IAMRolesAnywhere includes IAM Roles Anywhere specific configuration and is mutually exclusive
// with SSM.
IAMRolesAnywhere *IAMRolesAnywhere `json:"iamRolesAnywhere,omitempty"`
// SSM includes Systems Manager specific configuration and is mutually exclusive with
// IAMRolesAnywhere.
SSM *SSM `json:"ssm,omitempty"`
}
HybridOptions defines the options specific to hybrid node enrollment.
func (*HybridOptions) DeepCopy ¶
func (in *HybridOptions) DeepCopy() *HybridOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HybridOptions.
func (*HybridOptions) DeepCopyInto ¶
func (in *HybridOptions) DeepCopyInto(out *HybridOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type IAMRolesAnywhere ¶
type IAMRolesAnywhere struct {
// NodeName is the name the node will adopt.
NodeName string `json:"nodeName,omitempty"`
// TrustAnchorARN is the ARN of the trust anchor.
TrustAnchorARN string `json:"trustAnchorArn,omitempty"`
// ProfileARN is the ARN of the profile linked with the Hybrid IAM Role.
ProfileARN string `json:"profileArn,omitempty"`
// RoleARN is the role to IAM roles anywhere gets authorized as to get temporary credentials.
RoleARN string `json:"roleArn,omitempty"`
// AwsConfigPath is the path where the Aws config is stored for hybrid nodes.
// This field is only used to init phase
// +optional
AwsConfigPath string `json:"awsConfigPath,omitempty"`
// CertificatePath is the location on disk for the certificate used to authenticate with AWS.
// +optional
CertificatePath string `json:"certificatePath,omitempty"`
// PrivateKeyPath is the location on disk for the certificate's private key.
// +optional
PrivateKeyPath string `json:"privateKeyPath,omitempty"`
}
IAMRolesAnywhere defines IAM Roles Anywhere specific configuration.
func (*IAMRolesAnywhere) DeepCopy ¶
func (in *IAMRolesAnywhere) DeepCopy() *IAMRolesAnywhere
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IAMRolesAnywhere.
func (*IAMRolesAnywhere) DeepCopyInto ¶
func (in *IAMRolesAnywhere) DeepCopyInto(out *IAMRolesAnywhere)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type InstanceOptions ¶
type InstanceOptions struct {
LocalStorage LocalStorageOptions `json:"localStorage,omitempty"`
}
InstanceOptions determines how the node's operating system and devices are configured.
func (*InstanceOptions) DeepCopy ¶
func (in *InstanceOptions) DeepCopy() *InstanceOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceOptions.
func (*InstanceOptions) DeepCopyInto ¶
func (in *InstanceOptions) DeepCopyInto(out *InstanceOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type KubeletOptions ¶
type KubeletOptions struct {
// Config is a [`KubeletConfiguration`](https://kubernetes.io/docs/reference/config-api/kubelet-config.v1/)
// that will be merged with the defaults.
Config map[string]runtime.RawExtension `json:"config,omitempty"`
// Flags are [command-line `kubelet“ arguments](https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet/).
// that will be appended to the defaults.
Flags []string `json:"flags,omitempty"`
}
KubeletOptions are additional parameters passed to `kubelet`.
func (*KubeletOptions) DeepCopy ¶
func (in *KubeletOptions) DeepCopy() *KubeletOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeletOptions.
func (*KubeletOptions) DeepCopyInto ¶
func (in *KubeletOptions) DeepCopyInto(out *KubeletOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LocalStorageOptions ¶
type LocalStorageOptions struct {
Strategy LocalStorageStrategy `json:"strategy,omitempty"`
}
LocalStorageOptions control how [EC2 instance stores](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html) are used when available.
func (*LocalStorageOptions) DeepCopy ¶
func (in *LocalStorageOptions) DeepCopy() *LocalStorageOptions
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LocalStorageOptions.
func (*LocalStorageOptions) DeepCopyInto ¶
func (in *LocalStorageOptions) DeepCopyInto(out *LocalStorageOptions)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LocalStorageStrategy ¶
type LocalStorageStrategy string
LocalStorageStrategy specifies how to handle an instance's local storage devices. +kubebuilder:validation:Enum={RAID0, Mount}
const ( // LocalStorageRAID0 will create a single raid0 volume from any local disks LocalStorageRAID0 LocalStorageStrategy = "RAID0" // LocalStorageMount will mount each local disk individually LocalStorageMount LocalStorageStrategy = "Mount" )
type NodeConfig ¶
type NodeConfig struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec NodeConfigSpec `json:"spec,omitempty"`
}
NodeConfig is the primary configuration object for `nodeadm`.
func (*NodeConfig) DeepCopy ¶
func (in *NodeConfig) DeepCopy() *NodeConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeConfig.
func (*NodeConfig) DeepCopyInto ¶
func (in *NodeConfig) DeepCopyInto(out *NodeConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*NodeConfig) DeepCopyObject ¶
func (in *NodeConfig) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (NodeConfig) IsHybridNode ¶
func (nc NodeConfig) IsHybridNode() bool
IsHybridNode returns true when the nc.Hybrid configuration is non-nil.
func (NodeConfig) IsOutpostNode ¶
func (nc NodeConfig) IsOutpostNode() bool
IsOutpostNode returns true when Output configuration is non-nil.
type NodeConfigList ¶
type NodeConfigList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []NodeConfig `json:"items"`
}
func (*NodeConfigList) DeepCopy ¶
func (in *NodeConfigList) DeepCopy() *NodeConfigList
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeConfigList.
func (*NodeConfigList) DeepCopyInto ¶
func (in *NodeConfigList) DeepCopyInto(out *NodeConfigList)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*NodeConfigList) DeepCopyObject ¶
func (in *NodeConfigList) DeepCopyObject() runtime.Object
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
type NodeConfigSpec ¶
type NodeConfigSpec struct {
Cluster ClusterDetails `json:"cluster,omitempty"`
Containerd ContainerdOptions `json:"containerd,omitempty"`
Instance InstanceOptions `json:"instance,omitempty"`
Kubelet KubeletOptions `json:"kubelet,omitempty"`
Hybrid *HybridOptions `json:"hybrid,omitempty"`
}
func (*NodeConfigSpec) DeepCopy ¶
func (in *NodeConfigSpec) DeepCopy() *NodeConfigSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeConfigSpec.
func (*NodeConfigSpec) DeepCopyInto ¶
func (in *NodeConfigSpec) DeepCopyInto(out *NodeConfigSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type SSM ¶
type SSM struct {
// ActivationCode is the token generated when creating an SSM activation.
ActivationCode string `json:"activationCode,omitempty"`
// ActivationToken is the ID generated when creating an SSM activation.
ActivationID string `json:"activationId,omitempty"`
}
SSM defines Systems Manager specific configuration. ActivationCode and ActivationID are generated on the aws console or cli during hybrid activations. During activation an IAM role is chosen for the SSM agent to assume. This is not overridable from the agent.
func (*SSM) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SSM.
func (*SSM) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.