Documentation
¶
Overview ¶
Package eksconfig defines EKS test configuration.
Index ¶
- Constants
- type ASG
- type AddOnALB2048
- type AddOnAppMesh
- type AddOnCSIEBS
- type AddOnCSRs
- type AddOnClusterLoaderLocal
- type AddOnClusterLoaderRemote
- type AddOnConfigMaps
- type AddOnConformance
- type AddOnCronJobs
- type AddOnFargate
- type AddOnHollowNodesLocal
- type AddOnHollowNodesRemote
- 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) IsEnabledAddOnClusterLoaderLocal() bool
- func (cfg *Config) IsEnabledAddOnClusterLoaderRemote() bool
- func (cfg *Config) IsEnabledAddOnConfigMaps() bool
- func (cfg *Config) IsEnabledAddOnConformance() bool
- func (cfg *Config) IsEnabledAddOnCronJobs() bool
- func (cfg *Config) IsEnabledAddOnFargate() bool
- func (cfg *Config) IsEnabledAddOnHollowNodesLocal() bool
- func (cfg *Config) IsEnabledAddOnHollowNodesRemote() 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 RequestsSummary
- 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 EnvironmentVariablePrefixAddOnClusterLoaderLocal = AWS_K8S_TESTER_EKS_PREFIX + "ADD_ON_CLUSTER_LOADER_LOCAL_"
EnvironmentVariablePrefixAddOnClusterLoaderLocal is the environment variable prefix used for "eksconfig".
const EnvironmentVariablePrefixAddOnClusterLoaderRemote = AWS_K8S_TESTER_EKS_PREFIX + "ADD_ON_CLUSTER_LOADER_REMOTE_"
EnvironmentVariablePrefixAddOnClusterLoaderRemote 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 EnvironmentVariablePrefixAddOnHollowNodesLocal = AWS_K8S_TESTER_EKS_PREFIX + "ADD_ON_HOLLOW_NODES_LOCAL_"
EnvironmentVariablePrefixAddOnHollowNodesLocal is the environment variable prefix used for "eksconfig".
const EnvironmentVariablePrefixAddOnHollowNodesRemote = AWS_K8S_TESTER_EKS_PREFIX + "ADD_ON_HOLLOW_NODES_REMOTE_"
EnvironmentVariablePrefixAddOnHollowNodesRemote 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 AddOnClusterLoaderLocal ¶ added in v1.1.9
type AddOnClusterLoaderLocal 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"`
// RequestsSummaryRead is the read cluster loader results.
RequestsSummaryRead RequestsSummary `json:"requests-summary-read,omitempty" read-only:"true"`
// RequestsSummaryReadJSONPath is the file path to store requests summary results in JSON format.
RequestsSummaryReadJSONPath string `json:"requests-summary-read-json-path" read-only:"true"`
// RequestsSummaryReadTablePath is the file path to store requests summary results in table format.
RequestsSummaryReadTablePath string `json:"requests-summary-read-table-path" read-only:"true"`
}
AddOnClusterLoaderLocal defines parameters for EKS cluster add-on local Cluster Loader. ref. https://github.com/kubernetes/perf-tests
type AddOnClusterLoaderRemote ¶ added in v1.1.9
type AddOnClusterLoaderRemote 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 when cluster loaders are deployed via Pod.
DeploymentReplicas int32 `json:"deployment-replicas,omitempty"`
// 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"`
// RepositoryName is the repositoryName for 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 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 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"`
// RequestSummaryReadOutputPathPrefix is the output path used in remote cluster loader.
RequestSummaryReadOutputPathPrefix string `json:"request-summary-read-output-path-prefix"`
// RequestsSummaryRead is the read cluster loader results, aggregated from remote nodes.
RequestsSummaryRead RequestsSummary `json:"requests-summary-read,omitempty" read-only:"true"`
// RequestsSummaryReadJSONPath is the file path to store requests summary results in JSON format.
RequestsSummaryReadJSONPath string `json:"requests-summary-read-json-path" read-only:"true"`
// RequestsSummaryReadTablePath is the file path to store requests summary results in table format.
RequestsSummaryReadTablePath string `json:"requests-summary-read-table-path" read-only:"true"`
}
AddOnClusterLoaderRemote defines parameters for EKS cluster add-on remote 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"`
// RepositoryName is the repositoryName for 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 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 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"`
// SecretName is the secret name for Fargate.
SecretName string `json:"secret-name"`
}
AddOnFargate defines parameters for EKS cluster add-on "EKS on Fargate".
type AddOnHollowNodesLocal ¶ added in v1.1.9
type AddOnHollowNodesLocal 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"`
// 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"`
// 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"`
// 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.
// More than >100 node may exceed local system file descriptor limits.
// e.g. too many open files
MaxOpenFiles int64 `json:"max-open-files"`
// CreatedNodeNames is the list of created "Node" object names.
CreatedNodeNames []string `json:"created-node-names" read-only:"true"`
}
AddOnHollowNodesLocal defines parameters for EKS cluster add-on local Hollow Nodes.
type AddOnHollowNodesRemote ¶ added in v1.1.9
type AddOnHollowNodesRemote 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"`
// 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"`
// 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"`
// DeploymentReplicas is the number of replicas to deploy when hollow nodes are deployed via Pod.
DeploymentReplicas int32 `json:"deployment-replicas,omitempty"`
// MaxOpenFiles is number of files that can be opened by kubelet process.
// "cmd/kubelet/app.rlimit.SetNumFiles(MaxOpenFiles)" sets this for the host.
MaxOpenFiles int64 `json:"max-open-files"`
// RepositoryName is the repositoryName for 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 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 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"`
// CreatedNodeNames is the list of created "Node" object names.
CreatedNodeNames []string `json:"created-node-names" read-only:"true"`
}
AddOnHollowNodesRemote defines parameters for EKS cluster add-on local 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"`
// S3Key is the S3 key to write for IRSA tests.
S3Key string `json:"s3-key"`
// RepositoryName is the repositoryName for 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 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 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 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"`
// 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"`
// RepositoryName is the repositoryName for 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 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 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"`
}
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 {
// Name is the cluster name.
// If empty, deployer auto-populates it.
Name string `json:"name"`
// Partition is the AWS partition for EKS deployment region.
// If empty, set default partition "aws".
Partition string `json:"partition"`
// Region is the AWS geographic area for EKS deployment.
// If empty, set default region.
Region string `json:"region"`
// 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"`
// 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.
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"`
// AddOnAppMesh defines parameters for EKS cluster
// add-on "EKS App Mesh Integration".
AddOnAppMesh *AddOnAppMesh `json:"add-on-app-mesh,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"`
// AddOnFargate defines parameters for EKS cluster
// add-on "EKS on Fargate".
AddOnFargate *AddOnFargate `json:"add-on-fargate,omitempty"`
// AddOnIRSA defines parameters for EKS cluster
// add-on "IAM Roles for Service Accounts (IRSA)".
AddOnIRSA *AddOnIRSA `json:"add-on-irsa,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"`
// 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 local Hollow Nodes.
AddOnHollowNodesLocal *AddOnHollowNodesLocal `json:"add-on-hollow-nodes-local,omitempty"`
// AddOnConformance defines parameters for EKS cluster
// add-on remote Hollow Nodes.
AddOnHollowNodesRemote *AddOnHollowNodesRemote `json:"add-on-hollow-nodes-remote,omitempty"`
// AddOnClusterLoaderLocal defines parameters for EKS cluster
// add-on local Cluster Loader.
AddOnClusterLoaderLocal *AddOnClusterLoaderLocal `json:"add-on-cluster-loader-local,omitempty"`
// AddOnClusterLoaderRemote defines parameters for EKS cluster
// add-on remote Cluster Loader.
AddOnClusterLoaderRemote *AddOnClusterLoaderRemote `json:"add-on-cluster-loader-remote,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) IsEnabledAddOnClusterLoaderLocal ¶ added in v1.1.9
IsEnabledAddOnClusterLoaderLocal returns true if "AddOnClusterLoaderLocal" is enabled. Otherwise, nil the field for "omitempty".
func (*Config) IsEnabledAddOnClusterLoaderRemote ¶ added in v1.1.9
IsEnabledAddOnClusterLoaderRemote returns true if "AddOnClusterLoaderRemote" 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) IsEnabledAddOnHollowNodesLocal ¶ added in v1.1.9
IsEnabledAddOnHollowNodesLocal returns true if "AddOnHollowNodesLocal" is enabled. Otherwise, nil the field for "omitempty".
func (*Config) IsEnabledAddOnHollowNodesRemote ¶ added in v1.1.9
IsEnabledAddOnHollowNodesRemote returns true if "AddOnHollowNodesRemote" 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 environmental 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"`
// 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"`
// 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"`
// 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 RequestsSummary ¶ added in v1.1.9
type RequestsSummary struct {
// SuccessTotal is the number of successful client requests.
SuccessTotal float64 `json:"success-total" read-only:"true"`
// FailureTotal is the number of failed client requests.
FailureTotal float64 `json:"failure-total" read-only:"true"`
// LatencyHistogram is the client requests latency histogram.
LatencyHistogram metrics.HistogramBuckets `json:"latency-histogram,omitempty" read-only:"true"`
}
RequestsSummary represents request results.
func (RequestsSummary) JSON ¶ added in v1.2.0
func (rs RequestsSummary) JSON() string
func (RequestsSummary) Table ¶ added in v1.2.0
func (rs RequestsSummary) Table() string
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"`
// TimeUTCCreateComplete is the time when cluster creation is complete.
TimeUTCCreateComplete time.Time `json:"time-utc-create-complete,omitempty" read-only:"true"`
TimeUTCCreateCompleteRFC3339Micro string `json:"time-utc-create-complete-rfc3339-micro,omitempty" read-only:"true"`
// TimeUTCDeleteStart is the time when cluster and add-on deletion is started.
TimeUTCDeleteStart time.Time `json:"time-utc-delete-start,omitempty" read-only:"true"`
TimeUTCDeleteStartRFC3339Micro string `json:"time-utc-delete-start-rfc3339-micro,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-local.go
- add-on-cluster-loader-remote.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-local.go
- add-on-hollow-nodes-remote.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
- request-summary.go
- status.go
- validate-defaults.go