eksconfig

package
v0.8.7 Latest Latest
Warning

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

Go to latest
Published: Mar 21, 2020 License: Apache-2.0 Imports: 25 Imported by: 8

README

AWS_K8S_TESTER_EKS_CONFIG_PATH | *eksconfig.Config.ConfigPath | string | read-only "false"
AWS_K8S_TESTER_EKS_KUBECTL_COMMANDS_OUTPUT_PATH | *eksconfig.Config.KubectlCommandsOutputPath | string | read-only "false"
AWS_K8S_TESTER_EKS_REMOTE_ACCESS_COMMANDS_OUTPUT_PATH | *eksconfig.Config.RemoteAccessCommandsOutputPath | string | read-only "false"
AWS_K8S_TESTER_EKS_REGION | *eksconfig.Config.Region | string | read-only "false"
AWS_K8S_TESTER_EKS_NAME | *eksconfig.Config.Name | string | read-only "false"
AWS_K8S_TESTER_EKS_LOG_LEVEL | *eksconfig.Config.LogLevel | string | read-only "false"
AWS_K8S_TESTER_EKS_LOG_OUTPUTS | *eksconfig.Config.LogOutputs | []string | read-only "false"
AWS_K8S_TESTER_EKS_AWS_CLI_PATH | *eksconfig.Config.AWSCLIPath | string | read-only "false"
AWS_K8S_TESTER_EKS_KUBECTL_PATH | *eksconfig.Config.KubectlPath | string | read-only "false"
AWS_K8S_TESTER_EKS_KUBECTL_DOWNLOAD_URL | *eksconfig.Config.KubectlDownloadURL | string | read-only "false"
AWS_K8S_TESTER_EKS_KUBECONFIG_PATH | *eksconfig.Config.KubeConfigPath | string | read-only "false"
AWS_K8S_TESTER_EKS_AWS_IAM_AUTHENTICATOR_PATH | *eksconfig.Config.AWSIAMAuthenticatorPath | string | read-only "false"
AWS_K8S_TESTER_EKS_AWS_IAM_AUTHENTICATOR_DOWNLOAD_URL | *eksconfig.Config.AWSIAMAuthenticatorDownloadURL | string | read-only "false"
AWS_K8S_TESTER_EKS_ON_FAILURE_DELETE | *eksconfig.Config.OnFailureDelete | bool | read-only "false"
AWS_K8S_TESTER_EKS_ON_FAILURE_DELETE_WAIT_SECONDS | *eksconfig.Config.OnFailureDeleteWaitSeconds | uint64 | read-only "false"
AWS_K8S_TESTER_EKS_COMMAND_AFTER_CREATE_CLUSTER | *eksconfig.Config.CommandAfterCreateCluster | string | read-only "false"
AWS_K8S_TESTER_EKS_COMMAND_AFTER_CREATE_CLUSTER_OUTPUT_PATH | *eksconfig.Config.CommandAfterCreateClusterOutputPath | string | read-only "true"
AWS_K8S_TESTER_EKS_COMMAND_AFTER_CREATE_ADD_ONS | *eksconfig.Config.CommandAfterCreateAddOns | string | read-only "false"
AWS_K8S_TESTER_EKS_COMMAND_AFTER_CREATE_ADD_ONS_OUTPUT_PATH | *eksconfig.Config.CommandAfterCreateAddOnsOutputPath | string | read-only "true"
AWS_K8S_TESTER_EKS_S3_BUCKET_NAME | *eksconfig.Config.S3BucketName | string | read-only "false"
AWS_K8S_TESTER_EKS_S3_BUCKET_CREATE | *eksconfig.Config.S3BucketCreate | bool | read-only "false"
AWS_K8S_TESTER_EKS_S3_BUCKET_LIFECYCLE_EXPIRATION_DAYS | *eksconfig.Config.S3BucketLifecycleExpirationDays | int64 | read-only "false"
AWS_K8S_TESTER_EKS_REMOTE_ACCESS_KEY_CREATE | *eksconfig.Config.RemoteAccessKeyCreate | bool | read-only "false"
AWS_K8S_TESTER_EKS_REMOTE_ACCESS_KEY_NAME | *eksconfig.Config.RemoteAccessKeyName | string | read-only "false"
AWS_K8S_TESTER_EKS_REMOTE_ACCESS_PRIVATE_KEY_PATH | *eksconfig.Config.RemoteAccessPrivateKeyPath | string | read-only "false"

AWS_K8S_TESTER_EKS_PARAMETERS_ROLE_NAME | *eksconfig.Parameters.RoleName | string | read-only "false"
AWS_K8S_TESTER_EKS_PARAMETERS_ROLE_CREATE | *eksconfig.Parameters.RoleCreate | bool | read-only "false"
AWS_K8S_TESTER_EKS_PARAMETERS_ROLE_ARN | *eksconfig.Parameters.RoleARN | string | read-only "false"
AWS_K8S_TESTER_EKS_PARAMETERS_ROLE_SERVICE_PRINCIPALS | *eksconfig.Parameters.RoleServicePrincipals | []string | read-only "false"
AWS_K8S_TESTER_EKS_PARAMETERS_ROLE_MANAGED_POLICY_ARNS | *eksconfig.Parameters.RoleManagedPolicyARNs | []string | read-only "false"
AWS_K8S_TESTER_EKS_PARAMETERS_ROLE_CFN_STACK_ID | *eksconfig.Parameters.RoleCFNStackID | string | read-only "true"
AWS_K8S_TESTER_EKS_PARAMETERS_TAGS | *eksconfig.Parameters.Tags | map[string]string | read-only "false"
AWS_K8S_TESTER_EKS_PARAMETERS_REQUEST_HEADER_KEY | *eksconfig.Parameters.RequestHeaderKey | string | read-only "false"
AWS_K8S_TESTER_EKS_PARAMETERS_REQUEST_HEADER_VALUE | *eksconfig.Parameters.RequestHeaderValue | string | read-only "false"
AWS_K8S_TESTER_EKS_PARAMETERS_RESOLVER_URL | *eksconfig.Parameters.ResolverURL | string | read-only "false"
AWS_K8S_TESTER_EKS_PARAMETERS_SIGNING_NAME | *eksconfig.Parameters.SigningName | string | read-only "false"
AWS_K8S_TESTER_EKS_PARAMETERS_VPC_CREATE | *eksconfig.Parameters.VPCCreate | bool | read-only "false"
AWS_K8S_TESTER_EKS_PARAMETERS_VPC_ID | *eksconfig.Parameters.VPCID | string | read-only "false"
AWS_K8S_TESTER_EKS_PARAMETERS_VPC_CFN_STACK_ID | *eksconfig.Parameters.VPCCFNStackID | string | read-only "true"
AWS_K8S_TESTER_EKS_PARAMETERS_VPC_CIDR | *eksconfig.Parameters.VPCCIDR | string | read-only "false"
AWS_K8S_TESTER_EKS_PARAMETERS_PUBLIC_SUBNET_CIDR_1 | *eksconfig.Parameters.PublicSubnetCIDR1 | string | read-only "false"
AWS_K8S_TESTER_EKS_PARAMETERS_PUBLIC_SUBNET_CIDR_2 | *eksconfig.Parameters.PublicSubnetCIDR2 | string | read-only "false"
AWS_K8S_TESTER_EKS_PARAMETERS_PUBLIC_SUBNET_CIDR_3 | *eksconfig.Parameters.PublicSubnetCIDR3 | string | read-only "false"
AWS_K8S_TESTER_EKS_PARAMETERS_PRIVATE_SUBNET_CIDR_1 | *eksconfig.Parameters.PrivateSubnetCIDR1 | string | read-only "false"
AWS_K8S_TESTER_EKS_PARAMETERS_PRIVATE_SUBNET_CIDR_2 | *eksconfig.Parameters.PrivateSubnetCIDR2 | string | read-only "false"
AWS_K8S_TESTER_EKS_PARAMETERS_PUBLIC_SUBNET_IDS | *eksconfig.Parameters.PublicSubnetIDs | []string | read-only "true"
AWS_K8S_TESTER_EKS_PARAMETERS_PRIVATE_SUBNET_IDS | *eksconfig.Parameters.PrivateSubnetIDs | []string | read-only "true"
AWS_K8S_TESTER_EKS_PARAMETERS_CONTROL_PLANE_SECURITY_GROUP_ID | *eksconfig.Parameters.ControlPlaneSecurityGroupID | string | read-only "true"
AWS_K8S_TESTER_EKS_PARAMETERS_VERSION | *eksconfig.Parameters.Version | string | read-only "false"
AWS_K8S_TESTER_EKS_PARAMETERS_VERSION_VALUE | *eksconfig.Parameters.VersionValue | float64 | read-only "true"
AWS_K8S_TESTER_EKS_PARAMETERS_ENCRYPTION_CMK_CREATE | *eksconfig.Parameters.EncryptionCMKCreate | bool | read-only "false"
AWS_K8S_TESTER_EKS_PARAMETERS_ENCRYPTION_CMK_ARN | *eksconfig.Parameters.EncryptionCMKARN | string | read-only "false"

AWS_K8S_TESTER_EKS_ADD_ON_NODE_GROUPS_ENABLE | *eksconfig.AddOnNodeGroups.Enable | bool | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_NODE_GROUPS_CREATED | *eksconfig.AddOnNodeGroups.Created | bool | read-only "true"
AWS_K8S_TESTER_EKS_ADD_ON_NODE_GROUPS_FETCH_LOGS | *eksconfig.AddOnNodeGroups.FetchLogs | bool | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_NODE_GROUPS_ROLE_NAME | *eksconfig.AddOnNodeGroups.RoleName | string | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_NODE_GROUPS_ROLE_CREATE | *eksconfig.AddOnNodeGroups.RoleCreate | bool | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_NODE_GROUPS_ROLE_ARN | *eksconfig.AddOnNodeGroups.RoleARN | string | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_NODE_GROUPS_ROLE_SERVICE_PRINCIPALS | *eksconfig.AddOnNodeGroups.RoleServicePrincipals | []string | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_NODE_GROUPS_ROLE_MANAGED_POLICY_ARNS | *eksconfig.AddOnNodeGroups.RoleManagedPolicyARNs | []string | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_NODE_GROUPS_ROLE_CFN_STACK_ID | *eksconfig.AddOnNodeGroups.RoleCFNStackID | string | read-only "true"
AWS_K8S_TESTER_EKS_ADD_ON_NODE_GROUPS_NODE_GROUP_SECURITY_GROUP_ID | *eksconfig.AddOnNodeGroups.NodeGroupSecurityGroupID | string | read-only "true"
AWS_K8S_TESTER_EKS_ADD_ON_NODE_GROUPS_NODE_GROUP_SECURITY_GROUP_CFN_STACK_ID | *eksconfig.AddOnNodeGroups.NodeGroupSecurityGroupCFNStackID | string | read-only "true"
AWS_K8S_TESTER_EKS_ADD_ON_NODE_GROUPS_LOGS_DIR | *eksconfig.AddOnNodeGroups.LogsDir | string | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_NODE_GROUPS_ASGS | *eksconfig.AddOnNodeGroups.ASGs | map[string]ec2config.ASG | read-only "false"

AWS_K8S_TESTER_EKS_ADD_ON_MANAGED_NODE_GROUPS_ENABLE | *eksconfig.AddOnManagedNodeGroups.Enable | bool | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_MANAGED_NODE_GROUPS_CREATED | *eksconfig.AddOnManagedNodeGroups.Created | bool | read-only "true"
AWS_K8S_TESTER_EKS_ADD_ON_MANAGED_NODE_GROUPS_CREATE_TOOK | *eksconfig.AddOnManagedNodeGroups.CreateTook | time.Duration | read-only "true"
AWS_K8S_TESTER_EKS_ADD_ON_MANAGED_NODE_GROUPS_CREATE_TOOK_STRING | *eksconfig.AddOnManagedNodeGroups.CreateTookString | string | read-only "true"
AWS_K8S_TESTER_EKS_ADD_ON_MANAGED_NODE_GROUPS_DELETE_TOOK | *eksconfig.AddOnManagedNodeGroups.DeleteTook | time.Duration | read-only "true"
AWS_K8S_TESTER_EKS_ADD_ON_MANAGED_NODE_GROUPS_DELETE_TOOK_STRING | *eksconfig.AddOnManagedNodeGroups.DeleteTookString | string | read-only "true"
AWS_K8S_TESTER_EKS_ADD_ON_MANAGED_NODE_GROUPS_FETCH_LOGS | *eksconfig.AddOnManagedNodeGroups.FetchLogs | bool | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_MANAGED_NODE_GROUPS_ROLE_NAME | *eksconfig.AddOnManagedNodeGroups.RoleName | string | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_MANAGED_NODE_GROUPS_ROLE_CREATE | *eksconfig.AddOnManagedNodeGroups.RoleCreate | bool | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_MANAGED_NODE_GROUPS_ROLE_ARN | *eksconfig.AddOnManagedNodeGroups.RoleARN | string | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_MANAGED_NODE_GROUPS_ROLE_SERVICE_PRINCIPALS | *eksconfig.AddOnManagedNodeGroups.RoleServicePrincipals | []string | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_MANAGED_NODE_GROUPS_ROLE_MANAGED_POLICY_ARNS | *eksconfig.AddOnManagedNodeGroups.RoleManagedPolicyARNs | []string | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_MANAGED_NODE_GROUPS_ROLE_CFN_STACK_ID | *eksconfig.AddOnManagedNodeGroups.RoleCFNStackID | string | read-only "true"
AWS_K8S_TESTER_EKS_ADD_ON_MANAGED_NODE_GROUPS_REQUEST_HEADER_KEY | *eksconfig.AddOnManagedNodeGroups.RequestHeaderKey | string | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_MANAGED_NODE_GROUPS_REQUEST_HEADER_VALUE | *eksconfig.AddOnManagedNodeGroups.RequestHeaderValue | string | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_MANAGED_NODE_GROUPS_RESOLVER_URL | *eksconfig.AddOnManagedNodeGroups.ResolverURL | string | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_MANAGED_NODE_GROUPS_SIGNING_NAME | *eksconfig.AddOnManagedNodeGroups.SigningName | string | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_MANAGED_NODE_GROUPS_LOGS_DIR | *eksconfig.AddOnManagedNodeGroups.LogsDir | string | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_MANAGED_NODE_GROUPS_MNGS | *eksconfig.AddOnManagedNodeGroups.MNGs | map[string]eksconfig.MNG | read-only "false"

AWS_K8S_TESTER_EKS_ADD_ON_NLB_HELLO_WORLD_ENABLE | *eksconfig.AddOnNLBHelloWorld.Enable | bool | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_NLB_HELLO_WORLD_CREATED | *eksconfig.AddOnNLBHelloWorld.Created | bool | read-only "true"
AWS_K8S_TESTER_EKS_ADD_ON_NLB_HELLO_WORLD_CREATE_TOOK | *eksconfig.AddOnNLBHelloWorld.CreateTook | time.Duration | read-only "true"
AWS_K8S_TESTER_EKS_ADD_ON_NLB_HELLO_WORLD_CREATE_TOOK_STRING | *eksconfig.AddOnNLBHelloWorld.CreateTookString | string | read-only "true"
AWS_K8S_TESTER_EKS_ADD_ON_NLB_HELLO_WORLD_DELETE_TOOK | *eksconfig.AddOnNLBHelloWorld.DeleteTook | time.Duration | read-only "true"
AWS_K8S_TESTER_EKS_ADD_ON_NLB_HELLO_WORLD_DELETE_TOOK_STRING | *eksconfig.AddOnNLBHelloWorld.DeleteTookString | string | read-only "true"
AWS_K8S_TESTER_EKS_ADD_ON_NLB_HELLO_WORLD_DEPLOYMENT_REPLICAS | *eksconfig.AddOnNLBHelloWorld.DeploymentReplicas | int32 | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_NLB_HELLO_WORLD_NAMESPACE | *eksconfig.AddOnNLBHelloWorld.Namespace | string | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_NLB_HELLO_WORLD_NLB_ARN | *eksconfig.AddOnNLBHelloWorld.NLBARN | string | read-only "true"
AWS_K8S_TESTER_EKS_ADD_ON_NLB_HELLO_WORLD_NLB_NAME | *eksconfig.AddOnNLBHelloWorld.NLBName | string | read-only "true"
AWS_K8S_TESTER_EKS_ADD_ON_NLB_HELLO_WORLD_URL | *eksconfig.AddOnNLBHelloWorld.URL | string | read-only "true"

AWS_K8S_TESTER_EKS_ADD_ON_ALB_2048_ENABLE | *eksconfig.AddOnALB2048.Enable | bool | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_ALB_2048_CREATED | *eksconfig.AddOnALB2048.Created | bool | read-only "true"
AWS_K8S_TESTER_EKS_ADD_ON_ALB_2048_CREATE_TOOK | *eksconfig.AddOnALB2048.CreateTook | time.Duration | read-only "true"
AWS_K8S_TESTER_EKS_ADD_ON_ALB_2048_CREATE_TOOK_STRING | *eksconfig.AddOnALB2048.CreateTookString | string | read-only "true"
AWS_K8S_TESTER_EKS_ADD_ON_ALB_2048_DELETE_TOOK | *eksconfig.AddOnALB2048.DeleteTook | time.Duration | read-only "true"
AWS_K8S_TESTER_EKS_ADD_ON_ALB_2048_DELETE_TOOK_STRING | *eksconfig.AddOnALB2048.DeleteTookString | string | read-only "true"
AWS_K8S_TESTER_EKS_ADD_ON_ALB_2048_NAMESPACE | *eksconfig.AddOnALB2048.Namespace | string | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_ALB_2048_DEPLOYMENT_REPLICAS_ALB | *eksconfig.AddOnALB2048.DeploymentReplicasALB | int32 | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_ALB_2048_DEPLOYMENT_REPLICAS_2048 | *eksconfig.AddOnALB2048.DeploymentReplicas2048 | int32 | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_ALB_2048_ALB_ARN | *eksconfig.AddOnALB2048.ALBARN | string | read-only "true"
AWS_K8S_TESTER_EKS_ADD_ON_ALB_2048_ALB_NAME | *eksconfig.AddOnALB2048.ALBName | string | read-only "true"
AWS_K8S_TESTER_EKS_ADD_ON_ALB_2048_URL | *eksconfig.AddOnALB2048.URL | string | read-only "true"

AWS_K8S_TESTER_EKS_ADD_ON_JOB_PI_ENABLE | *eksconfig.AddOnJobPi.Enable | bool | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_JOB_PI_CREATED | *eksconfig.AddOnJobPi.Created | bool | read-only "true"
AWS_K8S_TESTER_EKS_ADD_ON_JOB_PI_CREATE_TOOK | *eksconfig.AddOnJobPi.CreateTook | time.Duration | read-only "true"
AWS_K8S_TESTER_EKS_ADD_ON_JOB_PI_CREATE_TOOK_STRING | *eksconfig.AddOnJobPi.CreateTookString | string | read-only "true"
AWS_K8S_TESTER_EKS_ADD_ON_JOB_PI_DELETE_TOOK | *eksconfig.AddOnJobPi.DeleteTook | time.Duration | read-only "true"
AWS_K8S_TESTER_EKS_ADD_ON_JOB_PI_DELETE_TOOK_STRING | *eksconfig.AddOnJobPi.DeleteTookString | string | read-only "true"
AWS_K8S_TESTER_EKS_ADD_ON_JOB_PI_NAMESPACE | *eksconfig.AddOnJobPi.Namespace | string | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_JOB_PI_COMPLETES | *eksconfig.AddOnJobPi.Completes | int | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_JOB_PI_PARALLELS | *eksconfig.AddOnJobPi.Parallels | int | read-only "false"

AWS_K8S_TESTER_EKS_ADD_ON_JOB_ECHO_ENABLE | *eksconfig.AddOnJobEcho.Enable | bool | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_JOB_ECHO_CREATED | *eksconfig.AddOnJobEcho.Created | bool | read-only "true"
AWS_K8S_TESTER_EKS_ADD_ON_JOB_ECHO_CREATE_TOOK | *eksconfig.AddOnJobEcho.CreateTook | time.Duration | read-only "true"
AWS_K8S_TESTER_EKS_ADD_ON_JOB_ECHO_CREATE_TOOK_STRING | *eksconfig.AddOnJobEcho.CreateTookString | string | read-only "true"
AWS_K8S_TESTER_EKS_ADD_ON_JOB_ECHO_DELETE_TOOK | *eksconfig.AddOnJobEcho.DeleteTook | time.Duration | read-only "true"
AWS_K8S_TESTER_EKS_ADD_ON_JOB_ECHO_DELETE_TOOK_STRING | *eksconfig.AddOnJobEcho.DeleteTookString | string | read-only "true"
AWS_K8S_TESTER_EKS_ADD_ON_JOB_ECHO_NAMESPACE | *eksconfig.AddOnJobEcho.Namespace | string | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_JOB_ECHO_COMPLETES | *eksconfig.AddOnJobEcho.Completes | int | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_JOB_ECHO_PARALLELS | *eksconfig.AddOnJobEcho.Parallels | int | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_JOB_ECHO_ECHO_SIZE | *eksconfig.AddOnJobEcho.EchoSize | int | read-only "false"

AWS_K8S_TESTER_EKS_ADD_ON_CRON_JOB_ENABLE | *eksconfig.AddOnCronJob.Enable | bool | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_CRON_JOB_CREATED | *eksconfig.AddOnCronJob.Created | bool | read-only "true"
AWS_K8S_TESTER_EKS_ADD_ON_CRON_JOB_CREATE_TOOK | *eksconfig.AddOnCronJob.CreateTook | time.Duration | read-only "true"
AWS_K8S_TESTER_EKS_ADD_ON_CRON_JOB_CREATE_TOOK_STRING | *eksconfig.AddOnCronJob.CreateTookString | string | read-only "true"
AWS_K8S_TESTER_EKS_ADD_ON_CRON_JOB_DELETE_TOOK | *eksconfig.AddOnCronJob.DeleteTook | time.Duration | read-only "true"
AWS_K8S_TESTER_EKS_ADD_ON_CRON_JOB_DELETE_TOOK_STRING | *eksconfig.AddOnCronJob.DeleteTookString | string | read-only "true"
AWS_K8S_TESTER_EKS_ADD_ON_CRON_JOB_NAMESPACE | *eksconfig.AddOnCronJob.Namespace | string | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_CRON_JOB_SCHEDULE | *eksconfig.AddOnCronJob.Schedule | string | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_CRON_JOB_COMPLETES | *eksconfig.AddOnCronJob.Completes | int | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_CRON_JOB_PARALLELS | *eksconfig.AddOnCronJob.Parallels | int | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_CRON_JOB_SUCCESSFUL_JOBS_HISTORY_LIMIT | *eksconfig.AddOnCronJob.SuccessfulJobsHistoryLimit | int32 | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_CRON_JOB_FAILED_JOBS_HISTORY_LIMIT | *eksconfig.AddOnCronJob.FailedJobsHistoryLimit | int32 | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_CRON_JOB_ECHO_SIZE | *eksconfig.AddOnCronJob.EchoSize | int | read-only "false"

AWS_K8S_TESTER_EKS_ADD_ON_SECRETS_ENABLE | *eksconfig.AddOnSecrets.Enable | bool | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_SECRETS_CREATED | *eksconfig.AddOnSecrets.Created | bool | read-only "true"
AWS_K8S_TESTER_EKS_ADD_ON_SECRETS_CREATE_TOOK | *eksconfig.AddOnSecrets.CreateTook | time.Duration | read-only "true"
AWS_K8S_TESTER_EKS_ADD_ON_SECRETS_CREATE_TOOK_STRING | *eksconfig.AddOnSecrets.CreateTookString | string | read-only "true"
AWS_K8S_TESTER_EKS_ADD_ON_SECRETS_DELETE_TOOK | *eksconfig.AddOnSecrets.DeleteTook | time.Duration | read-only "true"
AWS_K8S_TESTER_EKS_ADD_ON_SECRETS_DELETE_TOOK_STRING | *eksconfig.AddOnSecrets.DeleteTookString | string | read-only "true"
AWS_K8S_TESTER_EKS_ADD_ON_SECRETS_NAMESPACE | *eksconfig.AddOnSecrets.Namespace | string | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_SECRETS_OBJECTS | *eksconfig.AddOnSecrets.Objects | int | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_SECRETS_SIZE | *eksconfig.AddOnSecrets.Size | int | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_SECRETS_SECRET_QPS | *eksconfig.AddOnSecrets.SecretQPS | uint | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_SECRETS_SECRET_BURST | *eksconfig.AddOnSecrets.SecretBurst | uint | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_SECRETS_CREATED_SECRET_NAMES | *eksconfig.AddOnSecrets.CreatedSecretNames | []string | read-only "true"
AWS_K8S_TESTER_EKS_ADD_ON_SECRETS_POD_QPS | *eksconfig.AddOnSecrets.PodQPS | uint | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_SECRETS_POD_BURST | *eksconfig.AddOnSecrets.PodBurst | uint | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_SECRETS_CREATED_POD_NAMES | *eksconfig.AddOnSecrets.CreatedPodNames | []string | read-only "true"
AWS_K8S_TESTER_EKS_ADD_ON_SECRETS_WRITES_RESULT_PATH | *eksconfig.AddOnSecrets.WritesResultPath | string | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_SECRETS_READS_RESULT_PATH | *eksconfig.AddOnSecrets.ReadsResultPath | string | read-only "false"

AWS_K8S_TESTER_EKS_ADD_ON_IRSA_ENABLE | *eksconfig.AddOnIRSA.Enable | bool | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_IRSA_CREATED | *eksconfig.AddOnIRSA.Created | bool | read-only "true"
AWS_K8S_TESTER_EKS_ADD_ON_IRSA_CREATE_TOOK | *eksconfig.AddOnIRSA.CreateTook | time.Duration | read-only "true"
AWS_K8S_TESTER_EKS_ADD_ON_IRSA_CREATE_TOOK_STRING | *eksconfig.AddOnIRSA.CreateTookString | string | read-only "true"
AWS_K8S_TESTER_EKS_ADD_ON_IRSA_DELETE_TOOK | *eksconfig.AddOnIRSA.DeleteTook | time.Duration | read-only "true"
AWS_K8S_TESTER_EKS_ADD_ON_IRSA_DELETE_TOOK_STRING | *eksconfig.AddOnIRSA.DeleteTookString | string | read-only "true"
AWS_K8S_TESTER_EKS_ADD_ON_IRSA_NAMESPACE | *eksconfig.AddOnIRSA.Namespace | string | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_IRSA_ROLE_NAME | *eksconfig.AddOnIRSA.RoleName | string | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_IRSA_ROLE_ARN | *eksconfig.AddOnIRSA.RoleARN | string | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_IRSA_ROLE_MANAGED_POLICY_ARNS | *eksconfig.AddOnIRSA.RoleManagedPolicyARNs | []string | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_IRSA_ROLE_CFN_STACK_ID | *eksconfig.AddOnIRSA.RoleCFNStackID | string | read-only "true"
AWS_K8S_TESTER_EKS_ADD_ON_IRSA_SERVICE_ACCOUNT_NAME | *eksconfig.AddOnIRSA.ServiceAccountName | string | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_IRSA_CONFIG_MAP_NAME | *eksconfig.AddOnIRSA.ConfigMapName | string | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_IRSA_CONFIG_MAP_SCRIPT_FILE_NAME | *eksconfig.AddOnIRSA.ConfigMapScriptFileName | string | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_IRSA_S3_KEY | *eksconfig.AddOnIRSA.S3Key | string | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_IRSA_DEPLOYMENT_NAME | *eksconfig.AddOnIRSA.DeploymentName | string | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_IRSA_DEPLOYMENT_REPLICAS | *eksconfig.AddOnIRSA.DeploymentReplicas | int32 | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_IRSA_DEPLOYMENT_RESULT_PATH | *eksconfig.AddOnIRSA.DeploymentResultPath | string | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_IRSA_DEPLOYMENT_TOOK | *eksconfig.AddOnIRSA.DeploymentTook | time.Duration | read-only "true"
AWS_K8S_TESTER_EKS_ADD_ON_IRSA_DEPLOYMENT_TOOK_STRING | *eksconfig.AddOnIRSA.DeploymentTookString | string | read-only "true"

AWS_K8S_TESTER_EKS_ADD_ON_FARGATE_ENABLE | *eksconfig.AddOnFargate.Enable | bool | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_FARGATE_CREATED | *eksconfig.AddOnFargate.Created | bool | read-only "true"
AWS_K8S_TESTER_EKS_ADD_ON_FARGATE_CREATE_TOOK | *eksconfig.AddOnFargate.CreateTook | time.Duration | read-only "true"
AWS_K8S_TESTER_EKS_ADD_ON_FARGATE_CREATE_TOOK_STRING | *eksconfig.AddOnFargate.CreateTookString | string | read-only "true"
AWS_K8S_TESTER_EKS_ADD_ON_FARGATE_DELETE_TOOK | *eksconfig.AddOnFargate.DeleteTook | time.Duration | read-only "true"
AWS_K8S_TESTER_EKS_ADD_ON_FARGATE_DELETE_TOOK_STRING | *eksconfig.AddOnFargate.DeleteTookString | string | read-only "true"
AWS_K8S_TESTER_EKS_ADD_ON_FARGATE_NAMESPACE | *eksconfig.AddOnFargate.Namespace | string | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_FARGATE_ROLE_NAME | *eksconfig.AddOnFargate.RoleName | string | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_FARGATE_ROLE_CREATE | *eksconfig.AddOnFargate.RoleCreate | bool | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_FARGATE_ROLE_ARN | *eksconfig.AddOnFargate.RoleARN | string | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_FARGATE_ROLE_SERVICE_PRINCIPALS | *eksconfig.AddOnFargate.RoleServicePrincipals | []string | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_FARGATE_ROLE_MANAGED_POLICY_ARNS | *eksconfig.AddOnFargate.RoleManagedPolicyARNs | []string | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_FARGATE_ROLE_CFN_STACK_ID | *eksconfig.AddOnFargate.RoleCFNStackID | string | read-only "true"
AWS_K8S_TESTER_EKS_ADD_ON_FARGATE_PROFILE_NAME | *eksconfig.AddOnFargate.ProfileName | string | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_FARGATE_SECRET_NAME | *eksconfig.AddOnFargate.SecretName | string | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_FARGATE_POD_NAME | *eksconfig.AddOnFargate.PodName | string | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_FARGATE_CONTAINER_NAME | *eksconfig.AddOnFargate.ContainerName | string | read-only "false"

AWS_K8S_TESTER_EKS_ADD_ON_APP_MESH_ENABLE | *eksconfig.AddOnAppMesh.Enable | bool | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_APP_MESH_NAMESPACE | *eksconfig.AddOnAppMesh.Namespace | string | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_APP_MESH_CONTROLLER_IMAGE | *eksconfig.AddOnAppMesh.ControllerImage | string | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_APP_MESH_INJECTOR_IMAGE | *eksconfig.AddOnAppMesh.InjectorImage | string | read-only "false"
AWS_K8S_TESTER_EKS_ADD_ON_APP_MESH_CREATED | *eksconfig.AddOnAppMesh.Created | bool | read-only "true"
AWS_K8S_TESTER_EKS_ADD_ON_APP_MESH_CREATE_TOOK | *eksconfig.AddOnAppMesh.CreateTook | time.Duration | read-only "true"
AWS_K8S_TESTER_EKS_ADD_ON_APP_MESH_CREATE_TOOK_STRING | *eksconfig.AddOnAppMesh.CreateTookString | string | read-only "true"
AWS_K8S_TESTER_EKS_ADD_ON_APP_MESH_DELETE_TOOK | *eksconfig.AddOnAppMesh.DeleteTook | time.Duration | read-only "true"
AWS_K8S_TESTER_EKS_ADD_ON_APP_MESH_DELETE_TOOK_STRING | *eksconfig.AddOnAppMesh.DeleteTookString | string | read-only "true"
AWS_K8S_TESTER_EKS_ADD_ON_APP_MESH_ADD_ON_CFN_STACK_ARN | *eksconfig.AddOnAppMesh.AddOnCFNStackARN | string | read-only "true"

Documentation

Overview

Package eksconfig defines EKS test configuration.

Index

Constants

View Source
const (
	// 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 = 100

	// 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
)
View Source
const (
	// EnvironmentVariablePrefix is the environment variable prefix used for "eksconfig".
	EnvironmentVariablePrefix = "AWS_K8S_TESTER_EKS_"
	// EnvironmentVariablePrefixParameters is the environment variable prefix used for "eksconfig".
	EnvironmentVariablePrefixParameters = "AWS_K8S_TESTER_EKS_PARAMETERS_"
	// EnvironmentVariablePrefixAddOnNodeGroups is the environment variable prefix used for "eksconfig".
	EnvironmentVariablePrefixAddOnNodeGroups = "AWS_K8S_TESTER_EKS_ADD_ON_NODE_GROUPS_"
	// EnvironmentVariablePrefixAddOnManagedNodeGroups is the environment variable prefix used for "eksconfig".
	EnvironmentVariablePrefixAddOnManagedNodeGroups = "AWS_K8S_TESTER_EKS_ADD_ON_MANAGED_NODE_GROUPS_"
	// EnvironmentVariablePrefixAddOnNLBHelloWorld is the environment variable prefix used for "eksconfig".
	EnvironmentVariablePrefixAddOnNLBHelloWorld = "AWS_K8S_TESTER_EKS_ADD_ON_NLB_HELLO_WORLD_"
	// EnvironmentVariablePrefixAddOnALB2048 is the environment variable prefix used for "eksconfig".
	EnvironmentVariablePrefixAddOnALB2048 = "AWS_K8S_TESTER_EKS_ADD_ON_ALB_2048_"
	// EnvironmentVariablePrefixAddOnJobPi is the environment variable prefix used for "eksconfig".
	EnvironmentVariablePrefixAddOnJobPi = "AWS_K8S_TESTER_EKS_ADD_ON_JOB_PI_"
	// EnvironmentVariablePrefixAddOnJobEcho is the environment variable prefix used for "eksconfig".
	EnvironmentVariablePrefixAddOnJobEcho = "AWS_K8S_TESTER_EKS_ADD_ON_JOB_ECHO_"
	// EnvironmentVariablePrefixAddOnCronJob is the environment variable prefix used for "eksconfig".
	EnvironmentVariablePrefixAddOnCronJob = "AWS_K8S_TESTER_EKS_ADD_ON_CRON_JOB_"
	// EnvironmentVariablePrefixAddOnSecrets is the environment variable prefix used for "eksconfig".
	EnvironmentVariablePrefixAddOnSecrets = "AWS_K8S_TESTER_EKS_ADD_ON_SECRETS_"
	// EnvironmentVariablePrefixAddOnIRSA is the environment variable prefix used for "eksconfig".
	EnvironmentVariablePrefixAddOnIRSA = "AWS_K8S_TESTER_EKS_ADD_ON_IRSA_"
	// EnvironmentVariablePrefixAddOnFargate is the environment variable prefix used for "eksconfig".
	EnvironmentVariablePrefixAddOnFargate = "AWS_K8S_TESTER_EKS_ADD_ON_FARGATE_"
	// EnvironmentVariablePrefixAddOnAppMesh is the environment variable prefix used for "eksconfig".
	EnvironmentVariablePrefixAddOnAppMesh = "AWS_K8S_TESTER_EKS_ADD_ON_APP_MESH_"
)
View Source
const (
	// AMITypeBottleRocketCPU is the default AMI type for Bottlerocket OS.
	// https://github.com/bottlerocket-os/bottlerocket
	AMITypeBottleRocketCPU = "BOTTLEROCKET_x86_64"
)
View Source
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

Variables

View Source
var DefaultConfig = Config{

	ConfigPath:                "",
	KubectlCommandsOutputPath: "",
	KubeConfigPath:            "",
	Name:                      "",
	AWSCLIPath:                "",

	Region: "us-west-2",

	LogLevel: logutil.DefaultLogLevel,

	LogOutputs: []string{"stderr"},

	KubectlDownloadURL: "https://storage.googleapis.com/kubernetes-release/release/v1.15.11/bin/linux/amd64/kubectl",
	KubectlPath:        "/tmp/kubectl-test-1.15.11",

	OnFailureDelete:            true,
	OnFailureDeleteWaitSeconds: 120,

	S3BucketName:                    "",
	S3BucketCreate:                  false,
	S3BucketLifecycleExpirationDays: 0,

	Parameters: &Parameters{
		RoleCreate:          true,
		VPCCreate:           true,
		SigningName:         "eks",
		Version:             "1.15",
		EncryptionCMKCreate: true,
	},

	RemoteAccessKeyCreate: true,

	RemoteAccessPrivateKeyPath: filepath.Join(homedir.HomeDir(), ".ssh", "kube_aws_rsa"),

	AddOnNodeGroups: &AddOnNodeGroups{
		Enable:     false,
		FetchLogs:  true,
		RoleCreate: true,
		LogsDir:    "",
	},
	AddOnManagedNodeGroups: &AddOnManagedNodeGroups{
		Enable:      false,
		FetchLogs:   true,
		SigningName: "eks",
		RoleCreate:  true,
		LogsDir:     "",
	},

	AddOnNLBHelloWorld: &AddOnNLBHelloWorld{
		Enable:             false,
		DeploymentReplicas: 3,
	},

	AddOnALB2048: &AddOnALB2048{
		Enable:                 false,
		DeploymentReplicasALB:  3,
		DeploymentReplicas2048: 3,
	},

	AddOnJobPi: &AddOnJobPi{
		Enable:    false,
		Completes: 30,
		Parallels: 10,
	},

	AddOnJobEcho: &AddOnJobEcho{
		Enable:    false,
		Completes: 10,
		Parallels: 10,
		EchoSize:  100 * 1024,
	},

	AddOnCronJob: &AddOnCronJob{
		Enable:                     false,
		Schedule:                   "*/10 * * * *",
		Completes:                  10,
		Parallels:                  10,
		SuccessfulJobsHistoryLimit: 3,
		FailedJobsHistoryLimit:     1,
		EchoSize:                   100 * 1024,
	},

	AddOnSecrets: &AddOnSecrets{
		Enable:      false,
		Objects:     10,
		Size:        10 * 1024,
		SecretQPS:   1,
		SecretBurst: 1,
		PodQPS:      100,
		PodBurst:    5,
	},

	AddOnIRSA: &AddOnIRSA{
		Enable:             false,
		DeploymentReplicas: 10,
	},

	AddOnFargate: &AddOnFargate{
		Enable:     false,
		RoleCreate: true,
	},

	AddOnAppMesh: &AddOnAppMesh{
		Enable: false,
	},

	Status: &Status{Up: false},
}

DefaultConfig is the 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

MAKE SURE TO SYNC THE DEFAULT VALUES in "eks" templates

Functions

This section is empty.

Types

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 "ALB" 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"`

	// Namespace is the namespace to create "AppMesh" controller/injector.
	Namespace string `json:"namespace"`

	// The image of appMesh controller
	ControllerImage string `json:"controller-image"`

	// The image of appMesh injector
	InjectorImage string `json:"injector-image"`

	// 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"`

	// AddOnStackARN is the arn of cloudFormation to create the resource.
	AddOnCFNStackARN string `json:"add-on-cfn-stack-arn,omitempty" read-only:"true"`
}

AddOnAppMesh defines parameters for EKS cluster add-on "EKS App Mesh Integration".

type AddOnCronJob added in v0.7.2

type AddOnCronJob 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 "Job" 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"`
}

AddOnCronJob 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 "Secret" and "Pod" 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 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 "Secret" and "Pod" 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 AddOnJobEcho added in v0.5.0

type AddOnJobEcho 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 "Job" 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"`
}

AddOnJobEcho defines parameters for EKS cluster add-on Job with echo.

type AddOnJobPi added in v0.7.2

type AddOnJobPi 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 "Job" 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"`
}

AddOnJobPi defines parameters for EKS cluster add-on Job with Perl.

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".
	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"`

	// DeploymentReplicas is the number of replicas to deploy using "Deployment" object.
	DeploymentReplicas int32 `json:"deployment-replicas"`
	// Namespace is the namespace to create "NLB" objects in.
	Namespace string `json:"namespace"`

	// 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".
	ASGs map[string]ec2config.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 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 "Secret" and "Pod" 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"`

	// SecretQPS is the number of "Secret" create requests to send
	// per second. Requests may be throttled by kube-apiserver.
	// Default rate limits from kube-apiserver are:
	// FLAG: --max-mutating-requests-inflight="200"
	// FLAG: --max-requests-inflight="400"
	SecretQPS uint `json:"secret-qps"`
	// SecretBurst is the number of "Secret" create requests that
	// a client can make in excess of the rate specified by the limiter.
	// Requests may be throttled by kube-apiserver.
	// Default rate limits from kube-apiserver are:
	// FLAG: --max-mutating-requests-inflight="200"
	// FLAG: --max-requests-inflight="400"
	SecretBurst uint `json:"secret-burst"`
	// CreatedSecretNames is the list of created "Secret" object names.
	CreatedSecretNames []string `json:"created-secret-names" read-only:"true"`

	// PodQPS is the number of "Pod" create requests to send
	// per second. Requests may be throttled by kube-apiserver.
	// Default rate limits from kube-apiserver are:
	// FLAG: --max-mutating-requests-inflight="200"
	// FLAG: --max-requests-inflight="400"
	PodQPS uint `json:"pod-qps"`
	// PodBurst is the number of "Pod" create requests that
	// a client can make in excess of the rate specified by the limiter.
	// Requests may be throttled by kube-apiserver.
	// Default rate limits from kube-apiserver are:
	// FLAG: --max-mutating-requests-inflight="200"
	// FLAG: --max-requests-inflight="400"
	PodBurst uint `json:"pod-burst"`
	// 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 ClusterStatus added in v0.6.5

type ClusterStatus struct {
	Time   time.Time `json:"time"`
	Status string    `json:"status"`
}

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.
	CommandAfterCreateCluster           string `json:"command-after-create-cluster,omitempty"`
	CommandAfterCreateClusterOutputPath string `json:"command-after-create-cluster-output-path,omitempty" read-only:"true"`
	// CommandAfterCreateAddOns is the command to execute after creating clusters and add-ons.
	CommandAfterCreateAddOns           string `json:"command-after-create-add-ons,omitempty"`
	CommandAfterCreateAddOnsOutputPath string `json:"command-after-create-add-ons-output-path,omitempty" read-only:"true"`

	// S3BucketName is the name of cluster S3.
	S3BucketName string `json:"s3-bucket-name"`
	// S3BucketCreate is true to auto-create S3 bucket.
	S3BucketCreate bool `json:"s3-bucket-create"`
	// 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"`

	// 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"`

	// 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"`
	// AddOnJobPi defines parameters for EKS cluster
	// add-on Job with pi Perl command.
	AddOnJobPi *AddOnJobPi `json:"add-on-job-pi,omitempty"`
	// AddOnJobEcho defines parameters for EKS cluster
	// add-on Job with echo.
	AddOnJobEcho *AddOnJobEcho `json:"add-on-job-echo,omitempty"`
	// AddOnCronJob defines parameters for EKS cluster
	// add-on with CronJob.
	AddOnCronJob *AddOnCronJob `json:"add-on-cron-job,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"`
	// AddOnAppMesh defines parameters for EKS cluster
	// add-on "EKS App Mesh Integration".
	AddOnAppMesh *AddOnAppMesh `json:"add-on-app-mesh,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

func Load(p string) (cfg *Config, err error)

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 copy of the default configuration.

func (*Config) IsEnabledAddOnALB2048 added in v0.7.5

func (cfg *Config) IsEnabledAddOnALB2048() bool

IsEnabledAddOnALB2048 returns true if "AddOnALB2048" is enabled. Otherwise, nil the field for "omitempty".

func (*Config) IsEnabledAddOnAppMesh added in v0.7.5

func (cfg *Config) IsEnabledAddOnAppMesh() bool

IsEnabledAddOnAppMesh returns true if "AddOnAppMesh" is enabled. Otherwise, nil the field for "omitempty".

func (*Config) IsEnabledAddOnCronJob added in v0.7.5

func (cfg *Config) IsEnabledAddOnCronJob() bool

IsEnabledAddOnCronJob returns true if "AddOnCronJob" is enabled. Otherwise, nil the field for "omitempty".

func (*Config) IsEnabledAddOnFargate added in v0.7.5

func (cfg *Config) IsEnabledAddOnFargate() bool

IsEnabledAddOnFargate returns true if "AddOnFargate" is enabled. Otherwise, nil the field for "omitempty".

func (*Config) IsEnabledAddOnIRSA added in v0.7.5

func (cfg *Config) IsEnabledAddOnIRSA() bool

IsEnabledAddOnIRSA returns true if "AddOnIRSA" is enabled. Otherwise, nil the field for "omitempty".

func (*Config) IsEnabledAddOnJobEcho added in v0.7.5

func (cfg *Config) IsEnabledAddOnJobEcho() bool

IsEnabledAddOnJobEcho returns true if "AddOnJobEcho" is enabled. Otherwise, nil the field for "omitempty".

func (*Config) IsEnabledAddOnJobPi added in v0.7.5

func (cfg *Config) IsEnabledAddOnJobPi() bool

IsEnabledAddOnJobPi returns true if "AddOnJobPi" is enabled. Otherwise, nil the field for "omitempty".

func (*Config) IsEnabledAddOnManagedNodeGroups added in v0.7.5

func (cfg *Config) IsEnabledAddOnManagedNodeGroups() bool

IsEnabledAddOnManagedNodeGroups returns true if "AddOnManagedNodeGroups" is enabled. Otherwise, nil the field for "omitempty".

func (*Config) IsEnabledAddOnNLBHelloWorld added in v0.7.5

func (cfg *Config) IsEnabledAddOnNLBHelloWorld() bool

IsEnabledAddOnNLBHelloWorld returns true if "AddOnNLBHelloWorld" is enabled. Otherwise, nil the field for "omitempty".

func (*Config) IsEnabledAddOnNodeGroups added in v0.7.5

func (cfg *Config) IsEnabledAddOnNodeGroups() bool

IsEnabledAddOnNodeGroups returns true if "AddOnNodeGroups" is enabled. Otherwise, nil the field for "omitempty".

func (*Config) IsEnabledAddOnSecrets added in v0.7.5

func (cfg *Config) IsEnabledAddOnSecrets() bool

IsEnabledAddOnSecrets returns true if "AddOnSecrets" is enabled. Otherwise, nil the field for "omitempty".

func (*Config) KubectlCommand added in v0.5.8

func (cfg *Config) KubectlCommand() string

KubectlCommand returns the kubectl command.

func (*Config) KubectlCommands

func (cfg *Config) KubectlCommands() (s string)

KubectlCommands returns the various kubectl commands.

func (*Config) RecordStatus added in v0.6.5

func (cfg *Config) RecordStatus(status string)

RecordStatus records cluster status.

func (*Config) SSHCommands

func (cfg *Config) SSHCommands() string

SSHCommands returns the SSH commands.

func (*Config) Sync

func (cfg *Config) Sync() (err error)

Sync persists current configuration and states to disk.

func (*Config) UpdateFromEnvs

func (cfg *Config) UpdateFromEnvs() (err error)

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

func (cfg *Config) ValidateAndSetDefaults() error

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.

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"`
	// 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
	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"`
	// 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"`
	// PhysicalID is the Physical ID for the created "AWS::EKS::Nodegroup".
	PhysicalID string `json:"physical-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"`
	// ControlPlaneSecurityGroupID is the security group ID for the cluster control
	// plane communication with worker nodes.
	ControlPlaneSecurityGroupID string `json:"control-plane-security-group-id" read-only:"true"`

	// 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"`

	// 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"`
	// 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.

Directories

Path Synopsis
gen generates eksconfig documentation.
gen generates eksconfig documentation.

Jump to

Keyboard shortcuts

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