aws-k8s-tester

module
v0.0.1-lastknown Latest Latest
Warning

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

Go to latest
Published: Jan 31, 2020 License: Apache-2.0

README

WARNING: Pre-alpha. Do not use this in production. Only for testing.

aws-k8s-tester

Go Report Card Godoc Releases LICENSE

aws-k8s-tester eks

Make sure AWS credential is located in your machine:

cat ~/.aws/credentials

# confirm credential is valid
aws s3 ls

To install:

cd ${GOPATH}/src/github.com/aws/aws-k8s-tester
go install -v ./cmd/aws-k8s-tester
aws-k8s-tester eks create cluster -h
aws-k8s-tester eks create config --path ./aws-k8s-tester-eks.yaml

# change default configurations
vi ./aws-k8s-tester-eks.yaml

If run locally, make sure to change private key path to:

-worker-node-private-key-path: /Users/leegyuho/.ssh/kube_aws_rsa
+worker-node-private-key-path: /tmp/aws-k8s-tester-eks-worker-node.insecure.private.key

Otherwise,

{"level":"warn","ts":"2019-08-14T14:14:19.938-0700","caller":"eks/eks.go:347","msg":"failed to create EKS, reverting","error":"open /Users/leegyuho/.ssh/kube_aws_rsa: permission denied"}

(aws-k8s-tester automatically detects OS to change the default value)

Now, let's create an EKS cluster:

aws-k8s-tester eks create cluster --path ./aws-k8s-tester-eks.yaml

This will create an EKS cluster with a worker node (takes about 20 minutes).

Once cluster is created, check cluster state using AWS CLI:

aws eks describe-cluster \
  --name a8-eks-190225-nqsht \
  --query cluster.status

"ACTIVE"

Cluster states are persisted on disk as well. EKS tester uses this file to track status.

cat ./aws-k8s-tester-eks.yaml

# or
less +FG ./aws-k8s-tester-eks.yaml

Tear down the cluster (takes about 10 minutes):

aws-k8s-tester eks delete cluster --path ./aws-k8s-tester-eks.yaml
aws-k8s-tester eks e2e tests

To test locally:

# set "AWS_K8S_TESTER_EKS_TAG" to avoid S3 bucket conflicts
# or just disable log uploads with "AWS_K8S_TESTER_EKS_UPLOAD_TESTER_LOGS=false"
cd ${GOPATH}/src/github.com/aws/aws-k8s-tester

# use darwin to run local tests on Mac
AWS_K8S_TESTER_EKS_KUBECTL_DOWNLOAD_URL=https://amazon-eks.s3-us-west-2.amazonaws.com/1.13.7/2019-06-11/bin/$(go env GOOS)/amd64/kubectl \
  AWS_K8S_TESTER_EKS_KUBECONFIG_PATH=/tmp/aws-k8s-tester/kubeconfig \
  AWS_K8S_TESTER_EKS_AWS_IAM_AUTHENTICATOR_DOWNLOAD_URL=https://amazon-eks.s3-us-west-2.amazonaws.com/1.13.7/2019-06-11/bin/$(go env GOOS)/amd64/aws-iam-authenticator \
  AWS_K8S_TESTER_EKS_KUBERNETES_VERSION=1.13 \
  AWS_K8S_TESTER_EKS_WAIT_BEFORE_DOWN=1m \
  AWS_K8S_TESTER_EKS_DOWN=true \
  AWS_K8S_TESTER_EKS_ENABLE_WORKER_NODE_HA=true \
  AWS_K8S_TESTER_EKS_ENABLE_NODE_SSH=true \
  AWS_K8S_TESTER_EKS_ENABLE_WORKER_NODE_PRIVILEGED_PORT_ACCESS=true \
  AWS_K8S_TESTER_EKS_LOG_ACCESS=false \
  AWS_K8S_TESTER_EKS_UPLOAD_TESTER_LOGS=false \
  AWS_K8S_TESTER_EKS_UPLOAD_WORKER_NODE_LOGS=false \
  AWS_K8S_TESTER_EKS_WORKER_NODE_PRIVATE_KEY_PATH=~/.ssh/kube_aws_rsa \
  AWS_K8S_TESTER_EKS_WORKER_NODE_AMI=ami-03a55127c613349a7 \
  AWS_K8S_TESTER_EKS_WORKER_NODE_INSTANCE_TYPE=m3.xlarge \
  AWS_K8S_TESTER_EKS_WORKER_NODE_ASG_MIN=1 \
  AWS_K8S_TESTER_EKS_WORKER_NODE_ASG_MAX=1 \
  AWS_K8S_TESTER_EKS_WORKER_NODE_ASG_DESIRED_CAPACITY=1 \
  ./tests/ginkgo.sh

Directories

Path Synopsis
cmd
aws-k8s-tester
aws-k8s-tester is a set of AWS test commands.
aws-k8s-tester is a set of AWS test commands.
aws-k8s-tester/csi
Package csi implements CSI related commands.
Package csi implements CSI related commands.
aws-k8s-tester/ec2
Package ec2 implements EC2 related commands.
Package ec2 implements EC2 related commands.
aws-k8s-tester/ecr
Package ecr implements ECR related commands.
Package ecr implements ECR related commands.
aws-k8s-tester/eks
Package eks implements EKS related commands.
Package eks implements EKS related commands.
aws-k8s-tester/etcd
Package etcd implements etcd commands.
Package etcd implements etcd commands.
aws-k8s-tester/version
Package version implements version command.
Package version implements version command.
Package ec2config defines EC2 configuration.
Package ec2config defines EC2 configuration.
plugins
Package plugins defines various plugins to install on EC2 creation, using init scripts or EC2 user data.
Package plugins defines various plugins to install on EC2 creation, using init scripts or EC2 user data.
eks
Package eks implements kubetest deployer interface for 'Amazon Elastic Container Service for Kubernetes'
Package eks implements kubetest deployer interface for 'Amazon Elastic Container Service for Kubernetes'
s3
Package s3 implements S3 plugin.
Package s3 implements S3 plugin.
Package eksconfig defines EKS test configuration.
Package eksconfig defines EKS test configuration.
Package ekstester defines interface EKS cluster tester and deployer.
Package ekstester defines interface EKS cluster tester and deployer.
Package etcdconfig defines etcd test configuration.
Package etcdconfig defines etcd test configuration.
plugins
Package plugins implements etcd plugins.
Package plugins implements etcd plugins.
internal
csi
Package csi implements csi test operations.
Package csi implements csi test operations.
ec2
Package ec2 implements testing utilities using EC2.
Package ec2 implements testing utilities using EC2.
etcd
Package etcd implements etcd test operations.
Package etcd implements etcd test operations.
prow
Package prow reads prow and test specs from "k8s.io/test-infra".
Package prow reads prow and test specs from "k8s.io/test-infra".
prow/status
Package status implements upstream test status handlers.
Package status implements upstream test status handlers.
ssh
Package ssh implements various SSH commands.
Package ssh implements various SSH commands.
Package kubetest implements various tests, meant to be contributed back to upstream.
Package kubetest implements various tests, meant to be contributed back to upstream.
eks
Package eks implements 'kubetest' deployer interface.
Package eks implements 'kubetest' deployer interface.
pkg
awsapi
Package awsapi implements wrappers for AWS API calls.
Package awsapi implements wrappers for AWS API calls.
awsapi/ec2
Package ec2 implements various AWS EC2 operations.
Package ec2 implements various AWS EC2 operations.
awsapi/ec2/instance-types
instance-types auto-generates EC2 instance types from AWS API.
instance-types auto-generates EC2 instance types from AWS API.
awsapi/ec2/metadata
Package metadata queries the EC2 metadata.
Package metadata queries the EC2 metadata.
ctxhandler
Package ctxhandler implements context handler.
Package ctxhandler implements context handler.
fileutil
Package fileutil implements file utilities.
Package fileutil implements file utilities.
httputil
Package httputil implements various HTTP operations.
Package httputil implements various HTTP operations.
logutil
Package logutil implements various log utilities.
Package logutil implements various log utilities.
Package storagetester defines Kubernetes storage test operations.
Package storagetester defines Kubernetes storage test operations.
Package version defines aws-k8s-tester version.
Package version defines aws-k8s-tester version.

Jump to

Keyboard shortcuts

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