v0.5.0
v0.5.0 (v1alpha4)
Cluster API support
This release supports the v1alpha4
/v0.4.x
version of Cluster API
Getting started
Quick start: https://cluster-api.sigs.k8s.io/user/quick-start.html
π¦ Highlights
Multi-tenancy
The capability to set credentials using environment variables is now deprecated and will be removed in future releases, the recommended approach is to use AzureClusterIdentity as explained here.
AzureMachinePool rolling upgrades
Introduced AzureMachinePool rolling upgrade strategy with cordon and drain which provides MaxSurge, MaxUnavailable, and DeletePolicy options modeled after MachineDeployments.
GPU nodes with NVIDIA operator
The βnvidia-gpuβ flavor now uses the nvidia gpu-operator for installing and managing gpu components. gpu-operator is installed using a ClusterResourceSet.
Added Private Cluster flexibility
Ability to configure Node outbound, and Control Plane Outbound load balancer for private clusters providing the option to have more than one frontend IPs. This also provides the ability to disable the outbound load balancers for private clusters thereby reducing the number of components exposed to the internet.
Changelog since v0.4.15
β οΈ Breaking Changes
(No, really, you MUST read this before you upgrade)
- Renamed AzureMachinePool, AzureManagedControlPlane, AzureManagedMachinePool, AzureManagedCluster api group to
infrastructure.x-k8s.io
:- The API group for AzureMachinePool, AzureManagedControlPlane, AzureManagedMachinePool, and AzureManagedCluster was renamed from
exp.infrastructure.x-k8s.io
toinfrastructure.x-k8s.io
. Previously created AzureMachinePool, AzureManagedControlPlane, AzureManagedMachinePool, AzureManagedCluster objects under theexp.infrastructure.x-k8s.io
group are no longer supported and will not reconcile. In order to migrate your existing clusters using the experimental MachinePool and AKS features, it is recommended to either create a new cluster and migrate workloads, or migrate your existing MachinePool and ManagedCluster objects using a tool like Kubernetes CustomResourceDefinition Migration Tool. (#1389, @CecileRobertMichon)
- The API group for AzureMachinePool, AzureManagedControlPlane, AzureManagedMachinePool, and AzureManagedCluster was renamed from
Changes by Kind
β¨ Feature
- Add Azure machine pool rolling upgrades with MaxSurge, MaxUnavailable and DeletePolicy. (#1332, @devigned)
- Add deprecation warning for using credentials from environment variables (#1477, @nader-ziada)
- Added new field to
SubnetSpec
so that users can specify the Nat Gateway to use when creating subnets. (#1188, @fiunchinho) - Added support for using Azure Bastion to get console access to virtual machines in the cluster through the Azure Portal. (#1300, @whites11)
- Allow using Marketplace images in AzureMachinePools.
Allow using Shared Image Gallery images requiring a Plan in AzureMachines and AzureMachinePools. (#1469, @whites11) - Cordon and drain AzureMachinePoolMachines prior to delete or upgrade operations (#1435, @devigned)
- Expose cloud provider backoff config (#1415, @Ankitasw)
- Expose cloud provider rate limit config (#1373, @shysank)
- Immutable validation for AzureMachine update (#1409, @shivi28)
- Make LB IdleTimeoutInMinutes configurable (#1413, @CecileRobertMichon)
- Make control plane outbound lb configurable (#1466, @shysank)
- Multitenancy for managed clusters. (#1386, @shysank)
- SinglePlacementGroup=false for Azure VMSS (MachinePool) (#1492, @jackfrancis)
- Update aad-pod-identity to v1.8.0 which upgrades CRDs from apiextensions/v1beta1 to apiextensions/v1
- Update calico version used by templates and tests (#1360, @nader-ziada)
- Additional Tags for managed clusters (#1393, @LochanRn)
- Make azure credentials optional in manager deployment (#1445, @CecileRobertMichon)
- Update Windows VM naming to use the AzureMachine name as prefix (#1408, @CecileRobertMichon)
- Change OSDisk.DiskSizeGB to be optional (#1398, @nader-ziada)
- Added support for externally managed infrastructure (#1389, @CecileRobertMichon)
π Documentation
- Add documentation for using Flannel as CNI (#1374, @lastcoolnameleft)
- Fix broken link in docs after clusterctl changes (#1476, @fiunchinho)
- Update the AzureMachinePool docs with deployment strategy, delete policy, and AzureMachinePoolMachine details. (#1459, @devigned)
π Bug or Regression
- AzureClusterIdentity should not have an owner reference of a Cluster (#1506, @nader-ziada)
- Don't delete AzureIdentities from other Clusters (#1502, @CecileRobertMichon)
- Fix deletion and speed up provisioning for CAPI clusters using AzureManagedCluster + AzureManagedControlPlane (AKS). (#1397, @alexeldeib)
- Fix nil panic in AzureMachinePoolMachine scope when no node is found for the providerID (#1490, @devigned)
- Make azure.json secret key backward compatible.
*- This be removed in capzv0.6.x
, and you should use the newcontrol-plane-azure.json
andworker-node-azure.json
fields for configuring your clusters ** (#1405, @shysank) - Save subnet details back to scope when reconciling already existing subnets (#1401, @fiunchinho)
π§ Other (Cleanup or Flake)
- Improve error messaging around bootstrap extension provisioning (#1450, @CecileRobertMichon)
- Make tilt watch relevant folders (#1489, @fiunchinho)
- Update AzureFile and AzureDisk templates to v1 (#1379, @CecileRobertMichon)
- Update OOT cloud-provider version and enable LB test (#1323, @CecileRobertMichon)
- Update external cloud provider templates to v1.0 (#1486, @CecileRobertMichon)
- Update release-notes version to v0.9.0
Update controller tools to v0.6.1
Update conversion gen to v0.21.2
Update golangci-lint to v1.41.1
Update mockgen to v1.6.0
Update go apidiff to v0.1.0
Update ginkgo to v1.16.4
Update kustomize to v4.1.3 (#1467, @CecileRobertMichon) - Windows e2e tests from kubernetes are run against capz workload cluster (#1119, @jsturtevant)
π± Dependencies
Added
- bazil.org/fuse: 371fbbd
- cloud.google.com/go/firestore: v1.1.0
- github.com/Microsoft/go-winio: v0.5.0
- github.com/Microsoft/hcsshim/test: 43a75bb
- github.com/Microsoft/hcsshim: v0.8.16
- github.com/Shopify/logrus-bugsnag: 577dee2
- github.com/alexflint/go-filemutex: 72bdc8e
- github.com/antihax/optional: v1.0.0
- github.com/bitly/go-simplejson: v0.5.0
- github.com/bketelsen/crypt: v0.0.4
- github.com/bmizerany/assert: b7ed37b
- github.com/bshuster-repo/logrus-logstash-hook: v0.4.1
- github.com/buger/jsonparser: f4dd9f5
- github.com/bugsnag/bugsnag-go: b1d1530
- github.com/bugsnag/osext: 0dd3f91
- github.com/bugsnag/panicwrap: e2c2850
- github.com/checkpoint-restore/go-criu/v4: v4.1.0
- github.com/cilium/ebpf: v0.4.0
- github.com/containerd/aufs: v1.0.0
- github.com/containerd/btrfs: v1.0.0
- github.com/containerd/cgroups: v1.0.1
- github.com/containerd/console: v1.0.2
- github.com/containerd/containerd: v1.5.2
- github.com/containerd/continuity: v0.1.0
- github.com/containerd/fifo: v1.0.0
- github.com/containerd/go-cni: v1.0.2
- github.com/containerd/go-runc: v1.0.0
- github.com/containerd/imgcrypt: v1.1.1
- github.com/containerd/nri: v0.1.0
- github.com/containerd/ttrpc: v1.0.2
- github.com/containerd/typeurl: v1.0.2
- github.com/containerd/zfs: v1.0.0
- github.com/containernetworking/cni: v0.8.1
- github.com/containernetworking/plugins: v0.9.1
- github.com/containers/ocicrypt: v1.1.1
- github.com/coredns/caddy: v1.1.0
- github.com/coreos/go-systemd/v22: v22.3.2
- github.com/cyphar/filepath-securejoin: v0.2.2
- github.com/d2g/dhcp4: a1d1b6c
- github.com/d2g/dhcp4client: v1.0.0
- github.com/d2g/dhcp4server: 7d4a0a7
- github.com/d2g/hardwareaddr: e7d9fbe
- github.com/denverdino/aliyungo: a747050
- github.com/dnaeon/go-vcr: v1.0.1
- github.com/docker/go-connections: v0.4.0
- github.com/docker/go-events: e31b211
- github.com/docker/go-metrics: v0.0.1
- github.com/docker/libtrust: fa56704
- github.com/drone/envsubst/v2: 7bf45db
- github.com/evanphx/json-patch/v5: v5.2.0
- github.com/frankban/quicktest: v1.11.3
- github.com/fullsailor/pkcs7: d7302db
- github.com/fvbommel/sortorder: v1.0.1
- github.com/garyburd/redigo: 535138d
- github.com/go-errors/errors: v1.0.1
- github.com/go-ini/ini: v1.25.4
- github.com/go-kit/log: v0.1.0
- github.com/go-task/slim-sprig: 348f09d
- github.com/gobuffalo/here: v0.6.0
- github.com/godbus/dbus/v5: v5.0.4
- github.com/godbus/dbus: ade71ed
- github.com/google/go-github/v33: v33.0.0
- github.com/google/shlex: e7afc7f
- github.com/gorilla/handlers: 60c7bfd
- github.com/j-keck/arping: 2cf9dc6
- github.com/jessevdk/go-flags: v1.4.0
- github.com/klauspost/compress: v1.11.13
- github.com/kr/fs: v0.1.0
- github.com/markbates/pkger: v0.17.1
- github.com/marstr/guid: v1.1.0
- github.com/mattn/go-shellwords: v1.0.3
- github.com/miekg/pkcs11: v1.0.3
- github.com/mistifyio/go-zfs: f784269
- github.com/mitchellh/osext: 5e2d6d4
- github.com/moby/locker: v1.0.1
- github.com/moby/spdystream: v0.2.0
- github.com/moby/sys/mountinfo: v0.4.1
- github.com/moby/sys/symlink: v0.1.0
- github.com/moby/term: df9cb8a
- github.com/monochromegane/go-gitignore: 205db1a
- github.com/morikuni/aec: v1.0.0
- github.com/mrunalp/fileutils: v0.5.0
- github.com/ncw/swift: v1.0.47
- github.com/niemeyer/pretty: a10e7ca
- github.com/opencontainers/image-spec: v1.0.1
- github.com/opencontainers/runc: v1.0.0-rc93
- github.com/opencontainers/runtime-spec: e6143ca
- github.com/opencontainers/runtime-tools: 1d69bd0
- github.com/opencontainers/selinux: v1.8.0
- github.com/pkg/sftp: v1.10.1
- github.com/safchain/ethtool: 42ed695
- github.com/satori/go.uuid: v1.2.0
- github.com/seccomp/libseccomp-golang: v0.9.1
- github.com/stefanberger/go-pkcs11uri: 78d3cae
- github.com/stoewer/go-strcase: v1.2.0
- github.com/syndtr/gocapability: 42c35b4
- github.com/tchap/go-patricia: v2.2.6+incompatible
- github.com/vishvananda/netlink: d40f988
- github.com/vishvananda/netns: db3c7e5
- github.com/willf/bitset: v1.1.11
- github.com/xeipuuv/gojsonpointer: 4e3ac27
- github.com/xeipuuv/gojsonreference: bd5ef7b
- github.com/xeipuuv/gojsonschema: 1d52303
- github.com/xlab/treeprint: a009c39
- github.com/yvasiyarov/go-metrics: 57bccd1
- github.com/yvasiyarov/gorelic: a9bba5b
- github.com/yvasiyarov/newrelic_platform_go: b21fdbd
- go.etcd.io/etcd/api/v3: v3.5.0
- go.etcd.io/etcd/client/pkg/v3: v3.5.0
- go.etcd.io/etcd/client/v2: v2.305.0
- go.etcd.io/etcd/client/v3: v3.5.0
- go.mozilla.org/pkcs7: 432b235
- go.opentelemetry.io/otel/metric: v0.20.0
- go.opentelemetry.io/otel/oteltest: v0.20.0
- go.opentelemetry.io/otel/sdk/export/metric: v0.20.0
- go.opentelemetry.io/otel/sdk/metric: v0.20.0
- go.opentelemetry.io/otel/trace: v0.20.0
- go.starlark.net: 8dd3e2e
- go.uber.org/goleak: v1.1.10
- google.golang.org/cloud: 975617b
- gopkg.in/airbrake/gobrake.v2: v2.0.9
- gopkg.in/gemnasium/logrus-airbrake-hook.v2: v2.1.2
- gotest.tools/v3: v3.0.3
- k8s.io/component-helpers: v0.21.2
- k8s.io/cri-api: v0.20.6
- k8s.io/kubernetes: v1.13.0
- sigs.k8s.io/apiserver-network-proxy/konnectivity-client: v0.0.19
- sigs.k8s.io/cluster-api/test: v0.4.0
- sigs.k8s.io/kustomize/api: v0.8.8
- sigs.k8s.io/kustomize/cmd/config: v0.9.10
- sigs.k8s.io/kustomize/kustomize/v4: v4.1.2
- sigs.k8s.io/kustomize/kyaml: v0.10.17
- sigs.k8s.io/structured-merge-diff/v4: v4.1.0
Changed
- cloud.google.com/go: v0.65.0 β v0.81.0
- github.com/Azure/aad-pod-identity: v1.6.3 β v1.8.0
- github.com/Azure/azure-sdk-for-go: v48.2.0+incompatible β v55.2.0+incompatible
- github.com/Azure/go-autorest/autorest/adal: v0.9.5 β v0.9.13
- github.com/Azure/go-autorest/autorest: v0.11.11 β v0.11.18
- github.com/Azure/go-autorest/logger: v0.2.0 β v0.2.1
- github.com/NYTimes/gziphandler: 56545f4 β v1.1.1
- github.com/alessio/shellescape: b115ca0 β v1.4.1
- github.com/asaskevich/govalidator: f61b66f β f21760c
- github.com/cncf/udpa/go: 269d4d4 β 5459f2c
- github.com/coredns/corefile-migration: v1.0.11 β v1.0.12
- github.com/coreos/etcd: v3.3.10+incompatible β v3.3.13+incompatible
- github.com/coreos/go-iptables: v0.3.0 β v0.5.0
- github.com/creack/pty: v1.1.7 β v1.1.11
- github.com/docker/docker: be7ac8b β v20.10.7+incompatible
- github.com/elazarl/goproxy: c4fc265 β 947c36d
- github.com/envoyproxy/go-control-plane: v0.9.4 β 668b12f
- github.com/evanphx/json-patch: v4.9.0+incompatible β v4.11.0+incompatible
- github.com/fatih/color: v1.7.0 β v1.12.0
- github.com/form3tech-oss/jwt-go: v3.2.2+incompatible β v3.2.3+incompatible
- github.com/go-logr/logr: v0.1.0 β v0.4.0
- github.com/go-logr/zapr: v0.1.0 β v0.4.0
- github.com/go-openapi/spec: v0.19.3 β v0.19.5
- github.com/go-openapi/strfmt: v0.19.3 β v0.19.5
- github.com/go-openapi/validate: v0.19.5 β v0.19.8
- github.com/gobuffalo/flect: v0.2.2 β v0.2.3
- github.com/gogo/googleapis: v1.1.0 β v1.4.0
- github.com/gogo/protobuf: v1.3.1 β v1.3.2
- github.com/golang/groupcache: 8c9f03a β 41bb18b
- github.com/golang/mock: v1.4.4 β v1.5.0
- github.com/golang/protobuf: v1.4.3 β v1.5.2
- github.com/google/go-cmp: v0.5.3 β v0.5.6
- github.com/google/martian/v3: v3.0.0 β v3.1.0
- github.com/google/pprof: 1a94d86 β cbba55b
- github.com/google/uuid: v1.1.2 β v1.2.0
- github.com/googleapis/gnostic: v0.3.1 β v0.5.5
- github.com/gorilla/websocket: v1.4.0 β v1.4.2
- github.com/grpc-ecosystem/grpc-gateway: v1.9.5 β v1.16.0
- github.com/ianlancetaylor/demangle: 5e5cf60 β 28f6c0f
- github.com/imdario/mergo: v0.3.9 β v0.3.12
- github.com/json-iterator/go: v1.1.10 β v1.1.11
- github.com/kisielk/errcheck: v1.2.0 β v1.5.0
- github.com/kr/pretty: v0.1.0 β v0.2.1
- github.com/kr/text: v0.1.0 β v0.2.0
- github.com/magiconair/properties: v1.8.1 β v1.8.5
- github.com/mattn/go-colorable: v0.0.9 β v0.1.8
- github.com/mattn/go-runewidth: v0.0.2 β v0.0.9
- github.com/matttproud/golang_protobuf_extensions: v1.0.1 β c182aff
- github.com/miekg/dns: v1.1.3 β v1.0.14
- github.com/mitchellh/mapstructure: v1.1.2 β v1.4.1
- github.com/nxadm/tail: v1.4.4 β v1.4.8
- github.com/olekukonko/tablewriter: a0225b3 β v0.0.4
- github.com/onsi/ginkgo: v1.14.2 β v1.16.4
- github.com/onsi/gomega: v1.10.3 β v1.13.0
- github.com/pelletier/go-toml: v1.6.0 β v1.9.3
- github.com/prometheus/client_golang: v1.8.0 β v1.11.0
- github.com/prometheus/common: v0.14.0 β v0.26.0
- github.com/prometheus/procfs: v0.2.0 β v0.6.0
- github.com/rogpeppe/fastuuid: 6724a57 β v1.2.0
- github.com/sergi/go-diff: v1.0.0 β v1.1.0
- github.com/sirupsen/logrus: v1.6.0 β v1.7.0
- github.com/spf13/afero: v1.2.2 β v1.6.0
- github.com/spf13/cast: v1.3.0 β v1.3.1
- github.com/spf13/cobra: v1.0.0 β v1.1.3
- github.com/spf13/jwalterweatherman: v1.0.0 β v1.1.0
- github.com/spf13/viper: v1.6.2 β v1.8.0
- github.com/stretchr/testify: v1.6.1 β v1.7.0
- github.com/urfave/cli: v1.22.1 β v1.22.2
- github.com/yuin/goldmark: v1.2.1 β v1.3.5
- go.etcd.io/bbolt: v1.3.3 β v1.3.5
- go.etcd.io/etcd: 3cf2f69 β dd1b699
- go.opencensus.io: v0.22.4 β v0.23.0
- go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp: v0.13.0 β v0.20.0
- go.opentelemetry.io/contrib: v0.13.0 β v0.20.0
- go.opentelemetry.io/otel/exporters/metric/prometheus: v0.13.0 β v0.20.0
- go.opentelemetry.io/otel/exporters/trace/jaeger: v0.13.0 β c99d5e9
- go.opentelemetry.io/otel/sdk: v0.13.0 β c99d5e9
- go.opentelemetry.io/otel: v0.13.0 β v0.20.0
- go.uber.org/atomic: v1.5.0 β v1.7.0
- go.uber.org/multierr: v1.3.0 β v1.6.0
- go.uber.org/zap: v1.13.0 β v1.17.0
- golang.org/x/crypto: c1f2f97 β 0c34fe9
- golang.org/x/lint: 738671d β 6edffad
- golang.org/x/mod: v0.3.0 β v0.4.2
- golang.org/x/net: a7d1128 β 89ef3d9
- golang.org/x/oauth2: 5d25da1 β d040287
- golang.org/x/sync: 6e8e738 β 036812b
- golang.org/x/sys: e3ed001 β ebe580a
- golang.org/x/term: f5c789d β 6a3ed07
- golang.org/x/text: v0.3.3 β v0.3.6
- golang.org/x/time: 555d28b β 38a9dc6
- golang.org/x/tools: 39188db β v0.1.2
- gomodules.xyz/jsonpatch/v2: v2.0.1 β v2.2.0
- google.golang.org/api: v0.32.0 β v0.44.0
- google.golang.org/appengine: v1.6.6 β v1.6.7
- google.golang.org/genproto: 0bd0a95 β f16073e
- google.golang.org/grpc: v1.31.1 β v1.38.0
- google.golang.org/protobuf: v1.25.0 β v1.26.0
- gopkg.in/check.v1: 41f04d3 β 8fa4692
- gopkg.in/ini.v1: v1.51.0 β v1.62.0
- gopkg.in/square/go-jose.v2: v2.2.2 β v2.5.1
- gopkg.in/yaml.v2: v2.3.0 β v2.4.0
- gopkg.in/yaml.v3: 9f266ea β 496545a
- k8s.io/api: v0.17.14 β v0.21.2
- k8s.io/apiextensions-apiserver: v0.17.9 β v0.21.2
- k8s.io/apimachinery: v0.17.14 β v0.21.2
- k8s.io/apiserver: v0.17.9 β v0.21.2
- k8s.io/cli-runtime: v0.17.14 β v0.21.2
- k8s.io/client-go: v0.17.14 β v0.21.2
- k8s.io/cluster-bootstrap: v0.17.9 β v0.21.2
- k8s.io/code-generator: v0.17.14 β v0.21.2
- k8s.io/component-base: v0.17.14 β v0.21.2
- k8s.io/gengo: 26a6646 β b6c5ce2
- k8s.io/klog/v2: v2.0.0 β v2.9.0
- k8s.io/kube-openapi: bcb3869 β 591a79e
- k8s.io/kubectl: v0.17.14 β v0.21.2
- k8s.io/metrics: v0.17.14 β v0.21.2
- k8s.io/utils: 67b214c β 6fdb442
- sigs.k8s.io/cluster-api: v0.3.14 β v0.4.0
- sigs.k8s.io/controller-runtime: v0.5.14 β v0.9.1
- sigs.k8s.io/kind: 981bd80 β v0.11.1
Removed
- github.com/DataDog/sketches-go: v0.0.1
- github.com/bifurcation/mint: 93c51c6
- github.com/caddyserver/caddy: v1.0.3
- github.com/cheekybits/genny: 9127e81
- github.com/coreos/go-etcd: v2.0.0+incompatible
- github.com/cpuguy83/go-md2man: v1.0.10
- github.com/drone/envsubst: efdb65b
- github.com/go-acme/lego: v2.5.0+incompatible
- github.com/golangplus/bytes: 45c989f
- github.com/golangplus/fmt: 2a5d6d7
- github.com/google/go-github: v17.0.0+incompatible
- github.com/gophercloud/gophercloud: v0.1.0
- github.com/jimstudt/http-authentication: 3eca13d
- github.com/klauspost/cpuid: v1.2.0
- github.com/kylelemons/godebug: d65d576
- github.com/lucas-clemente/aes12: cd47fb3
- github.com/lucas-clemente/quic-clients: v0.1.0
- github.com/lucas-clemente/quic-go-certificates: d2f8652
- github.com/lucas-clemente/quic-go: v0.10.2
- github.com/marten-seemann/qtls: v0.2.3
- github.com/mholt/certmagic: 6a42ef9
- github.com/naoina/go-stringutil: v0.1.0
- github.com/naoina/toml: v0.1.1
- github.com/remyoudompheng/bigfft: 52369c6
- github.com/ugorji/go/codec: d75b2dc
- github.com/xlab/handysort: fb3537e
- gonum.org/v1/gonum: 3d26580
- gonum.org/v1/netlib: 7672324
- gopkg.in/mcuadros/go-syslog.v2: v2.2.1
- k8s.io/klog: v1.0.0
- modernc.org/cc: v1.0.0
- modernc.org/golex: v1.0.0
- modernc.org/mathutil: v1.0.0
- modernc.org/strutil: v1.0.0
- modernc.org/xc: v1.0.0
- sigs.k8s.io/kustomize: v2.0.3+incompatible
- sigs.k8s.io/structured-merge-diff/v2: v2.0.1
- sigs.k8s.io/structured-merge-diff: 15d366b
- vbom.ml/util: db5cfe1
Thanks to all our contributors! π