v1.4.8 (2020-07-20)
See code changes.
- Add
cmd/ecr-utils
.
- Make
AddOnPHPApache
ECR image configurable. - Add
AddOnCNIVPC
.
- Add
eks/cni-vpc
.eks/cni-vpc
is installed before worker nodes and not deleted.- Requires at least
AddOnCNIVPC.Version
v1.7
.
- Fix [
eks/hollow-nodes/remote
]- Deploys to kubemark namespace
- Uses a replication controller instead of deployment
- Kubemark pods now equal corresponding hollow node names
- Adds labels to hollow nodes for CA discovery
- Idempotently Create/Update kubemark resources.
- Change
pkg/aws/ecr.Check
to returnok bool
.- Set
true
if the repository exists.
- Set
- Add
pkg/aws/ecr.Create
. - Add
pkg/aws/ecr.Delete
.
- Upgrade
github.com/aws/aws-sdk-go
fromv1.33.7
tov1.33.8
.
- Compile with Go 1.14.6.
v1.4.7 (2020-07-17)
See code changes.
- Upgrade
github.com/aws/aws-sdk-go
fromv1.33.6
tov1.33.7
.
- Compile with Go 1.14.6.
v1.4.6 (2020-07-16)
See code changes.
- Add
SkipDeleteClusterAndNodes
to skip EKS cluster and nodes deletion.- Useful for testing add-ons with existing clusters.
- If true, delete operation keeps all resources created before cluster (e.g. IAM role, VPC, CMK, etc.).
- If true, delete operation keeps all node groups and managed node groups!
- Set via
AWS_K8S_TESTER_EKS_SKIP_DELETE_CLUSTER_AND_NODES=true
. - Default
AWS_K8S_TESTER_EKS_SKIP_DELETE_CLUSTER_AND_NODES=false
. aws-k8s-tester eks create cluster --path
must be passed a valid configuration file with existing cluster information in order to use the existing cluster. Create cluster once, and delete all add-ons, and keep the cluster related fields in the YAML with all other fields removed.- We will have better workflow and separate abstraction for add-ons. This is a short term solution.
- See #123 for more.
- To delete the cluster,
SkipDeleteClusterAndNodes
must be set to"false"
manually. - Create a cluster with add-ons
AWS_K8S_TESTER_EKS_SKIP_DELETE_CLUSTER_AND_NODES=true aws-k8s-tester eks create cluster --auto-path
and delete add-ons "only" withaws-k8s-tester eks delete cluster --path [PATH]
(make sure the YAML config file is setskip-delete-cluster-and-nodes
tofalse
), andaws-k8s-tester eks create cluster --path [PATH]
to test more add-ons. And repeat.
- Change
AddOnHollowNodesRemote.DeploymentReplicas
toReplicationControllerReplicas
.AWS_K8S_TESTER_EKS_ADD_ON_HOLLOW_NODES_REMOTE_DEPLOYMENT_REPLICAS
is nowAWS_K8S_TESTER_EKS_ADD_ON_HOLLOW_NODES_REMOTE_REPLICATION_CONTROLLER_REPLICAS
.
- Use
ReplicationController
foreks/hollow-nodes/remote
. - Skip cluster and prerequisite resource deletion if
AWS_K8S_TESTER_EKS_SKIP_DELETE_CLUSTER_AND_NODES=true
.
- Upgrade
github.com/kubernetes/kubernetes
fromv1.18.6-rc.0
tov1.18.7-rc.0
. - Upgrade
github.com/kubernetes/client-go
fromv0.18.6-rc.0
tov0.18.7-rc.0
. - Upgrade
github.com/aws/aws-sdk-go
fromv1.33.5
tov1.33.6
.
- Compile with Go 1.14.6.
v1.4.5 (2020-07-14)
See code changes.
- Remove
AddOnIRSA.RoleManagedPolicyARNs
. - Rename
SSHConfig
toNodeInfo
. AWS_K8S_TESTER_EKS_PARAMETERS_TAGS
must be set inmap[string]string
.'a=b;c;d,e=f'
should be{"a":"b","c":"d"}
.
- Clean up ELB resources from services in
eks/wordpress,nlb-guestbook,jupyter-hub,prometheus-grafana
. - Tag resources with user information.
- Set timeouts for
eks/irsa
andeks/irsa-fargate
S3 requests. - Allow
eks/irsa
tester failures, only requires minimum 1 Pod success, debugging.... - Add
kubectl logs --timestamps
flags. - Remove
arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess
from defaulteks/irsa-fargate
IAM role. - Fix
eks/irsa
when worker nodes have disabled SSH access (e.g. Bottlerocket OS). - Fix typos in
kubectl describe job
commands foreks/*/remote
testers. - Fix wrong buckets for
eks/*/remote
testers. - Add more debugging logs to remote testers for failed pods.
- Add more debugging logs to
eks/irsa
. - Fix remote tester job Pod.
- Change pod
RestartPolicy
fromv1.RestartPolicyOnFailure
tov1.RestartPolicyNever
. - ref. kubernetes/kubernetes#54870.
- Change pod
- Use
pkg/k8s-client.WaitForDeploymentCompletes
. - Fix
eks/irsa
andeks/irsa-fargate
role ARN query tests.- Now using
s3-utils
.
- Now using
- Use regional STS endpoint by default.
- Add
iam:SetSecurityTokenServicePreferences
to worker node role IAM policy.- ref. https://docs.aws.amazon.com/cli/latest/reference/iam/set-security-token-service-preferences.html.
- To use regional STS endpoint.
- Fix STS regional endpoint dial timeouts.
- e.g.
"RequestError: send request failed\ncaused by: Post \"https://iam.amazonaws.com/\": dial tcp: i/o timeout"} failed to create AWS session RequestError: send request failed caused by: Post "https://sts.us-west-2.amazonaws.com/": dial tcp: i/o timeout"
- e.g.
- Allow
eks/fluentd
namespace deletion timeouts.
- Add
pkg/user
. - Add
pkg/aws/s3.WithTimeout
. - Fix
pkg/fileutil.IsDirWriteable
os.RemoveAll
.- Fix
"failed to write dir remove /var/log/.touch: no such file or directory"
in remote testers.
- Fix
- Add
pkg/k8s-client.WaitForDeploymentCompletes
. - Add
pkg/k8s-client.WithPodFunc
to debug job pod failures. - Use regional STS endpoint by default in
pkg/aws
.
# Upgrading Kubernetes to "v1.19" is reverted...
-### Dependency
-
-- Upgrade [`github.com/kubernetes/kubernetes`](https://github.com/kubernetes/kubernetes/releases) from [`v1.18.6-rc.0`](https://github.com/kubernetes/kubernetes/releases/tag/v1.18.6-rc.0) to [`v1.19.0-rc.0`](https://github.com/kubernetes/kubernetes/releases/tag/v1.19.0-rc.0).
-- Upgrade [`github.com/kubernetes/client-go`](https://github.com/kubernetes/client-go/releases) from [`v0.18.6-rc.0`](https://github.com/kubernetes/clienthttps://github.com/kubernetes/client-go/releases/tag/v0.18.6-rc.0) to [`v0.19.0-rc.0`](https://github.com/kubernetes/client-go/releases/tag/v0.19.0-rc.0).
- - See [commit `0e4cbc8e` for all the `eks` changes](https://github.com/aws/aws-k8s-tester/commit/0e4cbc8e0a3b7c7f3808e40205ecf5dc6d3ddbe9).
- - See [commit `f1a984e3` for all the `vendor` changes](https://github.com/aws/aws-k8s-tester/commit/f1a984e394c880a1864327f97bb54ffab94e48f8).
- - ref. https://github.com/kubernetes/kubernetes/pull/90552 changes `k8s.io/kubernetes/pkg/kubelet/remote` to `k8s.io/kubernetes/pkg/kubelet/cri/remote`.
# github.com/containerd/containerd/sys
vendor/github.com/containerd/containerd/sys/proc.go:33:34: undefined: system.GetClockTicks
github.com/google/cadvisor/container/raw
# github.com/google/cadvisor/container/raw
vendor/github.com/google/cadvisor/container/raw/handler.go:62:20: undefined: "github.com/opencontainers/runc/libcontainer/cgroups/fs".Manager
# github.com/google/cadvisor/container/docker
vendor/github.com/google/cadvisor/container/docker/handler.go:140:20: undefined: "github.com/opencontainers/runc/libcontainer/cgroups/fs".Manager
# github.com/google/cadvisor/container/containerd
vendor/github.com/google/cadvisor/container/containerd/handler.go:72:20: undefined: "github.com/opencontainers/runc/libcontainer/cgroups/fs".Manager
github.com/google/cadvisor/container/crio
# github.com/google/cadvisor/container/crio
vendor/github.com/google/cadvisor/container/crio/handler.go:74:23: undefined: "github.com/opencontainers/runc/libcontainer/cgroups/fs".Manager
vendor/github.com/google/cadvisor/container/crio/handler.go:98:20: undefined: "github.com/opencontainers/runc/libcontainer/cgroups/fs".Manager
github.com/aws/aws-k8s-tester/pkg/aws
github.com/aws/aws-k8s-tester/eks/cluster-loader
github.com/aws/aws-k8s-tester/pkg/k8s-client
# helm.sh/helm/v3/pkg/kube
vendor/helm.sh/helm/v3/pkg/kube/client.go:180:26: too many arguments in call to helper.Get
vendor/helm.sh/helm/v3/pkg/kube/client.go:180:58: info.Export undefined (type *"k8s.io/cli-runtime/pkg/resource".Info has no field or method Export)
vendor/helm.sh/helm/v3/pkg/kube/client.go:380:31: too many arguments in call to helper.Get
vendor/helm.sh/helm/v3/pkg/kube/client.go:380:69: target.Export undefined (type *"k8s.io/cli-runtime/pkg/resource".Info has no field or method Export)
vendor/helm.sh/helm/v3/pkg/kube/client.go:485:11: undefined: "k8s.io/client-go/tools/watch".ListWatchUntil
- Upgrade
helm.sh/helm/v3
fromv3.2.3
tov3.2.4
.v3.3.0-rc.1
does not work...- ref.
kubectl -n grafana logs pod/grafana-test
shows[ "$code" == "200" ]' failed
.
- Compile with Go 1.14.4.
v1.4.4 (2020-07-10)
See code changes.
- Fix node label for BottleRocket OS worker nodes.
- Increase
ListCSRs
batch limit to 1,000. - Increase
ListNodes
batch limit to 1,000. - Do not print spinner if not supported.
- Set upper limit for
WaitForJobCompletes
.
- Compile with Go 1.14.4.
v1.4.3 (2020-07-10)
See code changes.
- Clean up worker nodes polling outputs.
- Only print
SSMCommands
when total nodes are less than 10. - Fix
eks/conformance
sonobuoy-result/plugins/e2e/results/global/e2e.log
upload. - Add "spinner" to all polling functions.
- Add
pkg/spinner
. - Pass log writer to
pkg/cfn.Poll
for "spinner". - Increase list pod batch limit and reduce batch interval for
pkg/k8s-client.WaitForJobCompletes
. - Retry
pkg/k8s-client.ListPod
when a paginated response is stale.- Fix
"The provided continue parameter is too old to display a consistent list result. You can start a new list without the continue parameter, or use the continue token in this response to retrieve the remainder of the results. Continuing with the provided token results in an inconsistent list - objects that were created, modified, or deleted between the time the first chunk was returned and now may show up in the list."
.
- Fix
- Compile with Go 1.14.4.
v1.4.2 (2020-07-09)
See code changes.
- Fix
eks/ng
ASG launch template for multiple instance types. - Handle duplicate EC2 key pair creation error.
- Wait
AddOnClusterVersionUpgrade.WaitBeforeUpgrade
before running cluster version upgrades. - Fix instance state polling in
eks/ng
andeks/mng
.
- Add
AddOnClusterVersionUpgrade.WaitBeforeUpgrade
.- Set via
AWS_K8S_TESTER_EKS_ADD_ON_CLUSTER_VERSION_UPGRADE_WAIT_BEFORE_UPGRADE=5m
.
- Set via
- Upgrade
github.com/aws/aws-sdk-go
fromv1.33.3
tov1.33.5
.
- Compile with Go 1.14.4.
v1.4.1 (2020-07-07)
See code changes.
- Add
eks/cw-agent
andeks/fluentd
. - Add
eks/php-apache
. - Support ECR repository for
busybox
images to minimize docker hub dependency ineks/cron-jobs
andeks/jobs-echo
. - Handle
NotFound
errors in delete operations. - Fix log fetch, make it work run multiple times.
- Increase
MNG
update timeouts. - Create regional ECR client to all remote testers based on
RepositoryRegion
.
- Set
AddOnNodeGroups.FetchLogs
tofalse
by default, to reduce the test runtime for a large number of worker nodes.- Set
AWS_K8S_TESTER_EKS_ADD_ON_NODE_GROUPS_FETCH_LOGS=true
to enable. - To stream pod logs to CloudWatch, set
AWS_K8S_TESTER_EKS_ADD_ON_FLUENTD_ENABLE=true
.
- Set
- Set
AddOnManagedNodeGroups.FetchLogs
tofalse
by default, to reduce the test runtime for a large number of worker nodes.- Set
AWS_K8S_TESTER_EKS_ADD_ON_MANAGED_NODE_GROUPS_FETCH_LOGS=true
to enable. - To stream pod logs to CloudWatch, set
AWS_K8S_TESTER_EKS_ADD_ON_FLUENTD_ENABLE=true
.
- Set
- Add
AddOnCWAgent
andAddOnFluentd
. - Add
AddOnPHPApache
. - Support ECR repository for
busybox
images to minimize docker hub dependency inAddOnCronJobs
andAddOnJobsEcho
. - Add
RepositoryRegion
to all remote testers. - Reduce
AddOnIRSA
default replicas to 1.
- Upgrade
github.com/aws/aws-sdk-go
fromv1.32.11
tov1.33.3
.
- Compile with Go 1.14.4.
v1.4.0 (2020-06-29)
See code changes.
aws-k8s-tester --auto-path
now automatically uses the generated cluster name for local file paths, instead of random string.- Remove
--block
flags. - Print JSON body for (managed) node groups.
- Clean up S3 uploads.
- Clean up
colorstring
printf.
- Set timeouts for
"aws sts get-caller-identity"
foreks/irsa
andeks/irsa-fargate
. - Improve and clean up all
Poll
functions with contexts. - Add missing
"configmaps"
toeks/stresser/remote
RBAC. - Clean up
eks/irsa-fargate
. - Use multi-writer to pipe stderr logging to log file.
- Run query function while checking
eks/mng
version upgrades. - Improve and clean up
eks/irsa
. - Add
clusterloader --provider=eks
flag toeks/cluster-loader
. - Add
eks/cluster-loader
CL2UseHostNetworkPods
support. - Explicitly set
RestartPolicy
in all pod objects. - Run
eks/mng/scale.Scale
after creating add-ons. - Fix
eks/mng/scale
. - Update nodes after
eks/mng/scale
. - Remove
eks/tester.Tester.AggregateResults
. eks/cluster-loader
withJob
object to run remote testers "once", instead ofDeployment
.eks/cluster-loader
to remove log fetcher dependency for remote tester, use S3 instead.eks/configmaps
withJob
object to run remote testers "once", instead ofDeployment
.eks/configmaps
to remove log fetcher dependency for remote tester, use S3 instead.eks/csrs
withJob
object to run remote testers "once", instead ofDeployment
.eks/csrs
to remove log fetcher dependency for remote tester, use S3 instead.eks/secrets
withJob
object to run remote testers "once", instead ofDeployment
.eks/secrets
to remove log fetcher dependency for remote tester, use S3 instead.eks/stresser
withJob
object to run remote testers "once", instead ofDeployment
.eks/stresser
to remove log fetcher dependency for remote tester, use S3 instead.- Clean up S3 uploads.
- Compare raw data points for regression tests.
- Used for Kolmogorov–Smirnov test.
- Publish performance data to CloudWatch.
- Add compare tests for all stressing tests, useful for regression tests.
- Improve
eks/configmaps
,eks/csrs
,eks/secrets
results collect with S3. - Add
eks/tester.Tester.Name
method. - Fix
eks/stresser
collect metrics. - Clean up
colorstring
printf. - Clean up polling operation error handling.
- Discard HTTP download progress for URL checks.
- Increase
cluster-loader
timeout and error if output is not expected. - Run
AWS_K8S_TESTER_EKS_ADD_ON_CLUSTER_LOADER
beforeAWS_K8S_TESTER_EKS_ADD_ON_HOLLOW_NODES
.- TODO: Handle
23 resource_gather_worker.go:63] error while reading data from hollowdreamprimehaze8iw5ul: the server is currently unable to handle the request (get nodes hollowdreamprimehaze8iw5ul:10250)
.
- TODO: Handle
- Improve
eks/cluster-loader/remote
result download, use"scp"
. - Store
kube-apiserver
/metrics
output. - Add
eks/cluster-loader.ParsePodStartupLatency
. - Add
eks/cluster-loader.MergePodStartupLatency
. - Record
PodStartupLatency
ineksconfig.AddOnClusterLoaderLocal
viaeks/cluster-loader/local
. - Record
PodStartupLatency
ineksconfig.AddOnClusterLoaderRemote
viaeks/cluster-loader/remote
. - Fix
eks/cluster-loader
error handling. - Add S3 access policies to worker node roles.
- Improve
eks/stresser/remote
results fetch. - Fix multiple
eks/cluster-loader
runs. - Add extra namespace force-deletion function to
eks/stresser/remote
. eks/mng/scale
added to scale mngs up and down
AWS_K8S_TESTER_EKS_ADD_ON_CSRS_REMOTE_DEPLOYMENT_REPLICAS
is nowAWS_K8S_TESTER_EKS_ADD_ON_CSRS_REMOTE_COMPLETES
andAWS_K8S_TESTER_EKS_ADD_ON_CSRS_REMOTE_PARALLELS
.AWS_K8S_TESTER_EKS_ADD_ON_CONFIGMAPS_REMOTE_DEPLOYMENT_REPLICAS
is nowAWS_K8S_TESTER_EKS_ADD_ON_CONFIGMAPS_REMOTE_COMPLETES
andAWS_K8S_TESTER_EKS_ADD_ON_CONFIGMAPS_REMOTE_PARALLELS
.AWS_K8S_TESTER_EKS_ADD_ON_SECRETS_REMOTE_DEPLOYMENT_REPLICAS
is nowAWS_K8S_TESTER_EKS_ADD_ON_SECRETS_REMOTE_COMPLETES
andAWS_K8S_TESTER_EKS_ADD_ON_SECRETS_REMOTE_PARALLELS
.AWS_K8S_TESTER_EKS_ADD_ON_STRESSER_REMOTE_DEPLOYMENT_REPLICAS
is nowAWS_K8S_TESTER_EKS_ADD_ON_STRESSER_REMOTE_COMPLETES
andAWS_K8S_TESTER_EKS_ADD_ON_STRESSER_REMOTE_PARALLELS
.- Use
Job
for all remote testers. - Enable
S3BucketCreate
andS3BucketCreateKeep
by default, error if no S3 bucket is specified. - Configure S3 directory.
- Add
ClusterAutoscaler
add-on per node-group usingAWS_K8S_TESTER_EKS_ADD_ON_NODE_GROUPS_ASGS={"GetRef.Name-...":{..."cluster-autoscaler":{"enable":false}...}}
. - Fix typo in
eksconfig.AddOnManagedNodeGroups.LogsTarGzPath
. - Add
Status.PrivateDNSToNodeInfo
for node SSH access. - Record
PodStartupLatency
ineksconfig.AddOnClusterLoaderLocal
viaeks/cluster-loader/local
. - Record
PodStartupLatency
ineksconfig.AddOnClusterLoaderRemote
viaeks/cluster-loader/remote
. - Add
RequestsSummaryWritesCompareS3Dir
andRequestsSummaryReadsCompareS3Dir
. - Add
AddOnClusterLoader*
CL2UseHostNetworkPods
support.
- Add
pkg/k8s-client.WaitForJobCompletes,WaitForCronJobCompletes
. - Add
pkg/aws/s3
. - Add
pkg/k8s-client.EKSConfig.MetricsRawOutputDir
to storekube-apiserver
/metrics
output. - Add
pkg/k8s-client.WithForceDelete
option forDeleteNamespaceAndWait
.- Fix #100.
- See
kubernetes/kubernetes#60807
.
- Add
pkg/metrics.RequestsCompare
.
- Upgrade
github.com/aws/aws-sdk-go
fromv1.32.2
tov1.32.11
. - Upgrade
github.com/kubernetes/kubernetes
fromv1.18.2
tov1.18.6-rc.0
. - Upgrade
github.com/kubernetes/client-go
fromv0.18.3
tov0.18.6-rc.0
. - Add
k8s.io/perf-tests
.- See
1aea23d3
for commit.
- See
- Compile with Go 1.14.4.