v1alpha1

package
v1.0.12 Latest Latest
Warning

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

Go to latest
Published: Aug 29, 2025 License: Apache-2.0 Imports: 5 Imported by: 2

Documentation

Overview

+kubebuilder:object:generate=true +groupName=node.eks.aws +kubebuilder:validation:Optional

Index

Constants

This section is empty.

Variables

View Source
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 create a symlink from `/root/.aws/credentials` to `/eks-hybrid/.aws/credentials`.
	// For IAM Roles Anywhere, this means that nodeadm will 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

func (in *SSM) DeepCopy() *SSM

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

func (*SSM) DeepCopyInto

func (in *SSM) DeepCopyInto(out *SSM)

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