From 56f1ee37fd101fa59f8a1865e1fa2e38beea61d0 Mon Sep 17 00:00:00 2001 From: Andrey Smirnov Date: Mon, 19 Oct 2020 17:31:51 +0300 Subject: [PATCH] feat: upgrade Kubernetes to 1.19.3 Just minor release bump. Signed-off-by: Andrey Smirnov --- Makefile | 2 +- docs/talosctl/talosctl_cluster_create.md | 2 +- docs/talosctl/talosctl_gen_config.md | 2 +- docs/talosctl/talosctl_upgrade-k8s.md | 2 +- docs/talosctl/talosctl_usage.md | 36 +++++++++++++++++++++++ go.mod | 12 ++++---- go.sum | 28 +++++++++--------- internal/integration/base/api.go | 24 +++++++++++---- internal/integration/provision/upgrade.go | 2 +- pkg/machinery/constants/constants.go | 2 +- 10 files changed, 81 insertions(+), 31 deletions(-) create mode 100644 docs/talosctl/talosctl_usage.md diff --git a/Makefile b/Makefile index 03267be72..1281d9496 100644 --- a/Makefile +++ b/Makefile @@ -17,7 +17,7 @@ OPERATING_SYSTEM := $(shell uname -s | tr "[:upper:]" "[:lower:]") TALOSCTL_DEFAULT_TARGET := talosctl-$(OPERATING_SYSTEM) INTEGRATION_TEST_DEFAULT_TARGET := integration-test-$(OPERATING_SYSTEM) INTEGRATION_TEST_PROVISION_DEFAULT_TARGET := integration-test-provision-$(OPERATING_SYSTEM) -KUBECTL_URL ?= https://storage.googleapis.com/kubernetes-release/release/v1.19.1/bin/$(OPERATING_SYSTEM)/amd64/kubectl +KUBECTL_URL ?= https://storage.googleapis.com/kubernetes-release/release/v1.19.3/bin/$(OPERATING_SYSTEM)/amd64/kubectl CLUSTERCTL_VERSION ?= 0.3.7 CLUSTERCTL_URL ?= https://github.com/kubernetes-sigs/cluster-api/releases/download/v$(CLUSTERCTL_VERSION)/clusterctl-$(OPERATING_SYSTEM)-amd64 SONOBUOY_VERSION ?= 0.18.4 diff --git a/docs/talosctl/talosctl_cluster_create.md b/docs/talosctl/talosctl_cluster_create.md index bbe45a64f..0eca4f651 100644 --- a/docs/talosctl/talosctl_cluster_create.md +++ b/docs/talosctl/talosctl_cluster_create.md @@ -33,7 +33,7 @@ talosctl cluster create [flags] --initrd-path string the uncompressed kernel image to use (default "_out/initramfs-${ARCH}.xz") -i, --input-dir string location of pre-generated config files --install-image string the installer image to use (default "ghcr.io/talos-systems/installer:latest") - --kubernetes-version string desired kubernetes version to run (default "1.19.1") + --kubernetes-version string desired kubernetes version to run (default "1.19.3") --masters int the number of masters to create (default 1) --memory int the limit on memory usage in MB (each container/VM) (default 2048) --mtu int MTU of the cluster network (default 1500) diff --git a/docs/talosctl/talosctl_gen_config.md b/docs/talosctl/talosctl_gen_config.md index db6e9a867..ab7ca675e 100644 --- a/docs/talosctl/talosctl_gen_config.md +++ b/docs/talosctl/talosctl_gen_config.md @@ -23,7 +23,7 @@ talosctl gen config [flags] -h, --help help for config --install-disk string the disk to install to (default "/dev/sda") --install-image string the image used to perform an installation (default "ghcr.io/talos-systems/installer:latest") - --kubernetes-version string desired kubernetes version to run (default "1.19.1") + --kubernetes-version string desired kubernetes version to run (default "1.19.3") -o, --output-dir string destination to output generated files -p, --persist the desired persist value for configs (default true) --registry-mirror strings list of registry mirrors to use in format: = diff --git a/docs/talosctl/talosctl_upgrade-k8s.md b/docs/talosctl/talosctl_upgrade-k8s.md index 505561a02..4f19978a0 100644 --- a/docs/talosctl/talosctl_upgrade-k8s.md +++ b/docs/talosctl/talosctl_upgrade-k8s.md @@ -17,7 +17,7 @@ talosctl upgrade-k8s [flags] --arch string the cluster architecture (default "amd64") --from string the Kubernetes control plane version to upgrade from -h, --help help for upgrade-k8s - --to string the Kubernetes control plane version to upgrade to (default "1.19.1") + --to string the Kubernetes control plane version to upgrade to (default "1.19.3") ``` ### Options inherited from parent commands diff --git a/docs/talosctl/talosctl_usage.md b/docs/talosctl/talosctl_usage.md new file mode 100644 index 000000000..ccc0a4d03 --- /dev/null +++ b/docs/talosctl/talosctl_usage.md @@ -0,0 +1,36 @@ + +## talosctl usage + +Retrieve a disk usage + +### Synopsis + +Retrieve a disk usage + +``` +talosctl usage [path1] [path2] ... [pathN] [flags] +``` + +### Options + +``` + -a, --all write counts for all files, not just directories + -d, --depth int32 maximum recursion depth + -h, --help help for usage + -H, --humanize humanize size and time in the output + -t, --threshold int threshold exclude entries smaller than SIZE if positive, or entries greater than SIZE if negative +``` + +### Options inherited from parent commands + +``` + --context string Context to be used in command + -e, --endpoints strings override default endpoints in Talos configuration + -n, --nodes strings target the specified nodes + --talosconfig string The path to the Talos configuration file (default "/home/user/.talos/config") +``` + +### SEE ALSO + +* [talosctl](talosctl.md) - A CLI for out-of-band management of Kubernetes nodes created by Talos + diff --git a/go.mod b/go.mod index 5279dbf5f..59d9b0208 100644 --- a/go.mod +++ b/go.mod @@ -84,10 +84,10 @@ require ( gopkg.in/freddierice/go-losetup.v1 v1.0.0-20170407175016-fc9adea44124 gopkg.in/fsnotify.v1 v1.4.7 gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776 - k8s.io/api v0.19.1 - k8s.io/apimachinery v0.19.1 - k8s.io/apiserver v0.19.1 - k8s.io/client-go v0.19.1 - k8s.io/cri-api v0.19.1 - k8s.io/kubelet v0.19.1 + k8s.io/api v0.19.2 + k8s.io/apimachinery v0.19.2 + k8s.io/apiserver v0.19.2 + k8s.io/client-go v0.19.2 + k8s.io/cri-api v0.19.2 + k8s.io/kubelet v0.19.2 ) diff --git a/go.sum b/go.sum index adcebdd98..8b403ad4d 100644 --- a/go.sum +++ b/go.sum @@ -1146,8 +1146,8 @@ k8s.io/api v0.0.0-20191016110408-35e52d86657a/go.mod h1:/L5qH+AD540e7Cetbui1tuJe k8s.io/api v0.0.0-20191109101513-0171b7c15da1/go.mod h1:VJq7+38rpM4TSUbRiZX4P5UVAKK2UQpNQLZClkFQkpE= k8s.io/api v0.18.2/go.mod h1:SJCWI7OLzhZSvbY7U8zwNl9UA4o1fizoug34OV/2r78= k8s.io/api v0.18.5/go.mod h1:tN+e/2nbdGKOAH55NMV8oGrMG+3uRlA9GaRfvnCCSNk= -k8s.io/api v0.19.1 h1:oZf4bYsBdjC49PdTwNfLmrfUFCwKUi94HY/+emXI8Qw= -k8s.io/api v0.19.1/go.mod h1:+u/k4/K/7vp4vsfdT7dyl8Oxk1F26Md4g5F26Tu85PU= +k8s.io/api v0.19.2 h1:q+/krnHWKsL7OBZg/rxnycsl9569Pud76UJ77MvKXms= +k8s.io/api v0.19.2/go.mod h1:IQpK0zFQ1xc5iNIQPqzgoOwuFugaYHK4iCknlAQP9nI= k8s.io/apiextensions-apiserver v0.0.0-20190202013456-d4288ab64945/go.mod h1:IxkesAMoaCRoLrPJdZNZUQp9NfZnzqaVzLhb2VEQzXE= k8s.io/apiextensions-apiserver v0.18.2 h1:I4v3/jAuQC+89L3Z7dDgAiN4EOjN6sbm6iBqQwHTah8= k8s.io/apiextensions-apiserver v0.18.2/go.mod h1:q3faSnRGmYimiocj6cHQ1I3WpLqmDgJFlKL37fC4ZvY= @@ -1156,23 +1156,23 @@ k8s.io/apimachinery v0.0.0-20191109100837-dffb012825f2/go.mod h1:+6CX7hP4aLfX2sb k8s.io/apimachinery v0.0.0-20191111054156-6eb29fdf75dc/go.mod h1:+6CX7hP4aLfX2sb91JYDMIp0VqDSog2kZu0BHe+lP+s= k8s.io/apimachinery v0.18.2/go.mod h1:9SnR/e11v5IbyPCGbvJViimtJ0SwHG4nfZFjU77ftcA= k8s.io/apimachinery v0.18.5/go.mod h1:OaXp26zu/5J7p0f92ASynJa1pZo06YlV9fG7BoWbCko= -k8s.io/apimachinery v0.19.1 h1:cwsxZazM/LA9aUsBaL4bRS5ygoM6bYp8dFk22DSYQa4= -k8s.io/apimachinery v0.19.1/go.mod h1:DnPGDnARWFvYa3pMHgSxtbZb7gpzzAZ1pTfaUNDVlmA= +k8s.io/apimachinery v0.19.2 h1:5Gy9vQpAGTKHPVOh5c4plE274X8D/6cuEiTO2zve7tc= +k8s.io/apimachinery v0.19.2/go.mod h1:DnPGDnARWFvYa3pMHgSxtbZb7gpzzAZ1pTfaUNDVlmA= k8s.io/apiserver v0.18.2/go.mod h1:Xbh066NqrZO8cbsoenCwyDJ1OSi8Ag8I2lezeHxzwzw= -k8s.io/apiserver v0.19.1 h1:ZG1MoSE/seCFrqVvEMW+sNRX/tohU2JBtfANYbDqGcQ= -k8s.io/apiserver v0.19.1/go.mod h1:iRxYIjA0X2XEyoW8KslN4gDhasfH4bWcjj6ckVeZX28= +k8s.io/apiserver v0.19.2 h1:xq2dXAzsAoHv7S4Xc/p7PKhiowdHV/PgdePWo3MxIYM= +k8s.io/apiserver v0.19.2/go.mod h1:FreAq0bJ2vtZFj9Ago/X0oNGC51GfubKK/ViOKfVAOA= k8s.io/client-go v0.0.0-20191016111102-bec269661e48/go.mod h1:hrwktSwYGI4JK+TJA3dMaFyyvHVi/aLarVHpbs8bgCU= k8s.io/client-go v0.18.2/go.mod h1:Xcm5wVGXX9HAA2JJ2sSBUn3tCJ+4SVlCbl2MNNv+CIU= k8s.io/client-go v0.18.5/go.mod h1:EsiD+7Fx+bRckKWZXnAXRKKetm1WuzPagH4iOSC8x58= -k8s.io/client-go v0.19.1 h1:xfFwj+YFKa8rcihlFYZABjxcy7Sm/wJQ+GxW3JyVtKI= -k8s.io/client-go v0.19.1/go.mod h1:AZOIVSI9UUtQPeJD3zJFp15CEhSjRgAuQP5PWRJrCIQ= +k8s.io/client-go v0.19.2 h1:gMJuU3xJZs86L1oQ99R4EViAADUPMHHtS9jFshasHSc= +k8s.io/client-go v0.19.2/go.mod h1:S5wPhCqyDNAlzM9CnEdgTGV4OqhsW3jGO1UM1epwfJA= k8s.io/code-generator v0.18.2/go.mod h1:+UHX5rSbxmR8kzS+FAv7um6dtYrZokQvjHpDSYRVkTc= k8s.io/component-base v0.18.2/go.mod h1:kqLlMuhJNHQ9lz8Z7V5bxUUtjFZnrypArGl58gmDfUM= -k8s.io/component-base v0.19.1 h1:FPDnaeCoOJStFvPJPPWwiVMcUa2Ru4hPrg3pfPrLGho= -k8s.io/component-base v0.19.1/go.mod h1:b0vDKYa8EdJJ8dHUA6fGPj4z8taqGks5mfZvp3p/jVo= +k8s.io/component-base v0.19.2 h1:jW5Y9RcZTb79liEhW3XDVTW7MuvEGP0tQZnfSX6/+gs= +k8s.io/component-base v0.19.2/go.mod h1:g5LrsiTiabMLZ40AR6Hl45f088DevyGY+cCE2agEIVo= k8s.io/cri-api v0.17.3/go.mod h1:X1sbHmuXhwaHs9xxYffLqJogVsnI+f6cPRcgPel7ywM= -k8s.io/cri-api v0.19.1 h1:9IvLCaDBYcsjNdG4CLgIevcujMmVFNUcboUdvu2mdVM= -k8s.io/cri-api v0.19.1/go.mod h1:UN/iU9Ua0iYdDREBXNE9vqCJ7MIh/FW3VIL0d8pw7Fw= +k8s.io/cri-api v0.19.2 h1:ob5dyrRsZgPhfZYmerau7zL1h8HsFzqlBUfi5UxaxLs= +k8s.io/cri-api v0.19.2/go.mod h1:UN/iU9Ua0iYdDREBXNE9vqCJ7MIh/FW3VIL0d8pw7Fw= k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= k8s.io/gengo v0.0.0-20191108084044-e500ee069b5c/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= k8s.io/gengo v0.0.0-20200114144118-36b2048a9120/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= @@ -1191,8 +1191,8 @@ k8s.io/kube-openapi v0.0.0-20200121204235-bf4fb3bd569c/go.mod h1:GRQhZsXIAJ1xR0C k8s.io/kube-openapi v0.0.0-20200410145947-61e04a5be9a6/go.mod h1:GRQhZsXIAJ1xR0C9bd8UpWHZ5plfAS9fzPjJuQ6JL3E= k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6 h1:+WnxoVtG8TMiudHBSEtrVL1egv36TkkJm+bA8AxicmQ= k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6/go.mod h1:UuqjUnNftUyPE5H64/qeyjQoUZhGpeFDVdxjTeEVN2o= -k8s.io/kubelet v0.19.1 h1:pwlk19yEt/Sd8tOcSmSm/+j4EE/un5JbvrQJ2ZO2IzE= -k8s.io/kubelet v0.19.1/go.mod h1:FJBxOTBiFjE3KM+0gdPpZeiaKX8lrsb6fTlyBGqPWgs= +k8s.io/kubelet v0.19.2 h1:jSo57ceStXcmx/6hzEayl+lNYLt79lPT2YexU/9LZx4= +k8s.io/kubelet v0.19.2/go.mod h1:FHHoByVWzh6kNaarXaDPAa751Oz6REcOVRyFT84L1Is= k8s.io/kubernetes v1.13.0/go.mod h1:ocZa8+6APFNC2tX1DZASIbocyYT5jHzqFVsY5aoB7Jk= k8s.io/utils v0.0.0-20190801114015-581e00157fb1/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew= k8s.io/utils v0.0.0-20191030222137-2b95a09bc58d/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew= diff --git a/internal/integration/base/api.go b/internal/integration/base/api.go index 602cd5a89..8ec45303f 100644 --- a/internal/integration/base/api.go +++ b/internal/integration/base/api.go @@ -12,10 +12,12 @@ import ( "io" "io/ioutil" "math/rand" + "strings" "time" "github.com/stretchr/testify/suite" "github.com/talos-systems/go-retry/retry" + "google.golang.org/grpc/backoff" "github.com/talos-systems/talos/internal/app/machined/pkg/runtime" "github.com/talos-systems/talos/pkg/cluster" @@ -56,14 +58,26 @@ func (apiSuite *APISuite) SetupSuite() { nodes := apiSuite.DiscoverNodes().Nodes() if len(nodes) > 0 { - ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second) + // grpc might trigger backoff on reconnect attempts, so make sure we clear them + ctx, cancel := context.WithTimeout(context.Background(), backoff.DefaultConfig.MaxDelay) defer cancel() - for i := 0; i < len(nodes); i++ { - _, err = apiSuite.Client.Version(client.WithNodes(ctx, nodes...)) - } + apiSuite.Require().NoError(retry.Constant(backoff.DefaultConfig.MaxDelay, retry.WithUnits(time.Second)).Retry(func() error { + for i := 0; i < len(nodes); i++ { + _, err = apiSuite.Client.Version(client.WithNodes(ctx, nodes...)) + if err == nil { + continue + } - apiSuite.Require().NoError(err) + if strings.Contains(err.Error(), "connection refused") { + return retry.ExpectedError(err) + } + + return retry.UnexpectedError(err) + } + + return nil + })) } } diff --git a/internal/integration/provision/upgrade.go b/internal/integration/provision/upgrade.go index 496be9793..d61a19535 100644 --- a/internal/integration/provision/upgrade.go +++ b/internal/integration/provision/upgrade.go @@ -69,7 +69,7 @@ const ( stableK8sVersion = "1.18.6" nextK8sVersion = "1.19.0" - currentK8sVersion = "1.19.1" + currentK8sVersion = "1.19.3" ) var ( diff --git a/pkg/machinery/constants/constants.go b/pkg/machinery/constants/constants.go index aa014b171..6bc1f93be 100644 --- a/pkg/machinery/constants/constants.go +++ b/pkg/machinery/constants/constants.go @@ -160,7 +160,7 @@ const ( KubeletBootstrapKubeconfig = "/etc/kubernetes/bootstrap-kubeconfig" // DefaultKubernetesVersion is the default target version of the control plane. - DefaultKubernetesVersion = "1.19.1" + DefaultKubernetesVersion = "1.19.3" // KubeletImage is the enforced kubelet image to use. KubeletImage = "docker.io/autonomy/kubelet"