v1.26.0
Cloud Provider Azure v1.26.0
Changes by Kind
Action Required
- The command line option
--port
has been removed (because of dependency upgrade k8s.io/cloud-provider to v0.26.0). Please switch to--secure-port
if you are using it in the deployments.
Feature
- Add support for VMSS with Flexible orchestration (#2523 #639 @zmyzheng)
- Add annotation service.beta.kubernetes.io/port_%d_no_lb_rule, with this annotation in svc manifest, no loud balancing rules will be created for the corresponding port and health status port will not be exposed to public internet. (#2828, @MartinForReal)
- Added: support for new annotations service.beta.kubernetes.io/port_
_health-probe_protocol and service.beta.kubernetes.io/port__health-probe_port to allow explicitly setting the health probe protocol individually for each service port. Useful for services like Istio which have health check separate from the main service port. (#2452, @rainest) - Feat: add AccessTier and SMB MultiChannel support in storage account creation (#2464, @andyzhangx)
- Feat: add PremiumV2LRS disk type support (#2421, @andyzhangx)
- Feat: support snapshot with management api (#2458, @umagnus)
Bug or Regression
- ARM will possibly return StatusCode 200 and ContentLength -1 which is a bug. However, cloudprovider can handle it better by retrying. (#2298, @lzhecheng)
- Avoid race condition between node-sync-loop routine and service reconcile routine. Avoid UpdateLoadBalancer() using stale service spec to update Load Balancers. (#2406, @jwtty)
- Bug: When a Service with DNS label is deleted, k8s-azure-dns-label-service tag won’t be deleted and it leads to ensurePublicIPExists error. (#2866, @lzhecheng)
- Check and cleanup both ELB and ILB when a service is being deleted. (#2420, @jwtty)
- Check internal lb ip in subnet before keeping it, so users can change their lb subnet. (#2524, @jwtty)
- Considering thread safety, results of cache Get() should be deepcopied before used. (#2445, @lzhecheng)
- Fix an issue when DNS label of public ip is not updated when service.beta.kubernetes.io/azure-dns-label-name is changed. (#2665, @MartinForReal)
- Fix to reduce PublicIPAddress list arm calls (#2707, @jwtty)
- Fix: Skip VMSS VM update operations if the VMs are not in good state fix: Set the retryAfter to 5s when PUT failed due to concurrent operation conflict. (#2386, @nilo19)
- Fix: add disk lun check in AttachDisk to avoid race condition (#2805, @andyzhangx)
- Fix: add disk lun check in VMSSFlex AttachDisk to avoid race condition (#2830, @andyzhangx)
- Fix: avoid recreate vmss cache in race condition (#2589, @andyzhangx)
- Fix: check private dns zone before creation (#2723, @ZeroMagic)
- Fix: decouple vmss from the lb if the backend pool is empty when using ip-based LB chore: do not set etag to nil when updating lb backend pool (#2829, @nilo19)
- Fix: decouple vmss with 0 instance from lb when deleting the service (#2489, @nilo19)
- Fix: panic in cache conversion (#2771, @andyzhangx)
- Fix: reduce VMSS cache refresh in CSI driver (#2816, @andyzhangx)
- Fix: remove lb from vmss when the backend pool is empty (#2721, @nilo19)
- Fix: resource group issue in disk attach (#2817, @andyzhangx)
- Only check response body length when request is GET. Avoids unnecessary retry when deleting an LB. (#2363, @jwtty)
- Fix CVE-2022-41717 (#2883, @andyzhangx)
- Fixed a bug that prevents disks from being attached and detached for VMs in a Flex VMSS (#2635, @okushchenko)
Other (Cleanup or Flake)
- Bump snapshot client to 2022-03-02 (#2647, @MartinForReal)
- Bump azure compute version to 2022-03-01 (#2623, @MartinForReal)
- Chore: get node private IPs from cache but NIC (#2430, @nilo19)
- Chore: remove orphaned nic from lb backend pool if the corresponding VM is not found (#2834, @nilo19)
- Chore: update dependencies against k/k v1.26.0 (#2882, @nilo19)
- Chore: update helm chart to migrate from insecure to secure serving (#2931, @nilo19)
- Deprecate LoadBalancerIP with Service LB IP annotation. Add service.beta.kubernetes.io/azure-load-balancer-ipv4 and service.beta.kubernetes.io/azure-load-balancer-ipv6 (#2428, @lzhecheng)
- The following labels are removed on the nodes:
- “failure-domain.beta.kubernetes.io/zone”
- “failure-domain.beta.kubernetes.io/region”
- “beta.kubernetes.io/instance-type” (#2653, @Bryce-Soghigian)
Dependencies
Added
- github.com/OneOfOne/xxhash: v1.2.2
- github.com/antlr/antlr4/runtime/Go/antlr: v1.4.10
- github.com/cenkalti/backoff/v4: v4.1.3
- github.com/cespare/xxhash: v1.1.0
- github.com/go-logr/stdr: v1.2.2
- github.com/google/cel-go: v0.12.5
- github.com/grpc-ecosystem/grpc-gateway/v2: v2.7.0
- github.com/spaolacci/murmur3: f09979e
- go.opentelemetry.io/otel/exporters/otlp/internal/retry: v1.10.0
- go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc: v1.10.0
- go.opentelemetry.io/otel/exporters/otlp/otlptrace: v1.10.0
- k8s.io/kms: v0.26.0
Changed
- github.com/Azure/azure-sdk-for-go: v66.0.0+incompatible → v67.1.0+incompatible
- github.com/emicklei/go-restful/v3: v3.8.0 → v3.9.0
- github.com/felixge/httpsnoop: v1.0.1 → v1.0.3
- github.com/fsnotify/fsnotify: v1.5.4 → v1.6.0
- github.com/go-kit/log: v0.1.0 → v0.2.0
- github.com/go-logfmt/logfmt: v0.5.0 → v0.5.1
- github.com/go-openapi/jsonreference: v0.19.5 → v0.20.0
- github.com/golang/glog: 23def4e → v1.0.0
- github.com/google/go-cmp: v0.5.8 → v0.5.9
- github.com/inconshreveable/mousetrap: v1.0.0 → v1.0.1
- github.com/matttproud/golang_protobuf_extensions: c182aff → v1.0.2
- github.com/moby/term: 3f7ff69 → 39b0c02
- github.com/onsi/ginkgo/v2: v2.1.6 → v2.5.1
- github.com/onsi/gomega: v1.20.2 → v1.24.1
- github.com/prometheus/client_golang: v1.12.1 → v1.14.0
- github.com/prometheus/client_model: v0.2.0 → v0.3.0
- github.com/prometheus/common: v0.32.1 → v0.37.0
- github.com/prometheus/procfs: v0.7.3 → v0.8.0
- github.com/spf13/cobra: v1.5.0 → v1.6.1
- github.com/stretchr/objx: v0.4.0 → v0.5.0
- github.com/stretchr/testify: v1.8.0 → v1.8.1
- go.etcd.io/etcd/api/v3: v3.5.4 → v3.5.5
- go.etcd.io/etcd/client/pkg/v3: v3.5.4 → v3.5.5
- go.etcd.io/etcd/client/v2: v2.305.4 → v2.305.5
- go.etcd.io/etcd/client/v3: v3.5.4 → v3.5.5
- go.etcd.io/etcd/pkg/v3: v3.5.4 → v3.5.5
- go.etcd.io/etcd/raft/v3: v3.5.4 → v3.5.5
- go.etcd.io/etcd/server/v3: v3.5.4 → v3.5.5
- go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc: v0.20.0 → v0.35.0
- go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp: v0.20.0 → v0.35.0
- go.opentelemetry.io/otel/metric: v0.20.0 → v0.31.0
- go.opentelemetry.io/otel/sdk: v0.20.0 → v1.10.0
- go.opentelemetry.io/otel/trace: v0.20.0 → v1.10.0
- go.opentelemetry.io/otel: v0.20.0 → v1.10.0
- go.opentelemetry.io/proto/otlp: v0.7.0 → v0.19.0
- go.uber.org/goleak: v1.1.10 → v1.2.0
- golang.org/x/crypto: 630584e → v0.1.0
- golang.org/x/mod: 9b9b3d8 → 86c51ed
- golang.org/x/net: a158d28 → v0.4.0
- golang.org/x/oauth2: d3ed0bb → ee48083
- golang.org/x/sys: 8c9f86f → v0.3.0
- golang.org/x/term: 03fcf44 → v0.3.0
- golang.org/x/text: v0.3.7 → v0.5.0
- golang.org/x/tools: v0.1.12 → v0.2.0
- google.golang.org/grpc: v1.47.0 → v1.49.0
- google.golang.org/protobuf: v1.28.0 → v1.28.1
- k8s.io/api: v0.25.0 → v0.26.0
- k8s.io/apimachinery: v0.25.0 → v0.26.0
- k8s.io/apiserver: v0.25.0 → v0.26.0
- k8s.io/client-go: v0.25.0 → v0.26.0
- k8s.io/cloud-provider: v0.25.0 → v0.26.0
- k8s.io/component-base: v0.25.0 → v0.26.0
- k8s.io/component-helpers: v0.25.0 → v0.26.0
- k8s.io/controller-manager: v0.25.0 → v0.26.0
- k8s.io/klog/v2: v2.80.0 → v2.80.1
- k8s.io/kube-openapi: 67bda5d → 172d655
- k8s.io/kubelet: v0.25.0 → v0.26.0
- k8s.io/utils: ee6ede2 → 99ec85e
- sigs.k8s.io/apiserver-network-proxy/konnectivity-client: v0.0.32 → v0.0.33