Documentation ¶
Overview ¶
Package eksconfig defines EKS test configuration.
Index ¶
- Constants
- type ASG
- type AddOnALB2048
- type AddOnAppMesh
- type AddOnCSIEBS
- type AddOnCSRs
- type AddOnClusterLoader
- type AddOnConfigMaps
- type AddOnConformance
- type AddOnCronJobs
- type AddOnFargate
- type AddOnHollowNodes
- type AddOnIRSA
- type AddOnIRSAFargate
- type AddOnJobsEcho
- type AddOnJobsPi
- type AddOnJupyterHub
- type AddOnKubeflow
- type AddOnKubernetesDashboard
- type AddOnManagedNodeGroups
- type AddOnNLBHelloWorld
- type AddOnNodeGroups
- type AddOnPrometheusGrafana
- type AddOnSecrets
- type AddOnWordpress
- type ClusterStatus
- type Config
- func (cfg *Config) EvaluateCommandRefs() error
- func (cfg *Config) IsEnabledAddOnALB2048() bool
- func (cfg *Config) IsEnabledAddOnAppMesh() bool
- func (cfg *Config) IsEnabledAddOnCSIEBS() bool
- func (cfg *Config) IsEnabledAddOnCSRs() bool
- func (cfg *Config) IsEnabledAddOnClusterLoader() bool
- func (cfg *Config) IsEnabledAddOnConfigMaps() bool
- func (cfg *Config) IsEnabledAddOnConformance() bool
- func (cfg *Config) IsEnabledAddOnCronJobs() bool
- func (cfg *Config) IsEnabledAddOnFargate() bool
- func (cfg *Config) IsEnabledAddOnHollowNodes() bool
- func (cfg *Config) IsEnabledAddOnIRSA() bool
- func (cfg *Config) IsEnabledAddOnIRSAFargate() bool
- func (cfg *Config) IsEnabledAddOnJobsEcho() bool
- func (cfg *Config) IsEnabledAddOnJobsPi() bool
- func (cfg *Config) IsEnabledAddOnJupyterHub() bool
- func (cfg *Config) IsEnabledAddOnKubeflow() bool
- func (cfg *Config) IsEnabledAddOnKubernetesDashboard() bool
- func (cfg *Config) IsEnabledAddOnManagedNodeGroups() bool
- func (cfg *Config) IsEnabledAddOnNLBHelloWorld() bool
- func (cfg *Config) IsEnabledAddOnNodeGroups() bool
- func (cfg *Config) IsEnabledAddOnPrometheusGrafana() bool
- func (cfg *Config) IsEnabledAddOnSecrets() bool
- func (cfg *Config) IsEnabledAddOnWordpress() bool
- func (cfg *Config) KubectlCommand() string
- func (cfg *Config) KubectlCommands() (s string)
- func (cfg *Config) RecordStatus(status string)
- func (cfg *Config) SSHCommands() string
- func (cfg *Config) Sync() (err error)
- func (cfg *Config) UpdateFromEnvs() (err error)
- func (cfg *Config) ValidateAndSetDefaults() error
- type MNG
- type Parameters
- type Status
Constants ¶
const ( // DefaultClients is the default number of clients to create. DefaultClients = 3 // DefaultClientQPS is the default client QPS. DefaultClientQPS float32 = 10 // DefaultClientBurst is the default client burst. DefaultClientBurst = 20 // DefaultClientTimeout is the default client timeout. DefaultClientTimeout = 30 * time.Second DefaultCommandAfterCreateClusterTimeout = 3 * time.Minute DefaultCommandAfterCreateAddOnsTimeout = 3 * time.Minute // DefaultNodeInstanceTypeCPU is the default EC2 instance type for CPU worker node. DefaultNodeInstanceTypeCPU = "c5.xlarge" // DefaultNodeInstanceTypeGPU is the default EC2 instance type for GPU worker node. DefaultNodeInstanceTypeGPU = "p3.8xlarge" // DefaultNodeVolumeSize is the default EC2 instance volume size for a worker node. DefaultNodeVolumeSize = 40 // NGsMaxLimit is the maximum number of "Node Group"s per a EKS cluster. NGsMaxLimit = 10 // NGMaxLimit is the maximum number of nodes per a "Node Group". NGMaxLimit = 300 // MNGsMaxLimit is the maximum number of "Managed Node Group"s per a EKS cluster. MNGsMaxLimit = 10 // MNGMaxLimit is the maximum number of nodes per a "Managed Node Group". MNGMaxLimit = 100 )
const AWS_K8S_TESTER_EKS_PREFIX = "AWS_K8S_TESTER_EKS_"
AWS_K8S_TESTER_EKS_PREFIX is the environment variable prefix used for "eksconfig".
const ClusterStatusDELETEDORNOTEXIST = "DELETED/NOT-EXIST"
ClusterStatusDELETEDORNOTEXIST defines the cluster status when the cluster is not found.
ref. https://docs.aws.amazon.com/eks/latest/APIReference/API_Cluster.html#AmazonEKS-Type-Cluster-status
CREATING ACTIVE UPDATING DELETING FAILED
const EnvironmentVariablePrefixAddOnALB2048 = AWS_K8S_TESTER_EKS_PREFIX + "ADD_ON_ALB_2048_"
EnvironmentVariablePrefixAddOnALB2048 is the environment variable prefix used for "eksconfig".
const EnvironmentVariablePrefixAddOnAppMesh = AWS_K8S_TESTER_EKS_PREFIX + "ADD_ON_APP_MESH_"
EnvironmentVariablePrefixAddOnAppMesh is the environment variable prefix used for "eksconfig".
const EnvironmentVariablePrefixAddOnCSIEBS = AWS_K8S_TESTER_EKS_PREFIX + "ADD_ON_CSI_EBS_"
EnvironmentVariablePrefixAddOnCSIEBS is the environment variable prefix used for "eksconfig".
const EnvironmentVariablePrefixAddOnCSRs = AWS_K8S_TESTER_EKS_PREFIX + "ADD_ON_CSRS_"
EnvironmentVariablePrefixAddOnCSRs is the environment variable prefix used for "eksconfig".
const EnvironmentVariablePrefixAddOnClusterLoader = AWS_K8S_TESTER_EKS_PREFIX + "ADD_ON_CLUSTER_LOADER_"
EnvironmentVariablePrefixAddOnClusterLoader is the environment variable prefix used for "eksconfig".
const EnvironmentVariablePrefixAddOnConfigMaps = AWS_K8S_TESTER_EKS_PREFIX + "ADD_ON_CONFIG_MAPS_"
EnvironmentVariablePrefixAddOnConfigMaps is the environment variable prefix used for "eksconfig".
const EnvironmentVariablePrefixAddOnConformance = AWS_K8S_TESTER_EKS_PREFIX + "ADD_ON_CONFORMANCE_"
EnvironmentVariablePrefixAddOnConformance is the environment variable prefix used for "eksconfig".
const EnvironmentVariablePrefixAddOnCronJobs = AWS_K8S_TESTER_EKS_PREFIX + "ADD_ON_CRON_JOBS_"
EnvironmentVariablePrefixAddOnCronJobs is the environment variable prefix used for "eksconfig".
const EnvironmentVariablePrefixAddOnFargate = AWS_K8S_TESTER_EKS_PREFIX + "ADD_ON_FARGATE_"
EnvironmentVariablePrefixAddOnFargate is the environment variable prefix used for "eksconfig".
const EnvironmentVariablePrefixAddOnHollowNodes = AWS_K8S_TESTER_EKS_PREFIX + "ADD_ON_HOLLOW_NODES_"
EnvironmentVariablePrefixAddOnHollowNodes is the environment variable prefix used for "eksconfig".
const EnvironmentVariablePrefixAddOnIRSA = AWS_K8S_TESTER_EKS_PREFIX + "ADD_ON_IRSA_"
EnvironmentVariablePrefixAddOnIRSA is the environment variable prefix used for "eksconfig".
const EnvironmentVariablePrefixAddOnIRSAFargate = AWS_K8S_TESTER_EKS_PREFIX + "ADD_ON_IRSA_FARGATE_"
EnvironmentVariablePrefixAddOnIRSAFargate is the environment variable prefix used for "eksconfig".
const EnvironmentVariablePrefixAddOnJobsEcho = AWS_K8S_TESTER_EKS_PREFIX + "ADD_ON_JOBS_ECHO_"
EnvironmentVariablePrefixAddOnJobsEcho is the environment variable prefix used for "eksconfig".
const EnvironmentVariablePrefixAddOnJobsPi = AWS_K8S_TESTER_EKS_PREFIX + "ADD_ON_JOBS_PI_"
EnvironmentVariablePrefixAddOnJobsPi is the environment variable prefix used for "eksconfig".
const EnvironmentVariablePrefixAddOnJupyterHub = AWS_K8S_TESTER_EKS_PREFIX + "ADD_ON_JUPYTER_HUB_"
EnvironmentVariablePrefixAddOnJupyterHub is the environment variable prefix used for "eksconfig".
const EnvironmentVariablePrefixAddOnKubeflow = AWS_K8S_TESTER_EKS_PREFIX + "ADD_ON_KUBEFLOW_"
EnvironmentVariablePrefixAddOnKubeflow is the environment variable prefix used for "eksconfig".
const EnvironmentVariablePrefixAddOnKubernetesDashboard = AWS_K8S_TESTER_EKS_PREFIX + "ADD_ON_KUBERNETES_DASHBOARD_"
EnvironmentVariablePrefixAddOnKubernetesDashboard is the environment variable prefix used for "eksconfig".
const EnvironmentVariablePrefixAddOnManagedNodeGroups = AWS_K8S_TESTER_EKS_PREFIX + "ADD_ON_MANAGED_NODE_GROUPS_"
EnvironmentVariablePrefixAddOnManagedNodeGroups is the environment variable prefix used for "eksconfig".
const EnvironmentVariablePrefixAddOnNLBHelloWorld = AWS_K8S_TESTER_EKS_PREFIX + "ADD_ON_NLB_HELLO_WORLD_"
EnvironmentVariablePrefixAddOnNLBHelloWorld is the environment variable prefix used for "eksconfig".
const EnvironmentVariablePrefixAddOnNodeGroups = AWS_K8S_TESTER_EKS_PREFIX + "ADD_ON_NODE_GROUPS_"
EnvironmentVariablePrefixAddOnNodeGroups is the environment variable prefix used for "eksconfig".
const EnvironmentVariablePrefixAddOnPrometheusGrafana = AWS_K8S_TESTER_EKS_PREFIX + "ADD_ON_PROMETHEUS_GRAFANA_"
EnvironmentVariablePrefixAddOnPrometheusGrafana is the environment variable prefix used for "eksconfig".
const EnvironmentVariablePrefixAddOnSecrets = AWS_K8S_TESTER_EKS_PREFIX + "ADD_ON_SECRETS_"
EnvironmentVariablePrefixAddOnSecrets is the environment variable prefix used for "eksconfig".
const EnvironmentVariablePrefixAddOnWordpress = AWS_K8S_TESTER_EKS_PREFIX + "ADD_ON_WORDPRESS_"
EnvironmentVariablePrefixAddOnWordpress is the environment variable prefix used for "eksconfig".
const EnvironmentVariablePrefixParameters = AWS_K8S_TESTER_EKS_PREFIX + "PARAMETERS_"
EnvironmentVariablePrefixParameters is the environment variable prefix used for "eksconfig".
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ASG ¶ added in v1.0.1
type ASG struct { ec2config.ASG // KubeletExtraArgs represents "--kubelet-extra-args". // e.g. '--kubelet-extra-args --node-labels=nodesgroup=main,subnets=private' // e.g. '--kubelet-extra-args --hostname-override=string' // ref. https://github.com/awslabs/amazon-eks-ami/blob/master/files/bootstrap.sh // // TODO: handle conflicting flag '--cloud-provider aws' // ref. https://github.com/kubernetes/kubernetes/issues/64659 KubeletExtraArgs string `json:"kubelet-extra-args"` }
ASG represents an EKS Node Group ASG.
type AddOnALB2048 ¶ added in v0.5.0
type AddOnALB2048 struct { // Enable is 'true' to create this add-on. Enable bool `json:"enable"` // Created is true when the resource has been created. // Used for delete operations. Created bool `json:"created" read-only:"true"` // CreateTook is the duration that took to create the resource. CreateTook time.Duration `json:"create-took,omitempty" read-only:"true"` // CreateTookString is the duration that took to create the resource. CreateTookString string `json:"create-took-string,omitempty" read-only:"true"` // DeleteTook is the duration that took to create the resource. DeleteTook time.Duration `json:"delete-took,omitempty" read-only:"true"` // DeleteTookString is the duration that took to create the resource. DeleteTookString string `json:"delete-took-string,omitempty" read-only:"true"` // Namespace is the namespace to create objects in. Namespace string `json:"namespace"` // DeploymentReplicasALB is the number of ALB replicas to deploy using "Deployment" object. DeploymentReplicasALB int32 `json:"deployment-replicas-alb"` // DeploymentReplicas2048 is the number of 2048 replicas to deploy using "Deployment" object. DeploymentReplicas2048 int32 `json:"deployment-replicas-2048"` // ALBARN is the ARN of the ALB created from the service. ALBARN string `json:"alb-arn" read-only:"true"` // ALBName is the name of the ALB created from the service. ALBName string `json:"alb-name" read-only:"true"` // URL is the URL for ALB 2048 Service. URL string `json:"url" read-only:"true"` }
AddOnALB2048 defines parameters for EKS cluster add-on ALB 2048 service.
type AddOnAppMesh ¶ added in v0.7.5
type AddOnAppMesh struct { // Enable is 'true' to create this add-on. Enable bool `json:"enable"` // Created is true when the resource has been created. // Used for delete operations. Created bool `json:"created" read-only:"true"` // CreateTook is the duration that took to create the resource. CreateTook time.Duration `json:"create-took,omitempty" read-only:"true"` // CreateTookString is the duration that took to create the resource. CreateTookString string `json:"create-took-string,omitempty" read-only:"true"` // DeleteTook is the duration that took to create the resource. DeleteTook time.Duration `json:"delete-took,omitempty" read-only:"true"` // DeleteTookString is the duration that took to create the resource. DeleteTookString string `json:"delete-took-string,omitempty" read-only:"true"` // Namespace is the namespace to create objects in. Namespace string `json:"namespace"` // ControllerImage is the image of appMesh controller ControllerImage string `json:"controller-image"` // InjectorImage is the image of appMesh injector InjectorImage string `json:"injector-image"` // PolicyCFNStackID is the CFN stack ID for policy. PolicyCFNStackID string `json:"policy-cfn-stack-id,omitempty" read-only:"true"` }
AddOnAppMesh defines parameters for EKS cluster add-on "EKS App Mesh Integration".
type AddOnCSIEBS ¶ added in v1.0.6
type AddOnCSIEBS struct { // Enable is 'true' to create this add-on. Enable bool `json:"enable"` // Created is true when the resource has been created. // Used for delete operations. Created bool `json:"created" read-only:"true"` // CreateTook is the duration that took to create the resource. CreateTook time.Duration `json:"create-took,omitempty" read-only:"true"` // CreateTookString is the duration that took to create the resource. CreateTookString string `json:"create-took-string,omitempty" read-only:"true"` // DeleteTook is the duration that took to create the resource. DeleteTook time.Duration `json:"delete-took,omitempty" read-only:"true"` // DeleteTookString is the duration that took to create the resource. DeleteTookString string `json:"delete-took-string,omitempty" read-only:"true"` // ChartRepoURL is the chart repo URL. // e.g. https://github.com/kubernetes-sigs/aws-ebs-csi-driver/releases/download/v0.5.0/helm-chart.tgz ChartRepoURL string `json:"chart-repo-url"` }
AddOnCSIEBS defines parameters for EKS cluster add-on AWS EBS CSI Driver. ref. https://github.com/kubernetes-sigs/aws-ebs-csi-driver#deploy-driver
type AddOnCSRs ¶ added in v0.9.8
type AddOnCSRs struct { // Enable is 'true' to create this add-on. Enable bool `json:"enable"` // Created is true when the resource has been created. // Used for delete operations. Created bool `json:"created" read-only:"true"` // CreateTook is the duration that took to create the resource. CreateTook time.Duration `json:"create-took,omitempty" read-only:"true"` // CreateTookString is the duration that took to create the resource. CreateTookString string `json:"create-took-string,omitempty" read-only:"true"` // DeleteTook is the duration that took to create the resource. DeleteTook time.Duration `json:"delete-took,omitempty" read-only:"true"` // DeleteTookString is the duration that took to create the resource. DeleteTookString string `json:"delete-took-string,omitempty" read-only:"true"` // Namespace is the namespace to create objects in. Namespace string `json:"namespace"` // InitialRequestConditionType is the initial CSR condition type // to simulate CSR condition. // // Valid values are: // "k8s.io/api/certificates/v1beta1.CertificateApproved" == "Approved" // "k8s.io/api/certificates/v1beta1.CertificateDenied" == "Denied" // "Random" // "Pending" // "" // InitialRequestConditionType string `json:"initial-request-condition-type"` // Objects is the number of "CertificateSigningRequest" objects to create. Objects int `json:"objects"` // CreatedNames is the list of created "CertificateSigningRequest" object names. CreatedNames []string `json:"created-names" read-only:"true"` // FailThreshold is the number of write failures to allow. FailThreshold int `json:"fail-threshold"` }
AddOnCSRs defines parameters for EKS cluster add-on "CertificateSigningRequest".
type AddOnClusterLoader ¶ added in v1.0.9
type AddOnClusterLoader struct { // Enable is 'true' to create this add-on. Enable bool `json:"enable"` // Created is true when the resource has been created. // Used for delete operations. Created bool `json:"created" read-only:"true"` // CreateTook is the duration that took to create the resource. CreateTook time.Duration `json:"create-took,omitempty" read-only:"true"` // CreateTookString is the duration that took to create the resource. CreateTookString string `json:"create-took-string,omitempty" read-only:"true"` // DeleteTook is the duration that took to create the resource. DeleteTook time.Duration `json:"delete-took,omitempty" read-only:"true"` // DeleteTookString is the duration that took to create the resource. DeleteTookString string `json:"delete-took-string,omitempty" read-only:"true"` // Duration is the duration to run load testing. // The cluster loader waits "one" "Duration" for hollow ones. // And other one for cluster loader. Duration time.Duration `json:"duration,omitempty"` DurationString string `json:"duration-string,omitempty" read-only:"true"` }
AddOnClusterLoader defines parameters for EKS cluster add-on Cluster Loader. ref. https://github.com/kubernetes/perf-tests
type AddOnConfigMaps ¶ added in v0.9.8
type AddOnConfigMaps struct { // Enable is 'true' to create this add-on. Enable bool `json:"enable"` // Created is true when the resource has been created. // Used for delete operations. Created bool `json:"created" read-only:"true"` // CreateTook is the duration that took to create the resource. CreateTook time.Duration `json:"create-took,omitempty" read-only:"true"` // CreateTookString is the duration that took to create the resource. CreateTookString string `json:"create-took-string,omitempty" read-only:"true"` // DeleteTook is the duration that took to create the resource. DeleteTook time.Duration `json:"delete-took,omitempty" read-only:"true"` // DeleteTookString is the duration that took to create the resource. DeleteTookString string `json:"delete-took-string,omitempty" read-only:"true"` // Namespace is the namespace to create objects in. Namespace string `json:"namespace"` // Objects is the number of "ConfigMap" objects to create. Objects int `json:"objects"` // Size is the "ConfigMap" value size in bytes. Size int `json:"size"` // CreatedNames is the list of created "ConfigMap" object names. CreatedNames []string `json:"created-names" read-only:"true"` // FailThreshold is the number of write failures to allow. FailThreshold int `json:"fail-threshold"` }
AddOnConfigMaps defines parameters for EKS cluster add-on "ConfigMap".
type AddOnConformance ¶ added in v1.1.3
type AddOnConformance struct { // Enable is 'true' to create this add-on. Enable bool `json:"enable"` // Created is true when the resource has been created. // Used for delete operations. Created bool `json:"created" read-only:"true"` // CreateTook is the duration that took to create the resource. CreateTook time.Duration `json:"create-took,omitempty" read-only:"true"` // CreateTookString is the duration that took to create the resource. CreateTookString string `json:"create-took-string,omitempty" read-only:"true"` // DeleteTook is the duration that took to create the resource. DeleteTook time.Duration `json:"delete-took,omitempty" read-only:"true"` // DeleteTookString is the duration that took to create the resource. DeleteTookString string `json:"delete-took-string,omitempty" read-only:"true"` // Namespace is the namespace to create objects in. Namespace string `json:"namespace"` // SonobuoyPath is the path to download the "sonobuoy". SonobuoyPath string `json:"sonobuoy-path,omitempty"` // SonobuoyDownloadURL is the download URL to download "sonobuoy" binary from. // ref. https://github.com/vmware-tanzu/sonobuoy/releases SonobuoyDownloadURL string `json:"sonobuoy-download-url,omitempty"` SonobuoyDeleteTimeout time.Duration `json:"sonobuoy-delete-timeout"` SonobuoyDeleteTimeoutString string `json:"sonobuoy-delete-timeout-string" read-only:"true"` SonobuoyRunTimeout time.Duration `json:"sonobuoy-run-timeout"` SonobuoyRunTimeoutString string `json:"sonobuoy-run-timeout-string" read-only:"true"` // SonobuoyRunMode is the mode to run sonobuoy in. // Valid modes are 'non-disruptive-conformance', 'quick', 'certified-conformance'. // The default is 'certified-conformance'. // ref. https://github.com/vmware-tanzu/sonobuoy SonobuoyRunMode string `json:"sonobuoy-run-mode"` SonobuoyRunKubeConformanceImage string `json:"sonobuoy-run-kube-conformance-image"` SonobuoyResultTarGzPath string `json:"sonobuoy-result-tar-gz-path" read-only:"true"` SonobuoyResultDir string `json:"sonobuoy-result-dir" read-only:"true"` SonobuoyResultE2eLogPath string `json:"sonobuoy-result-e2e-log-path" read-only:"true"` SonobuoyResultJunitXMLPath string `json:"sonobuoy-result-junit-xml-path" read-only:"true"` }
AddOnConformance defines parameters for EKS cluster add-on Conformance. ref. https://github.com/cncf/k8s-conformance/blob/master/instructions.md ref. https://github.com/vmware-tanzu/sonobuoy
type AddOnCronJobs ¶ added in v0.9.8
type AddOnCronJobs struct { // Enable is 'true' to create this add-on. Enable bool `json:"enable"` // Created is true when the resource has been created. // Used for delete operations. Created bool `json:"created" read-only:"true"` // CreateTook is the duration that took to create the resource. CreateTook time.Duration `json:"create-took,omitempty" read-only:"true"` // CreateTookString is the duration that took to create the resource. CreateTookString string `json:"create-took-string,omitempty" read-only:"true"` // DeleteTook is the duration that took to create the resource. DeleteTook time.Duration `json:"delete-took,omitempty" read-only:"true"` // DeleteTookString is the duration that took to create the resource. DeleteTookString string `json:"delete-took-string,omitempty" read-only:"true"` // Namespace is the namespace to create objects in. Namespace string `json:"namespace"` // Schedule is the cron schedule (e.g. "*/1 * * * *"). Schedule string `json:"schedule"` // Completes is the desired number of successfully finished pods. Completes int `json:"completes"` // Parallels is the the maximum desired number of pods the // job should run at any given time. Parallels int `json:"parallels"` // SuccessfulJobsHistoryLimit is the number of successful finished // jobs to retain. Defaults to 3. SuccessfulJobsHistoryLimit int32 `json:"successful-jobs-history-limit"` // FailedJobsHistoryLimit is the number of failed finished jobs // to retain. Defaults to 1. FailedJobsHistoryLimit int32 `json:"failed-jobs-history-limit"` // EchoSize is the job object size in bytes. // "Request entity too large: limit is 3145728" (3.1 MB). // "The Job "echo" is invalid: metadata.annotations: // Too long: must have at most 262144 characters". (0.26 MB) EchoSize int `json:"echo-size"` }
AddOnCronJobs defines parameters for EKS cluster add-on with CronJob.
type AddOnFargate ¶ added in v0.6.3
type AddOnFargate struct { // Enable is 'true' to create this add-on. Enable bool `json:"enable"` // Created is true when the resource has been created. // Used for delete operations. Created bool `json:"created" read-only:"true"` // CreateTook is the duration that took to create the resource. CreateTook time.Duration `json:"create-took,omitempty" read-only:"true"` // CreateTookString is the duration that took to create the resource. CreateTookString string `json:"create-took-string,omitempty" read-only:"true"` // DeleteTook is the duration that took to create the resource. DeleteTook time.Duration `json:"delete-took,omitempty" read-only:"true"` // DeleteTookString is the duration that took to create the resource. DeleteTookString string `json:"delete-took-string,omitempty" read-only:"true"` // Namespace is the namespace to create objects in. Namespace string `json:"namespace"` // RoleName is the role name for Fargate. RoleName string `json:"role-name"` // RoleCreate is true to auto-create and delete role. RoleCreate bool `json:"role-create"` // RoleARN is the role ARN for Fargate. RoleARN string `json:"role-arn"` // RoleServicePrincipals is the Fargate role Service Principals RoleServicePrincipals []string `json:"role-service-principals"` // RoleManagedPolicyARNs is Fargate role managed policy ARNs. RoleManagedPolicyARNs []string `json:"role-managed-policy-arns"` RoleCFNStackID string `json:"role-cfn-stack-id" read-only:"true"` // ProfileName is the profile name for Fargate. ProfileName string `json:"profile-name"` // SecretName is the secret name for Fargate. SecretName string `json:"secret-name"` // PodName is the name of the Fargate Pod. PodName string `json:"pod-name"` // ContainerName is the name of the Fargate container. ContainerName string `json:"container-name"` }
AddOnFargate defines parameters for EKS cluster add-on "EKS on Fargate".
type AddOnHollowNodes ¶ added in v1.1.3
type AddOnHollowNodes struct { // Enable is 'true' to create this add-on. Enable bool `json:"enable"` // Created is true when the resource has been created. // Used for delete operations. Created bool `json:"created" read-only:"true"` // CreateTook is the duration that took to create the resource. CreateTook time.Duration `json:"create-took,omitempty" read-only:"true"` // CreateTookString is the duration that took to create the resource. CreateTookString string `json:"create-took-string,omitempty" read-only:"true"` // DeleteTook is the duration that took to create the resource. DeleteTook time.Duration `json:"delete-took,omitempty" read-only:"true"` // DeleteTookString is the duration that took to create the resource. DeleteTookString string `json:"delete-took-string,omitempty" read-only:"true"` // Namespace is the namespace to create objects in. Namespace string `json:"namespace"` // Nodes is the number of hollow nodes to create. // If "Local" equals to "false", the number of nodes deployed // will be multiplied by "DeploymentReplicas". // e.g. each Pod creates 5 hollow nodes, while deployment replicas are 10. // The deployment will create total 50 nodes (= 5 times 10). Nodes int `json:"nodes"` // NodeLabelPrefix is the node prefix. NodeLabelPrefix string `json:"node-label-prefix"` // NodeLabels is the node labels to attach when creating hollow nodes. NodeLabels map[string]string `json:"node-labels" read-only:"true"` // MaxOpenFiles is number of files that can be opened by hollow node kubelet process. // "cmd/kubelet/app.rlimit.SetNumFiles(MaxOpenFiles)" sets this for the host. MaxOpenFiles int64 `json:"max-open-files"` // Remote is true to create hollow nodes in remote Pods. // If false, it run hollow node kubelets in the local host system. // More than >100 node may exceed local system file descriptor limits. // e.g. too many open files // If true, create hollow nodes using Kubernetes Pod. Remote bool `json:"remote"` // RepositoryName is the repositoryName for hollow node tester. // e.g. "aws/aws-k8s-tester" for "[ACCOUNT_ID].dkr.ecr.us-west-2.amazonaws.com/aws/aws-k8s-tester" RepositoryName string `json:"repository-name,omitempty"` // RepositoryURI is the repositoryUri for hollow node tester. // e.g. "[ACCOUNT_ID].dkr.ecr.us-west-2.amazonaws.com/aws/aws-k8s-tester" RepositoryURI string `json:"repository-uri,omitempty"` // RepositoryImageTag is the image tag for hollow node tester. // e.g. "latest" for image URI "[ACCOUNT_ID].dkr.ecr.us-west-2.amazonaws.com/aws/aws-k8s-tester:latest" RepositoryImageTag string `json:"repository-image-tag,omitempty"` // DeploymentReplicas is the number of replicas to deploy when hollow nodes are deployed via Pod. DeploymentReplicas int32 `json:"deployment-replicas,omitempty"` // CreatedNodeNames is the list of created "Node" object names. CreatedNodeNames []string `json:"created-node-names" read-only:"true"` }
AddOnHollowNodes defines parameters for EKS cluster add-on Hollow Nodes.
type AddOnIRSA ¶ added in v0.5.8
type AddOnIRSA struct { // Enable is 'true' to create this add-on. Enable bool `json:"enable"` // Created is true when the resource has been created. // Used for delete operations. Created bool `json:"created" read-only:"true"` // CreateTook is the duration that took to create the resource. CreateTook time.Duration `json:"create-took,omitempty" read-only:"true"` // CreateTookString is the duration that took to create the resource. CreateTookString string `json:"create-took-string,omitempty" read-only:"true"` // DeleteTook is the duration that took to create the resource. DeleteTook time.Duration `json:"delete-took,omitempty" read-only:"true"` // DeleteTookString is the duration that took to create the resource. DeleteTookString string `json:"delete-took-string,omitempty" read-only:"true"` // Namespace is the namespace to create objects in. Namespace string `json:"namespace"` // RoleName is the role name for IRSA. RoleName string `json:"role-name"` // RoleARN is the role ARN for IRSA. RoleARN string `json:"role-arn"` // RoleManagedPolicyARNs is IRSA role managed policy ARNs. // ref. https://aws.amazon.com/blogs/opensource/introducing-fine-grained-iam-roles-service-accounts/ RoleManagedPolicyARNs []string `json:"role-managed-policy-arns"` RoleCFNStackID string `json:"role-cfn-stack-id" read-only:"true"` // ServiceAccountName is the ServiceAccount name. ServiceAccountName string `json:"service-account-name"` // ConfigMapName is the ConfigMap name. ConfigMapName string `json:"config-map-name"` // ConfigMapScriptFileName is the ConfigMap script name. ConfigMapScriptFileName string `json:"config-map-script-file-name"` // S3Key is the S3 key to write for IRSA tests. S3Key string `json:"s3-key"` // DeploymentName is the Deployment name. DeploymentName string `json:"deployment-name"` // DeploymentReplicas is the number of Deployment replicas. DeploymentReplicas int32 `json:"deployment-replicas"` // DeploymentResultPath is the output of "Deployment" run. DeploymentResultPath string `json:"deployment-result-path"` // DeploymentTook is the duration that took for Deployment resource. DeploymentTook time.Duration `json:"deployment-took,omitempty" read-only:"true"` // DeploymentTookString is the duration that took for Deployment resource. DeploymentTookString string `json:"deployment-took-string,omitempty" read-only:"true"` }
AddOnIRSA defines parameters for EKS cluster add-on "IAM Roles for Service Accounts (IRSA)".
type AddOnIRSAFargate ¶ added in v1.0.7
type AddOnIRSAFargate struct { // Enable is 'true' to create this add-on. Enable bool `json:"enable"` // Created is true when the resource has been created. // Used for delete operations. Created bool `json:"created" read-only:"true"` // CreateTook is the duration that took to create the resource. CreateTook time.Duration `json:"create-took,omitempty" read-only:"true"` // CreateTookString is the duration that took to create the resource. CreateTookString string `json:"create-took-string,omitempty" read-only:"true"` // DeleteTook is the duration that took to create the resource. DeleteTook time.Duration `json:"delete-took,omitempty" read-only:"true"` // DeleteTookString is the duration that took to create the resource. DeleteTookString string `json:"delete-took-string,omitempty" read-only:"true"` // Namespace is the namespace to create objects in. Namespace string `json:"namespace"` // RoleName is the role name for IRSA. RoleName string `json:"role-name"` // RoleARN is the role ARN for IRSA. RoleARN string `json:"role-arn"` // RoleServicePrincipals is the Fargate role Service Principals RoleServicePrincipals []string `json:"role-service-principals"` // RoleManagedPolicyARNs is IRSA role managed policy ARNs. // ref. https://aws.amazon.com/blogs/opensource/introducing-fine-grained-iam-roles-service-accounts/ RoleManagedPolicyARNs []string `json:"role-managed-policy-arns"` RoleCFNStackID string `json:"role-cfn-stack-id" read-only:"true"` // ServiceAccountName is the IRSA ServiceAccount name. ServiceAccountName string `json:"service-account-name"` // ConfigMapName is the ConfigMap name. ConfigMapName string `json:"config-map-name"` // ConfigMapScriptFileName is the IRSA ConfigMap script name. ConfigMapScriptFileName string `json:"config-map-script-file-name"` // S3Key is the S3 key to write for IRSA tests. S3Key string `json:"s3-key"` // ProfileName is the profile name for Fargate. ProfileName string `json:"profile-name"` // PodName is the name of the Fargate Pod with IRSA. PodName string `json:"pod-name"` // ContainerName is the name of the Fargate container. ContainerName string `json:"container-name"` }
AddOnIRSAFargate defines parameters for EKS cluster add-on "IAM Roles for Service Accounts (IRSA)" with Fargate.
type AddOnJobsEcho ¶ added in v0.9.8
type AddOnJobsEcho struct { // Enable is 'true' to create this add-on. Enable bool `json:"enable"` // Created is true when the resource has been created. // Used for delete operations. Created bool `json:"created" read-only:"true"` // CreateTook is the duration that took to create the resource. CreateTook time.Duration `json:"create-took,omitempty" read-only:"true"` // CreateTookString is the duration that took to create the resource. CreateTookString string `json:"create-took-string,omitempty" read-only:"true"` // DeleteTook is the duration that took to create the resource. DeleteTook time.Duration `json:"delete-took,omitempty" read-only:"true"` // DeleteTookString is the duration that took to create the resource. DeleteTookString string `json:"delete-took-string,omitempty" read-only:"true"` // Namespace is the namespace to create objects in. Namespace string `json:"namespace"` // Completes is the desired number of successfully finished pods. Completes int `json:"completes"` // Parallels is the the maximum desired number of pods the // job should run at any given time. Parallels int `json:"parallels"` // EchoSize is the job object size in bytes. // "Request entity too large: limit is 3145728" (3.1 MB). // "The Job "echo" is invalid: metadata.annotations: // Too long: must have at most 262144 characters". (0.26 MB) EchoSize int `json:"echo-size"` }
AddOnJobsEcho defines parameters for EKS cluster add-on Job with echo.
type AddOnJobsPi ¶ added in v0.9.8
type AddOnJobsPi struct { // Enable is 'true' to create this add-on. Enable bool `json:"enable"` // Created is true when the resource has been created. // Used for delete operations. Created bool `json:"created" read-only:"true"` // CreateTook is the duration that took to create the resource. CreateTook time.Duration `json:"create-took,omitempty" read-only:"true"` // CreateTookString is the duration that took to create the resource. CreateTookString string `json:"create-took-string,omitempty" read-only:"true"` // DeleteTook is the duration that took to create the resource. DeleteTook time.Duration `json:"delete-took,omitempty" read-only:"true"` // DeleteTookString is the duration that took to create the resource. DeleteTookString string `json:"delete-took-string,omitempty" read-only:"true"` // Namespace is the namespace to create objects in. Namespace string `json:"namespace"` // Completes is the desired number of successfully finished pods. Completes int `json:"completes"` // Parallels is the the maximum desired number of pods the // job should run at any given time. Parallels int `json:"parallels"` }
AddOnJobsPi defines parameters for EKS cluster add-on Job with Perl.
type AddOnJupyterHub ¶ added in v1.0.8
type AddOnJupyterHub struct { // Enable is 'true' to create this add-on. Enable bool `json:"enable"` // Created is true when the resource has been created. // Used for delete operations. Created bool `json:"created" read-only:"true"` // CreateTook is the duration that took to create the resource. CreateTook time.Duration `json:"create-took,omitempty" read-only:"true"` // CreateTookString is the duration that took to create the resource. CreateTookString string `json:"create-took-string,omitempty" read-only:"true"` // DeleteTook is the duration that took to create the resource. DeleteTook time.Duration `json:"delete-took,omitempty" read-only:"true"` // DeleteTookString is the duration that took to create the resource. DeleteTookString string `json:"delete-took-string,omitempty" read-only:"true"` // Namespace is the namespace to create objects in. Namespace string `json:"namespace"` // ProxySecretToken is 32-byte hexadecimal encoded secret token string. // e.g. "openssl rand -hex 32" ProxySecretToken string `json:"proxy-secret-token"` // NLBARN is the ARN of the NLB created from the service. NLBARN string `json:"nlb-arn" read-only:"true"` // NLBName is the name of the NLB created from the service. NLBName string `json:"nlb-name" read-only:"true"` // URL is the host name for Jupyter Hub service. URL string `json:"url" read-only:"true"` }
AddOnJupyterHub defines parameters for EKS cluster add-on Jupyter Hub. ref. https://zero-to-jupyterhub.readthedocs.io/en/latest/index.html
type AddOnKubeflow ¶ added in v1.0.6
type AddOnKubeflow struct { // Enable is 'true' to create this add-on. Enable bool `json:"enable"` // Created is true when the resource has been created. // Used for delete operations. Created bool `json:"created" read-only:"true"` // CreateTook is the duration that took to create the resource. CreateTook time.Duration `json:"create-took,omitempty" read-only:"true"` // CreateTookString is the duration that took to create the resource. CreateTookString string `json:"create-took-string,omitempty" read-only:"true"` // DeleteTook is the duration that took to create the resource. DeleteTook time.Duration `json:"delete-took,omitempty" read-only:"true"` // DeleteTookString is the duration that took to create the resource. DeleteTookString string `json:"delete-took-string,omitempty" read-only:"true"` // KfctlPath is the path to download the "kfctl". KfctlPath string `json:"kfctl-path,omitempty"` // KfctlDownloadURL is the download URL to download "kfctl" binary from. // ref. https://github.com/kubeflow/kfctl/releases KfctlDownloadURL string `json:"kfctl-download-url,omitempty"` // BaseDir is the base directory where you want to store one or more // Kubeflow deployments. BaseDir string `json:"base-dir"` KfDir string `json:"kf-dir" read-only:"true"` // KfctlConfigPath is the path to write "kfctl" configuration. // The existing configuration file is overwritten. KfctlConfigPath string `json:"kfctl-config-path" read-only:"true"` }
AddOnKubeflow defines parameters for EKS cluster add-on Kubeflow. ref. https://www.kubeflow.org/docs/aws/deploy/install-kubeflow/
type AddOnKubernetesDashboard ¶ added in v1.0.6
type AddOnKubernetesDashboard struct { // Enable is 'true' to create this add-on. Enable bool `json:"enable"` // Created is true when the resource has been created. // Used for delete operations. Created bool `json:"created" read-only:"true"` // CreateTook is the duration that took to create the resource. CreateTook time.Duration `json:"create-took,omitempty" read-only:"true"` // CreateTookString is the duration that took to create the resource. CreateTookString string `json:"create-took-string,omitempty" read-only:"true"` // DeleteTook is the duration that took to create the resource. DeleteTook time.Duration `json:"delete-took,omitempty" read-only:"true"` // DeleteTookString is the duration that took to create the resource. DeleteTookString string `json:"delete-took-string,omitempty" read-only:"true"` // AuthenticationToken is the authentication token for eks-admin service account. AuthenticationToken string `json:"authentication-token,omitempty" read-only:"true"` // URL is the host name for Kubernetes Dashboard service. URL string `json:"url" read-only:"true"` // KubectlProxyPID is the PID for kubectl proxy. KubectlProxyPID int `json:"kubectl-proxy-pid" read-only:"true"` }
AddOnKubernetesDashboard defines parameters for EKS cluster add-on Kubernetes Dashboard. ref. https://docs.aws.amazon.com/eks/latest/userguide/dashboard-tutorial.html
type AddOnManagedNodeGroups ¶ added in v0.5.5
type AddOnManagedNodeGroups struct { // Enable is true to auto-create a managed node group. Enable bool `json:"enable"` // Created is true when the resource has been created. // Used for delete operations. Created bool `json:"created" read-only:"true"` // CreateTook is the duration that took to create the resource. CreateTook time.Duration `json:"create-took,omitempty" read-only:"true"` // CreateTookString is the duration that took to create the resource. CreateTookString string `json:"create-took-string,omitempty" read-only:"true"` // DeleteTook is the duration that took to create the resource. DeleteTook time.Duration `json:"delete-took,omitempty" read-only:"true"` // DeleteTookString is the duration that took to create the resource. DeleteTookString string `json:"delete-took-string,omitempty" read-only:"true"` // FetchLogs is true to fetch logs from remote nodes using SSH. FetchLogs bool `json:"fetch-logs"` // RoleName is the name of the managed node group. RoleName string `json:"role-name"` // RoleCreate is true to auto-create and delete role. RoleCreate bool `json:"role-create"` // RoleARN is the role ARN that EKS managed node group uses to create AWS // resources for Kubernetes. // By default, it's empty which triggers tester to create one. RoleARN string `json:"role-arn"` // RoleServicePrincipals is the node group Service Principals RoleServicePrincipals []string `json:"role-service-principals"` // RoleManagedPolicyARNs is node group managed policy ARNs. RoleManagedPolicyARNs []string `json:"role-managed-policy-arns"` RoleCFNStackID string `json:"role-cfn-stack-id" read-only:"true"` // RequestHeaderKey defines EKS managed node group create cluster request header key. RequestHeaderKey string `json:"request-header-key,omitempty"` // RequestHeaderValue defines EKS managed node group create cluster request header value. RequestHeaderValue string `json:"request-header-value,omitempty"` // ResolverURL defines an AWS resolver endpoint for EKS API. // Must be left empty to use production EKS managed node group service. ResolverURL string `json:"resolver-url"` // SigningName is the EKS managed node group create request signing name. SigningName string `json:"signing-name"` // LogsDir is set to specify the target directory to store all remote log files. // If empty, it stores in the same directory as "ConfigPath". LogsDir string `json:"logs-dir,omitempty"` // MNGs maps from EKS Managed Node Group name to "MNG". // "GetRef.Name" is the reserved key and MNG name from eksconfig.Config.Name. MNGs map[string]MNG `json:"mngs,omitempty"` }
AddOnManagedNodeGroups defines parameters for EKS "Managed Node Group" creation. ref. https://docs.aws.amazon.com/eks/latest/userguide/create-managed-node-group.html ref. https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html
type AddOnNLBHelloWorld ¶ added in v0.5.0
type AddOnNLBHelloWorld struct { // Enable is 'true' to create this add-on. Enable bool `json:"enable"` // Created is true when the resource has been created. // Used for delete operations. Created bool `json:"created" read-only:"true"` // CreateTook is the duration that took to create the resource. CreateTook time.Duration `json:"create-took,omitempty" read-only:"true"` // CreateTookString is the duration that took to create the resource. CreateTookString string `json:"create-took-string,omitempty" read-only:"true"` // DeleteTook is the duration that took to create the resource. DeleteTook time.Duration `json:"delete-took,omitempty" read-only:"true"` // DeleteTookString is the duration that took to create the resource. DeleteTookString string `json:"delete-took-string,omitempty" read-only:"true"` // Namespace is the namespace to create objects in. Namespace string `json:"namespace"` // DeploymentReplicas is the number of replicas to deploy using "Deployment" object. DeploymentReplicas int32 `json:"deployment-replicas"` // NLBARN is the ARN of the NLB created from the service. NLBARN string `json:"nlb-arn" read-only:"true"` // NLBName is the name of the NLB created from the service. NLBName string `json:"nlb-name" read-only:"true"` // URL is the host name for hello-world service. URL string `json:"url" read-only:"true"` }
AddOnNLBHelloWorld defines parameters for EKS cluster add-on NLB hello-world service.
type AddOnNodeGroups ¶ added in v0.7.5
type AddOnNodeGroups struct { // Enable is true to auto-create ad node group. Enable bool `json:"enable"` // Created is true when the resource has been created. // Used for delete operations. Created bool `json:"created" read-only:"true"` // FetchLogs is true to fetch logs from remote nodes using SSH. FetchLogs bool `json:"fetch-logs"` // RoleName is the name of thed node group. RoleName string `json:"role-name"` // RoleCreate is true to auto-create and delete role. RoleCreate bool `json:"role-create"` // RoleARN is the role ARN that EKS node group uses to create AWS // resources for Kubernetes. // By default, it's empty which triggers tester to create one. RoleARN string `json:"role-arn"` // RoleServicePrincipals is the node group Service Principals RoleServicePrincipals []string `json:"role-service-principals"` // RoleManagedPolicyARNs is node groupd policy ARNs. RoleManagedPolicyARNs []string `json:"role-managed-policy-arns"` RoleCFNStackID string `json:"role-cfn-stack-id" read-only:"true"` // NodeGroupSecurityGroupID is the security group ID for the node group. NodeGroupSecurityGroupID string `json:"node-group-security-group-id" read-only:"true"` NodeGroupSecurityGroupCFNStackID string `json:"node-group-security-group-cfn-stack-id" read-only:"true"` // LogsDir is set to specify the target directory to store all remote log files. // If empty, it stores in the same directory as "ConfigPath". LogsDir string `json:"logs-dir,omitempty"` // ASGs maps from EKS Node Group name to "ASG". // "GetRef.Name" is the reserved key and NG name from eksconfig.Config.Name. ASGs map[string]ASG `json:"asgs,omitempty"` }
AddOnNodeGroups defines parameters for EKS "Managed Node Group" creation. ref. https://docs.aws.amazon.com/eks/latest/userguide/create-managed-node-group.html ref. https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html
type AddOnPrometheusGrafana ¶ added in v1.0.6
type AddOnPrometheusGrafana struct { // Enable is 'true' to create this add-on. Enable bool `json:"enable"` // Created is true when the resource has been created. // Used for delete operations. Created bool `json:"created" read-only:"true"` // CreateTook is the duration that took to create the resource. CreateTook time.Duration `json:"create-took,omitempty" read-only:"true"` // CreateTookString is the duration that took to create the resource. CreateTookString string `json:"create-took-string,omitempty" read-only:"true"` // DeleteTook is the duration that took to create the resource. DeleteTook time.Duration `json:"delete-took,omitempty" read-only:"true"` // DeleteTookString is the duration that took to create the resource. DeleteTookString string `json:"delete-took-string,omitempty" read-only:"true"` // GrafanaAdminUserName is the admin user for the Grafana service. GrafanaAdminUserName string `json:"grafana-admin-user-name"` // GrafanaAdminPassword is the admin password for the Grafana service. GrafanaAdminPassword string `json:"grafana-admin-password"` // GrafanaNLBARN is the ARN of the NLB created from the Grafana service. GrafanaNLBARN string `json:"grafana-nlb-arn" read-only:"true"` // GrafanaNLBName is the name of the NLB created from the Grafana service. GrafanaNLBName string `json:"grafana-nlb-name" read-only:"true"` // GrafanaURL is the host name for Grafana service. GrafanaURL string `json:"grafana-url" read-only:"true"` }
AddOnPrometheusGrafana defines parameters for EKS cluster add-on Prometheus/Grafana. ref. https://docs.aws.amazon.com/eks/latest/userguide/prometheus.html ref. https://eksworkshop.com/intermediate/240_monitoring/deploy-prometheus/
type AddOnSecrets ¶ added in v0.5.5
type AddOnSecrets struct { // Enable is 'true' to create this add-on. Enable bool `json:"enable"` // Created is true when the resource has been created. // Used for delete operations. Created bool `json:"created" read-only:"true"` // CreateTook is the duration that took to create the resource. CreateTook time.Duration `json:"create-took,omitempty" read-only:"true"` // CreateTookString is the duration that took to create the resource. CreateTookString string `json:"create-took-string,omitempty" read-only:"true"` // DeleteTook is the duration that took to create the resource. DeleteTook time.Duration `json:"delete-took,omitempty" read-only:"true"` // DeleteTookString is the duration that took to create the resource. DeleteTookString string `json:"delete-took-string,omitempty" read-only:"true"` // Namespace is the namespace to create objects in. Namespace string `json:"namespace"` // Objects is the number of "Secret" objects to write/read. Objects int `json:"objects"` // Size is the "Secret" value size in bytes. Size int `json:"size"` // FailThreshold is the number of write failures to allow. FailThreshold int `json:"fail-threshold"` // CreatedSecretsNames is the list of created "Secret" object names. CreatedSecretsNames []string `json:"created-secrets-names" read-only:"true"` // CreatedPodNames is the list of created "Pod" object names. CreatedPodNames []string `json:"created-pod-names" read-only:"true"` // WritesResultPath is the CSV file path to output Secret writes test results. WritesResultPath string `json:"writes-result-path"` // ReadsResultPath is the CSV file path to output Secret reads test results. ReadsResultPath string `json:"reads-result-path"` }
AddOnSecrets defines parameters for EKS cluster add-on "Secrets".
type AddOnWordpress ¶ added in v1.0.6
type AddOnWordpress struct { // Enable is 'true' to create this add-on. Enable bool `json:"enable"` // Created is true when the resource has been created. // Used for delete operations. Created bool `json:"created" read-only:"true"` // CreateTook is the duration that took to create the resource. CreateTook time.Duration `json:"create-took,omitempty" read-only:"true"` // CreateTookString is the duration that took to create the resource. CreateTookString string `json:"create-took-string,omitempty" read-only:"true"` // DeleteTook is the duration that took to create the resource. DeleteTook time.Duration `json:"delete-took,omitempty" read-only:"true"` // DeleteTookString is the duration that took to create the resource. DeleteTookString string `json:"delete-took-string,omitempty" read-only:"true"` // Namespace is the namespace to create objects in. Namespace string `json:"namespace"` // UserName is the user name. // ref. https://github.com/helm/charts/tree/master/stable/wordpress UserName string `json:"user-name"` // Password is the user password. // ref. https://github.com/helm/charts/tree/master/stable/wordpress Password string `json:"password"` // NLBARN is the ARN of the NLB created from the service. NLBARN string `json:"nlb-arn" read-only:"true"` // NLBName is the name of the NLB created from the service. NLBName string `json:"nlb-name" read-only:"true"` // URL is the host name for WordPress service. URL string `json:"url" read-only:"true"` }
AddOnWordpress defines parameters for EKS cluster add-on WordPress. ref. https://github.com/helm/charts/blob/master/stable/wordpress/requirements.yaml ref. https://github.com/helm/charts/tree/master/stable/mariadb ref. https://github.com/bitnami/charts/tree/master/bitnami/wordpress/#installing-the-chart
type ClusterStatus ¶ added in v0.6.5
ClusterStatus represents the cluster status.
type Config ¶
type Config struct { // ConfigPath is the configuration file path. // Deployer is expected to update this file with latest status. ConfigPath string `json:"config-path,omitempty"` // KubectlCommandsOutputPath is the output path for kubectl commands. KubectlCommandsOutputPath string `json:"kubectl-commands-output-path,omitempty"` // RemoteAccessCommandsOutputPath is the output path for ssh commands. RemoteAccessCommandsOutputPath string `json:"remote-access-commands-output-path,omitempty"` // Region is the AWS geographic area for EKS deployment. // If empty, set default region. Region string `json:"region,omitempty"` // Name is the cluster name. // If empty, deployer auto-populates it. Name string `json:"name,omitempty"` // LogLevel configures log level. Only supports debug, info, warn, error, panic, or fatal. Default 'info'. LogLevel string `json:"log-level"` // LogOutputs is a list of log outputs. Valid values are 'default', 'stderr', 'stdout', or file names. // Logs are appended to the existing file, if any. // Multiple values are accepted. If empty, it sets to 'default', which outputs to stderr. // See https://pkg.go.dev/go.uber.org/zap#Open and https://pkg.go.dev/go.uber.org/zap#Config for more details. LogOutputs []string `json:"log-outputs,omitempty"` // AWSCLIPath is the path for AWS CLI path. AWSCLIPath string `json:"aws-cli-path,omitempty"` // KubectlPath is the path to download the "kubectl". KubectlPath string `json:"kubectl-path,omitempty"` // KubectlDownloadURL is the download URL to download "kubectl" binary from. // https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html KubectlDownloadURL string `json:"kubectl-download-url,omitempty"` // KubeConfigPath is the file path of KUBECONFIG for the EKS cluster. // If empty, auto-generate one. // Deployer is expected to delete this on cluster tear down. KubeConfigPath string `json:"kubeconfig-path,omitempty"` // AWSIAMAuthenticatorPath is the path to aws-iam-authenticator. AWSIAMAuthenticatorPath string `json:"aws-iam-authenticator-path,omitempty"` // AWSIAMAuthenticatorDownloadURL is the download URL to download "aws-iam-authenticator" binary from. AWSIAMAuthenticatorDownloadURL string `json:"aws-iam-authenticator-download-url,omitempty"` // OnFailureDelete is true to delete all resources on creation fail. OnFailureDelete bool `json:"on-failure-delete"` // OnFailureDeleteWaitSeconds is the seconds to wait before deleting // all resources on creation fail. OnFailureDeleteWaitSeconds uint64 `json:"on-failure-delete-wait-seconds"` // CommandAfterCreateCluster is the command to execute after creating clusters. // Currently supported variables are: // - "GetRef.Name" for cluster name // - "GetRef.ClusterARN" for cluster ARN CommandAfterCreateCluster string `json:"command-after-create-cluster"` CommandAfterCreateClusterOutputPath string `json:"command-after-create-cluster-output-path" read-only:"true"` CommandAfterCreateClusterTimeout time.Duration `json:"command-after-create-cluster-timeout"` CommandAfterCreateClusterTimeoutString string `json:"command-after-create-cluster-timeout-string" read-only:"true"` // CommandAfterCreateAddOns is the command to execute after creating clusters and add-ons. // Currently supported variables are: // - "GetRef.Name" for cluster name // - "GetRef.ClusterARN" for cluster ARN CommandAfterCreateAddOns string `json:"command-after-create-add-ons"` CommandAfterCreateAddOnsOutputPath string `json:"command-after-create-add-ons-output-path" read-only:"true"` CommandAfterCreateAddOnsTimeout time.Duration `json:"command-after-create-add-ons-timeout"` CommandAfterCreateAddOnsTimeoutString string `json:"command-after-create-add-ons-timeout-string" read-only:"true"` // S3BucketCreate is true to auto-create S3 bucket. S3BucketCreate bool `json:"s3-bucket-create"` // S3BucketCreateKeep is true to not delete auto-created S3 bucket. // The created S3 bucket is kept. S3BucketCreateKeep bool `json:"s3-bucket-create-keep"` // S3BucketName is the name of cluster S3. S3BucketName string `json:"s3-bucket-name"` // S3BucketLifecycleExpirationDays is expiration in days for the lifecycle of the object. S3BucketLifecycleExpirationDays int64 `json:"s3-bucket-lifecycle-expiration-days"` // Parameters defines EKS "cluster" creation parameters. // It's ok to leave any parameters empty. // If empty, it will use default values. Parameters *Parameters `json:"parameters,omitempty"` // RemoteAccessKeyCreate is true to create the remote SSH access private key. RemoteAccessKeyCreate bool `json:"remote-access-key-create"` // RemoteAccessKeyName is the key name for node group SSH EC2 key pair. // ref. https://docs.aws.amazon.com/eks/latest/userguide/create-managed-node-group.html // ref. https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html RemoteAccessKeyName string `json:"remote-access-key-name,omitempty"` // RemoteAccessPrivateKeyPath is the file path to store node group key pair private key. // Thus, deployer must delete the private key right after node group creation. // MAKE SURE PRIVATE KEY NEVER GETS UPLOADED TO CLOUD STORAGE AND DELETE AFTER USE!!! // ref. https://docs.aws.amazon.com/eks/latest/userguide/create-managed-node-group.html // ref. https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html RemoteAccessPrivateKeyPath string `json:"remote-access-private-key-path,omitempty"` // Clients is the number of kubernetes clients to create. // Default is 1. // This field is used for "eks/cluster-loader" tester. Configure accordingly. // Rate limit is done via "k8s.io/client-go/util/flowcontrol.NewTokenBucketRateLimiter". Clients int `json:"clients"` // ClientQPS is the QPS for kubernetes client. // To use while talking with kubernetes apiserver. // // Kubernetes client DefaultQPS is 5. // Kubernetes client DefaultBurst is 10. // ref. https://github.com/kubernetes/kubernetes/blob/4d0e86f0b8d1eae00a202009858c8739e4c9402e/staging/src/k8s.io/client-go/rest/config.go#L43-L46 // // kube-apiserver default inflight requests limits are: // FLAG: --max-mutating-requests-inflight="200" // FLAG: --max-requests-inflight="400" // ref. https://github.com/kubernetes/kubernetes/blob/4d0e86f0b8d1eae00a202009858c8739e4c9402e/staging/src/k8s.io/apiserver/pkg/server/config.go#L300-L301 // // This field is used for "eks/cluster-loader" tester. Configure accordingly. // Rate limit is done via "k8s.io/client-go/util/flowcontrol.NewTokenBucketRateLimiter". ClientQPS float32 `json:"client-qps"` // ClientBurst is the burst for kubernetes client. // To use while talking with kubernetes apiserver // // Kubernetes client DefaultQPS is 5. // Kubernetes client DefaultBurst is 10. // ref. https://github.com/kubernetes/kubernetes/blob/4d0e86f0b8d1eae00a202009858c8739e4c9402e/staging/src/k8s.io/client-go/rest/config.go#L43-L46 // // kube-apiserver default inflight requests limits are: // FLAG: --max-mutating-requests-inflight="200" // FLAG: --max-requests-inflight="400" // ref. https://github.com/kubernetes/kubernetes/blob/4d0e86f0b8d1eae00a202009858c8739e4c9402e/staging/src/k8s.io/apiserver/pkg/server/config.go#L300-L301 // // This field is used for "eks/cluster-loader" tester. Configure accordingly. // Rate limit is done via "k8s.io/client-go/util/flowcontrol.NewTokenBucketRateLimiter". ClientBurst int `json:"client-burst"` // ClientTimeout is the client timeout. ClientTimeout time.Duration `json:"client-timeout"` ClientTimeoutString string `json:"client-timeout-string,omitempty" read-only:"true"` // AddOnNodeGroups defines EKS "Node Group" // creation parameters. AddOnNodeGroups *AddOnNodeGroups `json:"add-on-node-groups,omitempty"` // AddOnManagedNodeGroups defines EKS "Managed Node Group" // creation parameters. If empty, it will use default values. // ref. https://docs.aws.amazon.com/eks/latest/userguide/create-managed-node-group.html // ref. https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html AddOnManagedNodeGroups *AddOnManagedNodeGroups `json:"add-on-managed-node-groups,omitempty"` // AddOnCSIEBS defines parameters for EKS cluster // add-on AWS EBS CSI Driver. AddOnCSIEBS *AddOnCSIEBS `json:"add-on-csi-ebs,omitempty"` // AddOnKubernetesDashboard defines parameters for EKS cluster // add-on Dashboard. AddOnKubernetesDashboard *AddOnKubernetesDashboard `json:"add-on-kubernetes-dashboard,omitempty"` // AddOnPrometheusGrafana defines parameters for EKS cluster // add-on Prometheus/Grafana. AddOnPrometheusGrafana *AddOnPrometheusGrafana `json:"add-on-prometheus-grafana,omitempty"` // AddOnNLBHelloWorld defines parameters for EKS cluster // add-on NLB hello-world service. AddOnNLBHelloWorld *AddOnNLBHelloWorld `json:"add-on-nlb-hello-world,omitempty"` // AddOnALB2048 defines parameters for EKS cluster // add-on ALB 2048 service. AddOnALB2048 *AddOnALB2048 `json:"add-on-alb-2048,omitempty"` // AddOnJobsPi defines parameters for EKS cluster // add-on Job with pi Perl command. AddOnJobsPi *AddOnJobsPi `json:"add-on-jobs-pi,omitempty"` // AddOnJobsEcho defines parameters for EKS cluster // add-on Job with echo. AddOnJobsEcho *AddOnJobsEcho `json:"add-on-jobs-echo,omitempty"` // AddOnCronJobs defines parameters for EKS cluster // add-on with CronJob. AddOnCronJobs *AddOnCronJobs `json:"add-on-cron-jobs,omitempty"` // AddOnCSRs defines parameters for EKS cluster // add-on with CSRs. AddOnCSRs *AddOnCSRs `json:"add-on-csrs,omitempty"` // AddOnConfigMaps defines parameters for EKS cluster // add-on with ConfigMap. AddOnConfigMaps *AddOnConfigMaps `json:"add-on-config-maps,omitempty"` // AddOnSecrets defines parameters for EKS cluster // add-on "Secrets". AddOnSecrets *AddOnSecrets `json:"add-on-secrets,omitempty"` // AddOnIRSA defines parameters for EKS cluster // add-on "IAM Roles for Service Accounts (IRSA)". AddOnIRSA *AddOnIRSA `json:"add-on-irsa,omitempty"` // AddOnFargate defines parameters for EKS cluster // add-on "EKS on Fargate". AddOnFargate *AddOnFargate `json:"add-on-fargate,omitempty"` // AddOnIRSAFargate defines parameters for EKS cluster // add-on "IAM Roles for Service Accounts (IRSA)" with Fargate. AddOnIRSAFargate *AddOnIRSAFargate `json:"add-on-irsa-fargate,omitempty"` // AddOnAppMesh defines parameters for EKS cluster // add-on "EKS App Mesh Integration". AddOnAppMesh *AddOnAppMesh `json:"add-on-app-mesh,omitempty"` // AddOnWordpress defines parameters for EKS cluster // add-on WordPress. AddOnWordpress *AddOnWordpress `json:"add-on-wordpress,omitempty"` // AddOnJupyterHub defines parameters for EKS cluster // add-on JupyterHub. AddOnJupyterHub *AddOnJupyterHub `json:"add-on-jupyter-hub,omitempty"` // AddOnKubeflow defines parameters for EKS cluster // add-on Kubeflow. AddOnKubeflow *AddOnKubeflow `json:"add-on-kubeflow,omitempty"` // AddOnConformance defines parameters for EKS cluster // add-on Hollow Nodes. AddOnHollowNodes *AddOnHollowNodes `json:"add-on-hollow-nodes,omitempty"` // AddOnClusterLoader defines parameters for EKS cluster // add-on Cluster Loader. AddOnClusterLoader *AddOnClusterLoader `json:"add-on-cluster-loader,omitempty"` // AddOnConformance defines parameters for EKS cluster // add-on Conformance. AddOnConformance *AddOnConformance `json:"add-on-conformance,omitempty"` // Status represents the current status of AWS resources. // Status is read-only. // Status cannot be configured via environmental variables. Status *Status `json:"status,omitempty" read-only:"true"` // contains filtered or unexported fields }
Config defines EKS configuration.
func Load ¶
Load loads configuration from YAML. Useful when injecting shared configuration via ConfigMap.
Example usage:
import "github.com/aws/aws-k8s-tester/eksconfig" cfg := eksconfig.Load("test.yaml") err := cfg.ValidateAndSetDefaults()
Do not set default values in this function. "ValidateAndSetDefaults" must be called separately, to prevent overwriting previous data when loaded from disks.
func NewDefault ¶
func NewDefault() *Config
NewDefault returns a default configuration.
- empty string creates a non-nil object for pointer-type field
- omitting an entire field returns nil value
- make sure to check both
func (*Config) EvaluateCommandRefs ¶ added in v1.0.6
EvaluateCommandRefs updates "CommandAfterCreateCluster" and "CommandAfterCreateAddOns". currently, only support "GetRef.Name" and "GetRef.ClusterARN"
func (*Config) IsEnabledAddOnALB2048 ¶ added in v0.7.5
IsEnabledAddOnALB2048 returns true if "AddOnALB2048" is enabled. Otherwise, nil the field for "omitempty".
func (*Config) IsEnabledAddOnAppMesh ¶ added in v0.7.5
IsEnabledAddOnAppMesh returns true if "AddOnAppMesh" is enabled. Otherwise, nil the field for "omitempty".
func (*Config) IsEnabledAddOnCSIEBS ¶ added in v1.0.6
IsEnabledAddOnCSIEBS returns true if "AddOnCSIEBS" is enabled. Otherwise, nil the field for "omitempty".
func (*Config) IsEnabledAddOnCSRs ¶ added in v0.9.8
IsEnabledAddOnCSRs returns true if "AddOnCSRs" is enabled. Otherwise, nil the field for "omitempty".
func (*Config) IsEnabledAddOnClusterLoader ¶ added in v1.0.9
IsEnabledAddOnClusterLoader returns true if "AddOnClusterLoader" is enabled. Otherwise, nil the field for "omitempty".
func (*Config) IsEnabledAddOnConfigMaps ¶ added in v0.9.8
IsEnabledAddOnConfigMaps returns true if "AddOnConfigMaps" is enabled. Otherwise, nil the field for "omitempty".
func (*Config) IsEnabledAddOnConformance ¶ added in v1.1.3
IsEnabledAddOnConformance returns true if "AddOnConformance" is enabled. Otherwise, nil the field for "omitempty".
func (*Config) IsEnabledAddOnCronJobs ¶ added in v0.9.8
IsEnabledAddOnCronJobs returns true if "AddOnCronJobs" is enabled. Otherwise, nil the field for "omitempty".
func (*Config) IsEnabledAddOnFargate ¶ added in v0.7.5
IsEnabledAddOnFargate returns true if "AddOnFargate" is enabled. Otherwise, nil the field for "omitempty".
func (*Config) IsEnabledAddOnHollowNodes ¶ added in v1.1.3
IsEnabledAddOnHollowNodes returns true if "AddOnHollowNodes" is enabled. Otherwise, nil the field for "omitempty".
func (*Config) IsEnabledAddOnIRSA ¶ added in v0.7.5
IsEnabledAddOnIRSA returns true if "AddOnIRSA" is enabled. Otherwise, nil the field for "omitempty".
func (*Config) IsEnabledAddOnIRSAFargate ¶ added in v1.0.7
IsEnabledAddOnIRSAFargate returns true if "AddOnIRSAFargate" is enabled. Otherwise, nil the field for "omitempty".
func (*Config) IsEnabledAddOnJobsEcho ¶ added in v0.9.8
IsEnabledAddOnJobsEcho returns true if "AddOnJobsEcho" is enabled. Otherwise, nil the field for "omitempty".
func (*Config) IsEnabledAddOnJobsPi ¶ added in v0.9.8
IsEnabledAddOnJobsPi returns true if "AddOnJobsPi" is enabled. Otherwise, nil the field for "omitempty".
func (*Config) IsEnabledAddOnJupyterHub ¶ added in v1.0.8
IsEnabledAddOnJupyterHub returns true if "AddOnJupyterHub" is enabled. Otherwise, nil the field for "omitempty".
func (*Config) IsEnabledAddOnKubeflow ¶ added in v1.0.6
IsEnabledAddOnKubeflow returns true if "AddOnKubeflow" is enabled. Otherwise, nil the field for "omitempty".
func (*Config) IsEnabledAddOnKubernetesDashboard ¶ added in v1.0.6
IsEnabledAddOnKubernetesDashboard returns true if "AddOnKubernetesDashboard" is enabled. Otherwise, nil the field for "omitempty".
func (*Config) IsEnabledAddOnManagedNodeGroups ¶ added in v0.7.5
IsEnabledAddOnManagedNodeGroups returns true if "AddOnManagedNodeGroups" is enabled. Otherwise, nil the field for "omitempty".
func (*Config) IsEnabledAddOnNLBHelloWorld ¶ added in v0.7.5
IsEnabledAddOnNLBHelloWorld returns true if "AddOnNLBHelloWorld" is enabled. Otherwise, nil the field for "omitempty".
func (*Config) IsEnabledAddOnNodeGroups ¶ added in v0.7.5
IsEnabledAddOnNodeGroups returns true if "AddOnNodeGroups" is enabled. Otherwise, nil the field for "omitempty".
func (*Config) IsEnabledAddOnPrometheusGrafana ¶ added in v1.0.6
IsEnabledAddOnPrometheusGrafana returns true if "AddOnPrometheusGrafana" is enabled. Otherwise, nil the field for "omitempty".
func (*Config) IsEnabledAddOnSecrets ¶ added in v0.7.5
IsEnabledAddOnSecrets returns true if "AddOnSecrets" is enabled. Otherwise, nil the field for "omitempty".
func (*Config) IsEnabledAddOnWordpress ¶ added in v1.0.6
IsEnabledAddOnWordpress returns true if "AddOnWordpress" is enabled. Otherwise, nil the field for "omitempty".
func (*Config) KubectlCommand ¶ added in v0.5.8
KubectlCommand returns the kubectl command.
func (*Config) KubectlCommands ¶
KubectlCommands returns the various kubectl commands.
func (*Config) RecordStatus ¶ added in v0.6.5
RecordStatus records cluster status.
func (*Config) SSHCommands ¶
SSHCommands returns the SSH commands.
func (*Config) UpdateFromEnvs ¶
UpdateFromEnvs updates fields from environmental variables. Empty values are ignored and do not overwrite fields with empty values. WARNING: The environmetal variable value always overwrites current field values if there's a conflict.
func (*Config) ValidateAndSetDefaults ¶
ValidateAndSetDefaults returns an error for invalid configurations. And updates empty fields with default values. At the end, it writes populated YAML to aws-k8s-tester config path. "read-only" fields cannot be set, causing errors.
type MNG ¶ added in v0.5.5
type MNG struct { // Name is the name of the managed node group. // ref. https://docs.aws.amazon.com/eks/latest/userguide/create-managed-node-group.html // ref. https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html Name string `json:"name,omitempty"` // ASGName is the ASG name from a created managed node group. ASGName string `json:"asg-name,omitempty" read-only:"true"` // RemoteAccessUserName is the user name for managed node group SSH access. // ref. https://docs.aws.amazon.com/eks/latest/userguide/create-managed-node-group.html // ref. https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html RemoteAccessUserName string `json:"remote-access-user-name,omitempty"` // Tags defines EKS managed node group create tags. Tags map[string]string `json:"tags,omitempty"` // ReleaseVersion is the AMI version of the Amazon EKS-optimized AMI for the node group. // The version may differ from EKS "cluster" version. // ref. https://docs.aws.amazon.com/eks/latest/userguide/create-managed-node-group.html // ref. https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html // ref. https://docs.aws.amazon.com/eks/latest/userguide/eks-linux-ami-versions.html ReleaseVersion string `json:"release-version,omitempty"` // AMIType is the AMI type for the node group. // Allowed values are AL2_x86_64 and AL2_x86_64_GPU. // ref. https://docs.aws.amazon.com/eks/latest/userguide/create-managed-node-group.html // ref. https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html AMIType string `json:"ami-type,omitempty"` // ASGMinSize is the minimum size of Node Group Auto Scaling Group. // ref. https://docs.aws.amazon.com/eks/latest/userguide/create-managed-node-group.html // ref. https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html ASGMinSize int `json:"asg-min-size,omitempty"` // ASGMaxSize is the maximum size of Node Group Auto Scaling Group. // ref. https://docs.aws.amazon.com/eks/latest/userguide/create-managed-node-group.html // ref. https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html ASGMaxSize int `json:"asg-max-size,omitempty"` // ASGDesiredCapacity is is the desired capacity of Node Group ASG. // ref. https://docs.aws.amazon.com/eks/latest/userguide/create-managed-node-group.html // ref. https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html ASGDesiredCapacity int `json:"asg-desired-capacity,omitempty"` // InstanceTypes is the EC2 instance types for the node instances. // ref. https://docs.aws.amazon.com/eks/latest/userguide/create-managed-node-group.html // ref. https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html InstanceTypes []string `json:"instance-types,omitempty"` // VolumeSize is the node volume size. // ref. https://docs.aws.amazon.com/eks/latest/userguide/create-managed-node-group.html // ref. https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-nodegroup.html VolumeSize int `json:"volume-size,omitempty"` // CreateRequested is true if "CreateNodegroupRequest" has been sent. CreateRequested bool `json:"create-requested" read-only:"true"` // PhysicalID is the Physical ID for the created "AWS::EKS::Nodegroup". PhysicalID string `json:"physical-id" read-only:"true"` // CFNStackID is the CloudFormation stack ID for a managed node group. CFNStackID string `json:"cfn-stack-id" read-only:"true"` RemoteAccessSecurityGroupID string `json:"remote-access-security-group-id" read-only:"true"` RemoteAccessSecurityGroupIngressEgressCFNStackID string `json:"remote-access-security-group-ingress-egress-cfn-stack-id" read-only:"true"` // Status is the current status of EKS "Managed Node Group". Status string `json:"status" read-only:"true"` // Instances maps an instance ID to an EC2 instance object for the node group. Instances map[string]ec2config.Instance `json:"instances" read-only:"true"` // Logs maps each instance ID to a list of log file paths fetched via SSH access. Logs map[string][]string `json:"logs" read-only:"true"` }
MNG represents parameters for one EKS "Managed Node Group".
type Parameters ¶ added in v0.5.0
type Parameters struct { // RoleName is the name of cluster role. RoleName string `json:"role-name"` // RoleCreate is true to auto-create and delete cluster role. RoleCreate bool `json:"role-create"` // RoleARN is the role ARN that EKS uses to create AWS resources for Kubernetes. // By default, it's empty which triggers tester to create one. RoleARN string `json:"role-arn"` // RoleServicePrincipals is the EKS Role Service Principals RoleServicePrincipals []string `json:"role-service-principals"` // RoleManagedPolicyARNs is EKS Role managed policy ARNs. RoleManagedPolicyARNs []string `json:"role-managed-policy-arns"` RoleCFNStackID string `json:"role-cfn-stack-id" read-only:"true"` // Tags defines EKS create cluster tags. Tags map[string]string `json:"tags"` // RequestHeaderKey defines EKS create cluster request header key. RequestHeaderKey string `json:"request-header-key"` // RequestHeaderValue defines EKS create cluster request header value. RequestHeaderValue string `json:"request-header-value"` // ResolverURL defines an AWS resolver endpoint for EKS API. // Must be left empty to use production EKS service. ResolverURL string `json:"resolver-url"` // SigningName is the EKS create request signing name. SigningName string `json:"signing-name"` // VPCCreate is true to auto-create and delete VPC. VPCCreate bool `json:"vpc-create"` // VPCID is the VPC ID for cluster creation. // If not empty, VPC is reused and not deleted. // If empty, VPC is created anew and deleted on cluster deletion. VPCID string `json:"vpc-id"` VPCCFNStackID string `json:"vpc-cfn-stack-id" read-only:"true"` // VpcCIDR is the IP range (CIDR notation) for VPC, must be a valid private // (RFC 1918) CIDR range. VPCCIDR string `json:"vpc-cidr,omitempty"` // PublicSubnetCIDR1 is the CIDR Block for subnet 1 within the VPC. PublicSubnetCIDR1 string `json:"public-subnet-cidr-1,omitempty"` // PublicSubnetCIDR2 is the CIDR Block for subnet 2 within the VPC. PublicSubnetCIDR2 string `json:"public-subnet-cidr-2,omitempty"` // PublicSubnetCIDR3 is the CIDR Block for subnet 3 within the VPC. PublicSubnetCIDR3 string `json:"public-subnet-cidr-3,omitempty"` // PrivateSubnetCIDR1 is the CIDR Block for subnet 1 within the VPC. PrivateSubnetCIDR1 string `json:"private-subnet-cidr-1,omitempty"` // PrivateSubnetCIDR2 is the CIDR Block for subnet 2 within the VPC. PrivateSubnetCIDR2 string `json:"private-subnet-cidr-2,omitempty"` // PublicSubnetIDs is the list of all public subnets in the VPC. PublicSubnetIDs []string `json:"public-subnet-ids" read-only:"true"` // PrivateSubnetIDs is the list of all private subnets in the VPC. PrivateSubnetIDs []string `json:"private-subnet-ids" read-only:"true"` // DHCPOptionsDomainName is used to complete unqualified DNS hostnames for VPC. // ref. https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-dhcp-options.html // ref. https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html DHCPOptionsDomainName string `json:"dhcp-options-domain-name"` // DHCPOptionsDomainNameServers is a list of strings. // The IPv4 addresses of up to four domain name servers, or AmazonProvidedDNS, for VPC. // ref. https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-dhcp-options.html // ref. https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html DHCPOptionsDomainNameServers []string `json:"dhcp-options-domain-name-servers"` // Version is the version of EKS Kubernetes "cluster". // If empty, set default version. Version string `json:"version"` VersionValue float64 `json:"version-value" read-only:"true"` // EncryptionCMKCreate is true to auto-create and delete KMS CMK // for encryption feature. EncryptionCMKCreate bool `json:"encryption-cmk-create"` // EncryptionCMKARN is the KMS CMK ARN for encryption feature. // If not empty, the cluster is created with encryption feature // enabled. EncryptionCMKARN string `json:"encryption-cmk-arn"` }
Parameters defines parameters for EKS "cluster" creation.
type Status ¶ added in v0.5.0
type Status struct { // Up is true if the cluster is up. Up bool `json:"up"` // ServerVersionInfo is the server version from EKS kube-apiserver. ServerVersionInfo k8s_client.ServerVersionInfo `json:"server-version-info" read-only:"true"` // CreateTook is the duration that took to create the resource. CreateTook time.Duration `json:"create-took,omitempty" read-only:"true"` // CreateTookString is the duration that took to create the resource. CreateTookString string `json:"create-took-string,omitempty" read-only:"true"` // DeleteTook is the duration that took to create the resource. DeleteTook time.Duration `json:"delete-took,omitempty" read-only:"true"` // DeleteTookString is the duration that took to create the resource. DeleteTookString string `json:"delete-took-string,omitempty" read-only:"true"` // AWSAccountID is the account ID of the eks tester caller session. AWSAccountID string `json:"aws-account-id"` // AWSUserID is the user ID of the eks tester caller session. AWSUserID string `json:"aws-user-id"` // AWSIAMRoleARN is the user IAM Role ARN of the eks tester caller session. AWSIAMRoleARN string `json:"aws-iam-role-arn"` // AWSCredentialPath is automatically set via AWS SDK Go. // And to be mounted as a volume as 'Secret' object. AWSCredentialPath string `json:"aws-credential-path"` ClusterCFNStackID string `json:"cluster-cfn-stack-id"` ClusterARN string `json:"cluster-arn"` // ClusterControlPlaneSecurityGroupID is the security group ID for the cluster control // plane communication with worker nodes. ClusterControlPlaneSecurityGroupID string `json:"cluster-control-plane-security-group-id"` // ClusterAPIServerEndpoint is the cluster endpoint of the EKS cluster, // required for KUBECONFIG write. ClusterAPIServerEndpoint string `json:"cluster-api-server-endpoint"` // ClusterOIDCIssuerURL is the issuer URL for the OpenID Connect // (https://openid.net/connect/) identity provider . ClusterOIDCIssuerURL string `json:"cluster-oidc-issuer-url"` // ClusterOIDCIssuerHostPath is the issuer host path. ClusterOIDCIssuerHostPath string `json:"cluster-oidc-issuer-host-path"` // ClusterOIDCIssuerARN is the issuer ARN for the OpenID Connect // (https://openid.net/connect/) identity provider . ClusterOIDCIssuerARN string `json:"cluster-oidc-issuer-arn"` // ClusterOIDCIssuerCAThumbprint is the issuer CA thumbprint. ClusterOIDCIssuerCAThumbprint string `json:"cluster-oidc-issuer-ca-thumbprint"` // ClusterCA is the EKS cluster CA, required for KUBECONFIG write. ClusterCA string `json:"cluster-ca"` // ClusterCADecoded is the decoded EKS cluster CA, required for k8s.io/client-go. ClusterCADecoded string `json:"cluster-ca-decoded"` // ClusterStatusCurrent represents the current status of the cluster. ClusterStatusCurrent string `json:"cluster-status-current"` // ClusterStatus represents the status of the cluster. ClusterStatus []ClusterStatus `json:"cluster-status"` }
Status represents the current status of AWS resources. Read-only. Cannot be configured via environmental variables.
Source Files ¶
- add-on-alb-2048.go
- add-on-app-mesh.go
- add-on-cluster-loader.go
- add-on-config-maps.go
- add-on-conformance.go
- add-on-cron-jobs.go
- add-on-csi-ebs.go
- add-on-csrs.go
- add-on-fargate.go
- add-on-hollow-nodes.go
- add-on-irsa-fargate.go
- add-on-irsa.go
- add-on-jobs-echo.go
- add-on-jobs-pi.go
- add-on-jupyter-hub.go
- add-on-kubeflow.go
- add-on-kubernetes-dashboard.go
- add-on-managed-node-groups.go
- add-on-nlb-hello-world.go
- add-on-node-groups.go
- add-on-prometheus-grafana.go
- add-on-secrets.go
- add-on-wordpress.go
- config.go
- env.go
- init.go
- parameters.go
- rand.go
- status.go
- validate-defaults.go