options

package
v1.4.13 Latest Latest
Warning

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

Go to latest
Published: Jul 23, 2026 License: MPL-2.0 Imports: 5 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DeploymentModeDocker     = "docker"
	DeploymentModeKubernetes = "kubernetes"
)

Deployment modes select how the devcontainer is run on the instance.

Variables

View Source
var (
	AWS_AMI                             = "AWS_AMI"
	AWS_DISK_SIZE                       = "AWS_DISK_SIZE"
	AWS_ROOT_DEVICE                     = "AWS_ROOT_DEVICE"
	AWS_INSTANCE_TYPE                   = "AWS_INSTANCE_TYPE"
	AWS_REGION                          = "AWS_REGION"
	AWS_SECURITY_GROUP_ID               = "AWS_SECURITY_GROUP_ID"
	AWS_SSH_INGRESS_CIDR                = "AWS_SSH_INGRESS_CIDR"
	AWS_SUBNET_ID                       = "AWS_SUBNET_ID"
	AWS_VPC_ID                          = "AWS_VPC_ID"
	AWS_AVAILABILITY_ZONE               = "AWS_AVAILABILITY_ZONE"
	AWS_INSTANCE_TAGS                   = "AWS_INSTANCE_TAGS"
	AWS_INSTANCE_PROFILE_ARN            = "AWS_INSTANCE_PROFILE_ARN"
	AWS_USE_NESTED_VIRTUALIZATION       = "AWS_USE_NESTED_VIRTUALIZATION"
	AWS_USE_INSTANCE_CONNECT_ENDPOINT   = "AWS_USE_INSTANCE_CONNECT_ENDPOINT"
	AWS_INSTANCE_CONNECT_ENDPOINT_ID    = "AWS_INSTANCE_CONNECT_ENDPOINT_ID"
	AWS_USE_SPOT_INSTANCE               = "AWS_USE_SPOT_INSTANCE"
	AWS_SPOT_INSTANCE_TYPE              = "AWS_SPOT_INSTANCE_TYPE"
	AWS_USE_SESSION_MANAGER             = "AWS_USE_SESSION_MANAGER"
	AWS_KMS_KEY_ARN_FOR_SESSION_MANAGER = "AWS_KMS_KEY_ARN_FOR_SESSION_MANAGER"
	AWS_USE_ROUTE53                     = "AWS_USE_ROUTE53"
	AWS_ROUTE53_ZONE_NAME               = "AWS_ROUTE53_ZONE_NAME"
	AWS_ACCESS_KEY_ID                   = "AWS_ACCESS_KEY_ID"
	AWS_SECRET_ACCESS_KEY               = "AWS_SECRET_ACCESS_KEY"         //nolint:gosec // option name, not a secret
	AWS_SESSION_TOKEN                   = "AWS_SESSION_TOKEN"             //nolint:gosec // option name, not a secret
	CUSTOM_AWS_CREDENTIAL_COMMAND       = "CUSTOM_AWS_CREDENTIAL_COMMAND" //nolint:gosec // option name, not a secret

	// User-data hook options (optional).
	AWS_HOOK_POST_SSH    = "AWS_HOOK_POST_SSH"
	AWS_HOOK_POST_VOLUME = "AWS_HOOK_POST_VOLUME"

	// Data volume options (all optional).
	AWS_DATA_VOLUME_SNAPSHOT_ID = "AWS_DATA_VOLUME_SNAPSHOT_ID"
	AWS_DATA_VOLUME_SIZE        = "AWS_DATA_VOLUME_SIZE"
	AWS_DATA_VOLUME_DEVICE      = "AWS_DATA_VOLUME_DEVICE"
	AWS_DATA_VOLUME_MOUNT_PATH  = "AWS_DATA_VOLUME_MOUNT_PATH"
	AWS_DATA_VOLUME_TYPE        = "AWS_DATA_VOLUME_TYPE"

	// Deployment mode options.
	AWS_DEPLOYMENT_MODE = "AWS_DEPLOYMENT_MODE"

	// Kubernetes (K3s) mode options (only used when deployment mode is kubernetes).
	AWS_K3S_VERSION          = "AWS_K3S_VERSION"
	AWS_K3S_CHANNEL          = "AWS_K3S_CHANNEL"
	AWS_KUBERNETES_NAMESPACE = "AWS_KUBERNETES_NAMESPACE"
)

Functions

This section is empty.

Types

type Options

type Options struct {
	DiskImage                  string
	DiskSizeGB                 int
	RootDevice                 string
	MachineFolder              string
	MachineID                  string
	MachineType                string
	VpcID                      string
	SubnetIDs                  []string
	AvailabilityZone           string
	SecurityGroupID            string
	SSHIngressCIDR             string
	InstanceProfileArn         string
	InstanceTags               string
	Zone                       string
	UseNestedVirtualization    bool
	UseInstanceConnectEndpoint bool
	InstanceConnectEndpointID  string
	UseSpotInstance            bool
	SpotInstanceType           string
	UseSessionManager          bool
	KmsKeyARNForSessionManager string
	UseRoute53Hostnames        bool
	Route53ZoneName            string
	CustomCredentialCommand    string
	AccessKeyID                string
	SecretAccessKey            string
	SessionToken               string

	// User-data hooks executed during instance initialization
	HookPostSSH    string
	HookPostVolume string

	// Optional secondary data volume
	DataVolumeSnapshotID string
	DataVolumeSizeGB     int
	DataVolumeDevice     string
	DataVolumeMountPath  string
	DataVolumeType       string
	DataVolumeID         string // populated at runtime after CreateVolume

	// Deployment mode: "docker" (default) or "kubernetes" (K3s on the instance).
	DeploymentMode string

	// Kubernetes (K3s) mode settings, only relevant when DeploymentMode is kubernetes.
	K3sVersion          string
	K3sChannel          string
	KubernetesNamespace string
}

func FromEnv

func FromEnv(init, withFolder bool) (*Options, error)

func (*Options) HasDataVolume

func (o *Options) HasDataVolume() bool

HasDataVolume reports whether a secondary data volume is configured.

func (*Options) IsKubernetesMode added in v1.4.0

func (o *Options) IsKubernetesMode() bool

IsKubernetesMode reports whether the instance should run a K3s-backed Kubernetes devcontainer instead of a plain Docker devcontainer.

func (*Options) K3sKubeconfigPath added in v1.4.0

func (o *Options) K3sKubeconfigPath() string

K3sKubeconfigPath returns the path to the K3s admin kubeconfig on the instance.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL