From e9e32f3437e45484a55859d7d9e06308b7eefde7 Mon Sep 17 00:00:00 2001 From: Suyash Choudhary <57896905+sssash18@users.noreply.github.com> Date: Thu, 25 Jul 2024 16:13:45 +0530 Subject: [PATCH] Sync upstream v1.30.1 (#317) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Comment to explain why test is done on STS ownerRef * add informer argument to clusterapi provider builder This change adds the informer factory as an argument to the `buildCloudProvider` function for clusterapi so that building with tags will work properly. * Add informer argument to the CloudProviders builder. * clusterapi: add missing error check * Add instanceType/region support in Helm chart for Hetzner cloud provider * doc: cluster-autoscaler: Oracle provider: Add small security note * doc: cluster-autoscaler: Oracle provider: Add small security note * doc: cluster-autoscaler: Oracle provider: Add small security note * Update charts/cluster-autoscaler/README.md * Update Auto Labels of Subprojects * check empty ProviderID in ali NodeGroupForNode * add gce constructor with custom timeout * update README.md.gotmpl and added Helm docs for Hetzner Cloud * bump chart version * use older helm-docs version and remove empty line in values comment * add missing line breaks * Update charts/cluster-autoscaler/Chart.yaml Co-authored-by: Shubham * Reduce log spam in AtomicResizeFilteringProcessor Also, introduce default per-node logging quotas. For now, identical to the per-pod ones. * Bump golang in /vertical-pod-autoscaler/pkg/updater Bumps golang from 1.21.6 to 1.22.0. --- updated-dependencies: - dependency-name: golang dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * Bump golang in /vertical-pod-autoscaler/pkg/recommender Bumps golang from 1.21.6 to 1.22.0. --- updated-dependencies: - dependency-name: golang dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * Bump golang in /vertical-pod-autoscaler/pkg/admission-controller Bumps golang from 1.21.6 to 1.22.0. --- updated-dependencies: - dependency-name: golang dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * Update Chart.yaml * Move estimatorBuilder from AutoscalingContext to Orchestrator Init * VPA: bump golang.org/x/net to fix CVE-2023-39325 The version of golang.org/x/net currently used is vulnerable to https://avd.aquasec.com/nvd/2023/cve-2023-39325/, bump it to fix that. * Bump go version. * Fix e2e test setup * helm: enable clusterapi namespace autodiscovery * Fix expectedToRegister to respect instances with nil status * add option to keep node group backoff on OutOfResource error * remove changes to backoff interface * attach errors to scale-up request and add comments * revert optionally keeping node group backoff * remove RemoveBackoff from updateScaleRequests * Add ProvisioningRequestProcessor (#6488) * Add kube-env to MigInfoProvider * CA: GCE: add pricing for new Z3 machines * Introduce LocalSSDSizeProvider interface for GCE * Use KubeEnv in gce/templates.go * Add templateName to kube-env to ensure that correct value is cached * Add unit-tests * extract create group to function * Merged PR 1379: added retry for creatingAzureManager in case of throttled requests added retry for forceRefresh in case of throttled requests ran tests MallocNanoZone=0 go test -race k8s.io/autoscaler/cluster-autoscaler/cloudprovider/azure -- passed and commented out unit test -- commented out as it takes 10 minutes to complete func TestCreateAzureManagerWithRetryError(t *testing.T) { ctrl := gomock.NewController(t) defer ctrl.Finish() mockVMClient := mockvmclient.NewMockInterface(ctrl) mockVMSSClient := mockvmssclient.NewMockInterface(ctrl) mockVMSSClient.EXPECT().List(gomock.Any(), "fakeId").Return([]compute.VirtualMachineScaleSet{}, retry.NewError(true, errors.New("test"))).AnyTimes() mockAzClient := &azClient{ virtualMachinesClient: mockVMClient, virtualMachineScaleSetsClient: mockVMSSClient, } manager, err := createAzureManagerInternal(strings.NewReader(validAzureCfg), cloudprovider.NodeGroupDiscoveryOptions{}, config.AutoscalingOptions{}, mockAzClient) assert.Nil(t, manager) assert.NotNil(t, err) } * docs: update outdated/deprecated taints in the examples Refactor references to taints & tolerations, replacing master key with control-plane across all the example YAMLs. Signed-off-by: Feruzjon Muyassarov * CA FAQ: clarify the point about scheduling constraints blocking scale-down * Add warning about vendor removal to Makefile build target Signed-off-by: Feruzjon Muyassarov * fix: add missing ephemeral-storage resource definition * Add BuildTestNodeWithAllocatable test utility method. * Add ProvisioningRequest injector (#6529) * Add ProvisioningRequests injector * Add test case for Accepted conditions and add supported provreq classes list * Use Passive clock * Consider preemption policy for expandable pods * Fix a bug where atomic scale-down failure could affect subsequent atomic scale-downs * Update gce_price_info.go * Migrate from satori/go.uuid to google/uuid * Delay force refresh by DefaultInterval when OCI GetNodePool call returns 404 * CA: update dependencies to k8s v1.30.0-alpha.3, go1.21.8 * Bump golang in /vertical-pod-autoscaler/pkg/admission-controller Bumps golang from 1.22.0 to 1.22.1. --- updated-dependencies: - dependency-name: golang dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * Bump golang in /vertical-pod-autoscaler/pkg/updater Bumps golang from 1.22.0 to 1.22.1. --- updated-dependencies: - dependency-name: golang dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * Bump golang in /vertical-pod-autoscaler/pkg/recommender Bumps golang from 1.22.0 to 1.22.1. --- updated-dependencies: - dependency-name: golang dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * Update expander options for the AWS cloud provider README * Remove shadow err variable in deleteCreatedNodesWithErros func * fix memory leak in NodeDeleteTracker * CA - Add 1.29 to version compatibility matrix * ClusterAutoscaler: Put APIs in a separate go module Signed-off-by: Yuki Iwai * Extend update-deps.sh so that we can automatically update k8s libraries in the apis pkg Signed-off-by: Yuki Iwai * Clean up update-deps.sh Signed-off-by: Yuki Iwai * Update apis version to v1.29.2 Signed-off-by: Yuki Iwai * Allow to override rancher provider settings Currently it is only possible to set provider settings over yaml file. This commit introduces env variables to override URL, token and cluster name. If particular environment variable is set it overrides value supplied in yaml file. Signed-off-by: Dinar Valeev Co-authored-by: Donovan Muller * Bump VPA version to 1.1.0 * Deprecate the Linode Cluster Autoscaler provider Signed-off-by: Ondrej Kokes * add price info for n4 * update n4 price info format * Set "pd-balanced" as DefaultBootDiskType It is a default since v1.24 Ref: https://cloud.google.com/kubernetes-engine/docs/how-to/custom-boot-disks#specify * Clarify VPA and HPA limitations Signed-off-by: Luke Addison * Update ionos-cloud-sdk-go and mocks * Update provider code * Add cloud API request metrics. * Fix and update README * Ignore ionos-cloud-sdk-go spelling * fix n4 price format * Add listManagedInstancesResults to GceCache. * [clusterapi] Do not skip nodegroups with minSize=maxSize * [clusterapi] Update tests for nodegroups with minSize=maxSize * add tests * made changes to support MIGs that use regional instance templates * modified current unit tests to support the new modifications * added comment to InstanceTemplateNameType * Ran hack/go-fmtupdate.h on mig_info_provider_test.go * Use KubeEnv in gce/templates.go * Add templateName to kube-env to ensure that correct value is cached * rebased and resolved conflicts * added fix for unit tests * changed InstanceTemplateNameType to InstanceTemplateName * separated url parser to its own function, created unit test for the function * separated url parser to its own function, created unit test for the function * added unit test with regional MIG * Migrate GCE client to server side operation wait * Track type of node group created/deleted in auto-provisioned group metrics. * trigger tests * fix comment * Add AtomicScaleUp method to NodeGroup interface * Add an option to Cluster Autoscaler that allows triggering new loops more frequently: based on new unschedulable pods and every time a previous iteration was productive. * Refactor StartDeletion usage patterns and enforce periodic scaledown status processor calls. * Bump golang to 1.22 * updated admission-controller to have adjustable --min-tls-version and --tls-ciphers * CA: Move the ProvisioningRequest CRD to apis module Signed-off-by: Yuki Iwai * Bump default VPA version to 1.1.0 As part of the 1.1.0 release: #6388 * Format README * Add chart versions * Add script to update required chart versions in README * Add chart version column in version matrix * Move cluster-autoscaler update-chart-version-readme script to /hack * Only check recent revisions when updating README * Update min cluster-autoscaler chart for Kubernetes 1.29 * Remove unused NodeInfoProcessor * Fix broken link in README.md to point to equinixmetal readme * review comments - simplify retry logic * CA: Before we perform go test, synchronizing go vendor Signed-off-by: Yuki Iwai * Cleanup ProvReq wrapper * Make the Estimate func accept pods grouped. The grouping should be made by the schedulability equivalence meaning we can introduce optimizations to the binpacking. Introduce a benchmark that estimates capacity needed for 51k pods, which can be grouped to two equivalence groups 50k and 1k. * Update CAPI docs Add a link to the sample manifest and update the image used in the example. Signed-off-by: Lennart Jern * Bump golang in /vertical-pod-autoscaler/pkg/updater Bumps golang from 1.22.1 to 1.22.2. --- updated-dependencies: - dependency-name: golang dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * Bump golang in /vertical-pod-autoscaler/pkg/admission-controller Bumps golang from 1.22.1 to 1.22.2. --- updated-dependencies: - dependency-name: golang dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * Bump golang in /vertical-pod-autoscaler/pkg/recommender Bumps golang from 1.22.1 to 1.22.2. --- updated-dependencies: - dependency-name: golang dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * Introduce binbacking optimization for similar pods. The optimization uses the fact that pods which are equivalent do not need to be check multiple times against already filled nodes. This changes the time complexity from O(pods*nodes) to O(pods). * CA: Fix apis vendoring * Add g6 EC2 instance type for AWS * Copyright boilerplate * Lower errors verbosity for kube-env label missing * parentController may be nil when owner isn't scalable * Update ProvisioningClass API Group * Fix Autoscaling for worker nodes with invalid ProviderID This change fixes a bug that arises when the user's cluster includes worker nodes not from Hetzner Cloud, such as a Hetzner Dedicated server or any server resource other than Hetzner. It also corrects the behavior when a server has been physically deleted from Hetzner Cloud. Signed-off-by: Maksim Paskal * Add tests for Pods owner that doesn't implement /scale * Add provreqOrchestrator that handle ProvReq classes (#6627) * Add provreqOrchestrator that handle ProvReq classes * Review remarks * Review remarks * Cluster Autoscaler: Sync k8s.io dependencies to k/k v1.30.0, bump Go to 1.22.2 * [v1.30] fix(hetzner): hostname label is not considered The Node Group info we currently return does not include the `kubernetes.io/hostname` label, which is usually set on every node. This causes issues when the user has an unscheduled pod with a `topologySpreadConstraint` on `topologyKey: kubernetes.io/hostname`. cluster-autoscaler is unable to fulfill this constraint and does not scale up any of the node groups. Related to #6715 * Remove the flag for enabling ProvisioningRequests The API is not stable yet, we don't want people to depend on the current version. * fix: scale up broken for providers not implementing NodeGroup.GetOptions() Properly handle calls to `NodeGroup.GetOptions()` that return `cloudprovider.ErrNotImplemented` in the scale up path. * Add --enable-provisioning-requests flag * [cluster-autoscaler-release-1.30] Fix ProvisioningRequest update (#6825) * Fix ProvisioningRequest update * Review remarks --------- Co-authored-by: Yaroslava Serdiuk * Update k/k vendor to 1.30.1 for CA 1.30 * sync changes * added sync changes file * golint fix * update vpa vendor * fixed volcengine * ran gofmt * synched azure * synched azure * synched IT * removed IT log file * addressed review comments --------- Signed-off-by: dependabot[bot] Signed-off-by: Feruzjon Muyassarov Signed-off-by: Yuki Iwai Signed-off-by: Dinar Valeev Signed-off-by: Ondrej Kokes Signed-off-by: Luke Addison Signed-off-by: Lennart Jern Signed-off-by: Maksim Paskal Co-authored-by: Kubernetes Prow Robot <20407524+k8s-ci-robot@users.noreply.github.com> Co-authored-by: David Benque Co-authored-by: michael mccune Co-authored-by: shubham82 Co-authored-by: Markus Lehtonen Co-authored-by: Niklas Rosenstein Co-authored-by: Ky-Anh Huynh Co-authored-by: Niklas Rosenstein Co-authored-by: Guy Templeton Co-authored-by: daimaxiaxie <44503972+daimaxiaxie@users.noreply.github.com> Co-authored-by: daimaxiaxie Co-authored-by: Michal Pitr Co-authored-by: Daniel Kłobuszewski Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Artur Żyliński Co-authored-by: Alvaro Aleman Co-authored-by: Marco Voelz Co-authored-by: Jack Francis Co-authored-by: Yarin Miran Co-authored-by: Will Bowers <22203232+wllbo@users.noreply.github.com> Co-authored-by: Yaroslava Serdiuk Co-authored-by: Bartłomiej Wróblewski Co-authored-by: Anish Shah Co-authored-by: Mahmoud Atwa Co-authored-by: pawel siwek Co-authored-by: Miranda Craghead Co-authored-by: Feruzjon Muyassarov Co-authored-by: Kuba Tużnik Co-authored-by: Johnnie Ho Co-authored-by: Walid Ghallab Co-authored-by: Karol Wychowaniec Co-authored-by: oksanabaza Co-authored-by: Vijay Bhargav Eshappa Co-authored-by: David Co-authored-by: Damika Gamlath Co-authored-by: Ashish Pani Co-authored-by: Yuki Iwai Co-authored-by: Dinar Valeev Co-authored-by: Donovan Muller Co-authored-by: Luiz Antonio Co-authored-by: Ondrej Kokes Co-authored-by: Yuan Co-authored-by: Luke Addison Co-authored-by: Mario Valderrama Co-authored-by: Max Fedotov Co-authored-by: Daniel-Redeploy <84455776+Daniel-Redeploy@users.noreply.github.com> Co-authored-by: Edwinhr716 Co-authored-by: Maksym Fuhol Co-authored-by: Allen Mun Co-authored-by: mewa Co-authored-by: Aayush Rangwala Co-authored-by: prachigandhi Co-authored-by: Daniel Gutowski Co-authored-by: Lennart Jern Co-authored-by: mendelski Co-authored-by: ceuity Co-authored-by: Maksim Paskal Co-authored-by: Julian Tölle Co-authored-by: k8s-infra-cherrypick-robot <90416843+k8s-infra-cherrypick-robot@users.noreply.github.com> --- .github/dependabot.yml | 6 + .github/workflows/ci.yaml | 2 +- addon-resizer/OWNERS | 2 +- balancer/OWNERS | 2 +- builder/Dockerfile | 3 +- charts/OWNERS | 2 +- charts/cluster-autoscaler/Chart.yaml | 4 +- charts/cluster-autoscaler/README.md | 23 +- charts/cluster-autoscaler/README.md.gotmpl | 15 + charts/cluster-autoscaler/templates/NOTES.txt | 4 +- .../cluster-autoscaler/templates/_helpers.tpl | 48 +- .../templates/deployment.yaml | 10 +- charts/cluster-autoscaler/values.yaml | 25 +- cluster-autoscaler/.gitignore | 14 +- cluster-autoscaler/FAQ.md | 13 +- cluster-autoscaler/Makefile | 10 +- cluster-autoscaler/OWNERS | 3 +- cluster-autoscaler/README.md | 82 +- .../SYNC-CHANGES/SYNC_CHANGES-1.30.md | 33 + ...scaling.x-k8s.io_provisioningrequests.yaml | 236 + cluster-autoscaler/apis/go.mod | 58 + cluster-autoscaler/apis/go.sum | 168 + .../autoscaling.x-k8s.io/v1beta1/doc.go | 0 .../autoscaling.x-k8s.io/v1beta1/register.go | 0 .../autoscaling.x-k8s.io/v1beta1/types.go | 21 +- .../v1beta1/zz_generated.deepcopy.go | 0 .../autoscaling.x-k8s.io/v1beta1/podset.go | 0 .../v1beta1/provisioningrequest.go | 0 .../v1beta1/provisioningrequestspec.go | 2 +- .../v1beta1/provisioningrequeststatus.go | 2 +- .../autoscaling.x-k8s.io/v1beta1/reference.go | 0 .../applyconfiguration/internal/internal.go | 0 .../client/applyconfiguration/utils.go | 4 +- .../client/clientset/versioned/clientset.go | 2 +- .../versioned/fake/clientset_generated.go | 6 +- .../client/clientset/versioned/fake/doc.go | 0 .../clientset/versioned/fake/register.go | 2 +- .../client/clientset/versioned/scheme/doc.go | 0 .../clientset/versioned/scheme/register.go | 2 +- .../v1beta1/autoscaling.x-k8s.io_client.go | 4 +- .../typed/autoscaling.x-k8s.io/v1beta1/doc.go | 0 .../autoscaling.x-k8s.io/v1beta1/fake/doc.go | 0 .../fake/fake_autoscaling.x-k8s.io_client.go | 2 +- .../v1beta1/fake/fake_provisioningrequest.go | 4 +- .../v1beta1/generated_expansion.go | 0 .../v1beta1/provisioningrequest.go | 6 +- .../autoscaling.x-k8s.io/interface.go | 4 +- .../autoscaling.x-k8s.io/v1beta1/interface.go | 2 +- .../v1beta1/provisioningrequest.go | 8 +- .../informers/externalversions/factory.go | 16 +- .../informers/externalversions/generic.go | 2 +- .../internalinterfaces/factory_interfaces.go | 2 +- .../v1beta1/expansion_generated.go | 0 .../v1beta1/provisioningrequest.go | 2 +- .../alibaba-cloud-sdk-go/sdk/utils/utils.go | 7 +- .../alicloud/alicloud_auto_scaling_group.go | 5 + .../alicloud/alicloud_cloud_provider.go | 4 + .../cloudprovider/aws/README.md | 26 +- .../cloudprovider/aws/auto_scaling_groups.go | 2 - .../cloudprovider/aws/aws_cloud_provider.go | 5 + .../cloudprovider/aws/ec2_instance_types.go | 72 +- ...uster-autoscaler-run-on-control-plane.yaml | 4 +- .../cloudprovider/azure/azure_agent_pool.go | 5 + .../cloudprovider/azure/azure_cache.go | 79 +- .../azure/azure_cloud_provider.go | 7 + .../azure/azure_cloud_provider_test.go | 74 +- .../cloudprovider/azure/azure_config.go | 10 + .../cloudprovider/azure/azure_manager.go | 21 +- .../cloudprovider/azure/azure_manager_test.go | 10 +- .../cloudprovider/azure/azure_scale_set.go | 33 +- .../azure/azure_scale_set_test.go | 229 +- .../cloudprovider/azure/azure_vms_pool.go | 174 - .../azure/azure_vms_pool_test.go | 67 - .../cluster-autoscaler-autodiscover.yaml | 4 +- ...ter-autoscaler-standard-control-plane.yaml | 4 +- .../cluster-autoscaler-standard-msi.yaml | 4 +- ...cluster-autoscaler-vmss-control-plane.yaml | 4 +- .../examples/cluster-autoscaler-vmss-msi.yaml | 4 +- .../baiducloud/baiducloud_cloud_provider.go | 5 + .../bizflycloud/bizflycloud_node_group.go | 5 + .../brightbox/brightbox_node_group.go | 5 + .../cloudprovider/builder/builder_all.go | 10 +- .../cloudprovider/builder/builder_kwok.go | 6 +- .../cloudprovider/builder/builder_packet.go | 12 +- .../cherryservers/cherry_node_group.go | 5 + .../cluster-autoscaler-deployment.yaml | 6 +- .../cloudprovider/civo/civo_node_group.go | 5 + .../cloudprovider/cloud_provider.go | 13 +- .../cloudstack/cloudstack_node_group.go | 5 + .../cloudprovider/clusterapi/README.md | 10 +- .../clusterapi/clusterapi_controller.go | 4 +- .../clusterapi/clusterapi_controller_test.go | 13 +- .../clusterapi/clusterapi_nodegroup.go | 13 +- .../clusterapi/clusterapi_nodegroup_test.go | 12 + .../clusterapi/clusterapi_utils.go | 3 + .../clusterapi/clusterapi_utils_test.go | 8 + .../clusterapi/examples/deployment.yaml | 3 +- .../digitalocean/digitalocean_node_group.go | 5 + .../{packet => equinixmetal}/OWNERS | 2 +- .../{packet => equinixmetal}/README.md | 26 +- .../cloud_provider.go} | 4 +- .../examples/cloud-init-template.sh | 2 +- .../cluster-autoscaler-deployment.yaml | 8 +- .../examples/cluster-autoscaler-secret.yaml | 74 + .../cluster-autoscaler-svcaccount.yaml | 2 +- .../manager.go} | 2 +- .../manager_rest.go} | 10 +- .../manager_rest_test.go} | 2 +- .../node_group.go} | 7 +- .../node_group_test.go} | 2 +- .../price_model.go} | 2 +- .../price_model_test.go} | 2 +- .../exoscale_node_group_instance_pool.go | 5 + .../exoscale_node_group_sks_nodepool.go | 5 + .../main.go | 4 +- .../externalgrpc/externalgrpc_node_group.go | 5 + .../gce/autoscaling_gce_client.go | 176 +- .../gce/autoscaling_gce_client_test.go | 183 +- cluster-autoscaler/cloudprovider/gce/cache.go | 141 +- .../cloudprovider/gce/cache_test.go | 26 + .../cloudprovider/gce/gce_cloud_provider.go | 19 +- .../gce/gce_cloud_provider_test.go | 64 +- .../cloudprovider/gce/gce_manager.go | 68 +- .../cloudprovider/gce/gce_manager_test.go | 19 +- .../cloudprovider/gce/gce_price_info.go | 15 +- .../cloudprovider/gce/gce_price_model.go | 44 +- .../cloudprovider/gce/gce_price_model_test.go | 12 +- .../cloudprovider/gce/gce_url.go | 5 + .../cloudprovider/gce/gce_url_test.go | 31 + .../cloudprovider/gce/kube_env.go | 73 + .../cloudprovider/gce/kube_env_test.go | 226 + .../localssdsize/local_ssd_size_provider.go | 46 + .../cloudprovider/gce/mig_info_provider.go | 93 +- .../gce/mig_info_provider_test.go | 499 +- .../cloudprovider/gce/templates.go | 159 +- .../cloudprovider/gce/templates_test.go | 264 +- .../cluster-autoscaler-run-on-master.yaml | 6 +- .../hetzner/hetzner_node_group.go | 25 +- .../huaweicloud_auto_scaling_group.go | 5 + .../ionoscloud/ionoscloud_cloud_provider.go | 5 + .../kamatera/kamatera_node_group.go | 5 + .../cloudprovider/kubemark/kubemark_linux.go | 5 + .../cloudprovider/kwok/kwok_helpers.go | 26 +- .../cloudprovider/kwok/kwok_nodegroups.go | 9 +- .../cloudprovider/kwok/kwok_provider.go | 43 +- .../cloudprovider/kwok/kwok_provider_test.go | 147 +- .../cloudprovider/kwok/kwok_types.go | 7 +- .../cloudprovider/linode/README.md | 4 + .../cloudprovider/linode/linode_node_group.go | 5 + ...r-autoscaler-deployment-control-plane.yaml | 4 +- .../magnum/examples/values-autodiscovery.yaml | 6 +- .../magnum/examples/values-example.yaml | 6 +- .../cloudprovider/magnum/magnum_nodegroup.go | 5 + .../cloudprovider/mcm/mcm_cloud_provider.go | 5 + .../cloudprovider/mocks/NodeGroup.go | 14 + .../cloudprovider/oci/README.md | 21 +- .../oci/instancepools/oci_instance_pool.go | 5 + .../cloudprovider/oci/nodepools/cache.go | 33 +- .../oci/nodepools/oci_manager.go | 13 +- .../oci/nodepools/oci_node_pool.go | 5 + .../github.com/gofrs/flock/.gitignore | 8 - .../ovhcloud/ovh_cloud_node_group.go | 5 + .../examples/cluster-autoscaler-secret.yaml | 74 - .../cloudprovider/rancher/README.md | 6 + .../cloudprovider/rancher/rancher_config.go | 24 + .../rancher/rancher_config_test.go | 27 +- .../rancher/rancher_nodegroup.go | 11 +- .../scaleway/scaleway_node_group.go | 5 + .../cloudprovider/tencentcloud/README.md | 2 +- .../common/netretry_test.go | 2 +- .../tencentcloud_auto_scaling_group.go | 5 + .../cloudprovider/test/test_cloud_provider.go | 5 + .../volcengine_auto_scaling_group.go | 5 + .../cloudprovider/vultr/vultr_node_group.go | 5 + cluster-autoscaler/clusterstate/api/types.go | 166 +- cluster-autoscaler/clusterstate/api/utils.go | 92 - .../clusterstate/api/utils_test.go | 91 - .../clusterstate/clusterstate.go | 250 +- .../clusterstate/clusterstate_test.go | 256 +- .../clusterstate/utils/status.go | 22 +- .../clusterstate/utils/status_test.go | 204 +- .../clusterstate/utils/status_test.yaml | 61 + .../config/autoscaling_options.go | 5 + .../context/autoscaling_context.go | 5 - cluster-autoscaler/core/autoscaler.go | 10 + .../currently_drained_nodes_test.go | 8 +- .../podlistprocessor/pod_list_processor.go | 42 +- .../core/scaledown/actuation/actuator.go | 30 +- .../core/scaledown/actuation/actuator_test.go | 32 +- .../scaledown/actuation/delete_in_batch.go | 10 +- .../actuation/group_deletion_scheduler.go | 5 +- .../group_deletion_scheduler_test.go | 176 +- .../deletiontracker/nodedeletiontracker.go | 6 +- .../core/scaledown/eligibility/eligibility.go | 3 +- .../core/scaledown/legacy/legacy_test.go | 20 +- .../core/scaledown/legacy/wrapper.go | 20 +- .../core/scaledown/planner/planner.go | 28 +- .../core/scaledown/planner/planner_test.go | 81 + .../core/scaledown/scaledown.go | 5 +- .../core/scaleup/orchestrator/orchestrator.go | 197 +- .../scaleup/orchestrator/orchestrator_test.go | 84 +- cluster-autoscaler/core/scaleup/scaleup.go | 2 + cluster-autoscaler/core/static_autoscaler.go | 113 +- .../core/static_autoscaler_test.go | 353 +- cluster-autoscaler/core/test/common.go | 12 - cluster-autoscaler/core/utils/expendable.go | 6 +- .../core/utils/expendable_test.go | 102 +- .../estimator/binpacking_estimator.go | 160 +- .../estimator/binpacking_estimator_test.go | 241 +- .../estimator/decreasing_pod_orderer.go | 33 +- .../estimator/decreasing_pod_orderer_test.go | 34 +- cluster-autoscaler/estimator/estimator.go | 21 +- .../estimator/threshold_based_limiter.go | 3 +- .../estimator/threshold_based_limiter_test.go | 5 +- .../expander/waste/waste_test.go | 1 + cluster-autoscaler/go.mod | 144 +- cluster-autoscaler/go.sum | 207 +- .../hack/update-chart-version-readme.sh | 84 + cluster-autoscaler/hack/update-codegen.sh | 12 +- cluster-autoscaler/hack/update-deps.sh | 114 + cluster-autoscaler/hack/update-vendor.sh | 69 - cluster-autoscaler/loop/run.go | 44 + cluster-autoscaler/loop/trigger.go | 144 + cluster-autoscaler/main.go | 78 +- cluster-autoscaler/metrics/metrics.go | 67 +- .../observers/loopstart/loopstart.go | 40 + .../actionable_cluster_processor.go | 3 +- .../nodeinfos/node_info_processor.go | 48 - .../nodes/scale_down_set_processor.go | 9 +- .../processors/pods/pod_list_processor.go | 34 + cluster-autoscaler/processors/processors.go | 5 - .../provreq/provisioning_request_injector.go | 108 + .../provisioning_request_injector_test.go | 139 + .../provisioning_request_pods_filter.go | 107 + .../provisioning_request_pods_filter_test.go | 117 + .../provreq/provisioning_request_processor.go | 57 + .../status/autoscaling_status_processor.go | 4 +- .../metrics_autoscaling_status_processor.go | 77 + .../status/scale_up_status_processor.go | 7 + .../checkcapacity/processor.go | 96 + .../checkcapacity/processor_test.go | 166 + .../checkcapacity/provisioningclass.go | 112 + .../conditions/condition_test.go | 268 + .../conditions/conditions.go | 97 + .../orchestrator/orchestrator.go | 151 + .../orchestrator/orchestrator_test.go | 127 + .../orchestrator/wrapper_orchestrator.go | 107 + .../orchestrator/wrapper_orchestrator_test.go | 92 + .../provisioningrequest/pods/pods.go | 84 + .../provisioningrequest/pods/pods_test.go | 268 + .../v1beta1client => provreqclient}/client.go | 83 +- .../provreqclient/client_test.go | 111 + .../testutils.go | 45 +- .../provreqwrapper/testutils.go | 118 + .../provreqwrapper/wrapper.go | 81 +- .../provreqwrapper/wrapper_test.go | 28 +- .../provisioningrequest/service/service.go | 72 - .../service/v1beta1client/client_test.go | 44 - .../drainability/rules/replicacount/rule.go | 11 +- .../rules/replicacount/rule_test.go | 24 + cluster-autoscaler/utils/errors/errors.go | 3 + cluster-autoscaler/utils/klogx/defaults.go | 14 + cluster-autoscaler/utils/kubernetes/client.go | 6 +- cluster-autoscaler/utils/taints/taints.go | 91 +- .../utils/taints/taints_test.go | 111 +- cluster-autoscaler/utils/test/test_utils.go | 64 +- .../mgmt/2019-12-01/compute/CHANGELOG.md | 2 - .../mgmt/2019-12-01/compute/_meta.json | 11 - .../2019-12-01/compute/availabilitysets.go | 652 - .../compute/mgmt/2019-12-01/compute/client.go | 43 - .../2019-12-01/compute/containerservices.go | 538 - .../2019-12-01/compute/dedicatedhostgroups.go | 585 - .../mgmt/2019-12-01/compute/dedicatedhosts.go | 493 - .../2019-12-01/compute/diskencryptionsets.go | 601 - .../compute/mgmt/2019-12-01/compute/disks.go | 774 - .../compute/mgmt/2019-12-01/compute/enums.go | 1393 - .../mgmt/2019-12-01/compute/galleries.go | 580 - .../2019-12-01/compute/galleryapplications.go | 485 - .../compute/galleryapplicationversions.go | 514 - .../mgmt/2019-12-01/compute/galleryimages.go | 492 - .../compute/galleryimageversions.go | 503 - .../compute/mgmt/2019-12-01/compute/images.go | 583 - .../mgmt/2019-12-01/compute/loganalytics.go | 206 - .../compute/mgmt/2019-12-01/compute/models.go | 15500 ---- .../mgmt/2019-12-01/compute/operations.go | 98 - .../compute/proximityplacementgroups.go | 575 - .../mgmt/2019-12-01/compute/resourceskus.go | 149 - .../mgmt/2019-12-01/compute/snapshots.go | 767 - .../mgmt/2019-12-01/compute/sshpublickeys.go | 649 - .../compute/mgmt/2019-12-01/compute/usage.go | 155 - .../mgmt/2019-12-01/compute/version.go | 19 - .../compute/virtualmachineextensionimages.go | 270 - .../compute/virtualmachineextensions.go | 442 - .../compute/virtualmachineimages.go | 432 - .../compute/virtualmachineruncommands.go | 237 - .../2019-12-01/compute/virtualmachines.go | 1945 - .../virtualmachinescalesetextensions.go | 483 - .../virtualmachinescalesetrollingupgrades.go | 346 - .../compute/virtualmachinescalesets.go | 2018 - .../virtualmachinescalesetvmextensions.go | 453 - .../compute/virtualmachinescalesetvms.go | 1341 - .../2019-12-01/compute/virtualmachinesizes.go | 114 - .../2019-05-01/containerregistry/CHANGELOG.md | 2 - .../2019-05-01/containerregistry/_meta.json | 11 - .../2019-05-01/containerregistry/client.go | 43 - .../2019-05-01/containerregistry/enums.go | 513 - .../2019-05-01/containerregistry/models.go | 5094 -- .../containerregistry/operations.go | 140 - .../containerregistry/registries.go | 1255 - .../containerregistry/replications.go | 542 - .../mgmt/2019-05-01/containerregistry/runs.go | 529 - .../2019-05-01/containerregistry/tasks.go | 646 - .../2019-05-01/containerregistry/version.go | 19 - .../2019-05-01/containerregistry/webhooks.go | 866 - .../2020-04-01/containerservice/CHANGELOG.md | 2 - .../2020-04-01/containerservice/_meta.json | 11 - .../2020-04-01/containerservice/agentpools.go | 608 - .../2020-04-01/containerservice/client.go | 43 - .../containerservice/containerservices.go | 621 - .../mgmt/2020-04-01/containerservice/enums.go | 702 - .../containerservice/managedclusters.go | 1380 - .../2020-04-01/containerservice/models.go | 3404 - .../openshiftmanagedclusters.go | 619 - .../2020-04-01/containerservice/operations.go | 98 - .../2020-04-01/containerservice/version.go | 19 - .../mgmt/2019-06-01/network/CHANGELOG.md | 2 - .../mgmt/2019-06-01/network/_meta.json | 11 - .../2019-06-01/network/applicationgateways.go | 1476 - .../network/applicationsecuritygroups.go | 580 - .../network/availabledelegations.go | 148 - .../network/availableendpointservices.go | 148 - .../network/availableprivateendpointtypes.go | 267 - .../availableresourcegroupdelegations.go | 151 - .../network/azurefirewallfqdntags.go | 145 - .../mgmt/2019-06-01/network/azurefirewalls.go | 577 - .../mgmt/2019-06-01/network/bastionhosts.go | 579 - .../network/bgpservicecommunities.go | 145 - .../network/mgmt/2019-06-01/network/client.go | 200 - .../2019-06-01/network/connectionmonitors.go | 683 - .../2019-06-01/network/ddoscustompolicies.go | 351 - .../2019-06-01/network/ddosprotectionplans.go | 583 - .../network/defaultsecurityrules.go | 228 - .../network/mgmt/2019-06-01/network/enums.go | 2076 - .../expressroutecircuitauthorizations.go | 396 - .../network/expressroutecircuitconnections.go | 403 - .../network/expressroutecircuitpeerings.go | 406 - .../network/expressroutecircuits.go | 985 - .../network/expressrouteconnections.go | 359 - .../expressroutecrossconnectionpeerings.go | 407 - .../network/expressroutecrossconnections.go | 754 - .../network/expressroutegateways.go | 423 - .../2019-06-01/network/expressroutelinks.go | 228 - .../2019-06-01/network/expressrouteports.go | 580 - .../network/expressrouteportslocations.go | 221 - .../network/expressrouteserviceproviders.go | 145 - .../2019-06-01/network/firewallpolicies.go | 581 - .../network/firewallpolicyrulegroups.go | 406 - .../network/hubvirtualnetworkconnections.go | 228 - .../2019-06-01/network/inboundnatrules.go | 416 - .../network/interfaceipconfigurations.go | 228 - .../network/interfaceloadbalancers.go | 150 - .../2019-06-01/network/interfacesgroup.go | 1277 - .../network/interfacetapconfigurations.go | 429 - .../loadbalancerbackendaddresspools.go | 228 - .../loadbalancerfrontendipconfigurations.go | 229 - .../network/loadbalancerloadbalancingrules.go | 228 - .../network/loadbalancernetworkinterfaces.go | 150 - .../network/loadbalanceroutboundrules.go | 228 - .../2019-06-01/network/loadbalancerprobes.go | 228 - .../mgmt/2019-06-01/network/loadbalancers.go | 582 - .../network/localnetworkgateways.go | 493 - .../network/mgmt/2019-06-01/network/models.go | 37163 ---------- .../mgmt/2019-06-01/network/natgateways.go | 579 - .../mgmt/2019-06-01/network/operations.go | 140 - .../mgmt/2019-06-01/network/p2svpngateways.go | 741 - .../network/p2svpnserverconfigurations.go | 394 - .../mgmt/2019-06-01/network/packetcaptures.go | 520 - .../peerexpressroutecircuitconnections.go | 233 - .../2019-06-01/network/privateendpoints.go | 501 - .../2019-06-01/network/privatelinkservices.go | 1063 - .../mgmt/2019-06-01/network/profiles.go | 576 - .../2019-06-01/network/publicipaddresses.go | 927 - .../2019-06-01/network/publicipprefixes.go | 583 - .../network/resourcenavigationlinks.go | 110 - .../2019-06-01/network/routefilterrules.go | 489 - .../mgmt/2019-06-01/network/routefilters.go | 586 - .../network/mgmt/2019-06-01/network/routes.go | 391 - .../mgmt/2019-06-01/network/routetables.go | 582 - .../mgmt/2019-06-01/network/securitygroups.go | 582 - .../mgmt/2019-06-01/network/securityrules.go | 391 - .../network/serviceassociationlinks.go | 110 - .../network/serviceendpointpolicies.go | 583 - .../serviceendpointpolicydefinitions.go | 393 - .../mgmt/2019-06-01/network/servicetags.go | 107 - .../mgmt/2019-06-01/network/subnets.go | 563 - .../network/mgmt/2019-06-01/network/usages.go | 154 - .../mgmt/2019-06-01/network/version.go | 19 - .../mgmt/2019-06-01/network/virtualhubs.go | 579 - .../virtualnetworkgatewayconnections.go | 743 - .../network/virtualnetworkgateways.go | 1653 - .../network/virtualnetworkpeerings.go | 393 - .../2019-06-01/network/virtualnetworks.go | 778 - .../2019-06-01/network/virtualnetworktaps.go | 611 - .../mgmt/2019-06-01/network/virtualwans.go | 579 - .../mgmt/2019-06-01/network/vpnconnections.go | 393 - .../mgmt/2019-06-01/network/vpngateways.go | 658 - .../2019-06-01/network/vpnlinkconnections.go | 152 - .../network/vpnsitelinkconnections.go | 112 - .../mgmt/2019-06-01/network/vpnsitelinks.go | 227 - .../mgmt/2019-06-01/network/vpnsites.go | 579 - .../network/vpnsitesconfiguration.go | 120 - .../mgmt/2019-06-01/network/watchers.go | 1560 - .../network/webapplicationfirewallpolicies.go | 513 - .../mgmt/2019-06-01/storage/CHANGELOG.md | 2 - .../mgmt/2019-06-01/storage/_meta.json | 11 - .../mgmt/2019-06-01/storage/accounts.go | 1398 - .../mgmt/2019-06-01/storage/blobcontainers.go | 1437 - .../mgmt/2019-06-01/storage/blobservices.go | 336 - .../storage/mgmt/2019-06-01/storage/client.go | 43 - .../2019-06-01/storage/encryptionscopes.go | 469 - .../storage/mgmt/2019-06-01/storage/enums.go | 784 - .../mgmt/2019-06-01/storage/fileservices.go | 323 - .../mgmt/2019-06-01/storage/fileshares.go | 689 - .../2019-06-01/storage/managementpolicies.go | 316 - .../storage/mgmt/2019-06-01/storage/models.go | 4491 -- .../storage/objectreplicationpolicies.go | 417 - .../mgmt/2019-06-01/storage/operations.go | 98 - .../storage/privateendpointconnections.go | 411 - .../storage/privatelinkresources.go | 124 - .../storage/mgmt/2019-06-01/storage/queue.go | 571 - .../mgmt/2019-06-01/storage/queueservices.go | 313 - .../storage/mgmt/2019-06-01/storage/skus.go | 109 - .../storage/mgmt/2019-06-01/storage/table.go | 556 - .../mgmt/2019-06-01/storage/tableservices.go | 313 - .../storage/mgmt/2019-06-01/storage/usages.go | 112 - .../mgmt/2019-06-01/storage/version.go | 19 - .../aws/aws-sdk-go/aws/auth/bearer/token.go | 50 + .../github.com/aws/aws-sdk-go/aws/config.go | 11 + .../aws/corehandlers/awsinternal.go | 4 + .../aws-sdk-go/aws/corehandlers/user_agent.go | 10 + .../aws/credentials/endpointcreds/provider.go | 47 +- .../aws/credentials/ssocreds/provider.go | 75 +- .../credentials/ssocreds/sso_cached_token.go | 237 + .../credentials/ssocreds/token_provider.go | 148 + .../stscreds/assume_role_provider.go | 12 +- .../aws/aws-sdk-go/aws/defaults/defaults.go | 65 +- .../aws/ec2metadata/token_provider.go | 5 +- .../aws/aws-sdk-go/aws/endpoints/defaults.go | 9942 ++- .../aws/aws-sdk-go/aws/session/credentials.go | 36 +- .../aws/aws-sdk-go/aws/session/env_config.go | 28 + .../aws/aws-sdk-go/aws/session/session.go | 10 +- .../aws-sdk-go/aws/session/shared_config.go | 203 +- .../aws/aws-sdk-go/aws/signer/v4/v4.go | 15 +- .../github.com/aws/aws-sdk-go/aws/version.go | 2 +- .../aws-sdk-go/internal/ini/literal_tokens.go | 57 +- .../aws/aws-sdk-go/internal/ini/visitor.go | 6 +- .../aws-sdk-go/private/protocol/rest/build.go | 4 + .../protocol/restjson/unmarshal_error.go | 135 +- .../aws/aws-sdk-go/service/autoscaling/api.go | 580 +- .../aws/aws-sdk-go/service/ec2/api.go | 14652 +++- .../aws-sdk-go/service/ec2/customizations.go | 22 +- .../aws/aws-sdk-go/service/ec2/doc.go | 27 +- .../service/ec2/ec2iface/interface.go | 137 + .../aws/aws-sdk-go/service/ec2/waiters.go | 56 + .../aws/aws-sdk-go/service/elbv2/api.go | 7044 +- .../aws/aws-sdk-go/service/elbv2/errors.go | 69 +- .../aws/aws-sdk-go/service/kms/api.go | 2347 +- .../aws/aws-sdk-go/service/kms/errors.go | 49 +- .../aws/aws-sdk-go/service/ssooidc/api.go | 2252 + .../aws/aws-sdk-go/service/ssooidc/doc.go | 67 + .../aws/aws-sdk-go/service/ssooidc/errors.go | 115 + .../aws/aws-sdk-go/service/ssooidc/service.go | 106 + .../aws/aws-sdk-go/service/sts/api.go | 226 +- .../aws/aws-sdk-go/service/sts/doc.go | 7 +- .../LICENSE} | 2 +- .../NOTICE.md | 28 - .../pkg/aws/apis/aws_provider_spec.go | 35 +- .../LICENSE} | 88 +- .../pkg/azure/api/providerspec.go | 61 +- .../vendor/github.com/go-logr/logr/README.md | 73 +- .../tee.go => go-logr/logr/context.go} | 34 +- .../github.com/go-logr/logr/context_noslog.go | 49 + .../github.com/go-logr/logr/context_slog.go | 83 + .../github.com/go-logr/logr/funcr/funcr.go | 185 +- .../github.com/go-logr/logr/funcr/slogsink.go | 105 + .../vendor/github.com/go-logr/logr/logr.go | 43 - .../go-logr/logr/{slogr => }/sloghandler.go | 98 +- .../vendor/github.com/go-logr/logr/slogr.go | 100 + .../github.com/go-logr/logr/slogr/slogr.go | 77 +- .../go-logr/logr/{slogr => }/slogsink.go | 24 +- .../github.com/go-logr/zapr/.golangci.yaml | 20 + .../vendor/github.com/go-logr/zapr/README.md | 39 +- .../github.com/go-logr/zapr/slogzapr.go | 183 + .../vendor/github.com/go-logr/zapr/zapr.go | 15 +- .../path.go => go-logr/zapr/zapr_noslog.go} | 36 +- .../github.com/go-logr/zapr/zapr_slog.go | 48 + .../google/cadvisor/container/crio/client.go | 1 + .../google/cadvisor/container/crio/factory.go | 14 +- .../google/cadvisor/container/crio/plugin.go | 2 +- .../github.com/google/cadvisor/fs/fs.go | 28 +- .../github.com/google/cadvisor/fs/types.go | 4 +- .../google/cadvisor/perf/collector_libpfm.go | 6 +- .../github.com/google/cadvisor/stats/types.go | 2 +- .../github.com/google/cel-go/checker/cost.go | 3 + .../testdata/client_intermediate_cert.der | Bin 998 -> 0 bytes .../testdata/client_leaf_cert.der | Bin 1147 -> 0 bytes .../testdata/client_root_cert.der | Bin 1013 -> 0 bytes .../testdata/server_intermediate_cert.der | Bin 998 -> 0 bytes .../testdata/server_leaf_cert.der | Bin 1147 -> 0 bytes .../testdata/server_root_cert.der | Bin 1013 -> 0 bytes .../v2/remotesigner/testdata/client_cert.der | Bin 1013 -> 0 bytes .../v2/remotesigner/testdata/client_cert.pem | 24 - .../v2/remotesigner/testdata/client_key.pem | 27 - .../v2/remotesigner/testdata/server_cert.der | Bin 1013 -> 0 bytes .../v2/remotesigner/testdata/server_cert.pem | 24 - .../v2/remotesigner/testdata/server_key.pem | 27 - .../internal/v2/testdata/client_cert.pem | 24 - .../internal/v2/testdata/client_key.pem | 27 - .../internal/v2/testdata/server_cert.pem | 24 - .../internal/v2/testdata/server_key.pem | 27 - .../tlsconfigstore/testdata/client_cert.pem | 24 - .../v2/tlsconfigstore/testdata/client_key.pem | 27 - .../tlsconfigstore/testdata/server_cert.pem | 24 - .../v2/tlsconfigstore/testdata/server_key.pem | 27 - .../google/s2a-go/testdata/client_cert.pem | 24 - .../google/s2a-go/testdata/client_key.pem | 27 - .../s2a-go/testdata/mds_client_cert.pem | 19 - .../google/s2a-go/testdata/mds_client_key.pem | 28 - .../google/s2a-go/testdata/mds_root_cert.pem | 21 - .../s2a-go/testdata/mds_server_cert.pem | 21 - .../google/s2a-go/testdata/mds_server_key.pem | 28 - .../s2a-go/testdata/self_signed_cert.pem | 19 - .../s2a-go/testdata/self_signed_key.pem | 28 - .../google/s2a-go/testdata/server_cert.pem | 24 - .../google/s2a-go/testdata/server_key.pem | 27 - .../github.com/google/uuid/CHANGELOG.md | 31 + .../github.com/google/uuid/CONTRIBUTING.md | 2 +- .../vendor/github.com/google/uuid/hash.go | 6 + .../vendor/github.com/google/uuid/time.go | 21 +- .../vendor/github.com/google/uuid/uuid.go | 79 +- .../vendor/github.com/google/uuid/version6.go | 56 + .../vendor/github.com/google/uuid/version7.go | 104 + .../github.com/onsi/ginkgo/v2/CHANGELOG.md | 80 + .../github.com/onsi/ginkgo/v2/core_dsl.go | 13 +- .../ginkgo/v2/ginkgo/internal/gocovmerge.go | 129 + .../ginkgo/internal/profiles_and_reports.go | 44 +- .../ginkgo/v2/ginkgo/internal/test_suite.go | 9 +- .../onsi/ginkgo/v2/ginkgo/outline/ginkgo.go | 3 +- .../onsi/ginkgo/v2/ginkgo/outline/import.go | 9 +- .../ginkgo/v2/ginkgo/watch/dependencies.go | 2 +- .../ginkgo/v2/ginkgo/watch/package_hash.go | 4 +- .../github.com/onsi/ginkgo/v2/ginkgo_t_dsl.go | 110 +- .../onsi/ginkgo/v2/internal/node.go | 33 +- .../v2/internal/output_interceptor_wasm.go | 7 + .../v2/internal/progress_report_wasm.go | 10 + .../onsi/ginkgo/v2/internal/spec_context.go | 4 +- .../onsi/ginkgo/v2/internal/suite.go | 22 +- .../onsi/ginkgo/v2/reporters/json_report.go | 6 +- .../onsi/ginkgo/v2/reporters/junit_report.go | 12 + .../onsi/ginkgo/v2/reporting_dsl.go | 59 +- .../github.com/onsi/ginkgo/v2/table_dsl.go | 113 +- .../onsi/ginkgo/v2/types/code_location.go | 2 +- .../github.com/onsi/ginkgo/v2/types/errors.go | 9 + .../onsi/ginkgo/v2/types/version.go | 2 +- .../github.com/onsi/gomega/CHANGELOG.md | 34 + .../github.com/onsi/gomega/gomega_dsl.go | 2 +- .../onsi/gomega/internal/async_assertion.go | 7 +- .../vendor/github.com/onsi/gomega/matchers.go | 19 +- .../matchers/be_comparable_to_matcher.go | 4 +- .../onsi/gomega/matchers/be_false_matcher.go | 13 +- .../onsi/gomega/matchers/be_true_matcher.go | 13 +- .../runc/libcontainer/cgroups/file.go | 31 +- .../runc/libcontainer/cgroups/fs/memory.go | 4 + .../runc/libcontainer/cgroups/fs/paths.go | 1 + .../runc/libcontainer/cgroups/fs2/memory.go | 18 +- .../runc/libcontainer/cgroups/stats.go | 2 + .../runc/libcontainer/configs/config.go | 6 +- .../runc/libcontainer/configs/config_linux.go | 30 +- .../libcontainer/configs/validate/rootless.go | 31 +- .../configs/validate/validator.go | 12 +- .../runc/libcontainer/container_linux.go | 11 +- .../runc/libcontainer/init_linux.go | 31 + .../runc/libcontainer/setns_init_linux.go | 37 +- .../runc/libcontainer/standard_init_linux.go | 19 + .../runc/libcontainer/userns/userns_maps.c | 79 + .../libcontainer/userns/userns_maps_linux.go | 186 + .../runc/libcontainer/utils/utils_unix.go | 64 +- .../vendor/github.com/rubiojr/go-vhd/LICENSE | 22 - .../github.com/rubiojr/go-vhd/vhd/util.go | 54 - .../github.com/rubiojr/go-vhd/vhd/vhd.go | 489 - .../github.com/satori/go.uuid/.travis.yml | 23 - .../vendor/github.com/satori/go.uuid/LICENSE | 20 - .../github.com/satori/go.uuid/README.md | 65 - .../vendor/github.com/satori/go.uuid/codec.go | 206 - .../github.com/satori/go.uuid/generator.go | 239 - .../vendor/github.com/satori/go.uuid/sql.go | 78 - .../vendor/github.com/satori/go.uuid/uuid.go | 161 - .../github.com/vmware/govmomi/CONTRIBUTORS | 256 - .../github.com/vmware/govmomi/find/doc.go | 37 - .../github.com/vmware/govmomi/find/error.go | 64 - .../github.com/vmware/govmomi/find/finder.go | 1114 - .../vmware/govmomi/find/recurser.go | 253 - .../vmware/govmomi/history/collector.go | 91 - .../vmware/govmomi/internal/helpers.go | 63 - .../vmware/govmomi/internal/methods.go | 123 - .../vmware/govmomi/internal/types.go | 270 - .../govmomi/internal/version/version.go | 25 - .../github.com/vmware/govmomi/list/lister.go | 630 - .../vmware/govmomi/lookup/client.go | 159 - .../vmware/govmomi/lookup/methods/methods.go | 224 - .../vmware/govmomi/lookup/types/types.go | 412 - .../github.com/vmware/govmomi/nfc/lease.go | 233 - .../vmware/govmomi/nfc/lease_updater.go | 146 - .../govmomi/object/authorization_manager.go | 221 - .../object/authorization_manager_internal.go | 86 - .../object/cluster_compute_resource.go | 103 - .../vmware/govmomi/object/common.go | 148 - .../vmware/govmomi/object/compute_resource.go | 111 - .../govmomi/object/custom_fields_manager.go | 146 - .../object/customization_spec_manager.go | 173 - .../vmware/govmomi/object/datacenter.go | 129 - .../vmware/govmomi/object/datastore.go | 439 - .../vmware/govmomi/object/datastore_file.go | 412 - .../govmomi/object/datastore_file_manager.go | 228 - .../vmware/govmomi/object/datastore_path.go | 71 - .../vmware/govmomi/object/diagnostic_log.go | 76 - .../govmomi/object/diagnostic_manager.go | 102 - .../object/distributed_virtual_portgroup.go | 90 - .../object/distributed_virtual_switch.go | 118 - .../govmomi/object/extension_manager.go | 113 - .../vmware/govmomi/object/file_manager.go | 126 - .../vmware/govmomi/object/folder.go | 241 - .../govmomi/object/host_account_manager.go | 65 - .../govmomi/object/host_certificate_info.go | 247 - .../object/host_certificate_manager.go | 162 - .../govmomi/object/host_config_manager.go | 171 - .../govmomi/object/host_datastore_browser.go | 65 - .../govmomi/object/host_datastore_system.go | 135 - .../govmomi/object/host_date_time_system.go | 69 - .../govmomi/object/host_firewall_system.go | 181 - .../govmomi/object/host_network_system.go | 358 - .../govmomi/object/host_service_system.go | 88 - .../govmomi/object/host_storage_system.go | 200 - .../vmware/govmomi/object/host_system.go | 154 - .../object/host_virtual_nic_manager.go | 93 - .../object/host_vsan_internal_system.go | 117 - .../vmware/govmomi/object/host_vsan_system.go | 88 - .../govmomi/object/namespace_manager.go | 76 - .../vmware/govmomi/object/network.go | 54 - .../govmomi/object/network_reference.go | 31 - .../vmware/govmomi/object/opaque_network.go | 72 - .../vmware/govmomi/object/option_manager.go | 59 - .../vmware/govmomi/object/resource_pool.go | 151 - .../vmware/govmomi/object/search_index.go | 259 - .../object/storage_resource_manager.go | 179 - .../github.com/vmware/govmomi/object/task.go | 100 - .../vmware/govmomi/object/tenant_manager.go | 78 - .../github.com/vmware/govmomi/object/types.go | 67 - .../vmware/govmomi/object/virtual_app.go | 121 - .../govmomi/object/virtual_device_list.go | 965 - .../govmomi/object/virtual_disk_manager.go | 227 - .../object/virtual_disk_manager_internal.go | 166 - .../vmware/govmomi/object/virtual_machine.go | 1082 - .../github.com/vmware/govmomi/pbm/client.go | 287 - .../vmware/govmomi/pbm/methods/methods.go | 664 - .../github.com/vmware/govmomi/pbm/pbm_util.go | 148 - .../vmware/govmomi/pbm/types/enum.go | 307 - .../github.com/vmware/govmomi/pbm/types/if.go | 139 - .../vmware/govmomi/pbm/types/types.go | 1757 - .../vmware/govmomi/property/collector.go | 217 - .../vmware/govmomi/property/filter.go | 168 - .../vmware/govmomi/property/wait.go | 151 - .../vmware/govmomi/session/keep_alive.go | 40 - .../govmomi/session/keepalive/handler.go | 204 - .../vmware/govmomi/session/manager.go | 294 - .../github.com/vmware/govmomi/sts/client.go | 219 - .../vmware/govmomi/sts/internal/types.go | 694 - .../github.com/vmware/govmomi/sts/signer.go | 355 - .../vmware/govmomi/task/history_collector.go | 89 - .../github.com/vmware/govmomi/task/manager.go | 61 - .../github.com/vmware/govmomi/task/wait.go | 143 - .../vmware/govmomi/vapi/internal/internal.go | 89 - .../vmware/govmomi/vapi/rest/client.go | 336 - .../vmware/govmomi/vapi/rest/resource.go | 114 - .../vmware/govmomi/vapi/tags/categories.go | 167 - .../vmware/govmomi/vapi/tags/errors.go | 55 - .../govmomi/vapi/tags/tag_association.go | 377 - .../vmware/govmomi/vapi/tags/tags.go | 226 - .../vmware/govmomi/view/container_view.go | 145 - .../vmware/govmomi/view/list_view.go | 62 - .../govmomi/view/managed_object_view.go | 52 - .../github.com/vmware/govmomi/view/manager.go | 69 - .../vmware/govmomi/view/task_view.go | 125 - .../github.com/vmware/govmomi/vim25/client.go | 191 - .../vmware/govmomi/vim25/debug/debug.go | 73 - .../vmware/govmomi/vim25/debug/file.go | 75 - .../vmware/govmomi/vim25/debug/log.go | 49 - .../github.com/vmware/govmomi/vim25/doc.go | 29 - .../vmware/govmomi/vim25/methods/methods.go | 18704 ----- .../govmomi/vim25/methods/service_content.go | 57 - .../govmomi/vim25/methods/unreleased.go | 44 - .../vmware/govmomi/vim25/mo/ancestors.go | 137 - .../vmware/govmomi/vim25/mo/extra.go | 61 - .../github.com/vmware/govmomi/vim25/mo/mo.go | 1868 - .../vmware/govmomi/vim25/mo/reference.go | 26 - .../vmware/govmomi/vim25/mo/retrieve.go | 255 - .../vmware/govmomi/vim25/mo/type_info.go | 263 - .../govmomi/vim25/progress/aggregator.go | 73 - .../vmware/govmomi/vim25/progress/doc.go | 32 - .../vmware/govmomi/vim25/progress/prefix.go | 54 - .../vmware/govmomi/vim25/progress/reader.go | 188 - .../vmware/govmomi/vim25/progress/report.go | 26 - .../vmware/govmomi/vim25/progress/scale.go | 76 - .../vmware/govmomi/vim25/progress/sinker.go | 33 - .../github.com/vmware/govmomi/vim25/retry.go | 113 - .../vmware/govmomi/vim25/soap/client.go | 891 - .../vmware/govmomi/vim25/soap/debug.go | 154 - .../vmware/govmomi/vim25/soap/error.go | 166 - .../vmware/govmomi/vim25/soap/soap.go | 49 - .../vmware/govmomi/vim25/types/enum.go | 5547 -- .../vmware/govmomi/vim25/types/fault.go | 43 - .../vmware/govmomi/vim25/types/helpers.go | 316 - .../vmware/govmomi/vim25/types/if.go | 3561 - .../vmware/govmomi/vim25/types/registry.go | 43 - .../vmware/govmomi/vim25/types/types.go | 59412 ---------------- .../vmware/govmomi/vim25/types/unreleased.go | 121 - .../vmware/govmomi/vim25/xml/LICENSE | 27 - .../vmware/govmomi/vim25/xml/extras.go | 99 - .../vmware/govmomi/vim25/xml/marshal.go | 1066 - .../vmware/govmomi/vim25/xml/read.go | 837 - .../vmware/govmomi/vim25/xml/typeinfo.go | 377 - .../vmware/govmomi/vim25/xml/xml.go | 2056 - .../vendor/go.uber.org/atomic/.codecov.yml | 19 - .../vendor/go.uber.org/atomic/.gitignore | 15 - .../vendor/go.uber.org/atomic/CHANGELOG.md | 117 - .../vendor/go.uber.org/atomic/LICENSE.txt | 19 - .../vendor/go.uber.org/atomic/Makefile | 79 - .../vendor/go.uber.org/atomic/README.md | 63 - .../vendor/go.uber.org/atomic/bool.go | 88 - .../vendor/go.uber.org/atomic/doc.go | 23 - .../vendor/go.uber.org/atomic/duration.go | 89 - .../vendor/go.uber.org/atomic/duration_ext.go | 40 - .../vendor/go.uber.org/atomic/error.go | 62 - .../vendor/go.uber.org/atomic/error_ext.go | 39 - .../vendor/go.uber.org/atomic/float32.go | 77 - .../vendor/go.uber.org/atomic/float32_ext.go | 76 - .../vendor/go.uber.org/atomic/float64.go | 77 - .../vendor/go.uber.org/atomic/float64_ext.go | 76 - .../vendor/go.uber.org/atomic/gen.go | 27 - .../vendor/go.uber.org/atomic/int32.go | 109 - .../vendor/go.uber.org/atomic/int64.go | 109 - .../vendor/go.uber.org/atomic/nocmp.go | 35 - .../go.uber.org/atomic/pointer_go118.go | 60 - .../go.uber.org/atomic/pointer_go119.go | 61 - .../vendor/go.uber.org/atomic/string.go | 65 - .../vendor/go.uber.org/atomic/string_ext.go | 43 - .../vendor/go.uber.org/atomic/time_ext.go | 36 - .../vendor/go.uber.org/atomic/uint32.go | 109 - .../vendor/go.uber.org/atomic/uint64.go | 109 - .../vendor/go.uber.org/atomic/uintptr.go | 109 - .../go.uber.org/atomic/unsafe_pointer.go | 65 - .../vendor/go.uber.org/atomic/value.go | 31 - .../vendor/go.uber.org/zap/.golangci.yml | 77 + .../vendor/go.uber.org/zap/CHANGELOG.md | 242 +- .../vendor/go.uber.org/zap/Makefile | 87 +- .../vendor/go.uber.org/zap/README.md | 62 +- .../vendor/go.uber.org/zap/array.go | 127 + .../vendor/go.uber.org/zap/array_go118.go | 156 - .../vendor/go.uber.org/zap/buffer/buffer.go | 5 + .../vendor/go.uber.org/zap/buffer/pool.go | 20 +- .../vendor/go.uber.org/zap/config.go | 84 +- .../vendor/go.uber.org/zap/error.go | 14 +- .../vendor/go.uber.org/zap/field.go | 194 +- .../vendor/go.uber.org/zap/http_handler.go | 19 +- .../go.uber.org/zap/internal/level_enabler.go | 2 + .../bool_ext.go => zap/internal/pool/pool.go} | 49 +- .../stacktrace/stack.go} | 81 +- .../vendor/go.uber.org/zap/level.go | 9 +- .../vendor/go.uber.org/zap/logger.go | 48 +- .../vendor/go.uber.org/zap/sink.go | 5 +- .../vendor/go.uber.org/zap/sugar.go | 69 +- .../vendor/go.uber.org/zap/writer.go | 12 +- .../zap/zapcore/console_encoder.go | 14 +- .../vendor/go.uber.org/zap/zapcore/core.go | 6 +- .../vendor/go.uber.org/zap/zapcore/entry.go | 22 +- .../vendor/go.uber.org/zap/zapcore/error.go | 14 +- .../go.uber.org/zap/zapcore/json_encoder.go | 155 +- .../time.go => zap/zapcore/lazy_with.go} | 51 +- .../vendor/go.uber.org/zap/zapcore/sampler.go | 9 +- .../vendor/go.uber.org/zap/zapgrpc/zapgrpc.go | 8 +- .../x/crypto/internal/poly1305/bits_compat.go | 39 - .../x/crypto/internal/poly1305/bits_go1.13.go | 21 - .../x/crypto/internal/poly1305/sum_generic.go | 43 +- .../x/crypto/internal/poly1305/sum_ppc64le.s | 14 +- .../vendor/golang.org/x/net/html/token.go | 12 +- .../vendor/golang.org/x/net/http2/frame.go | 42 +- .../vendor/golang.org/x/net/http2/pipe.go | 11 +- .../vendor/golang.org/x/net/http2/server.go | 13 +- .../vendor/golang.org/x/net/http2/testsync.go | 331 + .../golang.org/x/net/http2/transport.go | 307 +- .../golang.org/x/net/websocket/client.go | 55 +- .../vendor/golang.org/x/net/websocket/dial.go | 11 +- .../vendor/golang.org/x/sys/unix/aliases.go | 2 +- .../vendor/golang.org/x/sys/unix/mkerrors.sh | 39 +- .../x/sys/unix/syscall_darwin_libSystem.go | 2 +- .../golang.org/x/sys/unix/syscall_freebsd.go | 12 +- .../golang.org/x/sys/unix/syscall_linux.go | 99 + .../golang.org/x/sys/unix/zerrors_linux.go | 90 +- .../x/sys/unix/zerrors_linux_386.go | 3 + .../x/sys/unix/zerrors_linux_amd64.go | 3 + .../x/sys/unix/zerrors_linux_arm.go | 3 + .../x/sys/unix/zerrors_linux_arm64.go | 3 + .../x/sys/unix/zerrors_linux_loong64.go | 3 + .../x/sys/unix/zerrors_linux_mips.go | 3 + .../x/sys/unix/zerrors_linux_mips64.go | 3 + .../x/sys/unix/zerrors_linux_mips64le.go | 3 + .../x/sys/unix/zerrors_linux_mipsle.go | 3 + .../x/sys/unix/zerrors_linux_ppc.go | 3 + .../x/sys/unix/zerrors_linux_ppc64.go | 3 + .../x/sys/unix/zerrors_linux_ppc64le.go | 3 + .../x/sys/unix/zerrors_linux_riscv64.go | 3 + .../x/sys/unix/zerrors_linux_s390x.go | 3 + .../x/sys/unix/zerrors_linux_sparc64.go | 3 + .../golang.org/x/sys/unix/zsyscall_linux.go | 10 + .../x/sys/unix/zsyscall_openbsd_386.go | 2 - .../x/sys/unix/zsyscall_openbsd_amd64.go | 2 - .../x/sys/unix/zsyscall_openbsd_arm.go | 2 - .../x/sys/unix/zsyscall_openbsd_arm64.go | 2 - .../x/sys/unix/zsyscall_openbsd_mips64.go | 2 - .../x/sys/unix/zsyscall_openbsd_ppc64.go | 2 - .../x/sys/unix/zsyscall_openbsd_riscv64.go | 2 - .../x/sys/unix/zsysnum_linux_386.go | 4 + .../x/sys/unix/zsysnum_linux_amd64.go | 3 + .../x/sys/unix/zsysnum_linux_arm.go | 4 + .../x/sys/unix/zsysnum_linux_arm64.go | 4 + .../x/sys/unix/zsysnum_linux_loong64.go | 4 + .../x/sys/unix/zsysnum_linux_mips.go | 4 + .../x/sys/unix/zsysnum_linux_mips64.go | 4 + .../x/sys/unix/zsysnum_linux_mips64le.go | 4 + .../x/sys/unix/zsysnum_linux_mipsle.go | 4 + .../x/sys/unix/zsysnum_linux_ppc.go | 4 + .../x/sys/unix/zsysnum_linux_ppc64.go | 4 + .../x/sys/unix/zsysnum_linux_ppc64le.go | 4 + .../x/sys/unix/zsysnum_linux_riscv64.go | 4 + .../x/sys/unix/zsysnum_linux_s390x.go | 4 + .../x/sys/unix/zsysnum_linux_sparc64.go | 4 + .../golang.org/x/sys/unix/ztypes_linux.go | 185 +- .../golang.org/x/sys/windows/env_windows.go | 17 +- .../x/sys/windows/syscall_windows.go | 4 +- .../x/sys/windows/zsyscall_windows.go | 9 + .../golang.org/x/tools/cover/profile.go | 266 + .../golang.org/x/tools/go/packages/doc.go | 40 +- .../x/tools/go/packages/external.go | 77 +- .../golang.org/x/tools/go/packages/golist.go | 35 +- .../x/tools/go/packages/packages.go | 46 +- .../x/tools/internal/gcimporter/iimport.go | 7 + .../x/tools/internal/gopathwalk/walk.go | 308 +- .../x/tools/internal/imports/fix.go | 134 +- .../x/tools/internal/imports/imports.go | 2 +- .../x/tools/internal/imports/mod.go | 287 +- .../x/tools/internal/imports/mod_cache.go | 116 +- .../x/tools/internal/imports/zstdlib.go | 61 + .../{versions_go121.go => versions.go} | 9 +- .../tools/internal/versions/versions_go122.go | 38 - .../k8s.io/api/admission/v1/generated.pb.go | 127 +- .../api/admission/v1beta1/generated.pb.go | 129 +- .../admissionregistration/v1/generated.pb.go | 6011 +- .../admissionregistration/v1/generated.proto | 574 +- .../api/admissionregistration/v1/register.go | 4 + .../api/admissionregistration/v1/types.go | 604 +- .../v1/types_swagger_doc_generated.go | 178 +- .../v1/zz_generated.deepcopy.go | 432 + .../v1alpha1/generated.pb.go | 235 +- .../v1beta1/generated.pb.go | 309 +- .../v1beta1/generated.proto | 15 +- .../admissionregistration/v1beta1/types.go | 15 +- .../v1beta1/types_swagger_doc_generated.go | 4 +- .../azure_file => api/apidiscovery/v2}/doc.go | 12 +- .../api/apidiscovery/v2/generated.pb.go | 1742 + .../api/apidiscovery/v2/generated.proto | 156 + .../apidiscovery/v2}/register.go | 37 +- .../k8s.io/api/apidiscovery/v2/types.go | 155 + .../apidiscovery/v2/zz_generated.deepcopy.go | 190 + .../api/apidiscovery/v2beta1/generated.pb.go | 113 +- .../v1alpha1/generated.pb.go | 119 +- .../v1alpha1/generated.proto | 1 - .../api/apiserverinternal/v1alpha1/types.go | 1 - .../vendor/k8s.io/api/apps/v1/generated.pb.go | 341 +- .../vendor/k8s.io/api/apps/v1/generated.proto | 9 + .../vendor/k8s.io/api/apps/v1/types.go | 9 + .../k8s.io/api/apps/v1beta1/generated.pb.go | 299 +- .../k8s.io/api/apps/v1beta1/generated.proto | 5 + .../vendor/k8s.io/api/apps/v1beta1/types.go | 5 + .../k8s.io/api/apps/v1beta2/generated.pb.go | 365 +- .../k8s.io/api/apps/v1beta2/generated.proto | 9 + .../vendor/k8s.io/api/apps/v1beta2/types.go | 9 + .../api/authentication/v1/generated.pb.go | 154 +- .../api/authentication/v1/generated.proto | 4 + .../k8s.io/api/authentication/v1/types.go | 4 + .../authentication/v1alpha1/generated.pb.go | 59 +- .../authentication/v1beta1/generated.pb.go | 117 +- .../authentication/v1beta1/generated.proto | 3 + .../api/authentication/v1beta1/types.go | 3 + .../api/authorization/v1/generated.pb.go | 177 +- .../api/authorization/v1/generated.proto | 9 + .../k8s.io/api/authorization/v1/types.go | 9 + .../api/authorization/v1beta1/generated.pb.go | 183 +- .../api/authorization/v1beta1/generated.proto | 9 + .../k8s.io/api/authorization/v1beta1/types.go | 9 + .../k8s.io/api/autoscaling/v1/generated.pb.go | 255 +- .../k8s.io/api/autoscaling/v2/generated.pb.go | 243 +- .../api/autoscaling/v2beta1/generated.pb.go | 243 +- .../api/autoscaling/v2beta1/generated.proto | 3 + .../k8s.io/api/autoscaling/v2beta1/types.go | 3 + .../api/autoscaling/v2beta2/generated.pb.go | 255 +- .../api/autoscaling/v2beta2/generated.proto | 4 + .../k8s.io/api/autoscaling/v2beta2/types.go | 4 + .../k8s.io/api/batch/v1/generated.pb.go | 747 +- .../k8s.io/api/batch/v1/generated.proto | 96 +- .../vendor/k8s.io/api/batch/v1/types.go | 106 +- .../batch/v1/types_swagger_doc_generated.go | 37 +- .../api/batch/v1/zz_generated.deepcopy.go | 59 + .../k8s.io/api/batch/v1beta1/generated.pb.go | 115 +- .../api/certificates/v1/generated.pb.go | 133 +- .../api/certificates/v1alpha1/generated.pb.go | 74 +- .../api/certificates/v1beta1/generated.pb.go | 135 +- .../api/coordination/v1/generated.pb.go | 85 +- .../api/coordination/v1beta1/generated.pb.go | 85 +- .../api/core/v1/annotation_key_constants.go | 21 +- .../vendor/k8s.io/api/core/v1/generated.pb.go | 3602 +- .../vendor/k8s.io/api/core/v1/generated.proto | 280 +- .../vendor/k8s.io/api/core/v1/types.go | 319 +- .../core/v1/types_swagger_doc_generated.go | 86 +- .../api/core/v1/zz_generated.deepcopy.go | 115 +- .../k8s.io/api/discovery/v1/generated.pb.go | 137 +- .../api/discovery/v1beta1/generated.pb.go | 135 +- .../k8s.io/api/events/v1/generated.pb.go | 111 +- .../k8s.io/api/events/v1beta1/generated.pb.go | 111 +- .../api/extensions/v1beta1/generated.pb.go | 447 +- .../api/extensions/v1beta1/generated.proto | 19 + .../k8s.io/api/extensions/v1beta1/types.go | 19 + .../k8s.io/api/flowcontrol/v1/generated.pb.go | 257 +- .../api/flowcontrol/v1beta1/generated.pb.go | 249 +- .../api/flowcontrol/v1beta2/generated.pb.go | 261 +- .../api/flowcontrol/v1beta3/generated.pb.go | 259 +- .../k8s.io/api/networking/v1/generated.pb.go | 275 +- .../k8s.io/api/networking/v1/generated.proto | 9 + .../vendor/k8s.io/api/networking/v1/types.go | 9 + .../api/networking/v1alpha1/generated.pb.go | 109 +- .../api/networking/v1alpha1/generated.proto | 1 + .../k8s.io/api/networking/v1alpha1/types.go | 1 + .../api/networking/v1beta1/generated.pb.go | 202 +- .../api/networking/v1beta1/generated.proto | 5 + .../k8s.io/api/networking/v1beta1/types.go | 5 + .../vendor/k8s.io/api/node/v1/generated.pb.go | 99 +- .../k8s.io/api/node/v1alpha1/generated.pb.go | 103 +- .../k8s.io/api/node/v1beta1/generated.pb.go | 99 +- .../k8s.io/api/policy/v1/generated.pb.go | 125 +- .../k8s.io/api/policy/v1beta1/generated.pb.go | 125 +- .../vendor/k8s.io/api/rbac/v1/generated.pb.go | 137 +- .../vendor/k8s.io/api/rbac/v1/generated.proto | 10 + .../vendor/k8s.io/api/rbac/v1/types.go | 10 + .../k8s.io/api/rbac/v1alpha1/generated.pb.go | 141 +- .../k8s.io/api/rbac/v1alpha1/generated.proto | 10 + .../vendor/k8s.io/api/rbac/v1alpha1/types.go | 10 + .../k8s.io/api/rbac/v1beta1/generated.pb.go | 137 +- .../k8s.io/api/rbac/v1beta1/generated.proto | 10 + .../vendor/k8s.io/api/rbac/v1beta1/types.go | 10 + .../api/resource/v1alpha2/generated.pb.go | 8396 ++- .../api/resource/v1alpha2/generated.proto | 349 + .../api/resource/v1alpha2/namedresources.go | 127 + .../k8s.io/api/resource/v1alpha2/register.go | 6 + .../k8s.io/api/resource/v1alpha2/types.go | 277 +- .../v1alpha2/types_swagger_doc_generated.go | 179 +- .../v1alpha2/zz_generated.deepcopy.go | 630 +- .../k8s.io/api/scheduling/v1/generated.pb.go | 73 +- .../api/scheduling/v1alpha1/generated.pb.go | 71 +- .../api/scheduling/v1beta1/generated.pb.go | 73 +- .../k8s.io/api/storage/v1/generated.pb.go | 259 +- .../k8s.io/api/storage/v1/generated.proto | 10 +- .../vendor/k8s.io/api/storage/v1/types.go | 10 +- .../storage/v1/types_swagger_doc_generated.go | 4 +- .../api/storage/v1alpha1/generated.pb.go | 160 +- .../api/storage/v1alpha1/generated.proto | 2 - .../k8s.io/api/storage/v1alpha1/types.go | 2 - .../api/storage/v1beta1/generated.pb.go | 259 +- .../api/storage/v1beta1/generated.proto | 7 +- .../k8s.io/api/storage/v1beta1/types.go | 7 +- .../storagemigration/v1alpha1}/doc.go | 11 +- .../storagemigration/v1alpha1/generated.pb.go | 1688 + .../storagemigration/v1alpha1/generated.proto | 127 + .../api/storagemigration/v1alpha1/register.go | 58 + .../api/storagemigration/v1alpha1/types.go | 131 + .../v1alpha1/types_swagger_doc_generated.go | 95 + .../v1alpha1/zz_generated.deepcopy.go | 160 + .../zz_generated.prerelease-lifecycle.go | 58 + .../pkg/features/kube_features.go | 10 +- .../pkg/api/resource/generated.pb.go | 43 +- .../apimachinery/pkg/api/validation/OWNERS | 11 + .../pkg/apis/meta/v1/generated.pb.go | 441 +- .../pkg/apis/meta/v1/generated.proto | 22 + .../apimachinery/pkg/apis/meta/v1/types.go | 35 + .../pkg/apis/meta/v1beta1/generated.pb.go | 45 +- .../apimachinery/pkg/runtime/generated.pb.go | 65 +- .../k8s.io/apimachinery/pkg/runtime/helper.go | 12 +- .../pkg/runtime/schema/generated.pb.go | 31 +- .../pkg/util/httpstream/wsstream/conn.go | 26 +- .../pkg/util/intstr/generated.pb.go | 47 +- .../pkg/util/managedfields/node.yaml | 2 +- .../pkg/util/portforward/constants.go} | 15 +- .../pkg/util/proxy/upgradeaware.go | 6 +- .../k8s.io/apimachinery/pkg/util/sets/doc.go | 2 +- .../apimachinery/pkg/util/sets/ordered.go | 53 - .../k8s.io/apimachinery/pkg/util/sets/set.go | 9 +- .../apimachinery/pkg/util/validation/OWNERS | 11 + .../pkg/util/validation/validation.go | 56 +- .../pkg/admission/initializer/initializer.go | 7 + .../pkg/admission/initializer/interfaces.go | 8 + .../pkg/admission/plugin/cel/composition.go | 19 +- .../plugin/policy/generic/accessor.go | 42 + .../plugin/policy/generic/interfaces.go | 64 + .../admission/plugin/policy/generic/plugin.go | 215 + .../policy/generic/policy_dispatcher.go | 354 + .../generic/policy_matcher.go} | 75 +- .../plugin/policy/generic/policy_source.go | 477 + .../policy/generic/policy_test_context.go | 639 + .../internal/generic/controller.go | 0 .../internal/generic/doc.go | 0 .../internal/generic/informer.go | 4 + .../internal/generic/interface.go | 0 .../internal/generic/lister.go | 0 .../matching/matching.go | 7 +- .../plugin/policy/validating/accessor.go | 82 + .../validating}/caching_authorizer.go | 2 +- .../validating/dispatcher.go} | 371 +- .../validating}/initializer.go | 2 +- .../validating}/interface.go | 20 +- .../validating}/message.go | 2 +- .../policy/validating/metrics}/metrics.go | 0 .../plugin/policy/validating/plugin.go | 188 + .../validating}/policy_decision.go | 2 +- .../validating}/typechecking.go | 143 +- .../validating}/validator.go | 3 +- .../plugin/validatingadmissionpolicy/OWNERS | 10 - .../validatingadmissionpolicy/admission.go | 197 - .../controller_reconcile.go | 550 - .../config/apis/webhookadmission/doc.go | 2 +- .../config/apis/webhookadmission/v1/doc.go | 2 +- .../apis/webhookadmission/v1alpha1/doc.go | 2 +- .../pkg/apis/apidiscovery/v2/conversion.go | 226 + .../pkg/apis/apidiscovery/v2/doc.go} | 8 +- .../pkg/apis/apidiscovery/v2/register.go | 39 + .../apiserver/pkg/apis/apiserver/register.go | 1 + .../apiserver/pkg/apis/apiserver/types.go | 47 +- .../types_encryption.go} | 2 +- .../apis/{config => apiserver}/v1/defaults.go | 0 .../pkg/apis/apiserver/v1/register.go | 4 + .../v1/types_encryption.go} | 0 .../apiserver/v1/zz_generated.conversion.go | 259 + .../apiserver/v1/zz_generated.deepcopy.go | 202 + .../apiserver/v1/zz_generated.defaults.go | 13 + .../pkg/apis/apiserver/v1alpha1/types.go | 81 +- .../v1alpha1/zz_generated.conversion.go | 33 +- .../v1alpha1/zz_generated.deepcopy.go | 5 + .../pkg/apis/apiserver/v1beta1/defaults.go} | 25 +- .../pkg/apis/apiserver/v1beta1/register.go | 4 +- .../pkg/apis/apiserver/v1beta1/types.go | 441 + .../v1beta1/zz_generated.conversion.go | 525 + .../v1beta1/zz_generated.deepcopy.go | 310 + .../v1beta1/zz_generated.defaults.go | 10 + .../apis/apiserver/validation/validation.go | 285 +- .../validation/validation_encryption.go} | 27 +- .../apis/apiserver/zz_generated.deepcopy.go | 202 + .../pkg/apis/audit/v1/generated.pb.go | 187 +- .../pkg/apis/audit/v1/generated.proto | 12 + .../apiserver/pkg/apis/audit/v1/types.go | 12 + .../apiserver/pkg/apis/config/v1/register.go | 53 - .../apis/config/v1/zz_generated.conversion.go | 299 - .../apis/config/v1/zz_generated.deepcopy.go | 228 - .../apis/config/v1/zz_generated.defaults.go | 46 - .../pkg/apis/config/zz_generated.deepcopy.go | 228 - .../pkg/authentication/cel/compile.go | 1 + .../pkg/authentication/cel/interface.go | 1 + .../pkg/authentication/serviceaccount/util.go | 6 + .../authorization/authorizer/interfaces.go | 2 +- .../authorizerfactory/delegating.go | 7 +- .../authorizerfactory/metrics.go | 39 +- .../pkg/authorization/cel/matcher.go | 20 + .../pkg/authorization/cel/metrics.go | 120 + .../vendor/k8s.io/apiserver/pkg/cel/cidr.go | 87 + .../apiserver/pkg/cel/environment/base.go | 23 +- .../vendor/k8s.io/apiserver/pkg/cel/ip.go | 86 + .../k8s.io/apiserver/pkg/cel/library/cidr.go | 287 + .../k8s.io/apiserver/pkg/cel/library/cost.go | 150 + .../k8s.io/apiserver/pkg/cel/library/ip.go | 329 + .../endpoints/discovery/aggregated/etag.go | 4 +- .../endpoints/discovery/aggregated/fake.go | 6 +- .../endpoints/discovery/aggregated/handler.go | 72 +- .../discovery/aggregated/negotiation.go | 4 +- .../endpoints/discovery/aggregated/wrapper.go | 7 +- .../pkg/endpoints/filters/request_deadline.go | 14 +- .../pkg/endpoints/filters/webhook_duration.go | 3 +- .../apiserver/pkg/endpoints/groupversion.go | 4 +- .../endpoints/handlers/fieldmanager/node.yaml | 2 +- .../apiserver/pkg/endpoints/handlers/get.go | 32 +- .../apiserver/pkg/endpoints/handlers/watch.go | 141 +- .../apiserver/pkg/endpoints/installer.go | 36 +- .../pkg/endpoints/request/webhook_duration.go | 23 + .../apiserver/pkg/features/kube_features.go | 64 +- .../pkg/registry/generic/registry/store.go | 48 +- .../k8s.io/apiserver/pkg/server/config.go | 23 +- .../apiserver/pkg/server/filters/routine.go | 77 + .../apiserver/pkg/server/genericapiserver.go | 31 +- .../k8s.io/apiserver/pkg/server/healthz.go | 96 +- .../apiserver/pkg/server/healthz/healthz.go | 6 - .../apiserver/pkg/server/options/admission.go | 21 +- .../server/options/encryptionconfig/config.go | 41 +- .../encryptionconfig/metrics/metrics.go | 46 +- .../k8s.io/apiserver/pkg/server/plugins.go | 2 +- .../apiserver/pkg/storage/cacher/cacher.go | 117 +- .../pkg/storage/cacher/lister_watcher.go | 30 +- .../pkg/storage/cacher/metrics/metrics.go | 11 + .../apiserver/pkg/storage/cacher/util.go | 14 - .../pkg/storage/cacher/watch_cache.go | 50 +- .../storage/cacher/watch_cache_interval.go | 17 + .../pkg/storage/cacher/watch_progress.go | 9 +- .../k8s.io/apiserver/pkg/storage/errors.go | 15 + .../apiserver/pkg/storage/errors/storage.go | 2 +- .../pkg/storage/etcd3/metrics/metrics.go | 13 +- .../apiserver/pkg/storage/etcd3/store.go | 112 +- .../pkg/storage/selection_predicate.go | 18 +- .../flowcontrol/fairqueuing/queueset/doc.go | 2 +- .../fairqueuing/queueset/queueset.go | 27 +- .../apiserver/pkg/util/webhook/client.go | 51 +- .../plugin/pkg/authorizer/webhook/metrics.go | 35 - .../pkg/authorizer/webhook/metrics/metrics.go | 166 + .../plugin/pkg/authorizer/webhook/webhook.go | 48 +- .../autoscaling.x-k8s.io/v1beta1}/doc.go | 10 +- .../autoscaling.x-k8s.io/v1beta1/register.go | 56 + .../autoscaling.x-k8s.io/v1beta1/types.go | 203 + .../v1beta1/zz_generated.deepcopy.go | 179 + .../autoscaling.x-k8s.io/v1beta1/podset.go | 48 + .../v1beta1/provisioningrequest.go | 219 + .../v1beta1/provisioningrequestspec.go | 72 + .../v1beta1/provisioningrequeststatus.go | 61 + .../autoscaling.x-k8s.io/v1beta1/reference.go | 39 + .../client/clientset/versioned/clientset.go | 120 + .../versioned/fake/clientset_generated.go | 85 + .../client/clientset/versioned/fake/doc.go | 20 + .../clientset/versioned/fake/register.go | 56 + .../client/clientset/versioned/scheme/doc.go | 20 + .../clientset/versioned/scheme/register.go | 56 + .../v1beta1/autoscaling.x-k8s.io_client.go | 107 + .../typed/autoscaling.x-k8s.io/v1beta1/doc.go | 20 + .../autoscaling.x-k8s.io/v1beta1/fake/doc.go} | 7 +- .../fake/fake_autoscaling.x-k8s.io_client.go | 40 + .../v1beta1/fake/fake_provisioningrequest.go | 189 + .../v1beta1/generated_expansion.go} | 7 +- .../v1beta1/provisioningrequest.go | 256 + .../autoscaling.x-k8s.io/interface.go | 46 + .../autoscaling.x-k8s.io/v1beta1/interface.go | 45 + .../v1beta1/provisioningrequest.go | 90 + .../informers/externalversions/factory.go | 261 + .../informers/externalversions/generic.go | 62 + .../internalinterfaces/factory_interfaces.go | 40 + .../v1beta1/expansion_generated.go} | 24 +- .../v1beta1/provisioningrequest.go | 99 + .../v1/auditannotation.go | 48 + .../v1/expressionwarning.go | 48 + .../v1/matchresources.go | 90 + .../v1/namedrulewithoperations.go | 94 + .../admissionregistration/v1/paramkind.go | 48 + .../admissionregistration/v1/paramref.go | 71 + .../admissionregistration/v1/typechecking.go | 44 + .../v1/validatingadmissionpolicy.go | 256 + .../v1/validatingadmissionpolicybinding.go | 247 + .../validatingadmissionpolicybindingspec.go | 72 + .../v1/validatingadmissionpolicyspec.go | 117 + .../v1/validatingadmissionpolicystatus.go | 66 + .../admissionregistration/v1/validation.go | 70 + .../admissionregistration/v1/variable.go | 48 + .../applyconfigurations/batch/v1/jobspec.go | 18 + .../batch/v1/successpolicy.go | 44 + .../batch/v1/successpolicyrule.go | 48 + .../core/v1/apparmorprofile.go | 52 + .../core/v1/containerstatus.go | 14 + .../core/v1/noderuntimehandler.go | 48 + .../core/v1/noderuntimehandlerfeatures.go | 39 + .../applyconfigurations/core/v1/nodestatus.go | 14 + .../core/v1/podsecuritycontext.go | 9 + .../core/v1/securitycontext.go | 9 + .../core/v1/servicespec.go | 9 + .../core/v1/volumemount.go | 21 +- .../core/v1/volumemountstatus.go | 70 + .../applyconfigurations/internal/internal.go | 702 +- .../v1alpha2/allocationresultmodel.go | 39 + .../v1alpha2/driverallocationresult.go | 52 + .../resource/v1alpha2/driverrequests.go | 66 + .../namedresourcesallocationresult.go | 39 + .../v1alpha2/namedresourcesattribute.go | 100 + .../v1alpha2/namedresourcesattributevalue.go | 97 + .../resource/v1alpha2/namedresourcesfilter.go | 39 + .../v1alpha2/namedresourcesinstance.go | 53 + .../v1alpha2/namedresourcesintslice.go | 41 + .../v1alpha2/namedresourcesrequest.go | 39 + .../v1alpha2/namedresourcesresources.go | 44 + .../v1alpha2/namedresourcesstringslice.go | 41 + .../v1alpha2/resourceclaimparameters.go | 272 + .../resource/v1alpha2/resourceclass.go | 9 + .../v1alpha2/resourceclassparameters.go | 277 + .../resource/v1alpha2/resourcefilter.go | 48 + .../resource/v1alpha2/resourcefiltermodel.go | 39 + .../resource/v1alpha2/resourcehandle.go | 13 +- .../resource/v1alpha2/resourcemodel.go | 39 + .../resource/v1alpha2/resourcerequest.go | 52 + .../resource/v1alpha2/resourcerequestmodel.go | 39 + .../resource/v1alpha2/resourceslice.go | 265 + .../v1alpha2/structuredresourcehandle.go | 75 + .../resource/v1alpha2/vendorparameters.go | 52 + .../v1alpha1/groupversionresource.go | 57 + .../v1alpha1/migrationcondition.go | 81 + .../v1alpha1/storageversionmigration.go | 256 + .../v1alpha1/storageversionmigrationspec.go | 48 + .../v1alpha1/storageversionmigrationstatus.go | 53 + .../discovery/aggregated_discovery.go | 124 +- .../client-go/discovery/discovery_client.go | 29 +- .../k8s.io/client-go/features/envvar.go | 138 + .../k8s.io/client-go/features/features.go | 143 + .../client-go/features/known_features.go | 54 + .../admissionregistration/v1/interface.go | 14 + .../v1/validatingadmissionpolicy.go | 89 + .../v1/validatingadmissionpolicybinding.go | 89 + .../vendor/k8s.io/client-go/informers/doc.go | 2 +- .../k8s.io/client-go/informers/factory.go | 6 + .../k8s.io/client-go/informers/generic.go | 15 + .../informers/resource/v1alpha2/interface.go | 21 + .../v1alpha2/resourceclaimparameters.go | 90 + .../v1alpha2/resourceclassparameters.go | 90 + .../resource/v1alpha2/resourceslice.go | 89 + .../informers/storagemigration/interface.go | 46 + .../storagemigration/v1alpha1/interface.go | 45 + .../v1alpha1/storageversionmigration.go | 89 + .../k8s.io/client-go/kubernetes/clientset.go | 13 + .../vendor/k8s.io/client-go/kubernetes/doc.go | 2 +- .../kubernetes/fake/clientset_generated.go | 7 + .../client-go/kubernetes/fake/register.go | 2 + .../client-go/kubernetes/scheme/register.go | 2 + .../v1/admissionregistration_client.go | 10 + .../fake/fake_admissionregistration_client.go | 8 + .../v1/fake/fake_validatingadmissionpolicy.go | 178 + .../fake_validatingadmissionpolicybinding.go | 145 + .../v1/generated_expansion.go | 4 + .../v1/validatingadmissionpolicy.go | 243 + .../v1/validatingadmissionpolicybinding.go | 197 + .../v1alpha2/fake/fake_resource_client.go | 12 + .../fake/fake_resourceclaimparameters.go | 154 + .../fake/fake_resourceclassparameters.go | 154 + .../v1alpha2/fake/fake_resourceslice.go | 145 + .../resource/v1alpha2/generated_expansion.go | 6 + .../resource/v1alpha2/resource_client.go | 15 + .../v1alpha2/resourceclaimparameters.go | 208 + .../v1alpha2/resourceclassparameters.go | 208 + .../typed/resource/v1alpha2/resourceslice.go | 197 + .../typed/storagemigration/v1alpha1/doc.go | 20 + .../storagemigration/v1alpha1/fake/doc.go | 20 + .../fake/fake_storagemigration_client.go | 40 + .../fake/fake_storageversionmigration.go | 178 + .../v1alpha1/generated_expansion.go} | 8 +- .../v1alpha1/storagemigration_client.go | 107 + .../v1alpha1/storageversionmigration.go | 243 + .../v1/expansion_generated.go | 8 + .../v1/validatingadmissionpolicy.go | 68 + .../v1/validatingadmissionpolicybinding.go | 68 + .../resource/v1alpha2/expansion_generated.go | 20 + .../v1alpha2/resourceclaimparameters.go | 99 + .../v1alpha2/resourceclassparameters.go | 99 + .../resource/v1alpha2/resourceslice.go | 68 + .../v1alpha1/expansion_generated.go} | 10 +- .../v1alpha1/storageversionmigration.go | 68 + .../k8s.io/client-go/restmapper/shortcut.go | 2 +- .../client-go/scale/scheme/appsint/doc.go | 2 +- .../client-go/scale/scheme/appsv1beta1/doc.go | 2 +- .../client-go/scale/scheme/appsv1beta2/doc.go | 2 +- .../scale/scheme/autoscalingv1/doc.go | 2 +- .../k8s.io/client-go/scale/scheme/doc.go | 2 +- .../scale/scheme/extensionsint/doc.go | 2 +- .../scale/scheme/extensionsv1beta1/doc.go | 2 +- .../client-go/tools/cache/controller.go | 10 + .../k8s.io/client-go/tools/cache/index.go | 3 +- .../k8s.io/client-go/tools/cache/reflector.go | 18 +- .../client-go/tools/cache/shared_informer.go | 10 +- .../tools/cache/thread_safe_store.go | 92 +- .../client-go/tools/clientcmd/api/doc.go | 2 +- .../client-go/tools/clientcmd/api/v1/doc.go | 2 +- .../tools/clientcmd/client_config.go | 49 +- .../tools/events/event_broadcaster.go | 10 +- .../tools/leaderelection/leaderelection.go | 30 +- .../client-go/tools/leaderelection/metrics.go | 30 +- .../k8s.io/client-go/tools/record/event.go | 19 +- .../client-go/tools/remotecommand/OWNERS | 10 + .../client-go/tools/remotecommand/fallback.go | 10 +- .../tools/remotecommand/websocket.go | 39 +- .../transport/websocket/roundtripper.go | 27 +- .../client-go/util/flowcontrol/backoff.go | 3 +- .../vendor/k8s.io/cloud-provider/OWNERS | 1 + .../vendor/k8s.io/cloud-provider/cloud.go | 5 + .../cloud-provider/node/helpers/address.go | 6 +- .../vendor/k8s.io/cloud-provider/plugins.go | 2 - .../vendor/k8s.io/code-generator/README.md | 4 + .../cmd/applyconfiguration-gen/args/args.go | 63 +- .../args/externaltypes.go | 2 +- .../generators/applyconfiguration.go | 30 +- .../generators/internal.go | 8 +- .../generators/jsontagutil.go | 2 +- .../generators/openapi.go | 2 +- .../generators/refgraph.go | 8 +- .../generators/{packages.go => targets.go} | 137 +- .../generators/types.go | 2 +- .../applyconfiguration-gen/generators/util.go | 8 +- .../cmd/applyconfiguration-gen/main.go | 26 +- .../cmd/client-gen/args/args.go | 95 +- .../cmd/client-gen/args/gvpackages.go | 4 +- .../client-gen/generators/client_generator.go | 235 +- .../generators/fake/fake_client_generator.go | 93 +- .../fake/generator_fake_for_clientset.go | 21 +- .../fake/generator_fake_for_group.go | 18 +- .../fake/generator_fake_for_type.go | 23 +- .../generators/generator_for_clientset.go | 17 +- .../generators/generator_for_expansion.go | 6 +- .../generators/generator_for_group.go | 22 +- .../generators/generator_for_type.go | 27 +- .../generators/scheme/generator_for_scheme.go | 24 +- .../cmd/client-gen/generators/util/tags.go | 4 +- .../code-generator/cmd/client-gen/main.go | 32 +- .../cmd/client-gen/path/path.go | 31 - .../cmd/client-gen/types/helpers.go | 8 +- .../cmd/conversion-gen/args/args.go | 44 +- .../conversion-gen/generators/conversion.go | 257 +- .../code-generator/cmd/conversion-gen/main.go | 28 +- .../cmd/deepcopy-gen/args/args.go | 36 +- .../cmd}/deepcopy-gen/generators/deepcopy.go | 165 +- .../code-generator/cmd/deepcopy-gen/main.go | 71 +- .../cmd/defaulter-gen/args/args.go | 35 +- .../defaulter-gen/generators/defaulter.go | 241 +- .../code-generator/cmd/defaulter-gen/main.go | 24 +- .../cmd/go-to-protobuf/protobuf/cmd.go | 278 +- .../cmd/go-to-protobuf/protobuf/generator.go | 32 +- .../go-to-protobuf/protobuf/import_tracker.go | 4 +- .../cmd/go-to-protobuf/protobuf/namer.go | 33 +- .../cmd/go-to-protobuf/protobuf/package.go | 54 +- .../cmd/go-to-protobuf/protobuf/parser.go | 30 +- .../cmd/go-to-protobuf/protobuf/tags.go | 4 +- .../code-generator/cmd/import-boss/.gitignore | 1 - .../code-generator/cmd/import-boss/README.md | 97 - .../code-generator/cmd/import-boss/main.go | 45 - .../cmd/informer-gen/args/args.go | 79 +- .../cmd/informer-gen/generators/factory.go | 8 +- .../generators/factoryinterface.go | 8 +- .../cmd/informer-gen/generators/generic.go | 8 +- .../informer-gen/generators/groupinterface.go | 12 +- .../cmd/informer-gen/generators/informer.go | 8 +- .../generators/{packages.go => targets.go} | 206 +- .../cmd/informer-gen/generators/types.go | 2 +- .../generators/versioninterface.go | 8 +- .../code-generator/cmd/informer-gen/main.go | 31 +- .../cmd/lister-gen/args/args.go | 50 +- .../cmd/lister-gen/generators/expansion.go | 18 +- .../cmd/lister-gen/generators/lister.go | 91 +- .../code-generator/cmd/lister-gen/main.go | 28 +- .../code-generator/cmd/openapi-gen/main.go | 57 - .../cmd/register-gen/args/args.go | 27 +- .../generators/register_external.go | 10 +- .../generators/{packages.go => targets.go} | 50 +- .../code-generator/cmd/register-gen/main.go | 23 +- .../code-generator/cmd/set-gen/.gitignore | 1 - .../k8s.io/code-generator/cmd/set-gen/main.go | 53 - .../k8s.io/code-generator/generate-groups.sh | 52 +- .../generate-internal-groups.sh | 258 +- .../k8s.io/code-generator/kube_codegen.sh | 452 +- .../code-generator/pkg/namer/tag-override.go | 7 +- .../k8s.io/code-generator/pkg/util/build.go | 60 - .../vendor/k8s.io/code-generator/tools.go | 3 - .../featuregate/feature_gate.go | 74 +- .../logs/api/v1/kube_features.go | 10 +- .../component-base/logs/api/v1/options.go | 36 +- .../component-base/logs/api/v1/registry.go | 2 +- .../k8s.io/component-base/logs/api/v1/text.go | 142 + .../component-base/logs/api/v1/types.go | 13 + .../logs/api/v1/zz_generated.deepcopy.go | 37 +- .../metrics/prometheus/slis/metrics.go | 3 +- .../metrics/testutil/promlint.go | 6 +- .../metrics/testutil/testutil.go | 11 +- .../k8s.io/component-base/tracing/utils.go | 4 +- .../k8s.io/component-helpers/node/util/ips.go | 15 +- .../storage/volume/helpers.go | 14 + .../pkg/features/kube_features.go | 6 +- .../cri-api/pkg/apis/runtime/v1/api.pb.go | 1744 +- .../cri-api/pkg/apis/runtime/v1/api.proto | 55 +- .../k8s.io/cri-api/pkg/errors/errors.go | 3 + .../csi-translation-lib/plugins/azure_file.go | 4 +- .../resourceclaim/resourceclaim.go | 36 +- .../structured/namedresources/cel/compile.go | 233 + .../structured/namedresources/cel/semver.go | 73 + .../namedresources/cel/semverlib.go | 238 + .../vendor/k8s.io/gengo/args/args.go | 199 - .../import-boss/generators/import_restrict.go | 443 - .../gengo/examples/set-gen/generators/sets.go | 378 - .../gengo/examples/set-gen/generators/tags.go | 33 - .../gengo/examples/set-gen/sets/byte.go | 221 - .../k8s.io/gengo/examples/set-gen/sets/int.go | 221 - .../gengo/examples/set-gen/sets/int64.go | 221 - .../gengo/examples/set-gen/sets/string.go | 221 - .../gengo/generator/default_generator.go | 62 - .../k8s.io/gengo/generator/default_package.go | 75 - .../gengo/generator/transitive_closure.go | 65 - .../vendor/k8s.io/gengo/parser/parse.go | 925 - .../vendor/k8s.io/gengo/types/flatten.go | 57 - .../vendor/k8s.io/gengo/{ => v2}/LICENSE | 0 .../vendor/k8s.io/gengo/v2/README.md | 53 + .../k8s.io/gengo/{types => v2}/comments.go | 21 +- .../vendor/k8s.io/gengo/v2/execute.go | 98 + .../k8s.io/gengo/{ => v2}/generator/doc.go | 2 +- .../gengo/{ => v2}/generator/error_tracker.go | 0 .../gengo/{ => v2}/generator/execute.go | 153 +- .../gengo/{ => v2}/generator/generator.go | 123 +- .../k8s.io/gengo/v2/generator/go_generator.go | 61 + .../{ => v2}/generator/import_tracker.go | 14 +- .../gengo/v2/generator/simple_target.go | 77 + .../{ => v2}/generator/snippet_writer.go | 18 +- .../vendor/k8s.io/gengo/{ => v2}/namer/doc.go | 2 +- .../gengo/{ => v2}/namer/import_tracker.go | 4 +- .../k8s.io/gengo/{ => v2}/namer/namer.go | 2 +- .../k8s.io/gengo/{ => v2}/namer/order.go | 2 +- .../gengo/{ => v2}/namer/plural_namer.go | 2 +- .../k8s.io/gengo/{ => v2}/parser/doc.go | 2 +- .../vendor/k8s.io/gengo/v2/parser/parse.go | 821 + .../vendor/k8s.io/gengo/{ => v2}/types/doc.go | 2 +- .../k8s.io/gengo/{ => v2}/types/types.go | 12 +- .../vendor/k8s.io/klog/v2/OWNERS | 4 +- .../klog/v2/contextual_slog.go} | 25 +- .../klog/v2/internal/verbosity/verbosity.go | 303 + .../vendor/k8s.io/klog/v2/klog.go | 23 +- .../vendor/k8s.io/klog/v2/klogr_slog.go | 10 +- .../vendor/k8s.io/klog/v2/safeptr.go | 34 + .../k8s.io/klog/v2/textlogger/options.go | 154 + .../k8s.io/klog/v2/textlogger/textlogger.go | 187 + .../klog/v2/textlogger/textlogger_slog.go | 52 + .../kube-openapi/cmd/openapi-gen/args/args.go | 76 - .../kube-openapi/pkg/builder3/openapi.go | 3 + .../k8s.io/kube-openapi/pkg/common/common.go | 3 + .../kube-openapi/pkg/generators/README.md | 49 - .../kube-openapi/pkg/generators/api_linter.go | 219 - .../kube-openapi/pkg/generators/config.go | 91 - .../kube-openapi/pkg/generators/enum.go | 162 - .../kube-openapi/pkg/generators/extension.go | 202 - .../kube-openapi/pkg/generators/openapi.go | 871 - .../kube-openapi/pkg/generators/rules/OWNERS | 4 - .../kube-openapi/pkg/generators/rules/doc.go | 23 - .../pkg/generators/rules/idl_tag.go | 53 - .../pkg/generators/rules/names_match.go | 178 - .../generators/rules/omitempty_match_case.go | 64 - .../kube-openapi/pkg/generators/union.go | 207 - .../k8s.io/kube-openapi/pkg/schemaconv/smd.go | 3 - .../kube-openapi/pkg/util/sets/empty.go | 27 - .../kube-openapi/pkg/util/sets/string.go | 207 - .../k8s.io/kubelet/config/v1beta1/types.go | 25 +- .../config/v1beta1/zz_generated.deepcopy.go | 10 + .../kubelet/pkg/apis/dra/v1alpha2/api.pb.go | 210 +- .../kubelet/pkg/apis/dra/v1alpha2/api.proto | 11 + .../kubelet/pkg/apis/dra/v1alpha3/api.pb.go | 554 +- .../kubelet/pkg/apis/dra/v1alpha3/api.proto | 20 + .../pkg/cri/streaming/remotecommand/doc.go | 2 +- .../vendor/k8s.io/kubelet/pkg/types/labels.go | 7 + .../cmd/kubelet/app/options/globalflags.go | 14 - .../app/options/globalflags_providers.go | 31 - .../cmd/kubelet/app/options/options.go | 11 +- .../cmd/kubelet/app/plugins_providers.go | 3 - .../kubernetes/cmd/kubelet/app/server.go | 29 +- .../k8s.io/kubernetes/pkg/apis/batch/types.go | 101 +- .../pkg/apis/batch/zz_generated.deepcopy.go | 59 + .../pkg/apis/core/annotation_key_constants.go | 13 + .../k8s.io/kubernetes/pkg/apis/core/types.go | 175 +- .../apis/core/v1/zz_generated.conversion.go | 140 +- .../pkg/apis/core/validation/validation.go | 373 +- .../pkg/apis/core/zz_generated.deepcopy.go | 115 +- .../kubernetes/pkg/apis/scheduling/types.go | 3 +- .../pkg/cloudprovider/providers/providers.go | 2 - .../pkg/controller/controller_utils.go | 5 +- .../controller/daemon/daemon_controller.go | 52 +- .../deployment/util/deployment_util.go | 6 +- .../pkg/credentialprovider/azure/OWNERS | 13 - .../azure/azure_acr_helper.go | 291 - .../azure/azure_credentials.go | 350 - .../pkg/credentialprovider/azure/doc.go | 17 - .../pkg/credentialprovider/plugin/plugin.go | 12 +- .../kubernetes/pkg/features/client_adapter.go | 69 + .../kubernetes/pkg/features/kube_features.go | 358 +- .../pkg/kubelet/apis/config/helpers.go | 1 + .../pkg/kubelet/apis/config/types.go | 14 +- .../kubelet/apis/config/v1beta1/defaults.go | 11 +- .../config/v1beta1/zz_generated.conversion.go | 14 + .../apis/config/validation/validation.go | 36 +- .../apis/config/zz_generated.deepcopy.go | 1 + .../kubelet/apis/podresources/server_v1.go | 85 +- .../pkg/kubelet/cadvisor/cadvisor_linux.go | 22 - .../kubelet/cadvisor/cadvisor_unsupported.go | 17 - .../pkg/kubelet/cadvisor/cadvisor_windows.go | 17 - .../pkg/kubelet/cadvisor/helpers_linux.go | 7 +- .../kubernetes/pkg/kubelet/cadvisor/types.go | 7 - .../pkg/kubelet/cm/container_manager.go | 1 + .../pkg/kubelet/cm/container_manager_linux.go | 6 +- .../kubelet/cm/cpumanager/cpu_assignment.go | 192 +- .../devicemanager/checkpoint/checkpointv1.go | 2 +- .../pkg/kubelet/cm/devicemanager/manager.go | 40 +- .../devicemanager/plugin/v1beta1/handler.go | 3 +- .../cm/devicemanager/plugin/v1beta1/server.go | 2 +- .../kubelet/cm/devicemanager/pod_devices.go | 2 +- .../cm/devicemanager/topology_hints.go | 4 +- .../kubernetes/pkg/kubelet/cm/dra/manager.go | 11 +- .../pkg/kubelet/cm/dra/plugin/client.go | 36 +- .../kubelet/cm/dra/plugin/noderesources.go | 510 + .../pkg/kubelet/cm/dra/plugin/plugin.go | 45 +- .../kubelet/cm/memorymanager/policy_static.go | 10 +- .../cm/node_container_manager_linux.go | 2 +- .../kubernetes/pkg/kubelet/config/config.go | 20 +- .../config.go => kubelet/config/mux.go} | 80 +- .../pkg/kubelet/container/helpers.go | 3 +- .../pkg/kubelet/container/runtime.go | 37 +- .../kubelet/container/testing/fake_runtime.go | 15 +- .../container/testing/fake_runtime_helper.go | 2 +- .../kubelet/container/testing/runtime_mock.go | 30 + .../pkg/kubelet/eviction/defaults_linux.go | 9 +- .../pkg/kubelet/images/image_gc_manager.go | 33 +- .../pkg/kubelet/images/image_manager.go | 7 +- .../kubernetes/pkg/kubelet/images/puller.go | 18 +- .../k8s.io/kubernetes/pkg/kubelet/kubelet.go | 80 +- .../kubernetes/pkg/kubelet/kubelet_getters.go | 31 + .../pkg/kubelet/kubelet_node_status.go | 7 +- .../kubernetes/pkg/kubelet/kubelet_pods.go | 237 +- .../kubelet/kubelet_server_journal_linux.go | 2 +- .../kubernetes/pkg/kubelet/kubelet_volumes.go | 8 +- .../kubeletconfig/configfiles/configfiles.go | 2 +- .../kuberuntime/fake_kuberuntime_manager.go | 5 +- .../pkg/kubelet/kuberuntime/helpers.go | 79 +- .../kuberuntime/kuberuntime_container.go | 25 +- .../kuberuntime_container_linux.go | 23 +- .../pkg/kubelet/kuberuntime/kuberuntime_gc.go | 7 +- .../kubelet/kuberuntime/kuberuntime_image.go | 12 + .../kuberuntime/kuberuntime_manager.go | 18 +- .../kuberuntime/kuberuntime_sandbox.go | 4 +- .../kubelet/kuberuntime/security_context.go | 8 +- .../pkg/kubelet/kuberuntime/util/util.go | 17 +- .../kubernetes/pkg/kubelet/leaky/leaky.go | 25 - .../pkg/kubelet/lifecycle/handlers.go | 66 +- .../pkg/kubelet/logs/container_log_manager.go | 137 +- .../kubernetes/pkg/kubelet/metrics/metrics.go | 113 +- .../pkg/kubelet/nodestatus/setters.go | 28 +- .../kubernetes/pkg/kubelet/pleg/generic.go | 2 +- .../pkg/kubelet/pluginmanager/cache/types.go | 8 +- .../operationexecutor/operation_generator.go | 2 +- .../kubernetes/pkg/kubelet/pod/pod_manager.go | 2 +- .../kubernetes/pkg/kubelet/prober/prober.go | 21 +- .../k8s.io/kubernetes/pkg/kubelet/runtime.go | 14 + .../kubernetes/pkg/kubelet/server/auth.go | 2 + .../kubernetes/pkg/kubelet/server/server.go | 10 +- .../pkg/kubelet/server/stats/handler.go | 9 - .../kubelet/stats/cadvisor_stats_provider.go | 5 +- .../stats/cri_stats_provider_windows.go | 4 +- .../pkg/kubelet/stats/host_stats_provider.go | 9 +- .../kubelet/stats/host_stats_provider_fake.go | 4 +- .../kubernetes/pkg/kubelet/stats/provider.go | 39 - .../kubernetes/pkg/kubelet/types/constants.go | 4 +- .../userns/inuserns/inuserns_linux.go} | 13 +- .../userns/inuserns/inuserns_others.go} | 15 +- .../pkg/kubelet/userns/userns_manager.go | 131 +- .../util/pod_startup_latency_tracker.go | 8 + .../cache/actual_state_of_world.go | 10 +- .../desired_state_of_wold_selinux_metrics.go | 30 +- .../cache/desired_state_of_world.go | 47 +- .../desired_state_of_world_populator.go | 22 +- .../volumemanager/reconciler/reconciler.go | 128 +- .../reconciler/reconciler_common.go | 11 - .../reconciler/reconciler_new.go | 75 - .../volumemanager/reconciler/reconstruct.go | 226 +- .../reconciler/reconstruct_new.go | 212 - .../kubelet/winstats/perfcounter_nodestats.go | 3 +- .../kubernetes/pkg/kubemark/hollow_kubelet.go | 2 + .../pkg/scheduler/apis/config/types.go | 4 - .../apis/config/v1/default_plugins.go | 4 +- .../apis/config/v1/zz_generated.conversion.go | 2 - .../apis/config/validation/validation.go | 51 +- .../kubernetes/pkg/scheduler/eventhandlers.go | 66 +- .../kubernetes/pkg/scheduler/extender.go | 39 +- .../pkg/scheduler/framework/extender.go | 11 +- .../pkg/scheduler/framework/interface.go | 47 +- .../defaultpreemption/default_preemption.go | 3 +- .../dynamicresources/dynamicresources.go | 854 +- .../namedresources/namedresourcesmodel.go | 153 + .../dynamicresources/structuredparameters.go | 239 + .../framework/plugins/feature/feature.go | 2 - .../plugins/imagelocality/image_locality.go | 16 +- .../plugins/interpodaffinity/plugin.go | 11 +- .../plugins/interpodaffinity/scoring.go | 2 +- .../plugins/nodeaffinity/node_affinity.go | 27 +- .../noderesources/balanced_allocation.go | 2 +- .../framework/plugins/noderesources/fit.go | 137 +- .../nodeunschedulable/node_unschedulable.go | 19 +- .../framework/plugins/nodevolumelimits/OWNERS | 10 + .../framework/plugins/nodevolumelimits/csi.go | 10 +- .../plugins/nodevolumelimits/non_csi.go | 8 +- .../plugins/podtopologyspread/common.go | 16 +- .../plugins/podtopologyspread/filtering.go | 40 +- .../plugins/podtopologyspread/plugin.go | 155 +- .../plugins/podtopologyspread/scoring.go | 10 +- .../scheduler/framework/plugins/registry.go | 4 +- .../schedulinggates/scheduling_gates.go | 11 +- .../tainttoleration/taint_toleration.go | 2 +- .../plugins/volumebinding/assume_cache.go | 14 +- .../plugins/volumebinding/volume_binding.go | 31 +- .../plugins/volumerestrictions/OWNERS | 10 + .../framework/plugins/volumezone/OWNERS | 10 + .../plugins/volumezone/volume_zone.go | 11 +- .../scheduler/framework/runtime/framework.go | 85 +- .../framework/runtime/instrumented_plugins.go | 2 +- .../pkg/scheduler/framework/types.go | 86 +- .../pkg/scheduler/internal/queue/events.go | 2 + .../internal/queue/scheduling_queue.go | 50 +- .../pkg/scheduler/metrics/metrics.go | 4 +- .../pkg/scheduler/profile/profile.go | 12 + .../kubernetes/pkg/scheduler/schedule_one.go | 133 +- .../kubernetes/pkg/scheduler/scheduler.go | 39 +- .../pkg/scheduler/util/pod_resources.go | 6 - .../pkg/security/apparmor/helpers.go | 81 +- .../pkg/security/apparmor/validate.go | 13 +- .../k8s.io/kubernetes/pkg/util/config/doc.go | 20 - .../pkg/util/filesystem/util.go} | 21 +- .../pkg/util/filesystem/util_unix.go | 6 + .../pkg/util/filesystem/util_windows.go | 12 + .../kubernetes/pkg/util/filesystem/watcher.go | 127 + .../kubernetes/pkg/util/iptables/iptables.go | 11 +- .../pkg/util/iptables/save_restore.go | 17 +- .../k8s.io/kubernetes/pkg/util/slice/slice.go | 75 + .../kubernetes/pkg/volume/azure_file/OWNERS | 18 - .../pkg/volume/azure_file/azure_file.go | 414 - .../pkg/volume/azure_file/azure_provision.go | 284 - .../pkg/volume/azure_file/azure_util.go | 162 - .../kubernetes/pkg/volume/csi/csi_mounter.go | 13 +- .../kubernetes/pkg/volume/csi/csi_plugin.go | 23 +- .../kubernetes/pkg/volume/csi/expander.go | 2 +- .../pkg/volume/csimigration/plugin_manager.go | 2 +- .../kubernetes/pkg/volume/flexvolume/probe.go | 4 + .../k8s.io/kubernetes/pkg/volume/plugins.go | 2 +- .../pkg/volume/util/atomic_writer.go | 104 +- .../pkg/volume/util/hostutil/hostutil.go | 7 +- .../volume/util/hostutil/hostutil_linux.go | 2 +- .../volume/util/hostutil/hostutil_windows.go | 5 +- .../operationexecutor/operation_executor.go | 7 + .../operationexecutor/operation_generator.go | 51 +- .../kubernetes/pkg/volume/util/selinux.go | 4 + .../kubernetes/pkg/volume/util/types/types.go | 17 + .../kubernetes/test/utils/deployment.go | 8 +- .../kubernetes/test/utils/replicaset.go | 4 +- .../k8s.io/kubernetes/test/utils/runners.go | 4 +- .../legacy-cloud-providers/azure/OWNERS | 18 - .../azure/auth/azure_auth.go | 290 - .../legacy-cloud-providers/azure/azure.go | 988 - .../azure/azure_backoff.go | 470 - .../azure/azure_blobDiskController.go | 648 - .../azure/azure_config.go | 95 - .../azure/azure_controller_common.go | 460 - .../azure/azure_controller_standard.go | 204 - .../azure/azure_controller_vmss.go | 207 - .../azure/azure_fakes.go | 99 - .../azure/azure_file.go | 42 - .../azure/azure_instance_metadata.go | 270 - .../azure/azure_instances.go | 432 - .../azure/azure_loadbalancer.go | 2769 - .../azure/azure_managedDiskController.go | 399 - .../azure/azure_ratelimit.go | 110 - .../azure/azure_routes.go | 579 - .../azure/azure_standard.go | 1132 - .../azure/azure_storage.go | 86 - .../azure/azure_storageaccount.go | 214 - .../azure/azure_utils.go | 165 - .../azure/azure_vmsets.go | 88 - .../azure/azure_vmss.go | 1708 - .../azure/azure_vmss_cache.go | 350 - .../azure/azure_wrap.go | 356 - .../azure/azure_zones.go | 131 - .../azure/cache/azure_cache.go | 178 - .../legacy-cloud-providers/azure/cache/doc.go | 21 - .../clients/armclient/azure_armclient.go | 701 - .../azure/clients/armclient/doc.go | 21 - .../azure/clients/armclient/interface.go | 104 - .../azure/clients/azure_client_config.go | 82 - .../azure_containerserviceclient.go | 419 - .../clients/containerserviceclient/doc.go | 21 - .../containerserviceclient/interface.go | 42 - .../azure_deploymentclient.go | 459 - .../azure/clients/deploymentclient/doc.go | 21 - .../clients/deploymentclient/interface.go | 42 - .../clients/diskclient/azure_diskclient.go | 453 - .../azure/clients/diskclient/doc.go | 21 - .../azure/clients/diskclient/interface.go | 55 - .../clients/diskclient/mockdiskclient/doc.go | 21 - .../diskclient/mockdiskclient/interface.go | 128 - .../azure/clients/doc.go | 21 - .../clients/fileclient/azure_fileclient.go | 121 - .../azure/clients/fileclient/doc.go | 21 - .../azure/clients/fileclient/interface.go | 33 - .../interfaceclient/azure_interfaceclient.go | 320 - .../azure/clients/interfaceclient/doc.go | 21 - .../clients/interfaceclient/interface.go | 51 - .../mockinterfaceclient/doc.go | 21 - .../mockinterfaceclient/interface.go | 114 - .../azure_loadbalancerclient.go | 419 - .../azure/clients/loadbalancerclient/doc.go | 21 - .../clients/loadbalancerclient/interface.go | 48 - .../mockloadbalancerclient/doc.go | 21 - .../mockloadbalancerclient/interface.go | 114 - .../publicipclient/azure_publicipclient.go | 485 - .../azure/clients/publicipclient/interface.go | 54 - .../publicipclient/mockpublicipclient/doc.go | 21 - .../mockpublicipclient/interface.go | 129 - .../clients/routeclient/azure_routeclient.go | 199 - .../azure/clients/routeclient/doc.go | 21 - .../azure/clients/routeclient/interface.go | 42 - .../routeclient/mockrouteclient/doc.go | 21 - .../routeclient/mockrouteclient/interface.go | 84 - .../azure_routetableclient.go | 213 - .../azure/clients/routetableclient/doc.go | 21 - .../clients/routetableclient/interface.go | 42 - .../mockroutetableclient/doc.go | 21 - .../mockroutetableclient/interface.go | 85 - .../azure_securitygroupclient.go | 419 - .../azure/clients/securitygroupclient/doc.go | 21 - .../clients/securitygroupclient/interface.go | 48 - .../mocksecuritygroupclient/doc.go | 21 - .../mocksecuritygroupclient/interface.go | 114 - .../snapshotclient/azure_snapshotclient.go | 412 - .../azure/clients/snapshotclient/doc.go | 21 - .../azure/clients/snapshotclient/interface.go | 48 - .../azure_storageaccountclient.go | 478 - .../azure/clients/storageaccountclient/doc.go | 21 - .../clients/storageaccountclient/interface.go | 55 - .../subnetclient/azure_subnetclient.go | 419 - .../azure/clients/subnetclient/doc.go | 21 - .../azure/clients/subnetclient/interface.go | 48 - .../subnetclient/mocksubnetclient/doc.go | 21 - .../mocksubnetclient/interface.go | 114 - .../azure/clients/vmclient/azure_vmclient.go | 486 - .../azure/clients/vmclient/doc.go | 21 - .../azure/clients/vmclient/interface.go | 51 - .../clients/vmclient/mockvmclient/doc.go | 21 - .../vmclient/mockvmclient/interface.go | 128 - .../vmsizeclient/azure_vmsizeclient.go | 137 - .../azure/clients/vmsizeclient/doc.go | 21 - .../azure/clients/vmsizeclient/interface.go | 39 - .../clients/vmssclient/azure_vmssclient.go | 653 - .../azure/clients/vmssclient/doc.go | 21 - .../azure/clients/vmssclient/interface.go | 78 - .../clients/vmssclient/mockvmssclient/doc.go | 21 - .../vmssclient/mockvmssclient/interface.go | 251 - .../vmssvmclient/azure_vmssvmclient.go | 463 - .../azure/clients/vmssvmclient/doc.go | 21 - .../azure/clients/vmssvmclient/interface.go | 48 - .../vmssvmclient/mockvmssvmclient/doc.go | 21 - .../mockvmssvmclient/interface.go | 114 - .../legacy-cloud-providers/azure/doc.go | 22 - .../azure/metrics/azure_metrics.go | 189 - .../azure/metrics/doc.go | 21 - .../azure/retry/azure_error.go | 315 - .../azure/retry/azure_retry.go | 201 - .../legacy-cloud-providers/azure/retry/doc.go | 22 - .../k8s.io/legacy-cloud-providers/gce/gce.go | 7 +- .../gce/gce_loadbalancer_metrics.go | 10 +- .../legacy-cloud-providers/vsphere/OWNERS | 12 - .../vsphere/credentialmanager.go | 170 - .../legacy-cloud-providers/vsphere/doc.go | 17 - .../vsphere/nodemanager.go | 564 - .../vsphere/shared_datastore.go | 210 - .../vsphere/vclib/connection.go | 237 - .../vsphere/vclib/constants.go | 65 - .../vsphere/vclib/custom_errors.go | 37 - .../vsphere/vclib/datacenter.go | 370 - .../vsphere/vclib/datastore.go | 109 - .../vsphere/vclib/diskmanagers/vdm.go | 105 - .../vsphere/vclib/diskmanagers/virtualdisk.go | 80 - .../vsphere/vclib/diskmanagers/vmdm.go | 254 - .../vsphere/vclib/folder.go | 47 - .../vsphere/vclib/pbm.go | 169 - .../vsphere/vclib/utils.go | 284 - .../vsphere/vclib/virtualmachine.go | 472 - .../vsphere/vclib/volumeoptions.go | 111 - .../vsphere/vclib/vsphere_metrics.go | 192 - .../legacy-cloud-providers/vsphere/vsphere.go | 2105 - .../vsphere/vsphere_util.go | 880 - .../vsphere/vsphere_util_unsupported.go | 26 - .../vsphere/vsphere_util_windows.go | 45 - .../vsphere/vsphere_volume_map.go | 114 - .../vendor/k8s.io/mount-utils/mount_linux.go | 73 +- .../k8s.io/mount-utils/mount_windows.go | 6 +- cluster-autoscaler/vendor/modules.txt | 369 +- cluster-autoscaler/version/version.go | 2 +- multidimensional-pod-autoscaler/AEP.md | 13 +- vertical-pod-autoscaler/OWNERS | 2 +- vertical-pod-autoscaler/README.md | 11 +- vertical-pod-autoscaler/common/version.go | 2 +- .../admission-controller-deployment.yaml | 2 +- .../deploy/recommender-deployment-high.yaml | 2 +- .../deploy/recommender-deployment-low.yaml | 2 +- .../deploy/recommender-deployment.yaml | 2 +- .../deploy/updater-deployment.yaml | 2 +- vertical-pod-autoscaler/e2e/go.mod | 10 +- vertical-pod-autoscaler/e2e/go.sum | 20 +- .../e2e/v1/admission_controller.go | 49 +- vertical-pod-autoscaler/e2e/v1/full_vpa.go | 1 + vertical-pod-autoscaler/e2e/v1/recommender.go | 4 +- .../x/crypto/chacha20/chacha_arm64.go | 1 - .../x/crypto/chacha20/chacha_arm64.s | 1 - .../x/crypto/chacha20/chacha_noasm.go | 1 - .../x/crypto/chacha20/chacha_ppc64le.go | 1 - .../x/crypto/chacha20/chacha_ppc64le.s | 1 - .../x/crypto/chacha20/chacha_s390x.go | 1 - .../x/crypto/chacha20/chacha_s390x.s | 1 - .../golang.org/x/crypto/cryptobyte/asn1.go | 13 +- .../curve25519/internal/field/fe_amd64.go | 1 - .../curve25519/internal/field/fe_amd64.s | 1 - .../internal/field/fe_amd64_noasm.go | 1 - .../curve25519/internal/field/fe_arm64.go | 1 - .../curve25519/internal/field/fe_arm64.s | 1 - .../internal/field/fe_arm64_noasm.go | 1 - .../vendor/golang.org/x/crypto/hkdf/hkdf.go | 4 +- .../x/crypto/internal/alias/alias.go | 1 - .../x/crypto/internal/alias/alias_purego.go | 1 - .../x/crypto/internal/poly1305/bits_compat.go | 40 - .../x/crypto/internal/poly1305/bits_go1.13.go | 22 - .../x/crypto/internal/poly1305/mac_noasm.go | 1 - .../x/crypto/internal/poly1305/sum_amd64.go | 1 - .../x/crypto/internal/poly1305/sum_amd64.s | 1 - .../x/crypto/internal/poly1305/sum_generic.go | 43 +- .../x/crypto/internal/poly1305/sum_ppc64le.go | 1 - .../x/crypto/internal/poly1305/sum_ppc64le.s | 1 - .../x/crypto/internal/poly1305/sum_s390x.go | 1 - .../x/crypto/internal/poly1305/sum_s390x.s | 1 - .../x/crypto/salsa20/salsa/salsa20_amd64.go | 1 - .../x/crypto/salsa20/salsa/salsa20_amd64.s | 1 - .../x/crypto/salsa20/salsa/salsa20_noasm.go | 1 - .../vendor/golang.org/x/crypto/ssh/channel.go | 28 +- .../vendor/golang.org/x/crypto/ssh/client.go | 2 +- .../golang.org/x/crypto/ssh/client_auth.go | 20 +- .../vendor/golang.org/x/crypto/ssh/common.go | 11 +- .../golang.org/x/crypto/ssh/handshake.go | 63 +- .../vendor/golang.org/x/crypto/ssh/keys.go | 19 +- .../vendor/golang.org/x/crypto/ssh/server.go | 27 +- .../vendor/golang.org/x/crypto/ssh/tcpip.go | 35 + .../golang.org/x/crypto/ssh/transport.go | 32 +- .../vendor/golang.org/x/net/context/go17.go | 1 - .../vendor/golang.org/x/net/context/go19.go | 1 - .../golang.org/x/net/context/pre_go17.go | 1 - .../golang.org/x/net/context/pre_go19.go | 1 - .../e2e/vendor/golang.org/x/net/html/token.go | 12 +- .../golang.org/x/net/http2/databuffer.go | 59 +- .../vendor/golang.org/x/net/http2/frame.go | 11 +- .../vendor/golang.org/x/net/http2/go111.go | 30 - .../vendor/golang.org/x/net/http2/go115.go | 27 - .../vendor/golang.org/x/net/http2/go118.go | 17 - .../golang.org/x/net/http2/not_go111.go | 21 - .../golang.org/x/net/http2/not_go115.go | 31 - .../golang.org/x/net/http2/not_go118.go | 17 - .../vendor/golang.org/x/net/http2/server.go | 24 +- .../golang.org/x/net/http2/transport.go | 33 +- .../e2e/vendor/golang.org/x/net/idna/go118.go | 1 - .../golang.org/x/net/idna/idna10.0.0.go | 1 - .../vendor/golang.org/x/net/idna/idna9.0.0.go | 1 - .../vendor/golang.org/x/net/idna/pre_go118.go | 1 - .../golang.org/x/net/idna/tables10.0.0.go | 1 - .../golang.org/x/net/idna/tables11.0.0.go | 1 - .../golang.org/x/net/idna/tables12.0.0.go | 1 - .../golang.org/x/net/idna/tables13.0.0.go | 1 - .../golang.org/x/net/idna/tables15.0.0.go | 1 - .../golang.org/x/net/idna/tables9.0.0.go | 1 - .../golang.org/x/net/idna/trie12.0.0.go | 1 - .../golang.org/x/net/idna/trie13.0.0.go | 1 - .../golang.org/x/sys/cpu/asm_aix_ppc64.s | 1 - .../vendor/golang.org/x/sys/cpu/cpu_aix.go | 1 - .../vendor/golang.org/x/sys/cpu/cpu_arm64.s | 1 - .../golang.org/x/sys/cpu/cpu_gc_arm64.go | 1 - .../golang.org/x/sys/cpu/cpu_gc_s390x.go | 1 - .../vendor/golang.org/x/sys/cpu/cpu_gc_x86.go | 2 - .../golang.org/x/sys/cpu/cpu_gccgo_arm64.go | 1 - .../golang.org/x/sys/cpu/cpu_gccgo_s390x.go | 1 - .../golang.org/x/sys/cpu/cpu_gccgo_x86.c | 2 - .../golang.org/x/sys/cpu/cpu_gccgo_x86.go | 2 - .../vendor/golang.org/x/sys/cpu/cpu_linux.go | 1 - .../golang.org/x/sys/cpu/cpu_linux_mips64x.go | 2 - .../golang.org/x/sys/cpu/cpu_linux_noinit.go | 1 - .../golang.org/x/sys/cpu/cpu_linux_ppc64x.go | 2 - .../golang.org/x/sys/cpu/cpu_loong64.go | 1 - .../golang.org/x/sys/cpu/cpu_mips64x.go | 1 - .../vendor/golang.org/x/sys/cpu/cpu_mipsx.go | 1 - .../golang.org/x/sys/cpu/cpu_other_arm.go | 1 - .../golang.org/x/sys/cpu/cpu_other_arm64.go | 1 - .../golang.org/x/sys/cpu/cpu_other_mips64x.go | 2 - .../golang.org/x/sys/cpu/cpu_other_ppc64x.go | 3 - .../golang.org/x/sys/cpu/cpu_other_riscv64.go | 1 - .../vendor/golang.org/x/sys/cpu/cpu_ppc64x.go | 1 - .../golang.org/x/sys/cpu/cpu_riscv64.go | 1 - .../vendor/golang.org/x/sys/cpu/cpu_s390x.s | 1 - .../vendor/golang.org/x/sys/cpu/cpu_wasm.go | 1 - .../vendor/golang.org/x/sys/cpu/cpu_x86.go | 1 - .../e2e/vendor/golang.org/x/sys/cpu/cpu_x86.s | 2 - .../vendor/golang.org/x/sys/cpu/endian_big.go | 1 - .../golang.org/x/sys/cpu/endian_little.go | 1 - .../x/sys/cpu/proc_cpuinfo_linux.go | 1 - .../x/sys/cpu/runtime_auxv_go121.go | 1 - .../golang.org/x/sys/cpu/syscall_aix_gccgo.go | 1 - .../x/sys/cpu/syscall_aix_ppc64_gc.go | 1 - .../golang.org/x/sys/execabs/execabs_go118.go | 1 - .../golang.org/x/sys/execabs/execabs_go119.go | 1 - .../golang.org/x/sys/plan9/pwd_go15_plan9.go | 1 - .../golang.org/x/sys/plan9/pwd_plan9.go | 1 - .../e2e/vendor/golang.org/x/sys/plan9/race.go | 1 - .../vendor/golang.org/x/sys/plan9/race0.go | 1 - .../e2e/vendor/golang.org/x/sys/plan9/str.go | 1 - .../vendor/golang.org/x/sys/plan9/syscall.go | 1 - .../x/sys/plan9/zsyscall_plan9_386.go | 1 - .../x/sys/plan9/zsyscall_plan9_amd64.go | 1 - .../x/sys/plan9/zsyscall_plan9_arm.go | 1 - .../vendor/golang.org/x/sys/unix/aliases.go | 2 - .../golang.org/x/sys/unix/asm_aix_ppc64.s | 1 - .../golang.org/x/sys/unix/asm_bsd_386.s | 2 - .../golang.org/x/sys/unix/asm_bsd_amd64.s | 2 - .../golang.org/x/sys/unix/asm_bsd_arm.s | 2 - .../golang.org/x/sys/unix/asm_bsd_arm64.s | 2 - .../golang.org/x/sys/unix/asm_bsd_ppc64.s | 2 - .../golang.org/x/sys/unix/asm_bsd_riscv64.s | 2 - .../golang.org/x/sys/unix/asm_linux_386.s | 1 - .../golang.org/x/sys/unix/asm_linux_amd64.s | 1 - .../golang.org/x/sys/unix/asm_linux_arm.s | 1 - .../golang.org/x/sys/unix/asm_linux_arm64.s | 3 - .../golang.org/x/sys/unix/asm_linux_loong64.s | 3 - .../golang.org/x/sys/unix/asm_linux_mips64x.s | 3 - .../golang.org/x/sys/unix/asm_linux_mipsx.s | 3 - .../golang.org/x/sys/unix/asm_linux_ppc64x.s | 3 - .../golang.org/x/sys/unix/asm_linux_riscv64.s | 2 - .../golang.org/x/sys/unix/asm_linux_s390x.s | 3 - .../x/sys/unix/asm_openbsd_mips64.s | 1 - .../golang.org/x/sys/unix/asm_solaris_amd64.s | 1 - .../golang.org/x/sys/unix/asm_zos_s390x.s | 3 - .../golang.org/x/sys/unix/cap_freebsd.go | 1 - .../vendor/golang.org/x/sys/unix/constants.go | 1 - .../golang.org/x/sys/unix/dev_aix_ppc.go | 1 - .../golang.org/x/sys/unix/dev_aix_ppc64.go | 1 - .../vendor/golang.org/x/sys/unix/dev_zos.go | 1 - .../vendor/golang.org/x/sys/unix/dirent.go | 1 - .../golang.org/x/sys/unix/endian_big.go | 1 - .../golang.org/x/sys/unix/endian_little.go | 1 - .../vendor/golang.org/x/sys/unix/env_unix.go | 1 - .../vendor/golang.org/x/sys/unix/epoll_zos.go | 1 - .../e2e/vendor/golang.org/x/sys/unix/fcntl.go | 3 +- .../x/sys/unix/fcntl_linux_32bit.go | 1 - .../e2e/vendor/golang.org/x/sys/unix/fdset.go | 1 - .../golang.org/x/sys/unix/fstatfs_zos.go | 1 - .../e2e/vendor/golang.org/x/sys/unix/gccgo.go | 1 - .../vendor/golang.org/x/sys/unix/gccgo_c.c | 1 - .../x/sys/unix/gccgo_linux_amd64.go | 1 - .../golang.org/x/sys/unix/ifreq_linux.go | 1 - .../golang.org/x/sys/unix/ioctl_linux.go | 5 + .../golang.org/x/sys/unix/ioctl_signed.go | 1 - .../golang.org/x/sys/unix/ioctl_unsigned.go | 1 - .../vendor/golang.org/x/sys/unix/ioctl_zos.go | 1 - .../vendor/golang.org/x/sys/unix/mkerrors.sh | 43 +- .../golang.org/x/sys/unix/mmap_nomremap.go | 1 - .../vendor/golang.org/x/sys/unix/mremap.go | 1 - .../golang.org/x/sys/unix/pagesize_unix.go | 1 - .../golang.org/x/sys/unix/pledge_openbsd.go | 92 +- .../golang.org/x/sys/unix/ptrace_darwin.go | 1 - .../golang.org/x/sys/unix/ptrace_ios.go | 1 - .../e2e/vendor/golang.org/x/sys/unix/race.go | 1 - .../e2e/vendor/golang.org/x/sys/unix/race0.go | 1 - .../x/sys/unix/readdirent_getdents.go | 1 - .../x/sys/unix/readdirent_getdirentries.go | 1 - .../golang.org/x/sys/unix/sockcmsg_unix.go | 1 - .../x/sys/unix/sockcmsg_unix_other.go | 1 - .../vendor/golang.org/x/sys/unix/syscall.go | 1 - .../golang.org/x/sys/unix/syscall_aix.go | 4 +- .../golang.org/x/sys/unix/syscall_aix_ppc.go | 1 - .../x/sys/unix/syscall_aix_ppc64.go | 1 - .../golang.org/x/sys/unix/syscall_bsd.go | 3 +- .../x/sys/unix/syscall_darwin_amd64.go | 1 - .../x/sys/unix/syscall_darwin_arm64.go | 1 - .../x/sys/unix/syscall_darwin_libSystem.go | 1 - .../x/sys/unix/syscall_dragonfly_amd64.go | 1 - .../x/sys/unix/syscall_freebsd_386.go | 1 - .../x/sys/unix/syscall_freebsd_amd64.go | 1 - .../x/sys/unix/syscall_freebsd_arm.go | 1 - .../x/sys/unix/syscall_freebsd_arm64.go | 1 - .../x/sys/unix/syscall_freebsd_riscv64.go | 1 - .../golang.org/x/sys/unix/syscall_hurd.go | 1 - .../golang.org/x/sys/unix/syscall_hurd_386.go | 1 - .../golang.org/x/sys/unix/syscall_illumos.go | 1 - .../golang.org/x/sys/unix/syscall_linux.go | 33 +- .../x/sys/unix/syscall_linux_386.go | 1 - .../x/sys/unix/syscall_linux_alarm.go | 2 - .../x/sys/unix/syscall_linux_amd64.go | 1 - .../x/sys/unix/syscall_linux_amd64_gc.go | 1 - .../x/sys/unix/syscall_linux_arm.go | 1 - .../x/sys/unix/syscall_linux_arm64.go | 1 - .../golang.org/x/sys/unix/syscall_linux_gc.go | 1 - .../x/sys/unix/syscall_linux_gc_386.go | 1 - .../x/sys/unix/syscall_linux_gc_arm.go | 1 - .../x/sys/unix/syscall_linux_gccgo_386.go | 1 - .../x/sys/unix/syscall_linux_gccgo_arm.go | 1 - .../x/sys/unix/syscall_linux_loong64.go | 1 - .../x/sys/unix/syscall_linux_mips64x.go | 2 - .../x/sys/unix/syscall_linux_mipsx.go | 2 - .../x/sys/unix/syscall_linux_ppc.go | 1 - .../x/sys/unix/syscall_linux_ppc64x.go | 2 - .../x/sys/unix/syscall_linux_riscv64.go | 1 - .../x/sys/unix/syscall_linux_s390x.go | 1 - .../x/sys/unix/syscall_linux_sparc64.go | 1 - .../x/sys/unix/syscall_netbsd_386.go | 1 - .../x/sys/unix/syscall_netbsd_amd64.go | 1 - .../x/sys/unix/syscall_netbsd_arm.go | 1 - .../x/sys/unix/syscall_netbsd_arm64.go | 1 - .../golang.org/x/sys/unix/syscall_openbsd.go | 28 +- .../x/sys/unix/syscall_openbsd_386.go | 1 - .../x/sys/unix/syscall_openbsd_amd64.go | 1 - .../x/sys/unix/syscall_openbsd_arm.go | 1 - .../x/sys/unix/syscall_openbsd_arm64.go | 1 - .../x/sys/unix/syscall_openbsd_libc.go | 1 - .../x/sys/unix/syscall_openbsd_ppc64.go | 1 - .../x/sys/unix/syscall_openbsd_riscv64.go | 1 - .../golang.org/x/sys/unix/syscall_solaris.go | 5 +- .../x/sys/unix/syscall_solaris_amd64.go | 1 - .../golang.org/x/sys/unix/syscall_unix.go | 1 - .../golang.org/x/sys/unix/syscall_unix_gc.go | 2 - .../x/sys/unix/syscall_unix_gc_ppc64x.go | 3 - .../x/sys/unix/syscall_zos_s390x.go | 3 +- .../golang.org/x/sys/unix/sysvshm_linux.go | 1 - .../golang.org/x/sys/unix/sysvshm_unix.go | 1 - .../x/sys/unix/sysvshm_unix_other.go | 1 - .../golang.org/x/sys/unix/timestruct.go | 1 - .../golang.org/x/sys/unix/unveil_openbsd.go | 41 +- .../vendor/golang.org/x/sys/unix/xattr_bsd.go | 1 - .../golang.org/x/sys/unix/zerrors_aix_ppc.go | 1 - .../x/sys/unix/zerrors_aix_ppc64.go | 1 - .../x/sys/unix/zerrors_darwin_amd64.go | 1 - .../x/sys/unix/zerrors_darwin_arm64.go | 1 - .../x/sys/unix/zerrors_dragonfly_amd64.go | 1 - .../x/sys/unix/zerrors_freebsd_386.go | 1 - .../x/sys/unix/zerrors_freebsd_amd64.go | 1 - .../x/sys/unix/zerrors_freebsd_arm.go | 1 - .../x/sys/unix/zerrors_freebsd_arm64.go | 1 - .../x/sys/unix/zerrors_freebsd_riscv64.go | 1 - .../golang.org/x/sys/unix/zerrors_linux.go | 104 +- .../x/sys/unix/zerrors_linux_386.go | 4 +- .../x/sys/unix/zerrors_linux_amd64.go | 4 +- .../x/sys/unix/zerrors_linux_arm.go | 4 +- .../x/sys/unix/zerrors_linux_arm64.go | 4 +- .../x/sys/unix/zerrors_linux_loong64.go | 5 +- .../x/sys/unix/zerrors_linux_mips.go | 4 +- .../x/sys/unix/zerrors_linux_mips64.go | 4 +- .../x/sys/unix/zerrors_linux_mips64le.go | 4 +- .../x/sys/unix/zerrors_linux_mipsle.go | 4 +- .../x/sys/unix/zerrors_linux_ppc.go | 4 +- .../x/sys/unix/zerrors_linux_ppc64.go | 4 +- .../x/sys/unix/zerrors_linux_ppc64le.go | 4 +- .../x/sys/unix/zerrors_linux_riscv64.go | 7 +- .../x/sys/unix/zerrors_linux_s390x.go | 4 +- .../x/sys/unix/zerrors_linux_sparc64.go | 4 +- .../x/sys/unix/zerrors_netbsd_386.go | 1 - .../x/sys/unix/zerrors_netbsd_amd64.go | 1 - .../x/sys/unix/zerrors_netbsd_arm.go | 1 - .../x/sys/unix/zerrors_netbsd_arm64.go | 1 - .../x/sys/unix/zerrors_openbsd_386.go | 1 - .../x/sys/unix/zerrors_openbsd_amd64.go | 1 - .../x/sys/unix/zerrors_openbsd_arm.go | 1 - .../x/sys/unix/zerrors_openbsd_arm64.go | 1 - .../x/sys/unix/zerrors_openbsd_mips64.go | 1 - .../x/sys/unix/zerrors_openbsd_ppc64.go | 1 - .../x/sys/unix/zerrors_openbsd_riscv64.go | 1 - .../x/sys/unix/zerrors_solaris_amd64.go | 1 - .../x/sys/unix/zerrors_zos_s390x.go | 1 - .../x/sys/unix/zptrace_armnn_linux.go | 2 - .../x/sys/unix/zptrace_mipsnn_linux.go | 2 - .../x/sys/unix/zptrace_mipsnnle_linux.go | 2 - .../x/sys/unix/zptrace_x86_linux.go | 2 - .../golang.org/x/sys/unix/zsyscall_aix_ppc.go | 1 - .../x/sys/unix/zsyscall_aix_ppc64.go | 1 - .../x/sys/unix/zsyscall_aix_ppc64_gc.go | 1 - .../x/sys/unix/zsyscall_aix_ppc64_gccgo.go | 1 - .../x/sys/unix/zsyscall_darwin_amd64.go | 1 - .../x/sys/unix/zsyscall_darwin_arm64.go | 1 - .../x/sys/unix/zsyscall_dragonfly_amd64.go | 1 - .../x/sys/unix/zsyscall_freebsd_386.go | 1 - .../x/sys/unix/zsyscall_freebsd_amd64.go | 1 - .../x/sys/unix/zsyscall_freebsd_arm.go | 1 - .../x/sys/unix/zsyscall_freebsd_arm64.go | 1 - .../x/sys/unix/zsyscall_freebsd_riscv64.go | 1 - .../x/sys/unix/zsyscall_illumos_amd64.go | 1 - .../golang.org/x/sys/unix/zsyscall_linux.go | 26 +- .../x/sys/unix/zsyscall_linux_386.go | 1 - .../x/sys/unix/zsyscall_linux_amd64.go | 1 - .../x/sys/unix/zsyscall_linux_arm.go | 1 - .../x/sys/unix/zsyscall_linux_arm64.go | 1 - .../x/sys/unix/zsyscall_linux_loong64.go | 1 - .../x/sys/unix/zsyscall_linux_mips.go | 1 - .../x/sys/unix/zsyscall_linux_mips64.go | 1 - .../x/sys/unix/zsyscall_linux_mips64le.go | 1 - .../x/sys/unix/zsyscall_linux_mipsle.go | 1 - .../x/sys/unix/zsyscall_linux_ppc.go | 1 - .../x/sys/unix/zsyscall_linux_ppc64.go | 1 - .../x/sys/unix/zsyscall_linux_ppc64le.go | 1 - .../x/sys/unix/zsyscall_linux_riscv64.go | 1 - .../x/sys/unix/zsyscall_linux_s390x.go | 1 - .../x/sys/unix/zsyscall_linux_sparc64.go | 1 - .../x/sys/unix/zsyscall_netbsd_386.go | 1 - .../x/sys/unix/zsyscall_netbsd_amd64.go | 1 - .../x/sys/unix/zsyscall_netbsd_arm.go | 1 - .../x/sys/unix/zsyscall_netbsd_arm64.go | 1 - .../x/sys/unix/zsyscall_openbsd_386.go | 70 +- .../x/sys/unix/zsyscall_openbsd_386.s | 20 + .../x/sys/unix/zsyscall_openbsd_amd64.go | 70 +- .../x/sys/unix/zsyscall_openbsd_amd64.s | 20 + .../x/sys/unix/zsyscall_openbsd_arm.go | 70 +- .../x/sys/unix/zsyscall_openbsd_arm.s | 20 + .../x/sys/unix/zsyscall_openbsd_arm64.go | 70 +- .../x/sys/unix/zsyscall_openbsd_arm64.s | 20 + .../x/sys/unix/zsyscall_openbsd_mips64.go | 70 +- .../x/sys/unix/zsyscall_openbsd_mips64.s | 20 + .../x/sys/unix/zsyscall_openbsd_ppc64.go | 70 +- .../x/sys/unix/zsyscall_openbsd_ppc64.s | 24 + .../x/sys/unix/zsyscall_openbsd_riscv64.go | 70 +- .../x/sys/unix/zsyscall_openbsd_riscv64.s | 20 + .../x/sys/unix/zsyscall_solaris_amd64.go | 1 - .../x/sys/unix/zsyscall_zos_s390x.go | 1 - .../x/sys/unix/zsysctl_openbsd_386.go | 1 - .../x/sys/unix/zsysctl_openbsd_amd64.go | 1 - .../x/sys/unix/zsysctl_openbsd_arm.go | 1 - .../x/sys/unix/zsysctl_openbsd_arm64.go | 1 - .../x/sys/unix/zsysctl_openbsd_mips64.go | 1 - .../x/sys/unix/zsysctl_openbsd_ppc64.go | 1 - .../x/sys/unix/zsysctl_openbsd_riscv64.go | 1 - .../x/sys/unix/zsysnum_darwin_amd64.go | 1 - .../x/sys/unix/zsysnum_darwin_arm64.go | 1 - .../x/sys/unix/zsysnum_dragonfly_amd64.go | 1 - .../x/sys/unix/zsysnum_freebsd_386.go | 1 - .../x/sys/unix/zsysnum_freebsd_amd64.go | 1 - .../x/sys/unix/zsysnum_freebsd_arm.go | 1 - .../x/sys/unix/zsysnum_freebsd_arm64.go | 1 - .../x/sys/unix/zsysnum_freebsd_riscv64.go | 1 - .../x/sys/unix/zsysnum_linux_386.go | 6 +- .../x/sys/unix/zsysnum_linux_amd64.go | 6 +- .../x/sys/unix/zsysnum_linux_arm.go | 6 +- .../x/sys/unix/zsysnum_linux_arm64.go | 6 +- .../x/sys/unix/zsysnum_linux_loong64.go | 6 +- .../x/sys/unix/zsysnum_linux_mips.go | 6 +- .../x/sys/unix/zsysnum_linux_mips64.go | 6 +- .../x/sys/unix/zsysnum_linux_mips64le.go | 6 +- .../x/sys/unix/zsysnum_linux_mipsle.go | 6 +- .../x/sys/unix/zsysnum_linux_ppc.go | 6 +- .../x/sys/unix/zsysnum_linux_ppc64.go | 6 +- .../x/sys/unix/zsysnum_linux_ppc64le.go | 6 +- .../x/sys/unix/zsysnum_linux_riscv64.go | 6 +- .../x/sys/unix/zsysnum_linux_s390x.go | 6 +- .../x/sys/unix/zsysnum_linux_sparc64.go | 6 +- .../x/sys/unix/zsysnum_netbsd_386.go | 1 - .../x/sys/unix/zsysnum_netbsd_amd64.go | 1 - .../x/sys/unix/zsysnum_netbsd_arm.go | 1 - .../x/sys/unix/zsysnum_netbsd_arm64.go | 1 - .../x/sys/unix/zsysnum_openbsd_386.go | 1 - .../x/sys/unix/zsysnum_openbsd_amd64.go | 1 - .../x/sys/unix/zsysnum_openbsd_arm.go | 1 - .../x/sys/unix/zsysnum_openbsd_arm64.go | 1 - .../x/sys/unix/zsysnum_openbsd_mips64.go | 1 - .../x/sys/unix/zsysnum_openbsd_ppc64.go | 1 - .../x/sys/unix/zsysnum_openbsd_riscv64.go | 1 - .../x/sys/unix/zsysnum_zos_s390x.go | 1 - .../golang.org/x/sys/unix/ztypes_aix_ppc.go | 1 - .../golang.org/x/sys/unix/ztypes_aix_ppc64.go | 1 - .../x/sys/unix/ztypes_darwin_amd64.go | 1 - .../x/sys/unix/ztypes_darwin_arm64.go | 1 - .../x/sys/unix/ztypes_dragonfly_amd64.go | 1 - .../x/sys/unix/ztypes_freebsd_386.go | 1 - .../x/sys/unix/ztypes_freebsd_amd64.go | 1 - .../x/sys/unix/ztypes_freebsd_arm.go | 1 - .../x/sys/unix/ztypes_freebsd_arm64.go | 1 - .../x/sys/unix/ztypes_freebsd_riscv64.go | 1 - .../golang.org/x/sys/unix/ztypes_linux.go | 170 +- .../golang.org/x/sys/unix/ztypes_linux_386.go | 1 - .../x/sys/unix/ztypes_linux_amd64.go | 1 - .../golang.org/x/sys/unix/ztypes_linux_arm.go | 1 - .../x/sys/unix/ztypes_linux_arm64.go | 1 - .../x/sys/unix/ztypes_linux_loong64.go | 1 - .../x/sys/unix/ztypes_linux_mips.go | 1 - .../x/sys/unix/ztypes_linux_mips64.go | 1 - .../x/sys/unix/ztypes_linux_mips64le.go | 1 - .../x/sys/unix/ztypes_linux_mipsle.go | 1 - .../golang.org/x/sys/unix/ztypes_linux_ppc.go | 1 - .../x/sys/unix/ztypes_linux_ppc64.go | 1 - .../x/sys/unix/ztypes_linux_ppc64le.go | 1 - .../x/sys/unix/ztypes_linux_riscv64.go | 1 - .../x/sys/unix/ztypes_linux_s390x.go | 1 - .../x/sys/unix/ztypes_linux_sparc64.go | 1 - .../x/sys/unix/ztypes_netbsd_386.go | 1 - .../x/sys/unix/ztypes_netbsd_amd64.go | 1 - .../x/sys/unix/ztypes_netbsd_arm.go | 1 - .../x/sys/unix/ztypes_netbsd_arm64.go | 1 - .../x/sys/unix/ztypes_openbsd_386.go | 1 - .../x/sys/unix/ztypes_openbsd_amd64.go | 1 - .../x/sys/unix/ztypes_openbsd_arm.go | 1 - .../x/sys/unix/ztypes_openbsd_arm64.go | 1 - .../x/sys/unix/ztypes_openbsd_mips64.go | 1 - .../x/sys/unix/ztypes_openbsd_ppc64.go | 1 - .../x/sys/unix/ztypes_openbsd_riscv64.go | 1 - .../x/sys/unix/ztypes_solaris_amd64.go | 1 - .../golang.org/x/sys/unix/ztypes_zos_s390x.go | 1 - .../golang.org/x/sys/windows/aliases.go | 1 - .../vendor/golang.org/x/sys/windows/empty.s | 1 - .../golang.org/x/sys/windows/env_windows.go | 17 +- .../golang.org/x/sys/windows/eventlog.go | 1 - .../golang.org/x/sys/windows/mksyscall.go | 1 - .../vendor/golang.org/x/sys/windows/race.go | 1 - .../vendor/golang.org/x/sys/windows/race0.go | 1 - .../golang.org/x/sys/windows/registry/key.go | 1 - .../x/sys/windows/registry/mksyscall.go | 1 - .../x/sys/windows/registry/syscall.go | 1 - .../x/sys/windows/registry/value.go | 1 - .../golang.org/x/sys/windows/service.go | 1 - .../vendor/golang.org/x/sys/windows/str.go | 1 - .../golang.org/x/sys/windows/syscall.go | 1 - .../x/sys/windows/syscall_windows.go | 10 +- .../golang.org/x/sys/windows/types_windows.go | 28 +- .../x/sys/windows/zsyscall_windows.go | 37 + .../e2e/vendor/golang.org/x/term/term_unix.go | 1 - .../vendor/golang.org/x/term/term_unix_bsd.go | 1 - .../golang.org/x/term/term_unix_other.go | 1 - .../golang.org/x/term/term_unsupported.go | 1 - .../golang.org/x/text/message/catalog/go19.go | 1 - .../x/text/message/catalog/gopre19.go | 1 - .../x/text/secure/bidirule/bidirule10.0.0.go | 1 - .../x/text/secure/bidirule/bidirule9.0.0.go | 1 - .../x/text/unicode/bidi/tables10.0.0.go | 1 - .../x/text/unicode/bidi/tables11.0.0.go | 1 - .../x/text/unicode/bidi/tables12.0.0.go | 1 - .../x/text/unicode/bidi/tables13.0.0.go | 1 - .../x/text/unicode/bidi/tables15.0.0.go | 1 - .../x/text/unicode/bidi/tables9.0.0.go | 1 - .../x/text/unicode/norm/tables10.0.0.go | 1 - .../x/text/unicode/norm/tables11.0.0.go | 1 - .../x/text/unicode/norm/tables12.0.0.go | 1 - .../x/text/unicode/norm/tables13.0.0.go | 1 - .../x/text/unicode/norm/tables15.0.0.go | 1 - .../x/text/unicode/norm/tables9.0.0.go | 1 - .../golang.org/x/text/width/tables10.0.0.go | 1 - .../golang.org/x/text/width/tables11.0.0.go | 1 - .../golang.org/x/text/width/tables12.0.0.go | 1 - .../golang.org/x/text/width/tables13.0.0.go | 1 - .../golang.org/x/text/width/tables15.0.0.go | 1 - .../golang.org/x/text/width/tables9.0.0.go | 1 - .../pkg/utils/test/test_vpa.go | 25 +- .../e2e/vendor/modules.txt | 20 +- vertical-pod-autoscaler/go.mod | 8 +- vertical-pod-autoscaler/go.sum | 16 +- .../hack/vpa-process-yaml.sh | 2 +- .../pkg/admission-controller/Dockerfile | 2 +- .../pkg/admission-controller/README.md | 2 + .../pkg/admission-controller/config.go | 35 +- .../pkg/admission-controller/main.go | 24 +- .../resource/vpa/matcher.go | 17 +- .../resource/vpa/matcher_test.go | 48 +- .../pkg/recommender/Dockerfile | 2 +- .../pkg/recommender/input/cluster_feeder.go | 2 +- .../recommender/input/cluster_feeder_test.go | 3 +- .../pkg/recommender/main.go | 5 +- .../pkg/recommender/model/cluster.go | 5 +- .../pkg/recommender/model/cluster_test.go | 5 +- .../pkg/recommender/routines/recommender.go | 2 +- .../controller_cache_storage.go | 0 .../controller_cache_storage_test.go | 0 .../controller_fetcher/controller_fetcher.go | 0 .../controller_fetcher_fake.go | 16 +- .../controller_fetcher_test.go | 10 + .../pkg/updater/Dockerfile | 2 +- .../pkg/updater/logic/updater.go | 23 +- .../pkg/updater/logic/updater_test.go | 17 +- vertical-pod-autoscaler/pkg/updater/main.go | 19 +- .../pkg/utils/test/test_vpa.go | 25 +- vertical-pod-autoscaler/pkg/utils/vpa/api.go | 45 +- .../pkg/utils/vpa/api_test.go | 35 +- .../vendor/golang.org/x/net/context/go17.go | 1 - .../vendor/golang.org/x/net/context/go19.go | 1 - .../golang.org/x/net/context/pre_go17.go | 1 - .../golang.org/x/net/context/pre_go19.go | 1 - .../golang.org/x/net/http2/databuffer.go | 59 +- .../vendor/golang.org/x/net/http2/frame.go | 11 +- .../vendor/golang.org/x/net/http2/go111.go | 30 - .../vendor/golang.org/x/net/http2/go115.go | 27 - .../vendor/golang.org/x/net/http2/go118.go | 17 - .../golang.org/x/net/http2/not_go111.go | 21 - .../golang.org/x/net/http2/not_go115.go | 31 - .../golang.org/x/net/http2/not_go118.go | 17 - .../vendor/golang.org/x/net/http2/server.go | 24 +- .../golang.org/x/net/http2/transport.go | 33 +- .../vendor/golang.org/x/net/idna/go118.go | 1 - .../golang.org/x/net/idna/idna10.0.0.go | 1 - .../vendor/golang.org/x/net/idna/idna9.0.0.go | 1 - .../vendor/golang.org/x/net/idna/pre_go118.go | 1 - .../golang.org/x/net/idna/tables10.0.0.go | 1 - .../golang.org/x/net/idna/tables11.0.0.go | 1 - .../golang.org/x/net/idna/tables12.0.0.go | 1 - .../golang.org/x/net/idna/tables13.0.0.go | 1 - .../golang.org/x/net/idna/tables15.0.0.go | 1 - .../golang.org/x/net/idna/tables9.0.0.go | 1 - .../golang.org/x/net/idna/trie12.0.0.go | 1 - .../golang.org/x/net/idna/trie13.0.0.go | 1 - .../golang.org/x/sys/plan9/pwd_go15_plan9.go | 1 - .../golang.org/x/sys/plan9/pwd_plan9.go | 1 - .../vendor/golang.org/x/sys/plan9/race.go | 1 - .../vendor/golang.org/x/sys/plan9/race0.go | 1 - .../vendor/golang.org/x/sys/plan9/str.go | 1 - .../vendor/golang.org/x/sys/plan9/syscall.go | 1 - .../x/sys/plan9/zsyscall_plan9_386.go | 1 - .../x/sys/plan9/zsyscall_plan9_amd64.go | 1 - .../x/sys/plan9/zsyscall_plan9_arm.go | 1 - .../vendor/golang.org/x/sys/unix/aliases.go | 2 - .../golang.org/x/sys/unix/asm_aix_ppc64.s | 1 - .../golang.org/x/sys/unix/asm_bsd_386.s | 2 - .../golang.org/x/sys/unix/asm_bsd_amd64.s | 2 - .../golang.org/x/sys/unix/asm_bsd_arm.s | 2 - .../golang.org/x/sys/unix/asm_bsd_arm64.s | 2 - .../golang.org/x/sys/unix/asm_bsd_ppc64.s | 2 - .../golang.org/x/sys/unix/asm_bsd_riscv64.s | 2 - .../golang.org/x/sys/unix/asm_linux_386.s | 1 - .../golang.org/x/sys/unix/asm_linux_amd64.s | 1 - .../golang.org/x/sys/unix/asm_linux_arm.s | 1 - .../golang.org/x/sys/unix/asm_linux_arm64.s | 3 - .../golang.org/x/sys/unix/asm_linux_loong64.s | 3 - .../golang.org/x/sys/unix/asm_linux_mips64x.s | 3 - .../golang.org/x/sys/unix/asm_linux_mipsx.s | 3 - .../golang.org/x/sys/unix/asm_linux_ppc64x.s | 3 - .../golang.org/x/sys/unix/asm_linux_riscv64.s | 2 - .../golang.org/x/sys/unix/asm_linux_s390x.s | 3 - .../x/sys/unix/asm_openbsd_mips64.s | 1 - .../golang.org/x/sys/unix/asm_solaris_amd64.s | 1 - .../golang.org/x/sys/unix/asm_zos_s390x.s | 3 - .../golang.org/x/sys/unix/cap_freebsd.go | 1 - .../vendor/golang.org/x/sys/unix/constants.go | 1 - .../golang.org/x/sys/unix/dev_aix_ppc.go | 1 - .../golang.org/x/sys/unix/dev_aix_ppc64.go | 1 - .../vendor/golang.org/x/sys/unix/dev_zos.go | 1 - .../vendor/golang.org/x/sys/unix/dirent.go | 1 - .../golang.org/x/sys/unix/endian_big.go | 1 - .../golang.org/x/sys/unix/endian_little.go | 1 - .../vendor/golang.org/x/sys/unix/env_unix.go | 1 - .../vendor/golang.org/x/sys/unix/epoll_zos.go | 1 - .../vendor/golang.org/x/sys/unix/fcntl.go | 3 +- .../x/sys/unix/fcntl_linux_32bit.go | 1 - .../vendor/golang.org/x/sys/unix/fdset.go | 1 - .../golang.org/x/sys/unix/fstatfs_zos.go | 1 - .../vendor/golang.org/x/sys/unix/gccgo.go | 1 - .../vendor/golang.org/x/sys/unix/gccgo_c.c | 1 - .../x/sys/unix/gccgo_linux_amd64.go | 1 - .../golang.org/x/sys/unix/ifreq_linux.go | 1 - .../golang.org/x/sys/unix/ioctl_linux.go | 5 + .../golang.org/x/sys/unix/ioctl_signed.go | 1 - .../golang.org/x/sys/unix/ioctl_unsigned.go | 1 - .../vendor/golang.org/x/sys/unix/ioctl_zos.go | 1 - .../vendor/golang.org/x/sys/unix/mkerrors.sh | 43 +- .../golang.org/x/sys/unix/mmap_nomremap.go | 1 - .../vendor/golang.org/x/sys/unix/mremap.go | 1 - .../golang.org/x/sys/unix/pagesize_unix.go | 1 - .../golang.org/x/sys/unix/pledge_openbsd.go | 92 +- .../golang.org/x/sys/unix/ptrace_darwin.go | 1 - .../golang.org/x/sys/unix/ptrace_ios.go | 1 - .../vendor/golang.org/x/sys/unix/race.go | 1 - .../vendor/golang.org/x/sys/unix/race0.go | 1 - .../x/sys/unix/readdirent_getdents.go | 1 - .../x/sys/unix/readdirent_getdirentries.go | 1 - .../golang.org/x/sys/unix/sockcmsg_unix.go | 1 - .../x/sys/unix/sockcmsg_unix_other.go | 1 - .../vendor/golang.org/x/sys/unix/syscall.go | 1 - .../golang.org/x/sys/unix/syscall_aix.go | 4 +- .../golang.org/x/sys/unix/syscall_aix_ppc.go | 1 - .../x/sys/unix/syscall_aix_ppc64.go | 1 - .../golang.org/x/sys/unix/syscall_bsd.go | 3 +- .../x/sys/unix/syscall_darwin_amd64.go | 1 - .../x/sys/unix/syscall_darwin_arm64.go | 1 - .../x/sys/unix/syscall_darwin_libSystem.go | 1 - .../x/sys/unix/syscall_dragonfly_amd64.go | 1 - .../x/sys/unix/syscall_freebsd_386.go | 1 - .../x/sys/unix/syscall_freebsd_amd64.go | 1 - .../x/sys/unix/syscall_freebsd_arm.go | 1 - .../x/sys/unix/syscall_freebsd_arm64.go | 1 - .../x/sys/unix/syscall_freebsd_riscv64.go | 1 - .../golang.org/x/sys/unix/syscall_hurd.go | 1 - .../golang.org/x/sys/unix/syscall_hurd_386.go | 1 - .../golang.org/x/sys/unix/syscall_illumos.go | 1 - .../golang.org/x/sys/unix/syscall_linux.go | 33 +- .../x/sys/unix/syscall_linux_386.go | 1 - .../x/sys/unix/syscall_linux_alarm.go | 2 - .../x/sys/unix/syscall_linux_amd64.go | 1 - .../x/sys/unix/syscall_linux_amd64_gc.go | 1 - .../x/sys/unix/syscall_linux_arm.go | 1 - .../x/sys/unix/syscall_linux_arm64.go | 1 - .../golang.org/x/sys/unix/syscall_linux_gc.go | 1 - .../x/sys/unix/syscall_linux_gc_386.go | 1 - .../x/sys/unix/syscall_linux_gc_arm.go | 1 - .../x/sys/unix/syscall_linux_gccgo_386.go | 1 - .../x/sys/unix/syscall_linux_gccgo_arm.go | 1 - .../x/sys/unix/syscall_linux_loong64.go | 1 - .../x/sys/unix/syscall_linux_mips64x.go | 2 - .../x/sys/unix/syscall_linux_mipsx.go | 2 - .../x/sys/unix/syscall_linux_ppc.go | 1 - .../x/sys/unix/syscall_linux_ppc64x.go | 2 - .../x/sys/unix/syscall_linux_riscv64.go | 1 - .../x/sys/unix/syscall_linux_s390x.go | 1 - .../x/sys/unix/syscall_linux_sparc64.go | 1 - .../x/sys/unix/syscall_netbsd_386.go | 1 - .../x/sys/unix/syscall_netbsd_amd64.go | 1 - .../x/sys/unix/syscall_netbsd_arm.go | 1 - .../x/sys/unix/syscall_netbsd_arm64.go | 1 - .../golang.org/x/sys/unix/syscall_openbsd.go | 28 +- .../x/sys/unix/syscall_openbsd_386.go | 1 - .../x/sys/unix/syscall_openbsd_amd64.go | 1 - .../x/sys/unix/syscall_openbsd_arm.go | 1 - .../x/sys/unix/syscall_openbsd_arm64.go | 1 - .../x/sys/unix/syscall_openbsd_libc.go | 1 - .../x/sys/unix/syscall_openbsd_ppc64.go | 1 - .../x/sys/unix/syscall_openbsd_riscv64.go | 1 - .../golang.org/x/sys/unix/syscall_solaris.go | 5 +- .../x/sys/unix/syscall_solaris_amd64.go | 1 - .../golang.org/x/sys/unix/syscall_unix.go | 1 - .../golang.org/x/sys/unix/syscall_unix_gc.go | 2 - .../x/sys/unix/syscall_unix_gc_ppc64x.go | 3 - .../x/sys/unix/syscall_zos_s390x.go | 3 +- .../golang.org/x/sys/unix/sysvshm_linux.go | 1 - .../golang.org/x/sys/unix/sysvshm_unix.go | 1 - .../x/sys/unix/sysvshm_unix_other.go | 1 - .../golang.org/x/sys/unix/timestruct.go | 1 - .../golang.org/x/sys/unix/unveil_openbsd.go | 41 +- .../vendor/golang.org/x/sys/unix/xattr_bsd.go | 1 - .../golang.org/x/sys/unix/zerrors_aix_ppc.go | 1 - .../x/sys/unix/zerrors_aix_ppc64.go | 1 - .../x/sys/unix/zerrors_darwin_amd64.go | 1 - .../x/sys/unix/zerrors_darwin_arm64.go | 1 - .../x/sys/unix/zerrors_dragonfly_amd64.go | 1 - .../x/sys/unix/zerrors_freebsd_386.go | 1 - .../x/sys/unix/zerrors_freebsd_amd64.go | 1 - .../x/sys/unix/zerrors_freebsd_arm.go | 1 - .../x/sys/unix/zerrors_freebsd_arm64.go | 1 - .../x/sys/unix/zerrors_freebsd_riscv64.go | 1 - .../golang.org/x/sys/unix/zerrors_linux.go | 104 +- .../x/sys/unix/zerrors_linux_386.go | 4 +- .../x/sys/unix/zerrors_linux_amd64.go | 4 +- .../x/sys/unix/zerrors_linux_arm.go | 4 +- .../x/sys/unix/zerrors_linux_arm64.go | 4 +- .../x/sys/unix/zerrors_linux_loong64.go | 5 +- .../x/sys/unix/zerrors_linux_mips.go | 4 +- .../x/sys/unix/zerrors_linux_mips64.go | 4 +- .../x/sys/unix/zerrors_linux_mips64le.go | 4 +- .../x/sys/unix/zerrors_linux_mipsle.go | 4 +- .../x/sys/unix/zerrors_linux_ppc.go | 4 +- .../x/sys/unix/zerrors_linux_ppc64.go | 4 +- .../x/sys/unix/zerrors_linux_ppc64le.go | 4 +- .../x/sys/unix/zerrors_linux_riscv64.go | 7 +- .../x/sys/unix/zerrors_linux_s390x.go | 4 +- .../x/sys/unix/zerrors_linux_sparc64.go | 4 +- .../x/sys/unix/zerrors_netbsd_386.go | 1 - .../x/sys/unix/zerrors_netbsd_amd64.go | 1 - .../x/sys/unix/zerrors_netbsd_arm.go | 1 - .../x/sys/unix/zerrors_netbsd_arm64.go | 1 - .../x/sys/unix/zerrors_openbsd_386.go | 1 - .../x/sys/unix/zerrors_openbsd_amd64.go | 1 - .../x/sys/unix/zerrors_openbsd_arm.go | 1 - .../x/sys/unix/zerrors_openbsd_arm64.go | 1 - .../x/sys/unix/zerrors_openbsd_mips64.go | 1 - .../x/sys/unix/zerrors_openbsd_ppc64.go | 1 - .../x/sys/unix/zerrors_openbsd_riscv64.go | 1 - .../x/sys/unix/zerrors_solaris_amd64.go | 1 - .../x/sys/unix/zerrors_zos_s390x.go | 1 - .../x/sys/unix/zptrace_armnn_linux.go | 2 - .../x/sys/unix/zptrace_mipsnn_linux.go | 2 - .../x/sys/unix/zptrace_mipsnnle_linux.go | 2 - .../x/sys/unix/zptrace_x86_linux.go | 2 - .../golang.org/x/sys/unix/zsyscall_aix_ppc.go | 1 - .../x/sys/unix/zsyscall_aix_ppc64.go | 1 - .../x/sys/unix/zsyscall_aix_ppc64_gc.go | 1 - .../x/sys/unix/zsyscall_aix_ppc64_gccgo.go | 1 - .../x/sys/unix/zsyscall_darwin_amd64.go | 1 - .../x/sys/unix/zsyscall_darwin_arm64.go | 1 - .../x/sys/unix/zsyscall_dragonfly_amd64.go | 1 - .../x/sys/unix/zsyscall_freebsd_386.go | 1 - .../x/sys/unix/zsyscall_freebsd_amd64.go | 1 - .../x/sys/unix/zsyscall_freebsd_arm.go | 1 - .../x/sys/unix/zsyscall_freebsd_arm64.go | 1 - .../x/sys/unix/zsyscall_freebsd_riscv64.go | 1 - .../x/sys/unix/zsyscall_illumos_amd64.go | 1 - .../golang.org/x/sys/unix/zsyscall_linux.go | 26 +- .../x/sys/unix/zsyscall_linux_386.go | 1 - .../x/sys/unix/zsyscall_linux_amd64.go | 1 - .../x/sys/unix/zsyscall_linux_arm.go | 1 - .../x/sys/unix/zsyscall_linux_arm64.go | 1 - .../x/sys/unix/zsyscall_linux_loong64.go | 1 - .../x/sys/unix/zsyscall_linux_mips.go | 1 - .../x/sys/unix/zsyscall_linux_mips64.go | 1 - .../x/sys/unix/zsyscall_linux_mips64le.go | 1 - .../x/sys/unix/zsyscall_linux_mipsle.go | 1 - .../x/sys/unix/zsyscall_linux_ppc.go | 1 - .../x/sys/unix/zsyscall_linux_ppc64.go | 1 - .../x/sys/unix/zsyscall_linux_ppc64le.go | 1 - .../x/sys/unix/zsyscall_linux_riscv64.go | 1 - .../x/sys/unix/zsyscall_linux_s390x.go | 1 - .../x/sys/unix/zsyscall_linux_sparc64.go | 1 - .../x/sys/unix/zsyscall_netbsd_386.go | 1 - .../x/sys/unix/zsyscall_netbsd_amd64.go | 1 - .../x/sys/unix/zsyscall_netbsd_arm.go | 1 - .../x/sys/unix/zsyscall_netbsd_arm64.go | 1 - .../x/sys/unix/zsyscall_openbsd_386.go | 70 +- .../x/sys/unix/zsyscall_openbsd_386.s | 20 + .../x/sys/unix/zsyscall_openbsd_amd64.go | 70 +- .../x/sys/unix/zsyscall_openbsd_amd64.s | 20 + .../x/sys/unix/zsyscall_openbsd_arm.go | 70 +- .../x/sys/unix/zsyscall_openbsd_arm.s | 20 + .../x/sys/unix/zsyscall_openbsd_arm64.go | 70 +- .../x/sys/unix/zsyscall_openbsd_arm64.s | 20 + .../x/sys/unix/zsyscall_openbsd_mips64.go | 70 +- .../x/sys/unix/zsyscall_openbsd_mips64.s | 20 + .../x/sys/unix/zsyscall_openbsd_ppc64.go | 70 +- .../x/sys/unix/zsyscall_openbsd_ppc64.s | 24 + .../x/sys/unix/zsyscall_openbsd_riscv64.go | 70 +- .../x/sys/unix/zsyscall_openbsd_riscv64.s | 20 + .../x/sys/unix/zsyscall_solaris_amd64.go | 1 - .../x/sys/unix/zsyscall_zos_s390x.go | 1 - .../x/sys/unix/zsysctl_openbsd_386.go | 1 - .../x/sys/unix/zsysctl_openbsd_amd64.go | 1 - .../x/sys/unix/zsysctl_openbsd_arm.go | 1 - .../x/sys/unix/zsysctl_openbsd_arm64.go | 1 - .../x/sys/unix/zsysctl_openbsd_mips64.go | 1 - .../x/sys/unix/zsysctl_openbsd_ppc64.go | 1 - .../x/sys/unix/zsysctl_openbsd_riscv64.go | 1 - .../x/sys/unix/zsysnum_darwin_amd64.go | 1 - .../x/sys/unix/zsysnum_darwin_arm64.go | 1 - .../x/sys/unix/zsysnum_dragonfly_amd64.go | 1 - .../x/sys/unix/zsysnum_freebsd_386.go | 1 - .../x/sys/unix/zsysnum_freebsd_amd64.go | 1 - .../x/sys/unix/zsysnum_freebsd_arm.go | 1 - .../x/sys/unix/zsysnum_freebsd_arm64.go | 1 - .../x/sys/unix/zsysnum_freebsd_riscv64.go | 1 - .../x/sys/unix/zsysnum_linux_386.go | 6 +- .../x/sys/unix/zsysnum_linux_amd64.go | 6 +- .../x/sys/unix/zsysnum_linux_arm.go | 6 +- .../x/sys/unix/zsysnum_linux_arm64.go | 6 +- .../x/sys/unix/zsysnum_linux_loong64.go | 6 +- .../x/sys/unix/zsysnum_linux_mips.go | 6 +- .../x/sys/unix/zsysnum_linux_mips64.go | 6 +- .../x/sys/unix/zsysnum_linux_mips64le.go | 6 +- .../x/sys/unix/zsysnum_linux_mipsle.go | 6 +- .../x/sys/unix/zsysnum_linux_ppc.go | 6 +- .../x/sys/unix/zsysnum_linux_ppc64.go | 6 +- .../x/sys/unix/zsysnum_linux_ppc64le.go | 6 +- .../x/sys/unix/zsysnum_linux_riscv64.go | 6 +- .../x/sys/unix/zsysnum_linux_s390x.go | 6 +- .../x/sys/unix/zsysnum_linux_sparc64.go | 6 +- .../x/sys/unix/zsysnum_netbsd_386.go | 1 - .../x/sys/unix/zsysnum_netbsd_amd64.go | 1 - .../x/sys/unix/zsysnum_netbsd_arm.go | 1 - .../x/sys/unix/zsysnum_netbsd_arm64.go | 1 - .../x/sys/unix/zsysnum_openbsd_386.go | 1 - .../x/sys/unix/zsysnum_openbsd_amd64.go | 1 - .../x/sys/unix/zsysnum_openbsd_arm.go | 1 - .../x/sys/unix/zsysnum_openbsd_arm64.go | 1 - .../x/sys/unix/zsysnum_openbsd_mips64.go | 1 - .../x/sys/unix/zsysnum_openbsd_ppc64.go | 1 - .../x/sys/unix/zsysnum_openbsd_riscv64.go | 1 - .../x/sys/unix/zsysnum_zos_s390x.go | 1 - .../golang.org/x/sys/unix/ztypes_aix_ppc.go | 1 - .../golang.org/x/sys/unix/ztypes_aix_ppc64.go | 1 - .../x/sys/unix/ztypes_darwin_amd64.go | 1 - .../x/sys/unix/ztypes_darwin_arm64.go | 1 - .../x/sys/unix/ztypes_dragonfly_amd64.go | 1 - .../x/sys/unix/ztypes_freebsd_386.go | 1 - .../x/sys/unix/ztypes_freebsd_amd64.go | 1 - .../x/sys/unix/ztypes_freebsd_arm.go | 1 - .../x/sys/unix/ztypes_freebsd_arm64.go | 1 - .../x/sys/unix/ztypes_freebsd_riscv64.go | 1 - .../golang.org/x/sys/unix/ztypes_linux.go | 170 +- .../golang.org/x/sys/unix/ztypes_linux_386.go | 1 - .../x/sys/unix/ztypes_linux_amd64.go | 1 - .../golang.org/x/sys/unix/ztypes_linux_arm.go | 1 - .../x/sys/unix/ztypes_linux_arm64.go | 1 - .../x/sys/unix/ztypes_linux_loong64.go | 1 - .../x/sys/unix/ztypes_linux_mips.go | 1 - .../x/sys/unix/ztypes_linux_mips64.go | 1 - .../x/sys/unix/ztypes_linux_mips64le.go | 1 - .../x/sys/unix/ztypes_linux_mipsle.go | 1 - .../golang.org/x/sys/unix/ztypes_linux_ppc.go | 1 - .../x/sys/unix/ztypes_linux_ppc64.go | 1 - .../x/sys/unix/ztypes_linux_ppc64le.go | 1 - .../x/sys/unix/ztypes_linux_riscv64.go | 1 - .../x/sys/unix/ztypes_linux_s390x.go | 1 - .../x/sys/unix/ztypes_linux_sparc64.go | 1 - .../x/sys/unix/ztypes_netbsd_386.go | 1 - .../x/sys/unix/ztypes_netbsd_amd64.go | 1 - .../x/sys/unix/ztypes_netbsd_arm.go | 1 - .../x/sys/unix/ztypes_netbsd_arm64.go | 1 - .../x/sys/unix/ztypes_openbsd_386.go | 1 - .../x/sys/unix/ztypes_openbsd_amd64.go | 1 - .../x/sys/unix/ztypes_openbsd_arm.go | 1 - .../x/sys/unix/ztypes_openbsd_arm64.go | 1 - .../x/sys/unix/ztypes_openbsd_mips64.go | 1 - .../x/sys/unix/ztypes_openbsd_ppc64.go | 1 - .../x/sys/unix/ztypes_openbsd_riscv64.go | 1 - .../x/sys/unix/ztypes_solaris_amd64.go | 1 - .../golang.org/x/sys/unix/ztypes_zos_s390x.go | 1 - .../golang.org/x/sys/windows/aliases.go | 1 - .../vendor/golang.org/x/sys/windows/empty.s | 1 - .../golang.org/x/sys/windows/env_windows.go | 17 +- .../golang.org/x/sys/windows/eventlog.go | 1 - .../golang.org/x/sys/windows/mksyscall.go | 1 - .../vendor/golang.org/x/sys/windows/race.go | 1 - .../vendor/golang.org/x/sys/windows/race0.go | 1 - .../golang.org/x/sys/windows/service.go | 1 - .../vendor/golang.org/x/sys/windows/str.go | 1 - .../golang.org/x/sys/windows/syscall.go | 1 - .../x/sys/windows/syscall_windows.go | 10 +- .../golang.org/x/sys/windows/types_windows.go | 28 +- .../x/sys/windows/zsyscall_windows.go | 37 + .../vendor/golang.org/x/term/term_unix.go | 1 - .../vendor/golang.org/x/term/term_unix_bsd.go | 1 - .../golang.org/x/term/term_unix_other.go | 1 - .../golang.org/x/term/term_unsupported.go | 1 - .../x/text/secure/bidirule/bidirule10.0.0.go | 1 - .../x/text/secure/bidirule/bidirule9.0.0.go | 1 - .../x/text/unicode/bidi/tables10.0.0.go | 1 - .../x/text/unicode/bidi/tables11.0.0.go | 1 - .../x/text/unicode/bidi/tables12.0.0.go | 1 - .../x/text/unicode/bidi/tables13.0.0.go | 1 - .../x/text/unicode/bidi/tables15.0.0.go | 1 - .../x/text/unicode/bidi/tables9.0.0.go | 1 - .../x/text/unicode/norm/tables10.0.0.go | 1 - .../x/text/unicode/norm/tables11.0.0.go | 1 - .../x/text/unicode/norm/tables12.0.0.go | 1 - .../x/text/unicode/norm/tables13.0.0.go | 1 - .../x/text/unicode/norm/tables15.0.0.go | 1 - .../x/text/unicode/norm/tables9.0.0.go | 1 - vertical-pod-autoscaler/vendor/modules.txt | 16 +- 2649 files changed, 111817 insertions(+), 331937 deletions(-) create mode 100644 cluster-autoscaler/SYNC-CHANGES/SYNC_CHANGES-1.30.md create mode 100644 cluster-autoscaler/apis/config/crd/autoscaling.x-k8s.io_provisioningrequests.yaml create mode 100644 cluster-autoscaler/apis/go.mod create mode 100644 cluster-autoscaler/apis/go.sum rename cluster-autoscaler/{provisioningrequest/apis => apis/provisioningrequest}/autoscaling.x-k8s.io/v1beta1/doc.go (100%) rename cluster-autoscaler/{provisioningrequest/apis => apis/provisioningrequest}/autoscaling.x-k8s.io/v1beta1/register.go (100%) rename cluster-autoscaler/{provisioningrequest/apis => apis/provisioningrequest}/autoscaling.x-k8s.io/v1beta1/types.go (90%) rename cluster-autoscaler/{provisioningrequest/apis => apis/provisioningrequest}/autoscaling.x-k8s.io/v1beta1/zz_generated.deepcopy.go (100%) rename cluster-autoscaler/{ => apis}/provisioningrequest/client/applyconfiguration/autoscaling.x-k8s.io/v1beta1/podset.go (100%) rename cluster-autoscaler/{ => apis}/provisioningrequest/client/applyconfiguration/autoscaling.x-k8s.io/v1beta1/provisioningrequest.go (100%) rename cluster-autoscaler/{ => apis}/provisioningrequest/client/applyconfiguration/autoscaling.x-k8s.io/v1beta1/provisioningrequestspec.go (98%) rename cluster-autoscaler/{ => apis}/provisioningrequest/client/applyconfiguration/autoscaling.x-k8s.io/v1beta1/provisioningrequeststatus.go (96%) rename cluster-autoscaler/{ => apis}/provisioningrequest/client/applyconfiguration/autoscaling.x-k8s.io/v1beta1/reference.go (100%) rename cluster-autoscaler/{ => apis}/provisioningrequest/client/applyconfiguration/internal/internal.go (100%) rename cluster-autoscaler/{ => apis}/provisioningrequest/client/applyconfiguration/utils.go (90%) rename cluster-autoscaler/{ => apis}/provisioningrequest/client/clientset/versioned/clientset.go (96%) rename cluster-autoscaler/{ => apis}/provisioningrequest/client/clientset/versioned/fake/clientset_generated.go (86%) rename cluster-autoscaler/{ => apis}/provisioningrequest/client/clientset/versioned/fake/doc.go (100%) rename cluster-autoscaler/{ => apis}/provisioningrequest/client/clientset/versioned/fake/register.go (94%) rename cluster-autoscaler/{ => apis}/provisioningrequest/client/clientset/versioned/scheme/doc.go (100%) rename cluster-autoscaler/{ => apis}/provisioningrequest/client/clientset/versioned/scheme/register.go (94%) rename cluster-autoscaler/{ => apis}/provisioningrequest/client/clientset/versioned/typed/autoscaling.x-k8s.io/v1beta1/autoscaling.x-k8s.io_client.go (93%) rename cluster-autoscaler/{ => apis}/provisioningrequest/client/clientset/versioned/typed/autoscaling.x-k8s.io/v1beta1/doc.go (100%) rename cluster-autoscaler/{ => apis}/provisioningrequest/client/clientset/versioned/typed/autoscaling.x-k8s.io/v1beta1/fake/doc.go (100%) rename cluster-autoscaler/{ => apis}/provisioningrequest/client/clientset/versioned/typed/autoscaling.x-k8s.io/v1beta1/fake/fake_autoscaling.x-k8s.io_client.go (89%) rename cluster-autoscaler/{ => apis}/provisioningrequest/client/clientset/versioned/typed/autoscaling.x-k8s.io/v1beta1/fake/fake_provisioningrequest.go (97%) rename cluster-autoscaler/{ => apis}/provisioningrequest/client/clientset/versioned/typed/autoscaling.x-k8s.io/v1beta1/generated_expansion.go (100%) rename cluster-autoscaler/{ => apis}/provisioningrequest/client/clientset/versioned/typed/autoscaling.x-k8s.io/v1beta1/provisioningrequest.go (97%) rename cluster-autoscaler/{ => apis}/provisioningrequest/client/informers/externalversions/autoscaling.x-k8s.io/interface.go (83%) rename cluster-autoscaler/{ => apis}/provisioningrequest/client/informers/externalversions/autoscaling.x-k8s.io/v1beta1/interface.go (91%) rename cluster-autoscaler/{ => apis}/provisioningrequest/client/informers/externalversions/autoscaling.x-k8s.io/v1beta1/provisioningrequest.go (89%) rename cluster-autoscaler/{ => apis}/provisioningrequest/client/informers/externalversions/factory.go (92%) rename cluster-autoscaler/{ => apis}/provisioningrequest/client/informers/externalversions/generic.go (95%) rename cluster-autoscaler/{ => apis}/provisioningrequest/client/informers/externalversions/internalinterfaces/factory_interfaces.go (92%) rename cluster-autoscaler/{ => apis}/provisioningrequest/client/listers/autoscaling.x-k8s.io/v1beta1/expansion_generated.go (100%) rename cluster-autoscaler/{ => apis}/provisioningrequest/client/listers/autoscaling.x-k8s.io/v1beta1/provisioningrequest.go (97%) delete mode 100644 cluster-autoscaler/cloudprovider/azure/azure_vms_pool.go delete mode 100644 cluster-autoscaler/cloudprovider/azure/azure_vms_pool_test.go rename cluster-autoscaler/cloudprovider/{packet => equinixmetal}/OWNERS (82%) rename cluster-autoscaler/cloudprovider/{packet => equinixmetal}/README.md (74%) rename cluster-autoscaler/cloudprovider/{packet/packet_cloud_provider.go => equinixmetal/cloud_provider.go} (98%) rename cluster-autoscaler/cloudprovider/{packet => equinixmetal}/examples/cloud-init-template.sh (99%) rename cluster-autoscaler/cloudprovider/{packet => equinixmetal}/examples/cluster-autoscaler-deployment.yaml (95%) create mode 100644 cluster-autoscaler/cloudprovider/equinixmetal/examples/cluster-autoscaler-secret.yaml rename cluster-autoscaler/cloudprovider/{packet => equinixmetal}/examples/cluster-autoscaler-svcaccount.yaml (96%) rename cluster-autoscaler/cloudprovider/{packet/packet_manager.go => equinixmetal/manager.go} (99%) rename cluster-autoscaler/cloudprovider/{packet/packet_manager_rest.go => equinixmetal/manager_rest.go} (98%) rename cluster-autoscaler/cloudprovider/{packet/packet_manager_rest_test.go => equinixmetal/manager_rest_test.go} (99%) rename cluster-autoscaler/cloudprovider/{packet/packet_node_group.go => equinixmetal/node_group.go} (98%) rename cluster-autoscaler/cloudprovider/{packet/packet_node_group_test.go => equinixmetal/node_group_test.go} (99%) rename cluster-autoscaler/cloudprovider/{packet/packet_price_model.go => equinixmetal/price_model.go} (99%) rename cluster-autoscaler/cloudprovider/{packet/packet_price_model_test.go => equinixmetal/price_model_test.go} (98%) create mode 100644 cluster-autoscaler/cloudprovider/gce/kube_env.go create mode 100644 cluster-autoscaler/cloudprovider/gce/kube_env_test.go create mode 100644 cluster-autoscaler/cloudprovider/gce/localssdsize/local_ssd_size_provider.go delete mode 100644 cluster-autoscaler/clusterstate/api/utils.go delete mode 100644 cluster-autoscaler/clusterstate/api/utils_test.go create mode 100644 cluster-autoscaler/clusterstate/utils/status_test.yaml create mode 100755 cluster-autoscaler/hack/update-chart-version-readme.sh create mode 100755 cluster-autoscaler/hack/update-deps.sh delete mode 100755 cluster-autoscaler/hack/update-vendor.sh create mode 100644 cluster-autoscaler/loop/run.go create mode 100644 cluster-autoscaler/loop/trigger.go create mode 100644 cluster-autoscaler/observers/loopstart/loopstart.go delete mode 100644 cluster-autoscaler/processors/nodeinfos/node_info_processor.go create mode 100644 cluster-autoscaler/processors/provreq/provisioning_request_injector.go create mode 100644 cluster-autoscaler/processors/provreq/provisioning_request_injector_test.go create mode 100644 cluster-autoscaler/processors/provreq/provisioning_request_pods_filter.go create mode 100644 cluster-autoscaler/processors/provreq/provisioning_request_pods_filter_test.go create mode 100644 cluster-autoscaler/processors/provreq/provisioning_request_processor.go create mode 100644 cluster-autoscaler/processors/status/metrics_autoscaling_status_processor.go create mode 100644 cluster-autoscaler/provisioningrequest/checkcapacity/processor.go create mode 100644 cluster-autoscaler/provisioningrequest/checkcapacity/processor_test.go create mode 100644 cluster-autoscaler/provisioningrequest/checkcapacity/provisioningclass.go create mode 100644 cluster-autoscaler/provisioningrequest/conditions/condition_test.go create mode 100644 cluster-autoscaler/provisioningrequest/conditions/conditions.go create mode 100644 cluster-autoscaler/provisioningrequest/orchestrator/orchestrator.go create mode 100644 cluster-autoscaler/provisioningrequest/orchestrator/orchestrator_test.go create mode 100644 cluster-autoscaler/provisioningrequest/orchestrator/wrapper_orchestrator.go create mode 100644 cluster-autoscaler/provisioningrequest/orchestrator/wrapper_orchestrator_test.go create mode 100644 cluster-autoscaler/provisioningrequest/pods/pods.go create mode 100644 cluster-autoscaler/provisioningrequest/pods/pods_test.go rename cluster-autoscaler/provisioningrequest/{service/v1beta1client => provreqclient}/client.go (52%) create mode 100644 cluster-autoscaler/provisioningrequest/provreqclient/client_test.go rename cluster-autoscaler/provisioningrequest/{service/v1beta1client => provreqclient}/testutils.go (70%) create mode 100644 cluster-autoscaler/provisioningrequest/provreqwrapper/testutils.go delete mode 100644 cluster-autoscaler/provisioningrequest/service/service.go delete mode 100644 cluster-autoscaler/provisioningrequest/service/v1beta1client/client_test.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2019-12-01/compute/CHANGELOG.md delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2019-12-01/compute/_meta.json delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2019-12-01/compute/availabilitysets.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2019-12-01/compute/client.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2019-12-01/compute/containerservices.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2019-12-01/compute/dedicatedhostgroups.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2019-12-01/compute/dedicatedhosts.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2019-12-01/compute/diskencryptionsets.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2019-12-01/compute/disks.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2019-12-01/compute/enums.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2019-12-01/compute/galleries.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2019-12-01/compute/galleryapplications.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2019-12-01/compute/galleryapplicationversions.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2019-12-01/compute/galleryimages.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2019-12-01/compute/galleryimageversions.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2019-12-01/compute/images.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2019-12-01/compute/loganalytics.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2019-12-01/compute/models.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2019-12-01/compute/operations.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2019-12-01/compute/proximityplacementgroups.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2019-12-01/compute/resourceskus.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2019-12-01/compute/snapshots.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2019-12-01/compute/sshpublickeys.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2019-12-01/compute/usage.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2019-12-01/compute/version.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2019-12-01/compute/virtualmachineextensionimages.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2019-12-01/compute/virtualmachineextensions.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2019-12-01/compute/virtualmachineimages.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2019-12-01/compute/virtualmachineruncommands.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2019-12-01/compute/virtualmachines.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2019-12-01/compute/virtualmachinescalesetextensions.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2019-12-01/compute/virtualmachinescalesetrollingupgrades.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2019-12-01/compute/virtualmachinescalesets.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2019-12-01/compute/virtualmachinescalesetvmextensions.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2019-12-01/compute/virtualmachinescalesetvms.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2019-12-01/compute/virtualmachinesizes.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/containerregistry/mgmt/2019-05-01/containerregistry/CHANGELOG.md delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/containerregistry/mgmt/2019-05-01/containerregistry/_meta.json delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/containerregistry/mgmt/2019-05-01/containerregistry/client.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/containerregistry/mgmt/2019-05-01/containerregistry/enums.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/containerregistry/mgmt/2019-05-01/containerregistry/models.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/containerregistry/mgmt/2019-05-01/containerregistry/operations.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/containerregistry/mgmt/2019-05-01/containerregistry/registries.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/containerregistry/mgmt/2019-05-01/containerregistry/replications.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/containerregistry/mgmt/2019-05-01/containerregistry/runs.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/containerregistry/mgmt/2019-05-01/containerregistry/tasks.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/containerregistry/mgmt/2019-05-01/containerregistry/version.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/containerregistry/mgmt/2019-05-01/containerregistry/webhooks.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/containerservice/mgmt/2020-04-01/containerservice/CHANGELOG.md delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/containerservice/mgmt/2020-04-01/containerservice/_meta.json delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/containerservice/mgmt/2020-04-01/containerservice/agentpools.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/containerservice/mgmt/2020-04-01/containerservice/client.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/containerservice/mgmt/2020-04-01/containerservice/containerservices.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/containerservice/mgmt/2020-04-01/containerservice/enums.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/containerservice/mgmt/2020-04-01/containerservice/managedclusters.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/containerservice/mgmt/2020-04-01/containerservice/models.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/containerservice/mgmt/2020-04-01/containerservice/openshiftmanagedclusters.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/containerservice/mgmt/2020-04-01/containerservice/operations.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/containerservice/mgmt/2020-04-01/containerservice/version.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/CHANGELOG.md delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/_meta.json delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/applicationgateways.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/applicationsecuritygroups.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/availabledelegations.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/availableendpointservices.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/availableprivateendpointtypes.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/availableresourcegroupdelegations.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/azurefirewallfqdntags.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/azurefirewalls.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/bastionhosts.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/bgpservicecommunities.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/client.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/connectionmonitors.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/ddoscustompolicies.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/ddosprotectionplans.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/defaultsecurityrules.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/enums.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/expressroutecircuitauthorizations.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/expressroutecircuitconnections.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/expressroutecircuitpeerings.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/expressroutecircuits.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/expressrouteconnections.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/expressroutecrossconnectionpeerings.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/expressroutecrossconnections.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/expressroutegateways.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/expressroutelinks.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/expressrouteports.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/expressrouteportslocations.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/expressrouteserviceproviders.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/firewallpolicies.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/firewallpolicyrulegroups.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/hubvirtualnetworkconnections.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/inboundnatrules.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/interfaceipconfigurations.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/interfaceloadbalancers.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/interfacesgroup.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/interfacetapconfigurations.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/loadbalancerbackendaddresspools.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/loadbalancerfrontendipconfigurations.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/loadbalancerloadbalancingrules.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/loadbalancernetworkinterfaces.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/loadbalanceroutboundrules.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/loadbalancerprobes.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/loadbalancers.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/localnetworkgateways.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/models.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/natgateways.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/operations.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/p2svpngateways.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/p2svpnserverconfigurations.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/packetcaptures.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/peerexpressroutecircuitconnections.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/privateendpoints.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/privatelinkservices.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/profiles.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/publicipaddresses.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/publicipprefixes.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/resourcenavigationlinks.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/routefilterrules.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/routefilters.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/routes.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/routetables.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/securitygroups.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/securityrules.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/serviceassociationlinks.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/serviceendpointpolicies.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/serviceendpointpolicydefinitions.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/servicetags.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/subnets.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/usages.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/version.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/virtualhubs.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/virtualnetworkgatewayconnections.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/virtualnetworkgateways.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/virtualnetworkpeerings.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/virtualnetworks.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/virtualnetworktaps.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/virtualwans.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/vpnconnections.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/vpngateways.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/vpnlinkconnections.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/vpnsitelinkconnections.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/vpnsitelinks.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/vpnsites.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/vpnsitesconfiguration.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/watchers.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/network/mgmt/2019-06-01/network/webapplicationfirewallpolicies.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/storage/mgmt/2019-06-01/storage/CHANGELOG.md delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/storage/mgmt/2019-06-01/storage/_meta.json delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/storage/mgmt/2019-06-01/storage/accounts.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/storage/mgmt/2019-06-01/storage/blobcontainers.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/storage/mgmt/2019-06-01/storage/blobservices.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/storage/mgmt/2019-06-01/storage/client.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/storage/mgmt/2019-06-01/storage/encryptionscopes.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/storage/mgmt/2019-06-01/storage/enums.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/storage/mgmt/2019-06-01/storage/fileservices.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/storage/mgmt/2019-06-01/storage/fileshares.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/storage/mgmt/2019-06-01/storage/managementpolicies.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/storage/mgmt/2019-06-01/storage/models.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/storage/mgmt/2019-06-01/storage/objectreplicationpolicies.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/storage/mgmt/2019-06-01/storage/operations.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/storage/mgmt/2019-06-01/storage/privateendpointconnections.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/storage/mgmt/2019-06-01/storage/privatelinkresources.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/storage/mgmt/2019-06-01/storage/queue.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/storage/mgmt/2019-06-01/storage/queueservices.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/storage/mgmt/2019-06-01/storage/skus.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/storage/mgmt/2019-06-01/storage/table.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/storage/mgmt/2019-06-01/storage/tableservices.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/storage/mgmt/2019-06-01/storage/usages.go delete mode 100644 cluster-autoscaler/vendor/github.com/Azure/azure-sdk-for-go/services/storage/mgmt/2019-06-01/storage/version.go create mode 100644 cluster-autoscaler/vendor/github.com/aws/aws-sdk-go/aws/auth/bearer/token.go create mode 100644 cluster-autoscaler/vendor/github.com/aws/aws-sdk-go/aws/corehandlers/awsinternal.go create mode 100644 cluster-autoscaler/vendor/github.com/aws/aws-sdk-go/aws/credentials/ssocreds/sso_cached_token.go create mode 100644 cluster-autoscaler/vendor/github.com/aws/aws-sdk-go/aws/credentials/ssocreds/token_provider.go create mode 100644 cluster-autoscaler/vendor/github.com/aws/aws-sdk-go/service/ssooidc/api.go create mode 100644 cluster-autoscaler/vendor/github.com/aws/aws-sdk-go/service/ssooidc/doc.go create mode 100644 cluster-autoscaler/vendor/github.com/aws/aws-sdk-go/service/ssooidc/errors.go create mode 100644 cluster-autoscaler/vendor/github.com/aws/aws-sdk-go/service/ssooidc/service.go rename cluster-autoscaler/vendor/github.com/{vmware/govmomi/LICENSE.txt => gardener/machine-controller-manager-provider-aws/LICENSE} (99%) delete mode 100644 cluster-autoscaler/vendor/github.com/gardener/machine-controller-manager-provider-aws/NOTICE.md rename cluster-autoscaler/vendor/github.com/gardener/{machine-controller-manager-provider-aws/LICENSE.md => machine-controller-manager-provider-azure/LICENSE} (72%) rename cluster-autoscaler/vendor/github.com/{vmware/govmomi/vim25/progress/tee.go => go-logr/logr/context.go} (53%) create mode 100644 cluster-autoscaler/vendor/github.com/go-logr/logr/context_noslog.go create mode 100644 cluster-autoscaler/vendor/github.com/go-logr/logr/context_slog.go create mode 100644 cluster-autoscaler/vendor/github.com/go-logr/logr/funcr/slogsink.go rename cluster-autoscaler/vendor/github.com/go-logr/logr/{slogr => }/sloghandler.go (63%) create mode 100644 cluster-autoscaler/vendor/github.com/go-logr/logr/slogr.go rename cluster-autoscaler/vendor/github.com/go-logr/logr/{slogr => }/slogsink.go (82%) create mode 100644 cluster-autoscaler/vendor/github.com/go-logr/zapr/.golangci.yaml create mode 100644 cluster-autoscaler/vendor/github.com/go-logr/zapr/slogzapr.go rename cluster-autoscaler/vendor/github.com/{vmware/govmomi/list/path.go => go-logr/zapr/zapr_noslog.go} (56%) create mode 100644 cluster-autoscaler/vendor/github.com/go-logr/zapr/zapr_slog.go delete mode 100644 cluster-autoscaler/vendor/github.com/google/s2a-go/internal/v2/certverifier/testdata/client_intermediate_cert.der delete mode 100644 cluster-autoscaler/vendor/github.com/google/s2a-go/internal/v2/certverifier/testdata/client_leaf_cert.der delete mode 100644 cluster-autoscaler/vendor/github.com/google/s2a-go/internal/v2/certverifier/testdata/client_root_cert.der delete mode 100644 cluster-autoscaler/vendor/github.com/google/s2a-go/internal/v2/certverifier/testdata/server_intermediate_cert.der delete mode 100644 cluster-autoscaler/vendor/github.com/google/s2a-go/internal/v2/certverifier/testdata/server_leaf_cert.der delete mode 100644 cluster-autoscaler/vendor/github.com/google/s2a-go/internal/v2/certverifier/testdata/server_root_cert.der delete mode 100644 cluster-autoscaler/vendor/github.com/google/s2a-go/internal/v2/remotesigner/testdata/client_cert.der delete mode 100644 cluster-autoscaler/vendor/github.com/google/s2a-go/internal/v2/remotesigner/testdata/client_cert.pem delete mode 100644 cluster-autoscaler/vendor/github.com/google/s2a-go/internal/v2/remotesigner/testdata/client_key.pem delete mode 100644 cluster-autoscaler/vendor/github.com/google/s2a-go/internal/v2/remotesigner/testdata/server_cert.der delete mode 100644 cluster-autoscaler/vendor/github.com/google/s2a-go/internal/v2/remotesigner/testdata/server_cert.pem delete mode 100644 cluster-autoscaler/vendor/github.com/google/s2a-go/internal/v2/remotesigner/testdata/server_key.pem delete mode 100644 cluster-autoscaler/vendor/github.com/google/s2a-go/internal/v2/testdata/client_cert.pem delete mode 100644 cluster-autoscaler/vendor/github.com/google/s2a-go/internal/v2/testdata/client_key.pem delete mode 100644 cluster-autoscaler/vendor/github.com/google/s2a-go/internal/v2/testdata/server_cert.pem delete mode 100644 cluster-autoscaler/vendor/github.com/google/s2a-go/internal/v2/testdata/server_key.pem delete mode 100644 cluster-autoscaler/vendor/github.com/google/s2a-go/internal/v2/tlsconfigstore/testdata/client_cert.pem delete mode 100644 cluster-autoscaler/vendor/github.com/google/s2a-go/internal/v2/tlsconfigstore/testdata/client_key.pem delete mode 100644 cluster-autoscaler/vendor/github.com/google/s2a-go/internal/v2/tlsconfigstore/testdata/server_cert.pem delete mode 100644 cluster-autoscaler/vendor/github.com/google/s2a-go/internal/v2/tlsconfigstore/testdata/server_key.pem delete mode 100644 cluster-autoscaler/vendor/github.com/google/s2a-go/testdata/client_cert.pem delete mode 100644 cluster-autoscaler/vendor/github.com/google/s2a-go/testdata/client_key.pem delete mode 100644 cluster-autoscaler/vendor/github.com/google/s2a-go/testdata/mds_client_cert.pem delete mode 100644 cluster-autoscaler/vendor/github.com/google/s2a-go/testdata/mds_client_key.pem delete mode 100644 cluster-autoscaler/vendor/github.com/google/s2a-go/testdata/mds_root_cert.pem delete mode 100644 cluster-autoscaler/vendor/github.com/google/s2a-go/testdata/mds_server_cert.pem delete mode 100644 cluster-autoscaler/vendor/github.com/google/s2a-go/testdata/mds_server_key.pem delete mode 100644 cluster-autoscaler/vendor/github.com/google/s2a-go/testdata/self_signed_cert.pem delete mode 100644 cluster-autoscaler/vendor/github.com/google/s2a-go/testdata/self_signed_key.pem delete mode 100644 cluster-autoscaler/vendor/github.com/google/s2a-go/testdata/server_cert.pem delete mode 100644 cluster-autoscaler/vendor/github.com/google/s2a-go/testdata/server_key.pem create mode 100644 cluster-autoscaler/vendor/github.com/google/uuid/version6.go create mode 100644 cluster-autoscaler/vendor/github.com/google/uuid/version7.go create mode 100644 cluster-autoscaler/vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/gocovmerge.go create mode 100644 cluster-autoscaler/vendor/github.com/onsi/ginkgo/v2/internal/output_interceptor_wasm.go create mode 100644 cluster-autoscaler/vendor/github.com/onsi/ginkgo/v2/internal/progress_report_wasm.go create mode 100644 cluster-autoscaler/vendor/github.com/opencontainers/runc/libcontainer/userns/userns_maps.c create mode 100644 cluster-autoscaler/vendor/github.com/opencontainers/runc/libcontainer/userns/userns_maps_linux.go delete mode 100644 cluster-autoscaler/vendor/github.com/rubiojr/go-vhd/LICENSE delete mode 100644 cluster-autoscaler/vendor/github.com/rubiojr/go-vhd/vhd/util.go delete mode 100644 cluster-autoscaler/vendor/github.com/rubiojr/go-vhd/vhd/vhd.go delete mode 100644 cluster-autoscaler/vendor/github.com/satori/go.uuid/.travis.yml delete mode 100644 cluster-autoscaler/vendor/github.com/satori/go.uuid/LICENSE delete mode 100644 cluster-autoscaler/vendor/github.com/satori/go.uuid/README.md delete mode 100644 cluster-autoscaler/vendor/github.com/satori/go.uuid/codec.go delete mode 100644 cluster-autoscaler/vendor/github.com/satori/go.uuid/generator.go delete mode 100644 cluster-autoscaler/vendor/github.com/satori/go.uuid/sql.go delete mode 100644 cluster-autoscaler/vendor/github.com/satori/go.uuid/uuid.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/CONTRIBUTORS delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/find/doc.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/find/error.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/find/finder.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/find/recurser.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/history/collector.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/internal/helpers.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/internal/methods.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/internal/types.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/internal/version/version.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/list/lister.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/lookup/client.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/lookup/methods/methods.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/lookup/types/types.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/nfc/lease.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/nfc/lease_updater.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/object/authorization_manager.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/object/authorization_manager_internal.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/object/cluster_compute_resource.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/object/common.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/object/compute_resource.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/object/custom_fields_manager.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/object/customization_spec_manager.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/object/datacenter.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/object/datastore.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/object/datastore_file.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/object/datastore_file_manager.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/object/datastore_path.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/object/diagnostic_log.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/object/diagnostic_manager.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/object/distributed_virtual_portgroup.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/object/distributed_virtual_switch.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/object/extension_manager.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/object/file_manager.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/object/folder.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/object/host_account_manager.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/object/host_certificate_info.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/object/host_certificate_manager.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/object/host_config_manager.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/object/host_datastore_browser.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/object/host_datastore_system.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/object/host_date_time_system.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/object/host_firewall_system.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/object/host_network_system.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/object/host_service_system.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/object/host_storage_system.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/object/host_system.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/object/host_virtual_nic_manager.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/object/host_vsan_internal_system.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/object/host_vsan_system.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/object/namespace_manager.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/object/network.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/object/network_reference.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/object/opaque_network.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/object/option_manager.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/object/resource_pool.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/object/search_index.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/object/storage_resource_manager.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/object/task.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/object/tenant_manager.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/object/types.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/object/virtual_app.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/object/virtual_device_list.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/object/virtual_disk_manager.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/object/virtual_disk_manager_internal.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/object/virtual_machine.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/pbm/client.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/pbm/methods/methods.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/pbm/pbm_util.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/pbm/types/enum.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/pbm/types/if.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/pbm/types/types.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/property/collector.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/property/filter.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/property/wait.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/session/keep_alive.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/session/keepalive/handler.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/session/manager.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/sts/client.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/sts/internal/types.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/sts/signer.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/task/history_collector.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/task/manager.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/task/wait.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/vapi/internal/internal.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/vapi/rest/client.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/vapi/rest/resource.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/vapi/tags/categories.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/vapi/tags/errors.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/vapi/tags/tag_association.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/vapi/tags/tags.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/view/container_view.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/view/list_view.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/view/managed_object_view.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/view/manager.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/view/task_view.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/vim25/client.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/vim25/debug/debug.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/vim25/debug/file.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/vim25/debug/log.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/vim25/doc.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/vim25/methods/methods.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/vim25/methods/service_content.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/vim25/methods/unreleased.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/vim25/mo/ancestors.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/vim25/mo/extra.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/vim25/mo/mo.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/vim25/mo/reference.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/vim25/mo/retrieve.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/vim25/mo/type_info.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/vim25/progress/aggregator.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/vim25/progress/doc.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/vim25/progress/prefix.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/vim25/progress/reader.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/vim25/progress/report.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/vim25/progress/scale.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/vim25/progress/sinker.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/vim25/retry.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/vim25/soap/client.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/vim25/soap/debug.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/vim25/soap/error.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/vim25/soap/soap.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/vim25/types/enum.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/vim25/types/fault.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/vim25/types/helpers.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/vim25/types/if.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/vim25/types/registry.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/vim25/types/types.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/vim25/types/unreleased.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/vim25/xml/LICENSE delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/vim25/xml/extras.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/vim25/xml/marshal.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/vim25/xml/read.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/vim25/xml/typeinfo.go delete mode 100644 cluster-autoscaler/vendor/github.com/vmware/govmomi/vim25/xml/xml.go delete mode 100644 cluster-autoscaler/vendor/go.uber.org/atomic/.codecov.yml delete mode 100644 cluster-autoscaler/vendor/go.uber.org/atomic/.gitignore delete mode 100644 cluster-autoscaler/vendor/go.uber.org/atomic/CHANGELOG.md delete mode 100644 cluster-autoscaler/vendor/go.uber.org/atomic/LICENSE.txt delete mode 100644 cluster-autoscaler/vendor/go.uber.org/atomic/Makefile delete mode 100644 cluster-autoscaler/vendor/go.uber.org/atomic/README.md delete mode 100644 cluster-autoscaler/vendor/go.uber.org/atomic/bool.go delete mode 100644 cluster-autoscaler/vendor/go.uber.org/atomic/doc.go delete mode 100644 cluster-autoscaler/vendor/go.uber.org/atomic/duration.go delete mode 100644 cluster-autoscaler/vendor/go.uber.org/atomic/duration_ext.go delete mode 100644 cluster-autoscaler/vendor/go.uber.org/atomic/error.go delete mode 100644 cluster-autoscaler/vendor/go.uber.org/atomic/error_ext.go delete mode 100644 cluster-autoscaler/vendor/go.uber.org/atomic/float32.go delete mode 100644 cluster-autoscaler/vendor/go.uber.org/atomic/float32_ext.go delete mode 100644 cluster-autoscaler/vendor/go.uber.org/atomic/float64.go delete mode 100644 cluster-autoscaler/vendor/go.uber.org/atomic/float64_ext.go delete mode 100644 cluster-autoscaler/vendor/go.uber.org/atomic/gen.go delete mode 100644 cluster-autoscaler/vendor/go.uber.org/atomic/int32.go delete mode 100644 cluster-autoscaler/vendor/go.uber.org/atomic/int64.go delete mode 100644 cluster-autoscaler/vendor/go.uber.org/atomic/nocmp.go delete mode 100644 cluster-autoscaler/vendor/go.uber.org/atomic/pointer_go118.go delete mode 100644 cluster-autoscaler/vendor/go.uber.org/atomic/pointer_go119.go delete mode 100644 cluster-autoscaler/vendor/go.uber.org/atomic/string.go delete mode 100644 cluster-autoscaler/vendor/go.uber.org/atomic/string_ext.go delete mode 100644 cluster-autoscaler/vendor/go.uber.org/atomic/time_ext.go delete mode 100644 cluster-autoscaler/vendor/go.uber.org/atomic/uint32.go delete mode 100644 cluster-autoscaler/vendor/go.uber.org/atomic/uint64.go delete mode 100644 cluster-autoscaler/vendor/go.uber.org/atomic/uintptr.go delete mode 100644 cluster-autoscaler/vendor/go.uber.org/atomic/unsafe_pointer.go delete mode 100644 cluster-autoscaler/vendor/go.uber.org/atomic/value.go create mode 100644 cluster-autoscaler/vendor/go.uber.org/zap/.golangci.yml delete mode 100644 cluster-autoscaler/vendor/go.uber.org/zap/array_go118.go rename cluster-autoscaler/vendor/go.uber.org/{atomic/bool_ext.go => zap/internal/pool/pool.go} (56%) rename cluster-autoscaler/vendor/go.uber.org/zap/{stacktrace.go => internal/stacktrace/stack.go} (73%) rename cluster-autoscaler/vendor/go.uber.org/{atomic/time.go => zap/zapcore/lazy_with.go} (60%) delete mode 100644 cluster-autoscaler/vendor/golang.org/x/crypto/internal/poly1305/bits_compat.go delete mode 100644 cluster-autoscaler/vendor/golang.org/x/crypto/internal/poly1305/bits_go1.13.go create mode 100644 cluster-autoscaler/vendor/golang.org/x/net/http2/testsync.go create mode 100644 cluster-autoscaler/vendor/golang.org/x/tools/cover/profile.go rename cluster-autoscaler/vendor/golang.org/x/tools/internal/versions/{versions_go121.go => versions.go} (80%) delete mode 100644 cluster-autoscaler/vendor/golang.org/x/tools/internal/versions/versions_go122.go rename cluster-autoscaler/vendor/k8s.io/{kubernetes/pkg/volume/azure_file => api/apidiscovery/v2}/doc.go (77%) create mode 100644 cluster-autoscaler/vendor/k8s.io/api/apidiscovery/v2/generated.pb.go create mode 100644 cluster-autoscaler/vendor/k8s.io/api/apidiscovery/v2/generated.proto rename cluster-autoscaler/vendor/k8s.io/{apiserver/pkg/apis/config => api/apidiscovery/v2}/register.go (73%) create mode 100644 cluster-autoscaler/vendor/k8s.io/api/apidiscovery/v2/types.go create mode 100644 cluster-autoscaler/vendor/k8s.io/api/apidiscovery/v2/zz_generated.deepcopy.go create mode 100644 cluster-autoscaler/vendor/k8s.io/api/resource/v1alpha2/namedresources.go rename cluster-autoscaler/vendor/k8s.io/{legacy-cloud-providers/azure/auth => api/storagemigration/v1alpha1}/doc.go (67%) create mode 100644 cluster-autoscaler/vendor/k8s.io/api/storagemigration/v1alpha1/generated.pb.go create mode 100644 cluster-autoscaler/vendor/k8s.io/api/storagemigration/v1alpha1/generated.proto create mode 100644 cluster-autoscaler/vendor/k8s.io/api/storagemigration/v1alpha1/register.go create mode 100644 cluster-autoscaler/vendor/k8s.io/api/storagemigration/v1alpha1/types.go create mode 100644 cluster-autoscaler/vendor/k8s.io/api/storagemigration/v1alpha1/types_swagger_doc_generated.go create mode 100644 cluster-autoscaler/vendor/k8s.io/api/storagemigration/v1alpha1/zz_generated.deepcopy.go create mode 100644 cluster-autoscaler/vendor/k8s.io/api/storagemigration/v1alpha1/zz_generated.prerelease-lifecycle.go create mode 100644 cluster-autoscaler/vendor/k8s.io/apimachinery/pkg/api/validation/OWNERS rename cluster-autoscaler/vendor/k8s.io/{legacy-cloud-providers/vsphere/vclib/vmoptions.go => apimachinery/pkg/util/portforward/constants.go} (67%) delete mode 100644 cluster-autoscaler/vendor/k8s.io/apimachinery/pkg/util/sets/ordered.go create mode 100644 cluster-autoscaler/vendor/k8s.io/apimachinery/pkg/util/validation/OWNERS create mode 100644 cluster-autoscaler/vendor/k8s.io/apiserver/pkg/admission/plugin/policy/generic/accessor.go create mode 100644 cluster-autoscaler/vendor/k8s.io/apiserver/pkg/admission/plugin/policy/generic/interfaces.go create mode 100644 cluster-autoscaler/vendor/k8s.io/apiserver/pkg/admission/plugin/policy/generic/plugin.go create mode 100644 cluster-autoscaler/vendor/k8s.io/apiserver/pkg/admission/plugin/policy/generic/policy_dispatcher.go rename cluster-autoscaler/vendor/k8s.io/apiserver/pkg/admission/plugin/{validatingadmissionpolicy/matcher.go => policy/generic/policy_matcher.go} (55%) create mode 100644 cluster-autoscaler/vendor/k8s.io/apiserver/pkg/admission/plugin/policy/generic/policy_source.go create mode 100644 cluster-autoscaler/vendor/k8s.io/apiserver/pkg/admission/plugin/policy/generic/policy_test_context.go rename cluster-autoscaler/vendor/k8s.io/apiserver/pkg/admission/plugin/{validatingadmissionpolicy => policy}/internal/generic/controller.go (100%) rename cluster-autoscaler/vendor/k8s.io/apiserver/pkg/admission/plugin/{validatingadmissionpolicy => policy}/internal/generic/doc.go (100%) rename cluster-autoscaler/vendor/k8s.io/apiserver/pkg/admission/plugin/{validatingadmissionpolicy => policy}/internal/generic/informer.go (79%) rename cluster-autoscaler/vendor/k8s.io/apiserver/pkg/admission/plugin/{validatingadmissionpolicy => policy}/internal/generic/interface.go (100%) rename cluster-autoscaler/vendor/k8s.io/apiserver/pkg/admission/plugin/{validatingadmissionpolicy => policy}/internal/generic/lister.go (100%) rename cluster-autoscaler/vendor/k8s.io/apiserver/pkg/admission/plugin/{validatingadmissionpolicy => policy}/matching/matching.go (94%) create mode 100644 cluster-autoscaler/vendor/k8s.io/apiserver/pkg/admission/plugin/policy/validating/accessor.go rename cluster-autoscaler/vendor/k8s.io/apiserver/pkg/admission/plugin/{validatingadmissionpolicy => policy/validating}/caching_authorizer.go (99%) rename cluster-autoscaler/vendor/k8s.io/apiserver/pkg/admission/plugin/{validatingadmissionpolicy/controller.go => policy/validating/dispatcher.go} (51%) rename cluster-autoscaler/vendor/k8s.io/apiserver/pkg/admission/plugin/{validatingadmissionpolicy => policy/validating}/initializer.go (96%) rename cluster-autoscaler/vendor/k8s.io/apiserver/pkg/admission/plugin/{validatingadmissionpolicy => policy/validating}/interface.go (75%) rename cluster-autoscaler/vendor/k8s.io/apiserver/pkg/admission/plugin/{validatingadmissionpolicy => policy/validating}/message.go (96%) rename cluster-autoscaler/vendor/k8s.io/apiserver/pkg/admission/{cel => plugin/policy/validating/metrics}/metrics.go (100%) create mode 100644 cluster-autoscaler/vendor/k8s.io/apiserver/pkg/admission/plugin/policy/validating/plugin.go rename cluster-autoscaler/vendor/k8s.io/apiserver/pkg/admission/plugin/{validatingadmissionpolicy => policy/validating}/policy_decision.go (98%) rename cluster-autoscaler/vendor/k8s.io/apiserver/pkg/admission/plugin/{validatingadmissionpolicy => policy/validating}/typechecking.go (74%) rename cluster-autoscaler/vendor/k8s.io/apiserver/pkg/admission/plugin/{validatingadmissionpolicy => policy/validating}/validator.go (99%) delete mode 100644 cluster-autoscaler/vendor/k8s.io/apiserver/pkg/admission/plugin/validatingadmissionpolicy/OWNERS delete mode 100644 cluster-autoscaler/vendor/k8s.io/apiserver/pkg/admission/plugin/validatingadmissionpolicy/admission.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/apiserver/pkg/admission/plugin/validatingadmissionpolicy/controller_reconcile.go create mode 100644 cluster-autoscaler/vendor/k8s.io/apiserver/pkg/apis/apidiscovery/v2/conversion.go rename cluster-autoscaler/vendor/{github.com/vmware/govmomi/vim25/mo/registry.go => k8s.io/apiserver/pkg/apis/apidiscovery/v2/doc.go} (79%) create mode 100644 cluster-autoscaler/vendor/k8s.io/apiserver/pkg/apis/apidiscovery/v2/register.go rename cluster-autoscaler/vendor/k8s.io/apiserver/pkg/apis/{config/types.go => apiserver/types_encryption.go} (99%) rename cluster-autoscaler/vendor/k8s.io/apiserver/pkg/apis/{config => apiserver}/v1/defaults.go (100%) rename cluster-autoscaler/vendor/k8s.io/apiserver/pkg/apis/{config/v1/types.go => apiserver/v1/types_encryption.go} (100%) rename cluster-autoscaler/vendor/k8s.io/{kubernetes/pkg/util/iptables/iptables_unsupported.go => apiserver/pkg/apis/apiserver/v1beta1/defaults.go} (55%) rename cluster-autoscaler/vendor/k8s.io/apiserver/pkg/apis/{config/validation/validation.go => apiserver/validation/validation_encryption.go} (91%) delete mode 100644 cluster-autoscaler/vendor/k8s.io/apiserver/pkg/apis/config/v1/register.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/apiserver/pkg/apis/config/v1/zz_generated.conversion.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/apiserver/pkg/apis/config/v1/zz_generated.deepcopy.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/apiserver/pkg/apis/config/v1/zz_generated.defaults.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/apiserver/pkg/apis/config/zz_generated.deepcopy.go create mode 100644 cluster-autoscaler/vendor/k8s.io/apiserver/pkg/authorization/cel/metrics.go create mode 100644 cluster-autoscaler/vendor/k8s.io/apiserver/pkg/cel/cidr.go create mode 100644 cluster-autoscaler/vendor/k8s.io/apiserver/pkg/cel/ip.go create mode 100644 cluster-autoscaler/vendor/k8s.io/apiserver/pkg/cel/library/cidr.go create mode 100644 cluster-autoscaler/vendor/k8s.io/apiserver/pkg/cel/library/ip.go create mode 100644 cluster-autoscaler/vendor/k8s.io/apiserver/pkg/server/filters/routine.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/apiserver/plugin/pkg/authorizer/webhook/metrics.go create mode 100644 cluster-autoscaler/vendor/k8s.io/apiserver/plugin/pkg/authorizer/webhook/metrics/metrics.go rename cluster-autoscaler/vendor/k8s.io/{apiserver/pkg/apis/config/v1 => autoscaler/cluster-autoscaler/apis/provisioningrequest/autoscaling.x-k8s.io/v1beta1}/doc.go (75%) create mode 100644 cluster-autoscaler/vendor/k8s.io/autoscaler/cluster-autoscaler/apis/provisioningrequest/autoscaling.x-k8s.io/v1beta1/register.go create mode 100644 cluster-autoscaler/vendor/k8s.io/autoscaler/cluster-autoscaler/apis/provisioningrequest/autoscaling.x-k8s.io/v1beta1/types.go create mode 100644 cluster-autoscaler/vendor/k8s.io/autoscaler/cluster-autoscaler/apis/provisioningrequest/autoscaling.x-k8s.io/v1beta1/zz_generated.deepcopy.go create mode 100644 cluster-autoscaler/vendor/k8s.io/autoscaler/cluster-autoscaler/apis/provisioningrequest/client/applyconfiguration/autoscaling.x-k8s.io/v1beta1/podset.go create mode 100644 cluster-autoscaler/vendor/k8s.io/autoscaler/cluster-autoscaler/apis/provisioningrequest/client/applyconfiguration/autoscaling.x-k8s.io/v1beta1/provisioningrequest.go create mode 100644 cluster-autoscaler/vendor/k8s.io/autoscaler/cluster-autoscaler/apis/provisioningrequest/client/applyconfiguration/autoscaling.x-k8s.io/v1beta1/provisioningrequestspec.go create mode 100644 cluster-autoscaler/vendor/k8s.io/autoscaler/cluster-autoscaler/apis/provisioningrequest/client/applyconfiguration/autoscaling.x-k8s.io/v1beta1/provisioningrequeststatus.go create mode 100644 cluster-autoscaler/vendor/k8s.io/autoscaler/cluster-autoscaler/apis/provisioningrequest/client/applyconfiguration/autoscaling.x-k8s.io/v1beta1/reference.go create mode 100644 cluster-autoscaler/vendor/k8s.io/autoscaler/cluster-autoscaler/apis/provisioningrequest/client/clientset/versioned/clientset.go create mode 100644 cluster-autoscaler/vendor/k8s.io/autoscaler/cluster-autoscaler/apis/provisioningrequest/client/clientset/versioned/fake/clientset_generated.go create mode 100644 cluster-autoscaler/vendor/k8s.io/autoscaler/cluster-autoscaler/apis/provisioningrequest/client/clientset/versioned/fake/doc.go create mode 100644 cluster-autoscaler/vendor/k8s.io/autoscaler/cluster-autoscaler/apis/provisioningrequest/client/clientset/versioned/fake/register.go create mode 100644 cluster-autoscaler/vendor/k8s.io/autoscaler/cluster-autoscaler/apis/provisioningrequest/client/clientset/versioned/scheme/doc.go create mode 100644 cluster-autoscaler/vendor/k8s.io/autoscaler/cluster-autoscaler/apis/provisioningrequest/client/clientset/versioned/scheme/register.go create mode 100644 cluster-autoscaler/vendor/k8s.io/autoscaler/cluster-autoscaler/apis/provisioningrequest/client/clientset/versioned/typed/autoscaling.x-k8s.io/v1beta1/autoscaling.x-k8s.io_client.go create mode 100644 cluster-autoscaler/vendor/k8s.io/autoscaler/cluster-autoscaler/apis/provisioningrequest/client/clientset/versioned/typed/autoscaling.x-k8s.io/v1beta1/doc.go rename cluster-autoscaler/vendor/{github.com/vmware/govmomi/vim25/types/base.go => k8s.io/autoscaler/cluster-autoscaler/apis/provisioningrequest/client/clientset/versioned/typed/autoscaling.x-k8s.io/v1beta1/fake/doc.go} (78%) create mode 100644 cluster-autoscaler/vendor/k8s.io/autoscaler/cluster-autoscaler/apis/provisioningrequest/client/clientset/versioned/typed/autoscaling.x-k8s.io/v1beta1/fake/fake_autoscaling.x-k8s.io_client.go create mode 100644 cluster-autoscaler/vendor/k8s.io/autoscaler/cluster-autoscaler/apis/provisioningrequest/client/clientset/versioned/typed/autoscaling.x-k8s.io/v1beta1/fake/fake_provisioningrequest.go rename cluster-autoscaler/vendor/k8s.io/{gengo/examples/set-gen/sets/doc.go => autoscaler/cluster-autoscaler/apis/provisioningrequest/client/clientset/versioned/typed/autoscaling.x-k8s.io/v1beta1/generated_expansion.go} (83%) create mode 100644 cluster-autoscaler/vendor/k8s.io/autoscaler/cluster-autoscaler/apis/provisioningrequest/client/clientset/versioned/typed/autoscaling.x-k8s.io/v1beta1/provisioningrequest.go create mode 100644 cluster-autoscaler/vendor/k8s.io/autoscaler/cluster-autoscaler/apis/provisioningrequest/client/informers/externalversions/autoscaling.x-k8s.io/interface.go create mode 100644 cluster-autoscaler/vendor/k8s.io/autoscaler/cluster-autoscaler/apis/provisioningrequest/client/informers/externalversions/autoscaling.x-k8s.io/v1beta1/interface.go create mode 100644 cluster-autoscaler/vendor/k8s.io/autoscaler/cluster-autoscaler/apis/provisioningrequest/client/informers/externalversions/autoscaling.x-k8s.io/v1beta1/provisioningrequest.go create mode 100644 cluster-autoscaler/vendor/k8s.io/autoscaler/cluster-autoscaler/apis/provisioningrequest/client/informers/externalversions/factory.go create mode 100644 cluster-autoscaler/vendor/k8s.io/autoscaler/cluster-autoscaler/apis/provisioningrequest/client/informers/externalversions/generic.go create mode 100644 cluster-autoscaler/vendor/k8s.io/autoscaler/cluster-autoscaler/apis/provisioningrequest/client/informers/externalversions/internalinterfaces/factory_interfaces.go rename cluster-autoscaler/vendor/{github.com/vmware/govmomi/task/error.go => k8s.io/autoscaler/cluster-autoscaler/apis/provisioningrequest/client/listers/autoscaling.x-k8s.io/v1beta1/expansion_generated.go} (55%) create mode 100644 cluster-autoscaler/vendor/k8s.io/autoscaler/cluster-autoscaler/apis/provisioningrequest/client/listers/autoscaling.x-k8s.io/v1beta1/provisioningrequest.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/auditannotation.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/expressionwarning.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/matchresources.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/namedrulewithoperations.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/paramkind.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/paramref.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/typechecking.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/validatingadmissionpolicy.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/validatingadmissionpolicybinding.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/validatingadmissionpolicybindingspec.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/validatingadmissionpolicyspec.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/validatingadmissionpolicystatus.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/validation.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/admissionregistration/v1/variable.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/batch/v1/successpolicy.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/batch/v1/successpolicyrule.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/core/v1/apparmorprofile.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/core/v1/noderuntimehandler.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/core/v1/noderuntimehandlerfeatures.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/core/v1/volumemountstatus.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha2/allocationresultmodel.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha2/driverallocationresult.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha2/driverrequests.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha2/namedresourcesallocationresult.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha2/namedresourcesattribute.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha2/namedresourcesattributevalue.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha2/namedresourcesfilter.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha2/namedresourcesinstance.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha2/namedresourcesintslice.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha2/namedresourcesrequest.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha2/namedresourcesresources.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha2/namedresourcesstringslice.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha2/resourceclaimparameters.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha2/resourceclassparameters.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha2/resourcefilter.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha2/resourcefiltermodel.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha2/resourcemodel.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha2/resourcerequest.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha2/resourcerequestmodel.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha2/resourceslice.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha2/structuredresourcehandle.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/resource/v1alpha2/vendorparameters.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/storagemigration/v1alpha1/groupversionresource.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/storagemigration/v1alpha1/migrationcondition.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/storagemigration/v1alpha1/storageversionmigration.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/storagemigration/v1alpha1/storageversionmigrationspec.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/applyconfigurations/storagemigration/v1alpha1/storageversionmigrationstatus.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/features/envvar.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/features/features.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/features/known_features.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/informers/admissionregistration/v1/validatingadmissionpolicy.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/informers/admissionregistration/v1/validatingadmissionpolicybinding.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/informers/resource/v1alpha2/resourceclaimparameters.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/informers/resource/v1alpha2/resourceclassparameters.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/informers/resource/v1alpha2/resourceslice.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/informers/storagemigration/interface.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/informers/storagemigration/v1alpha1/interface.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/informers/storagemigration/v1alpha1/storageversionmigration.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1/fake/fake_validatingadmissionpolicy.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1/fake/fake_validatingadmissionpolicybinding.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1/validatingadmissionpolicy.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/kubernetes/typed/admissionregistration/v1/validatingadmissionpolicybinding.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/kubernetes/typed/resource/v1alpha2/fake/fake_resourceclaimparameters.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/kubernetes/typed/resource/v1alpha2/fake/fake_resourceclassparameters.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/kubernetes/typed/resource/v1alpha2/fake/fake_resourceslice.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/kubernetes/typed/resource/v1alpha2/resourceclaimparameters.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/kubernetes/typed/resource/v1alpha2/resourceclassparameters.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/kubernetes/typed/resource/v1alpha2/resourceslice.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/kubernetes/typed/storagemigration/v1alpha1/doc.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/kubernetes/typed/storagemigration/v1alpha1/fake/doc.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/kubernetes/typed/storagemigration/v1alpha1/fake/fake_storagemigration_client.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/kubernetes/typed/storagemigration/v1alpha1/fake/fake_storageversionmigration.go rename cluster-autoscaler/vendor/k8s.io/{apiserver/pkg/apis/config/doc.go => client-go/kubernetes/typed/storagemigration/v1alpha1/generated_expansion.go} (78%) create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/kubernetes/typed/storagemigration/v1alpha1/storagemigration_client.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/kubernetes/typed/storagemigration/v1alpha1/storageversionmigration.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/listers/admissionregistration/v1/validatingadmissionpolicy.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/listers/admissionregistration/v1/validatingadmissionpolicybinding.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/listers/resource/v1alpha2/resourceclaimparameters.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/listers/resource/v1alpha2/resourceclassparameters.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/listers/resource/v1alpha2/resourceslice.go rename cluster-autoscaler/vendor/k8s.io/{gengo/examples/set-gen/sets/empty.go => client-go/listers/storagemigration/v1alpha1/expansion_generated.go} (68%) create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/listers/storagemigration/v1alpha1/storageversionmigration.go create mode 100644 cluster-autoscaler/vendor/k8s.io/client-go/tools/remotecommand/OWNERS rename cluster-autoscaler/vendor/k8s.io/code-generator/cmd/applyconfiguration-gen/generators/{packages.go => targets.go} (64%) delete mode 100644 cluster-autoscaler/vendor/k8s.io/code-generator/cmd/client-gen/path/path.go rename cluster-autoscaler/vendor/k8s.io/{gengo/examples => code-generator/cmd}/deepcopy-gen/generators/deepcopy.go (86%) rename cluster-autoscaler/vendor/k8s.io/{gengo/examples => code-generator/cmd}/defaulter-gen/generators/defaulter.go (87%) delete mode 100644 cluster-autoscaler/vendor/k8s.io/code-generator/cmd/import-boss/.gitignore delete mode 100644 cluster-autoscaler/vendor/k8s.io/code-generator/cmd/import-boss/README.md delete mode 100644 cluster-autoscaler/vendor/k8s.io/code-generator/cmd/import-boss/main.go rename cluster-autoscaler/vendor/k8s.io/code-generator/cmd/informer-gen/generators/{packages.go => targets.go} (56%) delete mode 100644 cluster-autoscaler/vendor/k8s.io/code-generator/cmd/openapi-gen/main.go rename cluster-autoscaler/vendor/k8s.io/code-generator/cmd/register-gen/generators/{packages.go => targets.go} (74%) delete mode 100644 cluster-autoscaler/vendor/k8s.io/code-generator/cmd/set-gen/.gitignore delete mode 100644 cluster-autoscaler/vendor/k8s.io/code-generator/cmd/set-gen/main.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/code-generator/pkg/util/build.go create mode 100644 cluster-autoscaler/vendor/k8s.io/component-base/logs/api/v1/text.go create mode 100644 cluster-autoscaler/vendor/k8s.io/dynamic-resource-allocation/structured/namedresources/cel/compile.go create mode 100644 cluster-autoscaler/vendor/k8s.io/dynamic-resource-allocation/structured/namedresources/cel/semver.go create mode 100644 cluster-autoscaler/vendor/k8s.io/dynamic-resource-allocation/structured/namedresources/cel/semverlib.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/gengo/args/args.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/gengo/examples/import-boss/generators/import_restrict.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/gengo/examples/set-gen/generators/sets.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/gengo/examples/set-gen/generators/tags.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/gengo/examples/set-gen/sets/byte.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/gengo/examples/set-gen/sets/int.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/gengo/examples/set-gen/sets/int64.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/gengo/examples/set-gen/sets/string.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/gengo/generator/default_generator.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/gengo/generator/default_package.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/gengo/generator/transitive_closure.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/gengo/parser/parse.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/gengo/types/flatten.go rename cluster-autoscaler/vendor/k8s.io/gengo/{ => v2}/LICENSE (100%) create mode 100644 cluster-autoscaler/vendor/k8s.io/gengo/v2/README.md rename cluster-autoscaler/vendor/k8s.io/gengo/{types => v2}/comments.go (86%) create mode 100644 cluster-autoscaler/vendor/k8s.io/gengo/v2/execute.go rename cluster-autoscaler/vendor/k8s.io/gengo/{ => v2}/generator/doc.go (96%) rename cluster-autoscaler/vendor/k8s.io/gengo/{ => v2}/generator/error_tracker.go (100%) rename cluster-autoscaler/vendor/k8s.io/gengo/{ => v2}/generator/execute.go (54%) rename cluster-autoscaler/vendor/k8s.io/gengo/{ => v2}/generator/generator.go (63%) create mode 100644 cluster-autoscaler/vendor/k8s.io/gengo/v2/generator/go_generator.go rename cluster-autoscaler/vendor/k8s.io/gengo/{ => v2}/generator/import_tracker.go (88%) create mode 100644 cluster-autoscaler/vendor/k8s.io/gengo/v2/generator/simple_target.go rename cluster-autoscaler/vendor/k8s.io/gengo/{ => v2}/generator/snippet_writer.go (88%) rename cluster-autoscaler/vendor/k8s.io/gengo/{ => v2}/namer/doc.go (96%) rename cluster-autoscaler/vendor/k8s.io/gengo/{ => v2}/namer/import_tracker.go (98%) rename cluster-autoscaler/vendor/k8s.io/gengo/{ => v2}/namer/namer.go (99%) rename cluster-autoscaler/vendor/k8s.io/gengo/{ => v2}/namer/order.go (98%) rename cluster-autoscaler/vendor/k8s.io/gengo/{ => v2}/namer/plural_namer.go (99%) rename cluster-autoscaler/vendor/k8s.io/gengo/{ => v2}/parser/doc.go (92%) create mode 100644 cluster-autoscaler/vendor/k8s.io/gengo/v2/parser/parse.go rename cluster-autoscaler/vendor/k8s.io/gengo/{ => v2}/types/doc.go (93%) rename cluster-autoscaler/vendor/k8s.io/gengo/{ => v2}/types/types.go (98%) rename cluster-autoscaler/vendor/{github.com/vmware/govmomi/object/storage_pod.go => k8s.io/klog/v2/contextual_slog.go} (61%) create mode 100644 cluster-autoscaler/vendor/k8s.io/klog/v2/internal/verbosity/verbosity.go create mode 100644 cluster-autoscaler/vendor/k8s.io/klog/v2/safeptr.go create mode 100644 cluster-autoscaler/vendor/k8s.io/klog/v2/textlogger/options.go create mode 100644 cluster-autoscaler/vendor/k8s.io/klog/v2/textlogger/textlogger.go create mode 100644 cluster-autoscaler/vendor/k8s.io/klog/v2/textlogger/textlogger_slog.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/kube-openapi/cmd/openapi-gen/args/args.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/kube-openapi/pkg/generators/README.md delete mode 100644 cluster-autoscaler/vendor/k8s.io/kube-openapi/pkg/generators/api_linter.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/kube-openapi/pkg/generators/config.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/kube-openapi/pkg/generators/enum.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/kube-openapi/pkg/generators/extension.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/kube-openapi/pkg/generators/openapi.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/kube-openapi/pkg/generators/rules/OWNERS delete mode 100644 cluster-autoscaler/vendor/k8s.io/kube-openapi/pkg/generators/rules/doc.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/kube-openapi/pkg/generators/rules/idl_tag.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/kube-openapi/pkg/generators/rules/names_match.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/kube-openapi/pkg/generators/rules/omitempty_match_case.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/kube-openapi/pkg/generators/union.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/kube-openapi/pkg/util/sets/empty.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/kube-openapi/pkg/util/sets/string.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/kubernetes/cmd/kubelet/app/options/globalflags_providers.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/credentialprovider/azure/OWNERS delete mode 100644 cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/credentialprovider/azure/azure_acr_helper.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/credentialprovider/azure/azure_credentials.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/credentialprovider/azure/doc.go create mode 100644 cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/features/client_adapter.go create mode 100644 cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/kubelet/cm/dra/plugin/noderesources.go rename cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/{util/config/config.go => kubelet/config/mux.go} (50%) delete mode 100644 cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/kubelet/leaky/leaky.go rename cluster-autoscaler/vendor/{github.com/vmware/govmomi/object/vmware_distributed_virtual_switch.go => k8s.io/kubernetes/pkg/kubelet/userns/inuserns/inuserns_linux.go} (64%) rename cluster-autoscaler/vendor/{github.com/vmware/govmomi/vim25/mo/entity.go => k8s.io/kubernetes/pkg/kubelet/userns/inuserns/inuserns_others.go} (70%) delete mode 100644 cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/kubelet/volumemanager/reconciler/reconciler_new.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/kubelet/volumemanager/reconciler/reconstruct_new.go create mode 100644 cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/scheduler/framework/plugins/dynamicresources/structured/namedresources/namedresourcesmodel.go create mode 100644 cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/scheduler/framework/plugins/dynamicresources/structuredparameters.go create mode 100644 cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/scheduler/framework/plugins/nodevolumelimits/OWNERS create mode 100644 cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/scheduler/framework/plugins/volumerestrictions/OWNERS create mode 100644 cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/scheduler/framework/plugins/volumezone/OWNERS delete mode 100644 cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/util/config/doc.go rename cluster-autoscaler/vendor/k8s.io/{legacy-cloud-providers/vsphere/vsphere_util_linux.go => kubernetes/pkg/util/filesystem/util.go} (62%) create mode 100644 cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/util/slice/slice.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/volume/azure_file/OWNERS delete mode 100644 cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/volume/azure_file/azure_file.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/volume/azure_file/azure_provision.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/kubernetes/pkg/volume/azure_file/azure_util.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/OWNERS delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/auth/azure_auth.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/azure.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/azure_backoff.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/azure_blobDiskController.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/azure_config.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/azure_controller_common.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/azure_controller_standard.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/azure_controller_vmss.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/azure_fakes.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/azure_file.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/azure_instance_metadata.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/azure_instances.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/azure_loadbalancer.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/azure_managedDiskController.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/azure_ratelimit.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/azure_routes.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/azure_standard.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/azure_storage.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/azure_storageaccount.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/azure_utils.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/azure_vmsets.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/azure_vmss.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/azure_vmss_cache.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/azure_wrap.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/azure_zones.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/cache/azure_cache.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/cache/doc.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/armclient/azure_armclient.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/armclient/doc.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/armclient/interface.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/azure_client_config.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/containerserviceclient/azure_containerserviceclient.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/containerserviceclient/doc.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/containerserviceclient/interface.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/deploymentclient/azure_deploymentclient.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/deploymentclient/doc.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/deploymentclient/interface.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/diskclient/azure_diskclient.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/diskclient/doc.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/diskclient/interface.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/diskclient/mockdiskclient/doc.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/diskclient/mockdiskclient/interface.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/doc.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/fileclient/azure_fileclient.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/fileclient/doc.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/fileclient/interface.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/interfaceclient/azure_interfaceclient.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/interfaceclient/doc.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/interfaceclient/interface.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/interfaceclient/mockinterfaceclient/doc.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/interfaceclient/mockinterfaceclient/interface.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/loadbalancerclient/azure_loadbalancerclient.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/loadbalancerclient/doc.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/loadbalancerclient/interface.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/loadbalancerclient/mockloadbalancerclient/doc.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/loadbalancerclient/mockloadbalancerclient/interface.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/publicipclient/azure_publicipclient.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/publicipclient/interface.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/publicipclient/mockpublicipclient/doc.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/publicipclient/mockpublicipclient/interface.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/routeclient/azure_routeclient.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/routeclient/doc.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/routeclient/interface.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/routeclient/mockrouteclient/doc.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/routeclient/mockrouteclient/interface.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/routetableclient/azure_routetableclient.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/routetableclient/doc.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/routetableclient/interface.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/routetableclient/mockroutetableclient/doc.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/routetableclient/mockroutetableclient/interface.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/securitygroupclient/azure_securitygroupclient.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/securitygroupclient/doc.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/securitygroupclient/interface.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/securitygroupclient/mocksecuritygroupclient/doc.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/securitygroupclient/mocksecuritygroupclient/interface.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/snapshotclient/azure_snapshotclient.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/snapshotclient/doc.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/snapshotclient/interface.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/storageaccountclient/azure_storageaccountclient.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/storageaccountclient/doc.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/storageaccountclient/interface.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/subnetclient/azure_subnetclient.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/subnetclient/doc.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/subnetclient/interface.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/subnetclient/mocksubnetclient/doc.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/subnetclient/mocksubnetclient/interface.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/vmclient/azure_vmclient.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/vmclient/doc.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/vmclient/interface.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/vmclient/mockvmclient/doc.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/vmclient/mockvmclient/interface.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/vmsizeclient/azure_vmsizeclient.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/vmsizeclient/doc.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/vmsizeclient/interface.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/vmssclient/azure_vmssclient.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/vmssclient/doc.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/vmssclient/interface.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/vmssclient/mockvmssclient/doc.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/vmssclient/mockvmssclient/interface.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/vmssvmclient/azure_vmssvmclient.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/vmssvmclient/doc.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/vmssvmclient/interface.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/vmssvmclient/mockvmssvmclient/doc.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/vmssvmclient/mockvmssvmclient/interface.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/doc.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/metrics/azure_metrics.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/metrics/doc.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/retry/azure_error.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/retry/azure_retry.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/retry/doc.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/vsphere/OWNERS delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/vsphere/credentialmanager.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/vsphere/doc.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/vsphere/nodemanager.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/vsphere/shared_datastore.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/vsphere/vclib/connection.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/vsphere/vclib/constants.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/vsphere/vclib/custom_errors.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/vsphere/vclib/datacenter.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/vsphere/vclib/datastore.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/vsphere/vclib/diskmanagers/vdm.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/vsphere/vclib/diskmanagers/virtualdisk.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/vsphere/vclib/diskmanagers/vmdm.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/vsphere/vclib/folder.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/vsphere/vclib/pbm.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/vsphere/vclib/utils.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/vsphere/vclib/virtualmachine.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/vsphere/vclib/volumeoptions.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/vsphere/vclib/vsphere_metrics.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/vsphere/vsphere.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/vsphere/vsphere_util.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/vsphere/vsphere_util_unsupported.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/vsphere/vsphere_util_windows.go delete mode 100644 cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/vsphere/vsphere_volume_map.go delete mode 100644 vertical-pod-autoscaler/e2e/vendor/golang.org/x/crypto/internal/poly1305/bits_compat.go delete mode 100644 vertical-pod-autoscaler/e2e/vendor/golang.org/x/crypto/internal/poly1305/bits_go1.13.go delete mode 100644 vertical-pod-autoscaler/e2e/vendor/golang.org/x/net/http2/go111.go delete mode 100644 vertical-pod-autoscaler/e2e/vendor/golang.org/x/net/http2/go115.go delete mode 100644 vertical-pod-autoscaler/e2e/vendor/golang.org/x/net/http2/go118.go delete mode 100644 vertical-pod-autoscaler/e2e/vendor/golang.org/x/net/http2/not_go111.go delete mode 100644 vertical-pod-autoscaler/e2e/vendor/golang.org/x/net/http2/not_go115.go delete mode 100644 vertical-pod-autoscaler/e2e/vendor/golang.org/x/net/http2/not_go118.go rename vertical-pod-autoscaler/pkg/{recommender/input => target}/controller_fetcher/controller_cache_storage.go (100%) rename vertical-pod-autoscaler/pkg/{recommender/input => target}/controller_fetcher/controller_cache_storage_test.go (100%) rename vertical-pod-autoscaler/pkg/{recommender/input => target}/controller_fetcher/controller_fetcher.go (100%) rename cluster-autoscaler/vendor/k8s.io/legacy-cloud-providers/azure/clients/publicipclient/doc.go => vertical-pod-autoscaler/pkg/target/controller_fetcher/controller_fetcher_fake.go (55%) rename vertical-pod-autoscaler/pkg/{recommender/input => target}/controller_fetcher/controller_fetcher_test.go (97%) delete mode 100644 vertical-pod-autoscaler/vendor/golang.org/x/net/http2/go111.go delete mode 100644 vertical-pod-autoscaler/vendor/golang.org/x/net/http2/go115.go delete mode 100644 vertical-pod-autoscaler/vendor/golang.org/x/net/http2/go118.go delete mode 100644 vertical-pod-autoscaler/vendor/golang.org/x/net/http2/not_go111.go delete mode 100644 vertical-pod-autoscaler/vendor/golang.org/x/net/http2/not_go115.go delete mode 100644 vertical-pod-autoscaler/vendor/golang.org/x/net/http2/not_go118.go diff --git a/.github/dependabot.yml b/.github/dependabot.yml index f4d62b23de36..d3cb083c110e 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -28,3 +28,9 @@ updates: open-pull-requests-limit: 3 labels: - "vertical-pod-autoscaler" +- package-ecosystem: gomod + directory: "/addon-resizer" + schedule: + interval: daily + target-branch: "addon-resizer-release-1.8" + open-pull-requests-limit: 3 diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 1d86e5b5ae7f..8b97185f8c9e 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -17,7 +17,7 @@ jobs: - name: Set up Go uses: actions/setup-go@v2 with: - go-version: '1.21.6' + go-version: '1.22.1' - uses: actions/checkout@v2 with: diff --git a/addon-resizer/OWNERS b/addon-resizer/OWNERS index 69418fadfaaa..0ab0406b2913 100644 --- a/addon-resizer/OWNERS +++ b/addon-resizer/OWNERS @@ -8,4 +8,4 @@ emeritus_approvers: - bskiba # 2022-09-30 - wojtek-t # 2022-09-30 labels: -- addon-resizer +- area/addon-resizer diff --git a/balancer/OWNERS b/balancer/OWNERS index e09e0ee75e8c..cafbafa19048 100644 --- a/balancer/OWNERS +++ b/balancer/OWNERS @@ -5,4 +5,4 @@ reviewers: - mwielgus - kgolab labels: -- balancer +- area/balancer diff --git a/builder/Dockerfile b/builder/Dockerfile index ad1381de3777..243f6250ab81 100644 --- a/builder/Dockerfile +++ b/builder/Dockerfile @@ -12,7 +12,6 @@ # See the License for the specific language governing permissions and # limitations under the License. - FROM golang:1.22.2 LABEL maintainer="Marcin Wielgus " @@ -22,6 +21,6 @@ ENV GO111MODULE auto RUN apt-get update && apt-get --yes install libseccomp-dev RUN go version -RUN go get github.com/tools/godep +RUN go install github.com/tools/godep@latest RUN godep version CMD ["/bin/bash"] diff --git a/charts/OWNERS b/charts/OWNERS index 9e777b5c8593..8a0cd4a0ce2e 100644 --- a/charts/OWNERS +++ b/charts/OWNERS @@ -4,4 +4,4 @@ reviewers: - gjtempleton labels: -- helm-charts +- area/helm-charts diff --git a/charts/cluster-autoscaler/Chart.yaml b/charts/cluster-autoscaler/Chart.yaml index 504eea76d3a8..e58e4b197ba3 100644 --- a/charts/cluster-autoscaler/Chart.yaml +++ b/charts/cluster-autoscaler/Chart.yaml @@ -1,5 +1,5 @@ apiVersion: v2 -appVersion: 1.28.2 +appVersion: 1.29.0 description: Scales Kubernetes worker nodes within autoscaling groups. engine: gotpl home: https://github.com/kubernetes/autoscaler @@ -11,4 +11,4 @@ name: cluster-autoscaler sources: - https://github.com/kubernetes/autoscaler/tree/master/cluster-autoscaler type: application -version: 9.34.1 +version: 9.36.0 diff --git a/charts/cluster-autoscaler/README.md b/charts/cluster-autoscaler/README.md index 2d13c3b0a44f..a0cc5587a6c7 100644 --- a/charts/cluster-autoscaler/README.md +++ b/charts/cluster-autoscaler/README.md @@ -73,6 +73,8 @@ To create a valid configuration, follow instructions for your cloud provider: - [Azure](#azure) - [OpenStack Magnum](#openstack-magnum) - [Cluster API](#cluster-api) +- [Exoscale](#exoscale) +- [Hetzner Cloud](#hetzner-cloud) ### Templating the autoDiscovery.clusterName @@ -222,6 +224,7 @@ $ helm install my-release autoscaler/cluster-autoscaler -f myvalues.yaml `cloudProvider: clusterapi` must be set, and then one or more of - `autoDiscovery.clusterName` +- or `autoDiscovery.namespace` - or `autoDiscovery.labels` See [here](https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/cloudprovider/clusterapi/README.md#configuring-node-group-auto-discovery) for more details. @@ -259,6 +262,18 @@ $ helm install my-release autoscaler/cluster-autoscaler \ Read [cluster-autoscaler/cloudprovider/exoscale/README.md](https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/cloudprovider/exoscale/README.md) for further information on the setup without helm. +### Hetzner Cloud + +The following parameters are required: + +- `cloudProvider=hetzner` +- `extraEnv.HCLOUD_TOKEN=...` +- `autoscalingGroups=...` + +Each autoscaling group requires an additional `instanceType` and `region` key to be set. + +Read [cluster-autoscaler/cloudprovider/hetzner/README.md](https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/cloudprovider/hetzner/README.md) for further information on the setup without helm. + ## Uninstalling the Chart To uninstall `my-release`: @@ -373,17 +388,17 @@ vpa: | affinity | object | `{}` | Affinity for pod assignment | | autoDiscovery.clusterName | string | `nil` | Enable autodiscovery for `cloudProvider=aws`, for groups matching `autoDiscovery.tags`. autoDiscovery.clusterName -- Enable autodiscovery for `cloudProvider=azure`, using tags defined in https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/cloudprovider/azure/README.md#auto-discovery-setup. Enable autodiscovery for `cloudProvider=clusterapi`, for groups matching `autoDiscovery.labels`. Enable autodiscovery for `cloudProvider=gce`, but no MIG tagging required. Enable autodiscovery for `cloudProvider=magnum`, for groups matching `autoDiscovery.roles`. | | autoDiscovery.labels | list | `[]` | Cluster-API labels to match https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/cloudprovider/clusterapi/README.md#configuring-node-group-auto-discovery | +| autoDiscovery.namespace | string | `nil` | Enable autodiscovery via cluster namespace for for `cloudProvider=clusterapi` | | autoDiscovery.roles | list | `["worker"]` | Magnum node group roles to match. | | autoDiscovery.tags | list | `["k8s.io/cluster-autoscaler/enabled","k8s.io/cluster-autoscaler/{{ .Values.autoDiscovery.clusterName }}"]` | ASG tags to match, run through `tpl`. | -| autoscalingGroups | list | `[]` | For AWS, Azure AKS or Magnum. At least one element is required if not using `autoDiscovery`. For example:
 - name: asg1
maxSize: 2
minSize: 1
| +| autoscalingGroups | list | `[]` | For AWS, Azure AKS or Magnum. At least one element is required if not using `autoDiscovery`. For example:
 - name: asg1
maxSize: 2
minSize: 1
For Hetzner Cloud, the `instanceType` and `region` keys are also required.
 - name: mypool
maxSize: 2
minSize: 1
instanceType: CPX21
region: FSN1
| | autoscalingGroupsnamePrefix | list | `[]` | For GCE. At least one element is required if not using `autoDiscovery`. For example:
 - name: ig01
maxSize: 10
minSize: 0
| | awsAccessKeyID | string | `""` | AWS access key ID ([if AWS user keys used](https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/cloudprovider/aws/README.md#using-aws-credentials)) | | awsRegion | string | `"us-east-1"` | AWS region (required if `cloudProvider=aws`) | | awsSecretAccessKey | string | `""` | AWS access secret key ([if AWS user keys used](https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/cloudprovider/aws/README.md#using-aws-credentials)) | | azureClientID | string | `""` | Service Principal ClientID with contributor permission to Cluster and Node ResourceGroup. Required if `cloudProvider=azure` | | azureClientSecret | string | `""` | Service Principal ClientSecret with contributor permission to Cluster and Node ResourceGroup. Required if `cloudProvider=azure` | -| azureClusterName | string | `""` | Azure AKS cluster name. Required if `cloudProvider=azure` | -| azureNodeResourceGroup | string | `""` | Azure resource group where the cluster's nodes are located, typically set as `MC___`. Required if `cloudProvider=azure` | +| azureEnableForceDelete | bool | `false` | Whether to force delete VMs or VMSS instances when scaling down. | | azureResourceGroup | string | `""` | Azure resource group that the cluster is located. Required if `cloudProvider=azure` | | azureSubscriptionID | string | `""` | Azure subscription where the resources are located. Required if `cloudProvider=azure` | | azureTenantID | string | `""` | Azure tenant where the resources are located. Required if `cloudProvider=azure` | @@ -415,7 +430,7 @@ vpa: | image.pullPolicy | string | `"IfNotPresent"` | Image pull policy | | image.pullSecrets | list | `[]` | Image pull secrets | | image.repository | string | `"registry.k8s.io/autoscaling/cluster-autoscaler"` | Image repository | -| image.tag | string | `"v1.28.2"` | Image tag | +| image.tag | string | `"v1.29.0"` | Image tag | | kubeTargetVersionOverride | string | `""` | Allow overriding the `.Capabilities.KubeVersion.GitVersion` check. Useful for `helm template` commands. | | kwokConfigMapName | string | `"kwok-provider-config"` | configmap for configuring kwok provider | | magnumCABundlePath | string | `"/etc/kubernetes/ca-bundle.crt"` | Path to the host's CA bundle, from `ca-file` in the cloud-config file. | diff --git a/charts/cluster-autoscaler/README.md.gotmpl b/charts/cluster-autoscaler/README.md.gotmpl index c91d0d572447..a680369ddf40 100644 --- a/charts/cluster-autoscaler/README.md.gotmpl +++ b/charts/cluster-autoscaler/README.md.gotmpl @@ -73,6 +73,8 @@ To create a valid configuration, follow instructions for your cloud provider: - [Azure](#azure) - [OpenStack Magnum](#openstack-magnum) - [Cluster API](#cluster-api) +- [Exoscale](#exoscale) +- [Hetzner Cloud](#hetzner-cloud) ### Templating the autoDiscovery.clusterName @@ -222,6 +224,7 @@ $ helm install my-release autoscaler/cluster-autoscaler -f myvalues.yaml `cloudProvider: clusterapi` must be set, and then one or more of - `autoDiscovery.clusterName` +- or `autoDiscovery.namespace` - or `autoDiscovery.labels` See [here](https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/cloudprovider/clusterapi/README.md#configuring-node-group-auto-discovery) for more details. @@ -259,6 +262,18 @@ $ helm install my-release autoscaler/cluster-autoscaler \ Read [cluster-autoscaler/cloudprovider/exoscale/README.md](https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/cloudprovider/exoscale/README.md) for further information on the setup without helm. +### Hetzner Cloud + +The following parameters are required: + +- `cloudProvider=hetzner` +- `extraEnv.HCLOUD_TOKEN=...` +- `autoscalingGroups=...` + +Each autoscaling group requires an additional `instanceType` and `region` key to be set. + +Read [cluster-autoscaler/cloudprovider/hetzner/README.md](https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/cloudprovider/hetzner/README.md) for further information on the setup without helm. + ## Uninstalling the Chart To uninstall `my-release`: diff --git a/charts/cluster-autoscaler/templates/NOTES.txt b/charts/cluster-autoscaler/templates/NOTES.txt index 94e211e96b10..1a87a3d10b50 100644 --- a/charts/cluster-autoscaler/templates/NOTES.txt +++ b/charts/cluster-autoscaler/templates/NOTES.txt @@ -1,4 +1,4 @@ -{{- if or .Values.autoDiscovery.clusterName .Values.autoscalingGroups -}} +{{- if or ( or .Values.autoDiscovery.clusterName .Values.autoDiscovery.namespace .Values.autoDiscovery.labels ) .Values.autoscalingGroups }} To verify that cluster-autoscaler has started, run: @@ -8,7 +8,7 @@ To verify that cluster-autoscaler has started, run: ############################################################################## #### ERROR: You must specify values for either #### -#### autoDiscovery.clusterName or autoscalingGroups[] #### +#### autoDiscovery or autoscalingGroups[] #### ############################################################################## The deployment and pod will not be created and the installation is not functional diff --git a/charts/cluster-autoscaler/templates/_helpers.tpl b/charts/cluster-autoscaler/templates/_helpers.tpl index b0aee4fc080d..c7e80f4d8e4c 100644 --- a/charts/cluster-autoscaler/templates/_helpers.tpl +++ b/charts/cluster-autoscaler/templates/_helpers.tpl @@ -40,14 +40,11 @@ app.kubernetes.io/name: {{ include "cluster-autoscaler.name" . | quote }} {{/* -Return labels, including instance, name and version. +Return labels, including instance and name. */}} {{- define "cluster-autoscaler.labels" -}} {{ include "cluster-autoscaler.instance-name" . }} app.kubernetes.io/managed-by: {{ .Release.Service | quote }} -{{- if .Chart.AppVersion }} -app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} -{{- end }} helm.sh/chart: {{ include "cluster-autoscaler.chart" . | quote }} {{- if .Values.additionalLabels }} {{ toYaml .Values.additionalLabels }} @@ -112,16 +109,23 @@ Return true if the priority expander is enabled {{- end -}} {{/* -Return the autodiscoveryparameters for clusterapi. +autoDiscovery.clusterName for clusterapi. */}} -{{- define "cluster-autoscaler.capiAutodiscoveryConfig" -}} -{{- if .Values.autoDiscovery.clusterName -}} +{{- define "cluster-autoscaler.capiAutodiscovery.clusterName" -}} {{- print "clusterName=" -}}{{ tpl (.Values.autoDiscovery.clusterName) . }} {{- end -}} -{{- if and .Values.autoDiscovery.clusterName .Values.autoDiscovery.labels -}} -{{- print "," -}} + +{{/* +autoDiscovery.namespace for clusterapi. +*/}} +{{- define "cluster-autoscaler.capiAutodiscovery.namespace" -}} +{{- print "namespace=" }}{{ .Values.autoDiscovery.namespace -}} {{- end -}} -{{- if .Values.autoDiscovery.labels -}} + +{{/* +autoDiscovery.labels for clusterapi. +*/}} +{{- define "cluster-autoscaler.capiAutodiscovery.labels" -}} {{- range $i, $el := .Values.autoDiscovery.labels -}} {{- if $i -}}{{- print "," -}}{{- end -}} {{- range $key, $val := $el -}} @@ -129,4 +133,28 @@ Return the autodiscoveryparameters for clusterapi. {{- end -}} {{- end -}} {{- end -}} + +{{/* +Return the autodiscoveryparameters for clusterapi. +*/}} +{{- define "cluster-autoscaler.capiAutodiscoveryConfig" -}} +{{- if .Values.autoDiscovery.clusterName -}} +{{ include "cluster-autoscaler.capiAutodiscovery.clusterName" . }} + {{- if .Values.autoDiscovery.namespace }} + {{- print "," -}} + {{ include "cluster-autoscaler.capiAutodiscovery.namespace" . }} + {{- end -}} + {{- if .Values.autoDiscovery.labels }} + {{- print "," -}} + {{ include "cluster-autoscaler.capiAutodiscovery.labels" . }} + {{- end -}} +{{- else if .Values.autoDiscovery.namespace -}} +{{ include "cluster-autoscaler.capiAutodiscovery.namespace" . }} + {{- if .Values.autoDiscovery.labels }} + {{- print "," -}} + {{ include "cluster-autoscaler.capiAutodiscovery.labels" . }} + {{- end -}} +{{- else if .Values.autoDiscovery.labels -}} + {{ include "cluster-autoscaler.capiAutodiscovery.labels" . }} +{{- end -}} {{- end -}} diff --git a/charts/cluster-autoscaler/templates/deployment.yaml b/charts/cluster-autoscaler/templates/deployment.yaml index ccbe4353edc8..1b06186bf212 100644 --- a/charts/cluster-autoscaler/templates/deployment.yaml +++ b/charts/cluster-autoscaler/templates/deployment.yaml @@ -1,4 +1,4 @@ -{{- if or ( or .Values.autoDiscovery.clusterName .Values.autoDiscovery.labels ) .Values.autoscalingGroups }} +{{- if or ( or .Values.autoDiscovery.clusterName .Values.autoDiscovery.namespace .Values.autoDiscovery.labels ) .Values.autoscalingGroups }} {{/* one of the above is required */}} apiVersion: {{ template "deployment.apiVersion" . }} kind: Deployment @@ -60,8 +60,12 @@ spec: {{- end }} {{- if .Values.autoscalingGroups }} {{- range .Values.autoscalingGroups }} + {{- if eq $.Values.cloudProvider "hetzner" }} + - --nodes={{ .minSize }}:{{ .maxSize }}:{{ .instanceType }}:{{ .region }}:{{ .name }} + {{- else }} - --nodes={{ .minSize }}:{{ .maxSize }}:{{ .name }} {{- end }} + {{- end }} {{- end }} {{- if eq .Values.cloudProvider "rancher" }} {{- if .Values.cloudConfigPath }} @@ -95,7 +99,7 @@ spec: - --cluster-name={{ tpl (.Values.magnumClusterName) . }} {{- end }} {{- else if eq .Values.cloudProvider "clusterapi" }} - {{- if or .Values.autoDiscovery.clusterName .Values.autoDiscovery.labels }} + {{- if or .Values.autoDiscovery.clusterName .Values.autoDiscovery.labels .Values.autoDiscovery.namepace }} - --node-group-auto-discovery=clusterapi:{{ template "cluster-autoscaler.capiAutodiscoveryConfig" . }} {{- end }} {{- if eq .Values.clusterAPIMode "incluster-kubeconfig"}} @@ -166,6 +170,8 @@ spec: secretKeyRef: key: VMType name: {{ default (include "cluster-autoscaler.fullname" .) .Values.secretKeyRefNameOverride }} + - name: AZURE_ENABLE_FORCE_DELETE + value: "{{ .Values.azureEnableForceDelete }}" {{- if .Values.azureUseWorkloadIdentityExtension }} - name: ARM_USE_WORKLOAD_IDENTITY_EXTENSION value: "true" diff --git a/charts/cluster-autoscaler/values.yaml b/charts/cluster-autoscaler/values.yaml index edc17f9addd8..88581381eeda 100644 --- a/charts/cluster-autoscaler/values.yaml +++ b/charts/cluster-autoscaler/values.yaml @@ -16,6 +16,9 @@ autoDiscovery: # Enable autodiscovery for `cloudProvider=magnum`, for groups matching `autoDiscovery.roles`. clusterName: # cluster.local + # autoDiscovery.namespace -- Enable autodiscovery via cluster namespace for for `cloudProvider=clusterapi` + namespace: # default + # autoDiscovery.tags -- ASG tags to match, run through `tpl`. tags: - k8s.io/cluster-autoscaler/enabled @@ -36,6 +39,14 @@ autoDiscovery: # maxSize: 2
# minSize: 1 # +# For Hetzner Cloud, the `instanceType` and `region` keys are also required. +#
+# - name: mypool
+# maxSize: 2
+# minSize: 1
+# instanceType: CPX21
+# region: FSN1 +#
autoscalingGroups: [] # - name: asg1 # maxSize: 2 @@ -75,14 +86,6 @@ azureClientID: "" # Required if `cloudProvider=azure` azureClientSecret: "" -# azureClusterName -- Azure AKS cluster name. -# Required if `cloudProvider=azure` -azureClusterName: "" - -# azureNodeResourceGroup -- Azure resource group where the cluster's nodes are located, typically set as `MC___`. -# Required if `cloudProvider=azure` -azureNodeResourceGroup: "" - # azureResourceGroup -- Azure resource group that the cluster is located. # Required if `cloudProvider=azure` azureResourceGroup: "" @@ -104,6 +107,9 @@ azureUseWorkloadIdentityExtension: false # azureVMType -- Azure VM type. azureVMType: "vmss" +# azureEnableForceDelete -- Whether to force delete VMs or VMSS instances when scaling down. +azureEnableForceDelete: false + # cloudConfigPath -- Configuration file for cloud provider. cloudConfigPath: "" @@ -230,7 +236,7 @@ image: # image.repository -- Image repository repository: registry.k8s.io/autoscaling/cluster-autoscaler # image.tag -- Image tag - tag: v1.28.2 + tag: v1.29.0 # image.pullPolicy -- Image pull policy pullPolicy: IfNotPresent ## Optionally specify an array of imagePullSecrets. @@ -375,7 +381,6 @@ serviceMonitor: # serviceMonitor.metricRelabelings -- MetricRelabelConfigs to apply to samples before ingestion. metricRelabelings: {} - # tolerations -- List of node taints to tolerate (requires Kubernetes >= 1.6). tolerations: [] diff --git a/cluster-autoscaler/.gitignore b/cluster-autoscaler/.gitignore index cdfefe3f0b13..69c0a6474e57 100644 --- a/cluster-autoscaler/.gitignore +++ b/cluster-autoscaler/.gitignore @@ -1,10 +1,8 @@ -cluster-autoscaler -cluster-autoscaler-amd64 -cluster-autoscaler-arm64 -cluster-autoscaler-s390x -cluster_autoscaler -main -.cover +/cluster-autoscaler +/cluster-autoscaler-amd64 +/cluster-autoscaler-arm64 +/cluster-autoscaler-s390x +/.cover # Vim-related files [._]*.s[a-w][a-z] @@ -13,4 +11,4 @@ main Session.vim .netrwhist .vscode -/integration/logs +./integration/logs diff --git a/cluster-autoscaler/FAQ.md b/cluster-autoscaler/FAQ.md index cecf928e9a6c..025bae238573 100644 --- a/cluster-autoscaler/FAQ.md +++ b/cluster-autoscaler/FAQ.md @@ -103,8 +103,13 @@ Cluster Autoscaler decreases the size of the cluster when some nodes are consist "cluster-autoscaler.kubernetes.io/safe-to-evict-local-volumes": "volume-1,volume-2,.." ``` and all of the pod's local volumes are listed in the annotation value. -* Pods that cannot be moved elsewhere due to various constraints (lack of resources, non-matching node selectors or affinity, -matching anti-affinity, etc) +* Pods that cannot be moved elsewhere due to scheduling constraints. CA simulates kube-scheduler behavior, and if there's no other node where a given pod can schedule, the pod's node won't be scaled down. + * This can be particularly visible if a given workloads' pods are configured to only fit one pod per node on some subset of nodes. Such pods will always block CA from scaling down their nodes, because all + other valid nodes are either taken by another pod, or empty (and CA prefers scaling down empty nodes). + * Examples of scenarios where scheduling constraints prevent CA from deleting a node: + * No other node has enough resources to satisfy a pod's request + * No other node has available ports to satisfy a pod's `hostPort` configuration. + * No other node with enough resources has the labels required by a pod's node selector * Pods that have the following annotation set: ``` "cluster-autoscaler.kubernetes.io/safe-to-evict": "false" @@ -597,7 +602,7 @@ any nodes left unregistered after this time. Every 10 seconds (configurable by `--scan-interval` flag), if no scale-up is needed, Cluster Autoscaler checks which nodes are unneeded. A node is considered for removal when **all** below conditions hold: -* The sum of cpu and memory requests of all pods running on this node ([DaemonSet pods](https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/) and [Mirror pods](https://kubernetes.io/docs/tasks/configure-pod-container/static-pod/) are included by default but this is configurable with `--ignore-daemonsets-utilization` and `--ignore-mirror-pods-utilization` flags) is smaller +* The sum of cpu requests and sum of memory requests of all pods running on this node ([DaemonSet pods](https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/) and [Mirror pods](https://kubernetes.io/docs/tasks/configure-pod-container/static-pod/) are included by default but this is configurable with `--ignore-daemonsets-utilization` and `--ignore-mirror-pods-utilization` flags) are smaller than 50% of the node's allocatable. (Before 1.1.0, node capacity was used instead of allocatable.) Utilization threshold can be configured using `--scale-down-utilization-threshold` flag. @@ -777,7 +782,7 @@ The following startup parameters are supported for cluster autoscaler: | `scale-down-delay-after-failure` | How long after scale down failure that scale down evaluation resumes | 3 minutes | `scale-down-unneeded-time` | How long a node should be unneeded before it is eligible for scale down | 10 minutes | `scale-down-unready-time` | How long an unready node should be unneeded before it is eligible for scale down | 20 minutes -| `scale-down-utilization-threshold` | Node utilization level, defined as sum of requested resources divided by capacity, below which a node can be considered for scale down | 0.5 +| `scale-down-utilization-threshold` | The maximum value between the sum of cpu requests and sum of memory requests of all pods running on the node divided by node's corresponding allocatable resource, below which a node can be considered for scale down. This value is a floating point number that can range between zero and one. | 0.5 | `scale-down-non-empty-candidates-count` | Maximum number of non empty nodes considered in one iteration as candidates for scale down with drain
Lower value means better CA responsiveness but possible slower scale down latency
Higher value can affect CA performance with big clusters (hundreds of nodes)
Set to non positive value to turn this heuristic off - CA will not limit the number of nodes it considers." | 30 | `scale-down-candidates-pool-ratio` | A ratio of nodes that are considered as additional non empty candidates for
scale down when some candidates from previous iteration are no longer valid
Lower value means better CA responsiveness but possible slower scale down latency
Higher value can affect CA performance with big clusters (hundreds of nodes)
Set to 1.0 to turn this heuristics off - CA will take all nodes as additional candidates. | 0.1 | `scale-down-candidates-pool-min-count` | Minimum number of nodes that are considered as additional non empty candidates
for scale down when some candidates from previous iteration are no longer valid.
When calculating the pool size for additional candidates we take
`max(#nodes * scale-down-candidates-pool-ratio, scale-down-candidates-pool-min-count)` | 50 diff --git a/cluster-autoscaler/Makefile b/cluster-autoscaler/Makefile index a061ce065b65..34e4d729cd63 100644 --- a/cluster-autoscaler/Makefile +++ b/cluster-autoscaler/Makefile @@ -36,7 +36,10 @@ IMAGE=$(REGISTRY)/cluster-autoscaler$(PROVIDER) export DOCKER_CLI_EXPERIMENTAL := enabled -build: build-arch-$(GOARCH) +build: + @echo "⚠️ WARNING: The vendor directory will be removed soon. \ + Please make sure your dependencies are managed via Go modules." + @$(MAKE) build-arch-$(GOARCH) build-arch-%: clean-arch-% $(ENVVAR) GOOS=$(GOOS) GOARCH=$* go build -o cluster-autoscaler-$* ${LDFLAGS_FLAG} ${TAGS_FLAG} @@ -119,7 +122,7 @@ $(LOCALBIN): CONTROLLER_GEN ?= $(LOCALBIN)/controller-gen ## Tool Versions -CONTROLLER_TOOLS_VERSION ?= v0.13.0 +CONTROLLER_TOOLS_VERSION ?= v0.14.0 .PHONY: controller-gen controller-gen: $(CONTROLLER_GEN) ## Download controller-gen locally if necessary. @@ -128,7 +131,8 @@ $(CONTROLLER_GEN): $(LOCALBIN) .PHONY: manifest manifest: controller-gen ## Generate WebhookConfiguration, ClusterRole and CustomResourceDefinition objects. - $(CONTROLLER_GEN) rbac:roleName=manager-role crd webhook paths="./..." output:crd:artifacts:config=config/crd + $(CONTROLLER_GEN) rbac:roleName=manager-role crd webhook paths="./apis/..." output:crd:artifacts:config=apis/config/crd + .PHONY: start start: @GO111MODULE=on go run main.go \ diff --git a/cluster-autoscaler/OWNERS b/cluster-autoscaler/OWNERS index d96aa261a525..ec15a71b84a3 100644 --- a/cluster-autoscaler/OWNERS +++ b/cluster-autoscaler/OWNERS @@ -6,8 +6,9 @@ approvers: reviewers: - BigDarkClown - feiskyer +- vadasambar - x13n emeritus_approvers: - aleksandra-malinowska # 2022-09-30 labels: -- cluster-autoscaler +- area/cluster-autoscaler diff --git a/cluster-autoscaler/README.md b/cluster-autoscaler/README.md index 4c0b78b38dbb..5225b8ee7a82 100644 --- a/cluster-autoscaler/README.md +++ b/cluster-autoscaler/README.md @@ -25,7 +25,7 @@ You should also take a look at the notes and "gotchas" for your specific cloud p * [ClusterAPI](./cloudprovider/clusterapi/README.md) * [DigitalOcean](./cloudprovider/digitalocean/README.md) * [Exoscale](./cloudprovider/exoscale/README.md) -* [Equinix Metal](./cloudprovider/packet/README.md#notes) +* [Equinix Metal](cloudprovider/equinixmetal/README.md#notes) * [External gRPC](./cloudprovider/externalgrpc/README.md) * [Hetzner](./cloudprovider/hetzner/README.md) * [HuaweiCloud](./cloudprovider/huaweicloud/README.md) @@ -47,53 +47,54 @@ We recommend using Cluster Autoscaler with the Kubernetes control plane (previou Starting from Kubernetes 1.12, versioning scheme was changed to match Kubernetes minor releases exactly. -| Kubernetes Version | CA Version | -|--------------------|--------| -| 1.29.X | 1.29.X | -| 1.28.X | 1.28.X | -| 1.27.X | 1.27.X | -| 1.26.X | 1.26.X | -| 1.25.X | 1.25.X | -| 1.24.X | 1.24.X | -| 1.23.X | 1.23.X | -| 1.22.X | 1.22.X | -| 1.21.X | 1.21.X | -| 1.20.X | 1.20.X | -| 1.19.X | 1.19.X | -| 1.18.X | 1.18.X | -| 1.17.X | 1.17.X | -| 1.16.X | 1.16.X | -| 1.15.X | 1.15.X | -| 1.14.X | 1.14.X | -| 1.13.X | 1.13.X | -| 1.12.X | 1.12.X | -| 1.11.X | 1.3.X | -| 1.10.X | 1.2.X | -| 1.9.X | 1.1.X | -| 1.8.X | 1.0.X | -| 1.7.X | 0.6.X | -| 1.6.X | 0.5.X, 0.6.X* | -| 1.5.X | 0.4.X | -| 1.4.X | 0.3.X | +| Kubernetes Version | CA Version | Chart Version | +|--------------------|--------------------------|---------------| +| 1.29.X | 1.29.X |9.35.0+| +| 1.28.X | 1.28.X |9.34.0+| +| 1.27.X | 1.27.X |9.29.0+| +| 1.26.X | 1.26.X |9.28.0+| +| 1.25.X | 1.25.X | | +| 1.24.X | 1.24.X |9.25.0+| +| 1.23.X | 1.23.X |9.14.0+| +| 1.22.X | 1.22.X | | +| 1.21.X | 1.21.X |9.10.0+| +| 1.20.X | 1.20.X |9.5.0+| +| 1.19.X | 1.19.X | | +| 1.18.X | 1.18.X |9.0.0+| +| 1.17.X | 1.17.X | | +| 1.16.X | 1.16.X | | +| 1.15.X | 1.15.X | | +| 1.14.X | 1.14.X | | +| 1.13.X | 1.13.X | | +| 1.12.X | 1.12.X | | +| 1.11.X | 1.3.X | | +| 1.10.X | 1.2.X | | +| 1.9.X | 1.1.X | | +| 1.8.X | 1.0.X | | +| 1.7.X | 0.6.X | | +| 1.6.X | 0.5.X, 0.6.X* | | +| 1.5.X | 0.4.X | | +| 1.4.X | 0.3.X | | *Cluster Autoscaler 0.5.X is the official version shipped with k8s 1.6. We've done some basic tests using k8s 1.6 / CA 0.6 and we're not aware of any problems with this setup. However, Cluster Autoscaler internally simulates Kubernetes' scheduler and using different versions of scheduler code can lead to subtle issues. -# Patch releases +## Schedule -Cluster Autoscaler releases patches for versions corresponding to currently +Cluster Autoscaler releases new minor versions shortly after OSS Kubernetes release +and patches for versions corresponding to currently supported [Kubernetes versions](https://kubernetes.io/releases/) on a roughly 2 month cadence. Currently planned schedule is below. Please note that target dates listed below are approximate and we expect up to a week difference between target ETA and the actual releases. -| Date | Maintainer Preparing Release | Backup Maintainer | -|------------|------------------------------|-------------------| -| 2023-03-15 | MaciekPytel | gjtempleton | -| 2023-05-17 | gjtempleton | BigDarkClown | -| 2023-07-19 | BigDarkClown | towca | -| 2023-09-13 | towca | x13n | -| 2023-11-15 | x13n | MaciekPytel | -| 2024-01-17 | MaciekPytel | gjtempleton | +| Date | Maintainer Preparing Release | Backup Maintainer | Type | +|------------|------------------------------|-------------------|-------| +| 2024-01-17 | MaciekPytel | gjtempleton | patch | +| 2024-03-13 | gjtempleton | BigDarkClown | patch | +| 2024-04-17 | BigDarkClown | towca | 1.30 | +| 2024-05-22 | towca | x13n | patch | +| 2024-07-24 | x13n | MaciekPytel | patch | +| 2024-08-21 | MaciekPytel | gjtempleton | 1.31 | Additional patch releases may happen outside of the schedule in case of critical bugs or vulnerabilities. @@ -104,6 +105,7 @@ Starting with Gardener/Autoscaler v1.20, versioning scheme has changed to match | Kubernetes Version | CA Version | Gardener CA Version | |--------------------|------------|---------------------| +| 1.30.X | 1.30.X | 1.30.X | | 1.29.X | 1.29.X | 1.29.X | | 1.28.X | 1.28.X | 1.28.X | | 1.27.X | 1.27.X | 1.27.X | @@ -233,7 +235,7 @@ Supported cloud providers: * ClusterAPI https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/cloudprovider/clusterapi/README.md * DigitalOcean https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/cloudprovider/digitalocean/README.md * Exoscale https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/cloudprovider/exoscale/README.md -* Equinix Metal https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/cloudprovider/packet/README.md +* Equinix Metal https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/cloudprovider/equinixmetal/README.md * External gRPC https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/cloudprovider/externalgrpc/README.md * Hetzner https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/cloudprovider/hetzner/README.md * HuaweiCloud https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/cloudprovider/huaweicloud/README.md diff --git a/cluster-autoscaler/SYNC-CHANGES/SYNC_CHANGES-1.30.md b/cluster-autoscaler/SYNC-CHANGES/SYNC_CHANGES-1.30.md new file mode 100644 index 000000000000..f53125a23b48 --- /dev/null +++ b/cluster-autoscaler/SYNC-CHANGES/SYNC_CHANGES-1.30.md @@ -0,0 +1,33 @@ + + +- [v1.30.1](#v1290) + - [Synced with which upstream CA](#synced-with-which-upstream-ca) + - [Changes made](#changes-made) + - [During merging](#during-merging) + - [During vendoring k8s](#during-vendoring-k8s) + - [Others](#others) + + +# v1.30.0 + + +## Synced with which upstream CA + +[v1.30.1](https://github.com/kubernetes/autoscaler/releases/tag/cluster-autoscaler-1.30.1) + +## Changes made +- See general release notes of 1.30.1: https://github.com/kubernetes/autoscaler/releases/tag/cluster-autoscaler-1.30.1 +- New flag added in autoscaling options: `flag.Bool("enable-provisioning-requests", false, "Whether the clusterautoscaler will be handling the ProvisioningRequest CRs.")`. +- New flag added in autoscaling options: `flag.Bool("frequent-loops-enabled", false, "Whether clusterautoscaler triggers new iterations more frequently when it's needed")`. +- New interface method `AtomicIncreaseSize` implemented in mcm cloud provider to satisfy interface : `cloudprovider.NodeGroup`. + +### During merging +- import package for `machine-controller-manager-provider-aws` was updated after vendoring latest version. +- import package for `machine-controller-manager-provider-azure` was updated after vendoring latest version. + +### During vendoring k8s +- mcm-provider-aws v0.19.2 -> v0.20.0 +- mcm-provider-azure v0.12.1 -> v0.13.0 + +### Others +- [Release matrix](../README.md#releases-gardenerautoscaler) of Gardener Autoscaler updated. \ No newline at end of file diff --git a/cluster-autoscaler/apis/config/crd/autoscaling.x-k8s.io_provisioningrequests.yaml b/cluster-autoscaler/apis/config/crd/autoscaling.x-k8s.io_provisioningrequests.yaml new file mode 100644 index 000000000000..bdbb53ce338d --- /dev/null +++ b/cluster-autoscaler/apis/config/crd/autoscaling.x-k8s.io_provisioningrequests.yaml @@ -0,0 +1,236 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.14.0 + name: provisioningrequests.autoscaling.x-k8s.io +spec: + group: autoscaling.x-k8s.io + names: + kind: ProvisioningRequest + listKind: ProvisioningRequestList + plural: provisioningrequests + shortNames: + - provreq + - provreqs + singular: provisioningrequest + scope: Namespaced + versions: + - additionalPrinterColumns: + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1beta1 + schema: + openAPIV3Schema: + description: |- + ProvisioningRequest is a way to express additional capacity + that we would like to provision in the cluster. Cluster Autoscaler + can use this information in its calculations and signal if the capacity + is available in the cluster or actively add capacity if needed. + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: |- + Spec contains specification of the ProvisioningRequest object. + More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status. + The spec is immutable, to make changes to the request users are expected to delete an existing + and create a new object with the corrected fields. + properties: + parameters: + additionalProperties: + description: Parameter is limited to 255 characters. + maxLength: 255 + type: string + description: |- + Parameters contains all other parameters classes may require. + 'atomic-scale-up.kubernetes.io' supports 'ValidUntilSeconds' parameter, which should contain + a string denoting duration for which we should retry (measured since creation fo the CR). + maxProperties: 100 + type: object + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf + podSets: + description: |- + PodSets lists groups of pods for which we would like to provision + resources. + items: + description: PodSet represents one group of pods for Provisioning + Request to provision capacity. + properties: + count: + description: |- + Count contains the number of pods that will be created with a given + template. + format: int32 + minimum: 1 + type: integer + podTemplateRef: + description: |- + PodTemplateRef is a reference to a PodTemplate object that is representing pods + that will consume this reservation (must be within the same namespace). + Users need to make sure that the fields relevant to scheduler (e.g. node selector tolerations) + are consistent between this template and actual pods consuming the Provisioning Request. + properties: + name: + description: |- + Name of the referenced object. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names + maxLength: 253 + pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ + type: string + type: object + required: + - count + - podTemplateRef + type: object + maxItems: 32 + minItems: 1 + type: array + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf + provisioningClassName: + description: |- + ProvisioningClassName describes the different modes of provisioning the resources. + Currently there is no support for 'ProvisioningClass' objects. + Supported values: + * check-capacity.kubernetes.io - check if current cluster state can fullfil this request, + do not reserve the capacity. Users should provide a reference to a valid PodTemplate object. + CA will check if there is enough capacity in cluster to fulfill the request and put + the answer in 'CapacityAvailable' condition. + * atomic-scale-up.kubernetes.io - provision the resources in an atomic manner. + Users should provide a reference to a valid PodTemplate object. + CA will try to create the VMs in an atomic manner, clean any partially provisioned VMs + and re-try the operation in a exponential back-off manner. Users can configure the timeout + duration after which the request will fail by 'ValidUntilSeconds' key in 'Parameters'. + CA will set 'Failed=true' or 'Provisioned=true' condition according to the outcome. + * ... - potential other classes that are specific to the cloud providers. + 'kubernetes.io' suffix is reserved for the modes defined in Kubernetes projects. + maxLength: 253 + pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ + type: string + x-kubernetes-validations: + - message: Value is immutable + rule: self == oldSelf + required: + - podSets + - provisioningClassName + type: object + status: + description: Status of the ProvisioningRequest. CA constantly reconciles + this field. + properties: + conditions: + description: |- + Conditions represent the observations of a Provisioning Request's + current state. Those will contain information whether the capacity + was found/created or if there were any issues. The condition types + may differ between different provisioning classes. + items: + description: "Condition contains details for one aspect of the current + state of this API Resource.\n---\nThis struct is intended for + direct use as an array at the field path .status.conditions. For + example,\n\n\n\ttype FooStatus struct{\n\t // Represents the + observations of a foo's current state.\n\t // Known .status.conditions.type + are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // + +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t + \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" + patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t + \ // other fields\n\t}" + properties: + lastTransitionTime: + description: |- + lastTransitionTime is the last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + format: date-time + type: string + message: + description: |- + message is a human readable message indicating details about the transition. + This may be an empty string. + maxLength: 32768 + type: string + observedGeneration: + description: |- + observedGeneration represents the .metadata.generation that the condition was set based upon. + For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date + with respect to the current state of the instance. + format: int64 + minimum: 0 + type: integer + reason: + description: |- + reason contains a programmatic identifier indicating the reason for the condition's last transition. + Producers of specific condition types may define expected values and meanings for this field, + and whether the values are considered a guaranteed API. + The value should be a CamelCase string. + This field may not be empty. + maxLength: 1024 + minLength: 1 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ + type: string + status: + description: status of the condition, one of True, False, Unknown. + enum: + - "True" + - "False" + - Unknown + type: string + type: + description: |- + type of condition in CamelCase or in foo.example.com/CamelCase. + --- + Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be + useful (see .node.status.conditions), the ability to deconflict is important. + The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + maxLength: 316 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ + type: string + required: + - lastTransitionTime + - message + - reason + - status + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + provisioningClassDetails: + additionalProperties: + description: Detail is limited to 32768 characters. + maxLength: 32768 + type: string + description: |- + ProvisioningClassDetails contains all other values custom provisioning classes may + want to pass to end users. + maxProperties: 64 + type: object + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/cluster-autoscaler/apis/go.mod b/cluster-autoscaler/apis/go.mod new file mode 100644 index 000000000000..59d43f1a2a15 --- /dev/null +++ b/cluster-autoscaler/apis/go.mod @@ -0,0 +1,58 @@ +module k8s.io/autoscaler/cluster-autoscaler/apis + +go 1.22.0 + +require ( + github.com/onsi/ginkgo/v2 v2.16.0 + github.com/onsi/gomega v1.31.1 + k8s.io/apimachinery v0.30.1 + k8s.io/client-go v0.30.1 + k8s.io/code-generator v0.30.1 + sigs.k8s.io/structured-merge-diff/v4 v4.4.1 +) + +require ( + github.com/davecgh/go-spew v1.1.1 // indirect + github.com/emicklei/go-restful/v3 v3.11.0 // indirect + github.com/evanphx/json-patch v4.12.0+incompatible // indirect + github.com/go-logr/logr v1.4.1 // indirect + github.com/go-openapi/jsonpointer v0.19.6 // indirect + github.com/go-openapi/jsonreference v0.20.2 // indirect + github.com/go-openapi/swag v0.22.3 // indirect + github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 // indirect + github.com/gogo/protobuf v1.3.2 // indirect + github.com/golang/protobuf v1.5.4 // indirect + github.com/google/gnostic-models v0.6.8 // indirect + github.com/google/go-cmp v0.6.0 // indirect + github.com/google/gofuzz v1.2.0 // indirect + github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1 // indirect + github.com/google/uuid v1.3.0 // indirect + github.com/josharian/intern v1.0.0 // indirect + github.com/json-iterator/go v1.1.12 // indirect + github.com/mailru/easyjson v0.7.7 // indirect + github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect + github.com/modern-go/reflect2 v1.0.2 // indirect + github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect + github.com/pkg/errors v0.9.1 // indirect + github.com/spf13/pflag v1.0.5 // indirect + golang.org/x/mod v0.15.0 // indirect + golang.org/x/net v0.23.0 // indirect + golang.org/x/oauth2 v0.10.0 // indirect + golang.org/x/sys v0.18.0 // indirect + golang.org/x/term v0.18.0 // indirect + golang.org/x/text v0.14.0 // indirect + golang.org/x/time v0.3.0 // indirect + golang.org/x/tools v0.18.0 // indirect + google.golang.org/appengine v1.6.7 // indirect + google.golang.org/protobuf v1.33.0 // indirect + gopkg.in/inf.v0 v0.9.1 // indirect + gopkg.in/yaml.v2 v2.4.0 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect + k8s.io/api v0.30.1 // indirect + k8s.io/gengo/v2 v2.0.0-20240228010128-51d4e06bde70 // indirect + k8s.io/klog/v2 v2.120.1 // indirect + k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 // indirect + k8s.io/utils v0.0.0-20230726121419-3b25d923346b // indirect + sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect + sigs.k8s.io/yaml v1.3.0 // indirect +) diff --git a/cluster-autoscaler/apis/go.sum b/cluster-autoscaler/apis/go.sum new file mode 100644 index 000000000000..a02472d84274 --- /dev/null +++ b/cluster-autoscaler/apis/go.sum @@ -0,0 +1,168 @@ +github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= +github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= +github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/emicklei/go-restful/v3 v3.11.0 h1:rAQeMHw1c7zTmncogyy8VvRZwtkmkZ4FxERmMY4rD+g= +github.com/emicklei/go-restful/v3 v3.11.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= +github.com/evanphx/json-patch v4.12.0+incompatible h1:4onqiflcdA9EOZ4RxV643DvftH5pOlLGNtQ5lPWQu84= +github.com/evanphx/json-patch v4.12.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= +github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= +github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE= +github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs= +github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE= +github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k= +github.com/go-openapi/swag v0.22.3 h1:yMBqmnQ0gyZvEb/+KzuWZOXgllrXT4SADYbvDaXHv/g= +github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= +github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI= +github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572/go.mod h1:9Pwr4B2jHnOSGXyyzV8ROjYa2ojvAY6HCGYYfMoC3Ls= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= +github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I= +github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U= +github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= +github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1 h1:K6RDEckDVWvDI9JAJYCmNdQXq6neHJOYx3V6jnqNEec= +github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= +github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= +github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= +github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= +github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= +github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= +github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= +github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= +github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= +github.com/onsi/ginkgo/v2 v2.16.0 h1:7q1w9frJDzninhXxjZd+Y/x54XNjG/UlRLIYPZafsPM= +github.com/onsi/ginkgo/v2 v2.16.0/go.mod h1:llBI3WDLL9Z6taip6f33H76YcWtJv+7R3HigUjbIBOs= +github.com/onsi/gomega v1.31.1 h1:KYppCUK+bUgAZwHOu7EXVBKyQA6ILvOESHkn/tgoqvo= +github.com/onsi/gomega v1.31.1/go.mod h1:y40C95dwAD1Nz36SsEnxvfFe8FFfNxzI5eJ0EYGyAy0= +github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= +github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= +github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= +github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.15.0 h1:SernR4v+D55NyBH2QiEQrlBAnj1ECL6AGrA5+dPaMY8= +golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= +golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= +golang.org/x/oauth2 v0.10.0 h1:zHCpF2Khkwy4mMB4bv0U37YtJdTGW8jI0glAApi0Kh8= +golang.org/x/oauth2 v0.10.0/go.mod h1:kTpgurOux7LqtuxjuyZa4Gj2gdezIt/jQtGnNFfypQI= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= +golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= +golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/term v0.18.0 h1:FcHjZXDMxI8mM3nwhX9HlKop4C0YQvCVCdwYl2wOtE8= +golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= +golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.18.0 h1:k8NLag8AGHnn+PHbl7g43CtqZAwG60vZkLqgyZgIHgQ= +golang.org/x/tools v0.18.0/go.mod h1:GL7B4CwcLLeo59yx/9UWWuNOW1n3VZ4f5axWfML7Lcg= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= +google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI= +google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= +gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= +gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= +gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +k8s.io/api v0.30.1 h1:kCm/6mADMdbAxmIh0LBjS54nQBE+U4KmbCfIkF5CpJY= +k8s.io/api v0.30.1/go.mod h1:ddbN2C0+0DIiPntan/bye3SW3PdwLa11/0yqwvuRrJM= +k8s.io/apimachinery v0.30.1 h1:ZQStsEfo4n65yAdlGTfP/uSHMQSoYzU/oeEbkmF7P2U= +k8s.io/apimachinery v0.30.1/go.mod h1:iexa2somDaxdnj7bha06bhb43Zpa6eWH8N8dbqVjTUc= +k8s.io/client-go v0.30.1 h1:uC/Ir6A3R46wdkgCV3vbLyNOYyCJ8oZnjtJGKfytl/Q= +k8s.io/client-go v0.30.1/go.mod h1:wrAqLNs2trwiCH/wxxmT/x3hKVH9PuV0GGW0oDoHVqc= +k8s.io/code-generator v0.30.1 h1:ZsG++q5Vt0ScmKCeLhynUuWgcwFGg1Hl1AGfatqPJBI= +k8s.io/code-generator v0.30.1/go.mod h1:hFgxRsvOUg79mbpbVKfjJvRhVz1qLoe40yZDJ/hwRH4= +k8s.io/gengo/v2 v2.0.0-20240228010128-51d4e06bde70 h1:NGrVE502P0s0/1hudf8zjgwki1X/TByhmAoILTarmzo= +k8s.io/gengo/v2 v2.0.0-20240228010128-51d4e06bde70/go.mod h1:VH3AT8AaQOqiGjMF9p0/IM1Dj+82ZwjfxUP1IxaHE+8= +k8s.io/klog/v2 v2.120.1 h1:QXU6cPEOIslTGvZaXvFWiP9VKyeet3sawzTOvdXb4Vw= +k8s.io/klog/v2 v2.120.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= +k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 h1:BZqlfIlq5YbRMFko6/PM7FjZpUb45WallggurYhKGag= +k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340/go.mod h1:yD4MZYeKMBwQKVht279WycxKyM84kkAx2DPrTXaeb98= +k8s.io/utils v0.0.0-20230726121419-3b25d923346b h1:sgn3ZU783SCgtaSJjpcVVlRqd6GSnlTLKgpAAttJvpI= +k8s.io/utils v0.0.0-20230726121419-3b25d923346b/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= +sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= +sigs.k8s.io/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+sGiqlzvrtq4= +sigs.k8s.io/structured-merge-diff/v4 v4.4.1/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08= +sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo= +sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8= diff --git a/cluster-autoscaler/provisioningrequest/apis/autoscaling.x-k8s.io/v1beta1/doc.go b/cluster-autoscaler/apis/provisioningrequest/autoscaling.x-k8s.io/v1beta1/doc.go similarity index 100% rename from cluster-autoscaler/provisioningrequest/apis/autoscaling.x-k8s.io/v1beta1/doc.go rename to cluster-autoscaler/apis/provisioningrequest/autoscaling.x-k8s.io/v1beta1/doc.go diff --git a/cluster-autoscaler/provisioningrequest/apis/autoscaling.x-k8s.io/v1beta1/register.go b/cluster-autoscaler/apis/provisioningrequest/autoscaling.x-k8s.io/v1beta1/register.go similarity index 100% rename from cluster-autoscaler/provisioningrequest/apis/autoscaling.x-k8s.io/v1beta1/register.go rename to cluster-autoscaler/apis/provisioningrequest/autoscaling.x-k8s.io/v1beta1/register.go diff --git a/cluster-autoscaler/provisioningrequest/apis/autoscaling.x-k8s.io/v1beta1/types.go b/cluster-autoscaler/apis/provisioningrequest/autoscaling.x-k8s.io/v1beta1/types.go similarity index 90% rename from cluster-autoscaler/provisioningrequest/apis/autoscaling.x-k8s.io/v1beta1/types.go rename to cluster-autoscaler/apis/provisioningrequest/autoscaling.x-k8s.io/v1beta1/types.go index 4309091c6d6a..31cb27e901bc 100644 --- a/cluster-autoscaler/provisioningrequest/apis/autoscaling.x-k8s.io/v1beta1/types.go +++ b/cluster-autoscaler/apis/provisioningrequest/autoscaling.x-k8s.io/v1beta1/types.go @@ -175,11 +175,16 @@ type Detail string // The following constants list all currently available Conditions Type values. // See: https://pkg.go.dev/k8s.io/apimachinery/pkg/apis/meta/v1#Condition const ( - // CapacityAvailable indicates that all of the requested resources were - // already available in the cluster. - CapacityAvailable string = "CapacityAvailable" + // Accepted indicates that the ProvisioningRequest was accepted by ClusterAutoscaler, + // so ClusterAutoscaler will attempt to provision the nodes for it. + Accepted string = "Accepted" + // BookingExpired indicates that the ProvisioningRequest had Provisioned condition before + // and capacity reservation time is expired. + BookingExpired string = "BookingExpired" + // CapacityRevoked indicates that requested resources are not longer valid. + CapacityRevoked string = "CapacityRevoked" // Provisioned indicates that all of the requested resources were created - // and are available in the cluster. CA will set this condition when the + // and registered in the cluster. CA will set this condition when the // VM creation finishes successfully. Provisioned string = "Provisioned" // Failed indicates that it is impossible to obtain resources to fulfill @@ -189,10 +194,10 @@ const ( ) const ( - // ProvisioningClassCheckCapacity denotes that CA will check if free capacity - // is available in the cluster. - ProvisioningClassCheckCapacity string = "check-capacity.kubernetes.io" + // ProvisioningClassCheckCapacity denotes that CA will check if current cluster state can fulfill this request, + // and reserve the capacity for a specified time. + ProvisioningClassCheckCapacity string = "check-capacity.autoscaling.x-k8s.io" // ProvisioningClassAtomicScaleUp denotes that CA try to provision the capacity // in an atomic manner. - ProvisioningClassAtomicScaleUp string = "atomic-scale-up.kubernetes.io" + ProvisioningClassAtomicScaleUp string = "atomic-scale-up.autoscaling.x-k8s.io" ) diff --git a/cluster-autoscaler/provisioningrequest/apis/autoscaling.x-k8s.io/v1beta1/zz_generated.deepcopy.go b/cluster-autoscaler/apis/provisioningrequest/autoscaling.x-k8s.io/v1beta1/zz_generated.deepcopy.go similarity index 100% rename from cluster-autoscaler/provisioningrequest/apis/autoscaling.x-k8s.io/v1beta1/zz_generated.deepcopy.go rename to cluster-autoscaler/apis/provisioningrequest/autoscaling.x-k8s.io/v1beta1/zz_generated.deepcopy.go diff --git a/cluster-autoscaler/provisioningrequest/client/applyconfiguration/autoscaling.x-k8s.io/v1beta1/podset.go b/cluster-autoscaler/apis/provisioningrequest/client/applyconfiguration/autoscaling.x-k8s.io/v1beta1/podset.go similarity index 100% rename from cluster-autoscaler/provisioningrequest/client/applyconfiguration/autoscaling.x-k8s.io/v1beta1/podset.go rename to cluster-autoscaler/apis/provisioningrequest/client/applyconfiguration/autoscaling.x-k8s.io/v1beta1/podset.go diff --git a/cluster-autoscaler/provisioningrequest/client/applyconfiguration/autoscaling.x-k8s.io/v1beta1/provisioningrequest.go b/cluster-autoscaler/apis/provisioningrequest/client/applyconfiguration/autoscaling.x-k8s.io/v1beta1/provisioningrequest.go similarity index 100% rename from cluster-autoscaler/provisioningrequest/client/applyconfiguration/autoscaling.x-k8s.io/v1beta1/provisioningrequest.go rename to cluster-autoscaler/apis/provisioningrequest/client/applyconfiguration/autoscaling.x-k8s.io/v1beta1/provisioningrequest.go diff --git a/cluster-autoscaler/provisioningrequest/client/applyconfiguration/autoscaling.x-k8s.io/v1beta1/provisioningrequestspec.go b/cluster-autoscaler/apis/provisioningrequest/client/applyconfiguration/autoscaling.x-k8s.io/v1beta1/provisioningrequestspec.go similarity index 98% rename from cluster-autoscaler/provisioningrequest/client/applyconfiguration/autoscaling.x-k8s.io/v1beta1/provisioningrequestspec.go rename to cluster-autoscaler/apis/provisioningrequest/client/applyconfiguration/autoscaling.x-k8s.io/v1beta1/provisioningrequestspec.go index bc4b9566d30a..1c523729260e 100644 --- a/cluster-autoscaler/provisioningrequest/client/applyconfiguration/autoscaling.x-k8s.io/v1beta1/provisioningrequestspec.go +++ b/cluster-autoscaler/apis/provisioningrequest/client/applyconfiguration/autoscaling.x-k8s.io/v1beta1/provisioningrequestspec.go @@ -19,7 +19,7 @@ limitations under the License. package v1beta1 import ( - autoscalingxk8siov1beta1 "k8s.io/autoscaler/cluster-autoscaler/provisioningrequest/apis/autoscaling.x-k8s.io/v1beta1" + autoscalingxk8siov1beta1 "k8s.io/autoscaler/cluster-autoscaler/apis/provisioningrequest/autoscaling.x-k8s.io/v1beta1" ) // ProvisioningRequestSpecApplyConfiguration represents an declarative configuration of the ProvisioningRequestSpec type for use diff --git a/cluster-autoscaler/provisioningrequest/client/applyconfiguration/autoscaling.x-k8s.io/v1beta1/provisioningrequeststatus.go b/cluster-autoscaler/apis/provisioningrequest/client/applyconfiguration/autoscaling.x-k8s.io/v1beta1/provisioningrequeststatus.go similarity index 96% rename from cluster-autoscaler/provisioningrequest/client/applyconfiguration/autoscaling.x-k8s.io/v1beta1/provisioningrequeststatus.go rename to cluster-autoscaler/apis/provisioningrequest/client/applyconfiguration/autoscaling.x-k8s.io/v1beta1/provisioningrequeststatus.go index e8746ecc2f7b..f949fffafd22 100644 --- a/cluster-autoscaler/provisioningrequest/client/applyconfiguration/autoscaling.x-k8s.io/v1beta1/provisioningrequeststatus.go +++ b/cluster-autoscaler/apis/provisioningrequest/client/applyconfiguration/autoscaling.x-k8s.io/v1beta1/provisioningrequeststatus.go @@ -20,7 +20,7 @@ package v1beta1 import ( v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - v1beta1 "k8s.io/autoscaler/cluster-autoscaler/provisioningrequest/apis/autoscaling.x-k8s.io/v1beta1" + v1beta1 "k8s.io/autoscaler/cluster-autoscaler/apis/provisioningrequest/autoscaling.x-k8s.io/v1beta1" ) // ProvisioningRequestStatusApplyConfiguration represents an declarative configuration of the ProvisioningRequestStatus type for use diff --git a/cluster-autoscaler/provisioningrequest/client/applyconfiguration/autoscaling.x-k8s.io/v1beta1/reference.go b/cluster-autoscaler/apis/provisioningrequest/client/applyconfiguration/autoscaling.x-k8s.io/v1beta1/reference.go similarity index 100% rename from cluster-autoscaler/provisioningrequest/client/applyconfiguration/autoscaling.x-k8s.io/v1beta1/reference.go rename to cluster-autoscaler/apis/provisioningrequest/client/applyconfiguration/autoscaling.x-k8s.io/v1beta1/reference.go diff --git a/cluster-autoscaler/provisioningrequest/client/applyconfiguration/internal/internal.go b/cluster-autoscaler/apis/provisioningrequest/client/applyconfiguration/internal/internal.go similarity index 100% rename from cluster-autoscaler/provisioningrequest/client/applyconfiguration/internal/internal.go rename to cluster-autoscaler/apis/provisioningrequest/client/applyconfiguration/internal/internal.go diff --git a/cluster-autoscaler/provisioningrequest/client/applyconfiguration/utils.go b/cluster-autoscaler/apis/provisioningrequest/client/applyconfiguration/utils.go similarity index 90% rename from cluster-autoscaler/provisioningrequest/client/applyconfiguration/utils.go rename to cluster-autoscaler/apis/provisioningrequest/client/applyconfiguration/utils.go index cc1c299a7051..894c18a44998 100644 --- a/cluster-autoscaler/provisioningrequest/client/applyconfiguration/utils.go +++ b/cluster-autoscaler/apis/provisioningrequest/client/applyconfiguration/utils.go @@ -20,8 +20,8 @@ package applyconfiguration import ( schema "k8s.io/apimachinery/pkg/runtime/schema" - v1beta1 "k8s.io/autoscaler/cluster-autoscaler/provisioningrequest/apis/autoscaling.x-k8s.io/v1beta1" - autoscalingxk8siov1beta1 "k8s.io/autoscaler/cluster-autoscaler/provisioningrequest/client/applyconfiguration/autoscaling.x-k8s.io/v1beta1" + v1beta1 "k8s.io/autoscaler/cluster-autoscaler/apis/provisioningrequest/autoscaling.x-k8s.io/v1beta1" + autoscalingxk8siov1beta1 "k8s.io/autoscaler/cluster-autoscaler/apis/provisioningrequest/client/applyconfiguration/autoscaling.x-k8s.io/v1beta1" ) // ForKind returns an apply configuration type for the given GroupVersionKind, or nil if no diff --git a/cluster-autoscaler/provisioningrequest/client/clientset/versioned/clientset.go b/cluster-autoscaler/apis/provisioningrequest/client/clientset/versioned/clientset.go similarity index 96% rename from cluster-autoscaler/provisioningrequest/client/clientset/versioned/clientset.go rename to cluster-autoscaler/apis/provisioningrequest/client/clientset/versioned/clientset.go index c081e28ef99e..2a940c1ac12d 100644 --- a/cluster-autoscaler/provisioningrequest/client/clientset/versioned/clientset.go +++ b/cluster-autoscaler/apis/provisioningrequest/client/clientset/versioned/clientset.go @@ -22,7 +22,7 @@ import ( "fmt" "net/http" - autoscalingv1beta1 "k8s.io/autoscaler/cluster-autoscaler/provisioningrequest/client/clientset/versioned/typed/autoscaling.x-k8s.io/v1beta1" + autoscalingv1beta1 "k8s.io/autoscaler/cluster-autoscaler/apis/provisioningrequest/client/clientset/versioned/typed/autoscaling.x-k8s.io/v1beta1" discovery "k8s.io/client-go/discovery" rest "k8s.io/client-go/rest" flowcontrol "k8s.io/client-go/util/flowcontrol" diff --git a/cluster-autoscaler/provisioningrequest/client/clientset/versioned/fake/clientset_generated.go b/cluster-autoscaler/apis/provisioningrequest/client/clientset/versioned/fake/clientset_generated.go similarity index 86% rename from cluster-autoscaler/provisioningrequest/client/clientset/versioned/fake/clientset_generated.go rename to cluster-autoscaler/apis/provisioningrequest/client/clientset/versioned/fake/clientset_generated.go index 2b733ffca62b..eb8263030374 100644 --- a/cluster-autoscaler/provisioningrequest/client/clientset/versioned/fake/clientset_generated.go +++ b/cluster-autoscaler/apis/provisioningrequest/client/clientset/versioned/fake/clientset_generated.go @@ -21,9 +21,9 @@ package fake import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/watch" - clientset "k8s.io/autoscaler/cluster-autoscaler/provisioningrequest/client/clientset/versioned" - autoscalingv1beta1 "k8s.io/autoscaler/cluster-autoscaler/provisioningrequest/client/clientset/versioned/typed/autoscaling.x-k8s.io/v1beta1" - fakeautoscalingv1beta1 "k8s.io/autoscaler/cluster-autoscaler/provisioningrequest/client/clientset/versioned/typed/autoscaling.x-k8s.io/v1beta1/fake" + clientset "k8s.io/autoscaler/cluster-autoscaler/apis/provisioningrequest/client/clientset/versioned" + autoscalingv1beta1 "k8s.io/autoscaler/cluster-autoscaler/apis/provisioningrequest/client/clientset/versioned/typed/autoscaling.x-k8s.io/v1beta1" + fakeautoscalingv1beta1 "k8s.io/autoscaler/cluster-autoscaler/apis/provisioningrequest/client/clientset/versioned/typed/autoscaling.x-k8s.io/v1beta1/fake" "k8s.io/client-go/discovery" fakediscovery "k8s.io/client-go/discovery/fake" "k8s.io/client-go/testing" diff --git a/cluster-autoscaler/provisioningrequest/client/clientset/versioned/fake/doc.go b/cluster-autoscaler/apis/provisioningrequest/client/clientset/versioned/fake/doc.go similarity index 100% rename from cluster-autoscaler/provisioningrequest/client/clientset/versioned/fake/doc.go rename to cluster-autoscaler/apis/provisioningrequest/client/clientset/versioned/fake/doc.go diff --git a/cluster-autoscaler/provisioningrequest/client/clientset/versioned/fake/register.go b/cluster-autoscaler/apis/provisioningrequest/client/clientset/versioned/fake/register.go similarity index 94% rename from cluster-autoscaler/provisioningrequest/client/clientset/versioned/fake/register.go rename to cluster-autoscaler/apis/provisioningrequest/client/clientset/versioned/fake/register.go index e21a07104c0a..63b931ff9509 100644 --- a/cluster-autoscaler/provisioningrequest/client/clientset/versioned/fake/register.go +++ b/cluster-autoscaler/apis/provisioningrequest/client/clientset/versioned/fake/register.go @@ -24,7 +24,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" serializer "k8s.io/apimachinery/pkg/runtime/serializer" utilruntime "k8s.io/apimachinery/pkg/util/runtime" - autoscalingv1beta1 "k8s.io/autoscaler/cluster-autoscaler/provisioningrequest/apis/autoscaling.x-k8s.io/v1beta1" + autoscalingv1beta1 "k8s.io/autoscaler/cluster-autoscaler/apis/provisioningrequest/autoscaling.x-k8s.io/v1beta1" ) var scheme = runtime.NewScheme() diff --git a/cluster-autoscaler/provisioningrequest/client/clientset/versioned/scheme/doc.go b/cluster-autoscaler/apis/provisioningrequest/client/clientset/versioned/scheme/doc.go similarity index 100% rename from cluster-autoscaler/provisioningrequest/client/clientset/versioned/scheme/doc.go rename to cluster-autoscaler/apis/provisioningrequest/client/clientset/versioned/scheme/doc.go diff --git a/cluster-autoscaler/provisioningrequest/client/clientset/versioned/scheme/register.go b/cluster-autoscaler/apis/provisioningrequest/client/clientset/versioned/scheme/register.go similarity index 94% rename from cluster-autoscaler/provisioningrequest/client/clientset/versioned/scheme/register.go rename to cluster-autoscaler/apis/provisioningrequest/client/clientset/versioned/scheme/register.go index 3defe5bb3368..ee8998ec2364 100644 --- a/cluster-autoscaler/provisioningrequest/client/clientset/versioned/scheme/register.go +++ b/cluster-autoscaler/apis/provisioningrequest/client/clientset/versioned/scheme/register.go @@ -24,7 +24,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" serializer "k8s.io/apimachinery/pkg/runtime/serializer" utilruntime "k8s.io/apimachinery/pkg/util/runtime" - autoscalingv1beta1 "k8s.io/autoscaler/cluster-autoscaler/provisioningrequest/apis/autoscaling.x-k8s.io/v1beta1" + autoscalingv1beta1 "k8s.io/autoscaler/cluster-autoscaler/apis/provisioningrequest/autoscaling.x-k8s.io/v1beta1" ) var Scheme = runtime.NewScheme() diff --git a/cluster-autoscaler/provisioningrequest/client/clientset/versioned/typed/autoscaling.x-k8s.io/v1beta1/autoscaling.x-k8s.io_client.go b/cluster-autoscaler/apis/provisioningrequest/client/clientset/versioned/typed/autoscaling.x-k8s.io/v1beta1/autoscaling.x-k8s.io_client.go similarity index 93% rename from cluster-autoscaler/provisioningrequest/client/clientset/versioned/typed/autoscaling.x-k8s.io/v1beta1/autoscaling.x-k8s.io_client.go rename to cluster-autoscaler/apis/provisioningrequest/client/clientset/versioned/typed/autoscaling.x-k8s.io/v1beta1/autoscaling.x-k8s.io_client.go index 95af8c0ea0eb..8f7a4c3497af 100644 --- a/cluster-autoscaler/provisioningrequest/client/clientset/versioned/typed/autoscaling.x-k8s.io/v1beta1/autoscaling.x-k8s.io_client.go +++ b/cluster-autoscaler/apis/provisioningrequest/client/clientset/versioned/typed/autoscaling.x-k8s.io/v1beta1/autoscaling.x-k8s.io_client.go @@ -21,8 +21,8 @@ package v1beta1 import ( "net/http" - v1beta1 "k8s.io/autoscaler/cluster-autoscaler/provisioningrequest/apis/autoscaling.x-k8s.io/v1beta1" - "k8s.io/autoscaler/cluster-autoscaler/provisioningrequest/client/clientset/versioned/scheme" + v1beta1 "k8s.io/autoscaler/cluster-autoscaler/apis/provisioningrequest/autoscaling.x-k8s.io/v1beta1" + "k8s.io/autoscaler/cluster-autoscaler/apis/provisioningrequest/client/clientset/versioned/scheme" rest "k8s.io/client-go/rest" ) diff --git a/cluster-autoscaler/provisioningrequest/client/clientset/versioned/typed/autoscaling.x-k8s.io/v1beta1/doc.go b/cluster-autoscaler/apis/provisioningrequest/client/clientset/versioned/typed/autoscaling.x-k8s.io/v1beta1/doc.go similarity index 100% rename from cluster-autoscaler/provisioningrequest/client/clientset/versioned/typed/autoscaling.x-k8s.io/v1beta1/doc.go rename to cluster-autoscaler/apis/provisioningrequest/client/clientset/versioned/typed/autoscaling.x-k8s.io/v1beta1/doc.go diff --git a/cluster-autoscaler/provisioningrequest/client/clientset/versioned/typed/autoscaling.x-k8s.io/v1beta1/fake/doc.go b/cluster-autoscaler/apis/provisioningrequest/client/clientset/versioned/typed/autoscaling.x-k8s.io/v1beta1/fake/doc.go similarity index 100% rename from cluster-autoscaler/provisioningrequest/client/clientset/versioned/typed/autoscaling.x-k8s.io/v1beta1/fake/doc.go rename to cluster-autoscaler/apis/provisioningrequest/client/clientset/versioned/typed/autoscaling.x-k8s.io/v1beta1/fake/doc.go diff --git a/cluster-autoscaler/provisioningrequest/client/clientset/versioned/typed/autoscaling.x-k8s.io/v1beta1/fake/fake_autoscaling.x-k8s.io_client.go b/cluster-autoscaler/apis/provisioningrequest/client/clientset/versioned/typed/autoscaling.x-k8s.io/v1beta1/fake/fake_autoscaling.x-k8s.io_client.go similarity index 89% rename from cluster-autoscaler/provisioningrequest/client/clientset/versioned/typed/autoscaling.x-k8s.io/v1beta1/fake/fake_autoscaling.x-k8s.io_client.go rename to cluster-autoscaler/apis/provisioningrequest/client/clientset/versioned/typed/autoscaling.x-k8s.io/v1beta1/fake/fake_autoscaling.x-k8s.io_client.go index 89365e84c337..33d0774402fc 100644 --- a/cluster-autoscaler/provisioningrequest/client/clientset/versioned/typed/autoscaling.x-k8s.io/v1beta1/fake/fake_autoscaling.x-k8s.io_client.go +++ b/cluster-autoscaler/apis/provisioningrequest/client/clientset/versioned/typed/autoscaling.x-k8s.io/v1beta1/fake/fake_autoscaling.x-k8s.io_client.go @@ -19,7 +19,7 @@ limitations under the License. package fake import ( - v1beta1 "k8s.io/autoscaler/cluster-autoscaler/provisioningrequest/client/clientset/versioned/typed/autoscaling.x-k8s.io/v1beta1" + v1beta1 "k8s.io/autoscaler/cluster-autoscaler/apis/provisioningrequest/client/clientset/versioned/typed/autoscaling.x-k8s.io/v1beta1" rest "k8s.io/client-go/rest" testing "k8s.io/client-go/testing" ) diff --git a/cluster-autoscaler/provisioningrequest/client/clientset/versioned/typed/autoscaling.x-k8s.io/v1beta1/fake/fake_provisioningrequest.go b/cluster-autoscaler/apis/provisioningrequest/client/clientset/versioned/typed/autoscaling.x-k8s.io/v1beta1/fake/fake_provisioningrequest.go similarity index 97% rename from cluster-autoscaler/provisioningrequest/client/clientset/versioned/typed/autoscaling.x-k8s.io/v1beta1/fake/fake_provisioningrequest.go rename to cluster-autoscaler/apis/provisioningrequest/client/clientset/versioned/typed/autoscaling.x-k8s.io/v1beta1/fake/fake_provisioningrequest.go index e1dc7262f2fa..0ec6755ad4ba 100644 --- a/cluster-autoscaler/provisioningrequest/client/clientset/versioned/typed/autoscaling.x-k8s.io/v1beta1/fake/fake_provisioningrequest.go +++ b/cluster-autoscaler/apis/provisioningrequest/client/clientset/versioned/typed/autoscaling.x-k8s.io/v1beta1/fake/fake_provisioningrequest.go @@ -27,8 +27,8 @@ import ( labels "k8s.io/apimachinery/pkg/labels" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" - v1beta1 "k8s.io/autoscaler/cluster-autoscaler/provisioningrequest/apis/autoscaling.x-k8s.io/v1beta1" - autoscalingxk8siov1beta1 "k8s.io/autoscaler/cluster-autoscaler/provisioningrequest/client/applyconfiguration/autoscaling.x-k8s.io/v1beta1" + v1beta1 "k8s.io/autoscaler/cluster-autoscaler/apis/provisioningrequest/autoscaling.x-k8s.io/v1beta1" + autoscalingxk8siov1beta1 "k8s.io/autoscaler/cluster-autoscaler/apis/provisioningrequest/client/applyconfiguration/autoscaling.x-k8s.io/v1beta1" testing "k8s.io/client-go/testing" ) diff --git a/cluster-autoscaler/provisioningrequest/client/clientset/versioned/typed/autoscaling.x-k8s.io/v1beta1/generated_expansion.go b/cluster-autoscaler/apis/provisioningrequest/client/clientset/versioned/typed/autoscaling.x-k8s.io/v1beta1/generated_expansion.go similarity index 100% rename from cluster-autoscaler/provisioningrequest/client/clientset/versioned/typed/autoscaling.x-k8s.io/v1beta1/generated_expansion.go rename to cluster-autoscaler/apis/provisioningrequest/client/clientset/versioned/typed/autoscaling.x-k8s.io/v1beta1/generated_expansion.go diff --git a/cluster-autoscaler/provisioningrequest/client/clientset/versioned/typed/autoscaling.x-k8s.io/v1beta1/provisioningrequest.go b/cluster-autoscaler/apis/provisioningrequest/client/clientset/versioned/typed/autoscaling.x-k8s.io/v1beta1/provisioningrequest.go similarity index 97% rename from cluster-autoscaler/provisioningrequest/client/clientset/versioned/typed/autoscaling.x-k8s.io/v1beta1/provisioningrequest.go rename to cluster-autoscaler/apis/provisioningrequest/client/clientset/versioned/typed/autoscaling.x-k8s.io/v1beta1/provisioningrequest.go index b14e8c7f820b..df19e1075a67 100644 --- a/cluster-autoscaler/provisioningrequest/client/clientset/versioned/typed/autoscaling.x-k8s.io/v1beta1/provisioningrequest.go +++ b/cluster-autoscaler/apis/provisioningrequest/client/clientset/versioned/typed/autoscaling.x-k8s.io/v1beta1/provisioningrequest.go @@ -27,9 +27,9 @@ import ( v1 "k8s.io/apimachinery/pkg/apis/meta/v1" types "k8s.io/apimachinery/pkg/types" watch "k8s.io/apimachinery/pkg/watch" - v1beta1 "k8s.io/autoscaler/cluster-autoscaler/provisioningrequest/apis/autoscaling.x-k8s.io/v1beta1" - autoscalingxk8siov1beta1 "k8s.io/autoscaler/cluster-autoscaler/provisioningrequest/client/applyconfiguration/autoscaling.x-k8s.io/v1beta1" - scheme "k8s.io/autoscaler/cluster-autoscaler/provisioningrequest/client/clientset/versioned/scheme" + v1beta1 "k8s.io/autoscaler/cluster-autoscaler/apis/provisioningrequest/autoscaling.x-k8s.io/v1beta1" + autoscalingxk8siov1beta1 "k8s.io/autoscaler/cluster-autoscaler/apis/provisioningrequest/client/applyconfiguration/autoscaling.x-k8s.io/v1beta1" + scheme "k8s.io/autoscaler/cluster-autoscaler/apis/provisioningrequest/client/clientset/versioned/scheme" rest "k8s.io/client-go/rest" ) diff --git a/cluster-autoscaler/provisioningrequest/client/informers/externalversions/autoscaling.x-k8s.io/interface.go b/cluster-autoscaler/apis/provisioningrequest/client/informers/externalversions/autoscaling.x-k8s.io/interface.go similarity index 83% rename from cluster-autoscaler/provisioningrequest/client/informers/externalversions/autoscaling.x-k8s.io/interface.go rename to cluster-autoscaler/apis/provisioningrequest/client/informers/externalversions/autoscaling.x-k8s.io/interface.go index 5e943f6a06bb..ff99b5a2d9db 100644 --- a/cluster-autoscaler/provisioningrequest/client/informers/externalversions/autoscaling.x-k8s.io/interface.go +++ b/cluster-autoscaler/apis/provisioningrequest/client/informers/externalversions/autoscaling.x-k8s.io/interface.go @@ -19,8 +19,8 @@ limitations under the License. package autoscaling import ( - v1beta1 "k8s.io/autoscaler/cluster-autoscaler/provisioningrequest/client/informers/externalversions/autoscaling.x-k8s.io/v1beta1" - internalinterfaces "k8s.io/autoscaler/cluster-autoscaler/provisioningrequest/client/informers/externalversions/internalinterfaces" + v1beta1 "k8s.io/autoscaler/cluster-autoscaler/apis/provisioningrequest/client/informers/externalversions/autoscaling.x-k8s.io/v1beta1" + internalinterfaces "k8s.io/autoscaler/cluster-autoscaler/apis/provisioningrequest/client/informers/externalversions/internalinterfaces" ) // Interface provides access to each of this group's versions. diff --git a/cluster-autoscaler/provisioningrequest/client/informers/externalversions/autoscaling.x-k8s.io/v1beta1/interface.go b/cluster-autoscaler/apis/provisioningrequest/client/informers/externalversions/autoscaling.x-k8s.io/v1beta1/interface.go similarity index 91% rename from cluster-autoscaler/provisioningrequest/client/informers/externalversions/autoscaling.x-k8s.io/v1beta1/interface.go rename to cluster-autoscaler/apis/provisioningrequest/client/informers/externalversions/autoscaling.x-k8s.io/v1beta1/interface.go index cefcfe5baa22..75d067779e80 100644 --- a/cluster-autoscaler/provisioningrequest/client/informers/externalversions/autoscaling.x-k8s.io/v1beta1/interface.go +++ b/cluster-autoscaler/apis/provisioningrequest/client/informers/externalversions/autoscaling.x-k8s.io/v1beta1/interface.go @@ -19,7 +19,7 @@ limitations under the License. package v1beta1 import ( - internalinterfaces "k8s.io/autoscaler/cluster-autoscaler/provisioningrequest/client/informers/externalversions/internalinterfaces" + internalinterfaces "k8s.io/autoscaler/cluster-autoscaler/apis/provisioningrequest/client/informers/externalversions/internalinterfaces" ) // Interface provides access to all the informers in this group version. diff --git a/cluster-autoscaler/provisioningrequest/client/informers/externalversions/autoscaling.x-k8s.io/v1beta1/provisioningrequest.go b/cluster-autoscaler/apis/provisioningrequest/client/informers/externalversions/autoscaling.x-k8s.io/v1beta1/provisioningrequest.go similarity index 89% rename from cluster-autoscaler/provisioningrequest/client/informers/externalversions/autoscaling.x-k8s.io/v1beta1/provisioningrequest.go rename to cluster-autoscaler/apis/provisioningrequest/client/informers/externalversions/autoscaling.x-k8s.io/v1beta1/provisioningrequest.go index 382cb5d03051..0cfad3976415 100644 --- a/cluster-autoscaler/provisioningrequest/client/informers/externalversions/autoscaling.x-k8s.io/v1beta1/provisioningrequest.go +++ b/cluster-autoscaler/apis/provisioningrequest/client/informers/externalversions/autoscaling.x-k8s.io/v1beta1/provisioningrequest.go @@ -25,10 +25,10 @@ import ( v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" watch "k8s.io/apimachinery/pkg/watch" - autoscalingxk8siov1beta1 "k8s.io/autoscaler/cluster-autoscaler/provisioningrequest/apis/autoscaling.x-k8s.io/v1beta1" - versioned "k8s.io/autoscaler/cluster-autoscaler/provisioningrequest/client/clientset/versioned" - internalinterfaces "k8s.io/autoscaler/cluster-autoscaler/provisioningrequest/client/informers/externalversions/internalinterfaces" - v1beta1 "k8s.io/autoscaler/cluster-autoscaler/provisioningrequest/client/listers/autoscaling.x-k8s.io/v1beta1" + autoscalingxk8siov1beta1 "k8s.io/autoscaler/cluster-autoscaler/apis/provisioningrequest/autoscaling.x-k8s.io/v1beta1" + versioned "k8s.io/autoscaler/cluster-autoscaler/apis/provisioningrequest/client/clientset/versioned" + internalinterfaces "k8s.io/autoscaler/cluster-autoscaler/apis/provisioningrequest/client/informers/externalversions/internalinterfaces" + v1beta1 "k8s.io/autoscaler/cluster-autoscaler/apis/provisioningrequest/client/listers/autoscaling.x-k8s.io/v1beta1" cache "k8s.io/client-go/tools/cache" ) diff --git a/cluster-autoscaler/provisioningrequest/client/informers/externalversions/factory.go b/cluster-autoscaler/apis/provisioningrequest/client/informers/externalversions/factory.go similarity index 92% rename from cluster-autoscaler/provisioningrequest/client/informers/externalversions/factory.go rename to cluster-autoscaler/apis/provisioningrequest/client/informers/externalversions/factory.go index fcd0d06ce139..57b06e6c58d2 100644 --- a/cluster-autoscaler/provisioningrequest/client/informers/externalversions/factory.go +++ b/cluster-autoscaler/apis/provisioningrequest/client/informers/externalversions/factory.go @@ -26,9 +26,9 @@ import ( v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" schema "k8s.io/apimachinery/pkg/runtime/schema" - versioned "k8s.io/autoscaler/cluster-autoscaler/provisioningrequest/client/clientset/versioned" - autoscalingxk8sio "k8s.io/autoscaler/cluster-autoscaler/provisioningrequest/client/informers/externalversions/autoscaling.x-k8s.io" - internalinterfaces "k8s.io/autoscaler/cluster-autoscaler/provisioningrequest/client/informers/externalversions/internalinterfaces" + versioned "k8s.io/autoscaler/cluster-autoscaler/apis/provisioningrequest/client/clientset/versioned" + autoscalingxk8sio "k8s.io/autoscaler/cluster-autoscaler/apis/provisioningrequest/client/informers/externalversions/autoscaling.x-k8s.io" + internalinterfaces "k8s.io/autoscaler/cluster-autoscaler/apis/provisioningrequest/client/informers/externalversions/internalinterfaces" cache "k8s.io/client-go/tools/cache" ) @@ -42,6 +42,7 @@ type sharedInformerFactory struct { lock sync.Mutex defaultResync time.Duration customResync map[reflect.Type]time.Duration + transform cache.TransformFunc informers map[reflect.Type]cache.SharedIndexInformer // startedInformers is used for tracking which informers have been started. @@ -80,6 +81,14 @@ func WithNamespace(namespace string) SharedInformerOption { } } +// WithTransform sets a transform on all informers. +func WithTransform(transform cache.TransformFunc) SharedInformerOption { + return func(factory *sharedInformerFactory) *sharedInformerFactory { + factory.transform = transform + return factory + } +} + // NewSharedInformerFactory constructs a new instance of sharedInformerFactory for all namespaces. func NewSharedInformerFactory(client versioned.Interface, defaultResync time.Duration) SharedInformerFactory { return NewSharedInformerFactoryWithOptions(client, defaultResync) @@ -184,6 +193,7 @@ func (f *sharedInformerFactory) InformerFor(obj runtime.Object, newFunc internal } informer = newFunc(f.client, resyncPeriod) + informer.SetTransform(f.transform) f.informers[informerType] = informer return informer diff --git a/cluster-autoscaler/provisioningrequest/client/informers/externalversions/generic.go b/cluster-autoscaler/apis/provisioningrequest/client/informers/externalversions/generic.go similarity index 95% rename from cluster-autoscaler/provisioningrequest/client/informers/externalversions/generic.go rename to cluster-autoscaler/apis/provisioningrequest/client/informers/externalversions/generic.go index bc3f61b718aa..94ac828160a2 100644 --- a/cluster-autoscaler/provisioningrequest/client/informers/externalversions/generic.go +++ b/cluster-autoscaler/apis/provisioningrequest/client/informers/externalversions/generic.go @@ -22,7 +22,7 @@ import ( "fmt" schema "k8s.io/apimachinery/pkg/runtime/schema" - v1beta1 "k8s.io/autoscaler/cluster-autoscaler/provisioningrequest/apis/autoscaling.x-k8s.io/v1beta1" + v1beta1 "k8s.io/autoscaler/cluster-autoscaler/apis/provisioningrequest/autoscaling.x-k8s.io/v1beta1" cache "k8s.io/client-go/tools/cache" ) diff --git a/cluster-autoscaler/provisioningrequest/client/informers/externalversions/internalinterfaces/factory_interfaces.go b/cluster-autoscaler/apis/provisioningrequest/client/informers/externalversions/internalinterfaces/factory_interfaces.go similarity index 92% rename from cluster-autoscaler/provisioningrequest/client/informers/externalversions/internalinterfaces/factory_interfaces.go rename to cluster-autoscaler/apis/provisioningrequest/client/informers/externalversions/internalinterfaces/factory_interfaces.go index e77b74203cc9..1c9d3baed19d 100644 --- a/cluster-autoscaler/provisioningrequest/client/informers/externalversions/internalinterfaces/factory_interfaces.go +++ b/cluster-autoscaler/apis/provisioningrequest/client/informers/externalversions/internalinterfaces/factory_interfaces.go @@ -23,7 +23,7 @@ import ( v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" - versioned "k8s.io/autoscaler/cluster-autoscaler/provisioningrequest/client/clientset/versioned" + versioned "k8s.io/autoscaler/cluster-autoscaler/apis/provisioningrequest/client/clientset/versioned" cache "k8s.io/client-go/tools/cache" ) diff --git a/cluster-autoscaler/provisioningrequest/client/listers/autoscaling.x-k8s.io/v1beta1/expansion_generated.go b/cluster-autoscaler/apis/provisioningrequest/client/listers/autoscaling.x-k8s.io/v1beta1/expansion_generated.go similarity index 100% rename from cluster-autoscaler/provisioningrequest/client/listers/autoscaling.x-k8s.io/v1beta1/expansion_generated.go rename to cluster-autoscaler/apis/provisioningrequest/client/listers/autoscaling.x-k8s.io/v1beta1/expansion_generated.go diff --git a/cluster-autoscaler/provisioningrequest/client/listers/autoscaling.x-k8s.io/v1beta1/provisioningrequest.go b/cluster-autoscaler/apis/provisioningrequest/client/listers/autoscaling.x-k8s.io/v1beta1/provisioningrequest.go similarity index 97% rename from cluster-autoscaler/provisioningrequest/client/listers/autoscaling.x-k8s.io/v1beta1/provisioningrequest.go rename to cluster-autoscaler/apis/provisioningrequest/client/listers/autoscaling.x-k8s.io/v1beta1/provisioningrequest.go index 7737e1a5ccfa..4073183123cc 100644 --- a/cluster-autoscaler/provisioningrequest/client/listers/autoscaling.x-k8s.io/v1beta1/provisioningrequest.go +++ b/cluster-autoscaler/apis/provisioningrequest/client/listers/autoscaling.x-k8s.io/v1beta1/provisioningrequest.go @@ -21,7 +21,7 @@ package v1beta1 import ( "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/labels" - v1beta1 "k8s.io/autoscaler/cluster-autoscaler/provisioningrequest/apis/autoscaling.x-k8s.io/v1beta1" + v1beta1 "k8s.io/autoscaler/cluster-autoscaler/apis/provisioningrequest/autoscaling.x-k8s.io/v1beta1" "k8s.io/client-go/tools/cache" ) diff --git a/cluster-autoscaler/cloudprovider/alicloud/alibaba-cloud-sdk-go/sdk/utils/utils.go b/cluster-autoscaler/cloudprovider/alicloud/alibaba-cloud-sdk-go/sdk/utils/utils.go index 68da41409fa9..32a18e607a4a 100644 --- a/cluster-autoscaler/cloudprovider/alicloud/alibaba-cloud-sdk-go/sdk/utils/utils.go +++ b/cluster-autoscaler/cloudprovider/alicloud/alibaba-cloud-sdk-go/sdk/utils/utils.go @@ -22,7 +22,7 @@ import ( "encoding/hex" "encoding/json" "fmt" - "github.com/satori/go.uuid" + "github.com/google/uuid" "net/url" "reflect" "strconv" @@ -37,8 +37,9 @@ var ( // GetUUIDV4 returns uuidHex func GetUUIDV4() (uuidHex string) { - uuidV4 := uuid.NewV4() - uuidHex = hex.EncodeToString(uuidV4.Bytes()) + uuidV4 := uuid.New() + binaryUUID, _ := uuidV4.MarshalBinary() + uuidHex = hex.EncodeToString(binaryUUID) return } diff --git a/cluster-autoscaler/cloudprovider/alicloud/alicloud_auto_scaling_group.go b/cluster-autoscaler/cloudprovider/alicloud/alicloud_auto_scaling_group.go index bc1fd7be798e..dd0c9a7eb478 100644 --- a/cluster-autoscaler/cloudprovider/alicloud/alicloud_auto_scaling_group.go +++ b/cluster-autoscaler/cloudprovider/alicloud/alicloud_auto_scaling_group.go @@ -69,6 +69,11 @@ func (asg *Asg) IncreaseSize(delta int) error { return asg.manager.SetAsgSize(asg, size+int64(delta)) } +// AtomicIncreaseSize is not implemented. +func (asg *Asg) AtomicIncreaseSize(delta int) error { + return cloudprovider.ErrNotImplemented +} + // DecreaseTargetSize decreases the target size of the node group. This function // doesn't permit to delete any existing node and can be used only to reduce the // request for new nodes that have not been yet fulfilled. Delta should be negative. diff --git a/cluster-autoscaler/cloudprovider/alicloud/alicloud_cloud_provider.go b/cluster-autoscaler/cloudprovider/alicloud/alicloud_cloud_provider.go index 09cc002e7ecd..c8513c7bf964 100644 --- a/cluster-autoscaler/cloudprovider/alicloud/alicloud_cloud_provider.go +++ b/cluster-autoscaler/cloudprovider/alicloud/alicloud_cloud_provider.go @@ -126,6 +126,10 @@ func (ali *aliCloudProvider) NodeGroups() []cloudprovider.NodeGroup { // NodeGroupForNode returns the node group for the given node. func (ali *aliCloudProvider) NodeGroupForNode(node *apiv1.Node) (cloudprovider.NodeGroup, error) { + if len(node.Spec.ProviderID) == 0 { + klog.Warningf("Node %v has no providerId", node.Name) + return nil, nil + } instanceId, err := ecsInstanceIdFromProviderId(node.Spec.ProviderID) if err != nil { klog.Errorf("failed to get instance Id from provider Id:%s,because of %s", node.Spec.ProviderID, err.Error()) diff --git a/cluster-autoscaler/cloudprovider/aws/README.md b/cluster-autoscaler/cloudprovider/aws/README.md index 8f12fc0a05a5..ea6cc0a7d7eb 100644 --- a/cluster-autoscaler/cloudprovider/aws/README.md +++ b/cluster-autoscaler/cloudprovider/aws/README.md @@ -49,8 +49,11 @@ should be updated to restrict the resources/add conditionals: "autoscaling:DescribeLaunchConfigurations", "autoscaling:DescribeScalingActivities", "autoscaling:DescribeTags", + "ec2:DescribeImages", "ec2:DescribeInstanceTypes", - "ec2:DescribeLaunchTemplateVersions" + "ec2:DescribeLaunchTemplateVersions", + "ec2:GetInstanceTypesFromInstanceRequirements", + "eks:DescribeNodegroup" ], "Resource": ["*"] }, @@ -58,10 +61,7 @@ should be updated to restrict the resources/add conditionals: "Effect": "Allow", "Action": [ "autoscaling:SetDesiredCapacity", - "autoscaling:TerminateInstanceInAutoScalingGroup", - "ec2:DescribeImages", - "ec2:GetInstanceTypesFromInstanceRequirements", - "eks:DescribeNodegroup" + "autoscaling:TerminateInstanceInAutoScalingGroup" ], "Resource": ["*"] } @@ -247,7 +247,7 @@ as string). Currently supported autoscaling options (and example values) are: * `k8s.io/cluster-autoscaler/node-template/autoscaling-options/scaledownunreadytime`: `20m0s` (overrides `--scale-down-unready-time` value for that specific ASG) * `k8s.io/cluster-autoscaler/node-template/autoscaling-options/ignoredaemonsetsutilization`: `true` - (overrides `--ignore-daemonsets-utilization` value for that specific ASG) + (overrides `--ignore-daemonsets-utilization` value for that specific ASG) **NOTE:** It is your responsibility to ensure such labels and/or taints are applied via the node's kubelet configuration at startup. Cluster Autoscaler will not set the node taints for you. @@ -507,12 +507,14 @@ Please note: it is also possible to mount the cloud config file from host: `--scale-down-delay-after-delete`, and `--scale-down-delay-after-failure` flag. E.g. `--scale-down-delay-after-add=5m` to decrease the scale down delay to 5 minutes after a node has been added. -- If you're running multiple ASGs, the `--expander` flag supports three options: - `random`, `most-pods` and `least-waste`. `random` will expand a random ASG on - scale up. `most-pods` will scale up the ASG that will schedule the most amount - of pods. `least-waste` will expand the ASG that will waste the least amount of - CPU/MEM resources. In the event of a tie, cluster autoscaler will fall back to - `random`. +- If you're running multiple ASGs, the `--expander` flag supports five options: + `random`, `most-pods`, `least-waste`, `priority`, and `grpc`. `random` will + expand a random ASG on scale up. `most-pods` will scale up the ASG that will + schedule the most amount of pods. `least-waste` will expand the ASG that will + waste the least amount of CPU/MEM resources. In the event of a tie, cluster + autoscaler will fall back to`random`. The `priority` expander lets you define + a custom priority ranking in a ConfigMap for selecting ASGs, and the `grpc` + expander allows you to write your own expansion logic. - If you're managing your own kubelets, they need to be started with the `--provider-id` flag. The provider id has the format `aws:////`, e.g. diff --git a/cluster-autoscaler/cloudprovider/aws/auto_scaling_groups.go b/cluster-autoscaler/cloudprovider/aws/auto_scaling_groups.go index 284b5b5c0b32..4667e285b153 100644 --- a/cluster-autoscaler/cloudprovider/aws/auto_scaling_groups.go +++ b/cluster-autoscaler/cloudprovider/aws/auto_scaling_groups.go @@ -141,8 +141,6 @@ func (m *asgCache) register(asg *asg) *asg { return existing } - klog.V(4).Infof("Updating ASG %s", asg.AwsRef.Name) - // Explicit registered groups should always use the manually provided min/max // values and the not the ones returned by the API if !m.explicitlyConfigured[asg.AwsRef] { diff --git a/cluster-autoscaler/cloudprovider/aws/aws_cloud_provider.go b/cluster-autoscaler/cloudprovider/aws/aws_cloud_provider.go index f5ce3f8199de..f515530b7ccb 100644 --- a/cluster-autoscaler/cloudprovider/aws/aws_cloud_provider.go +++ b/cluster-autoscaler/cloudprovider/aws/aws_cloud_provider.go @@ -280,6 +280,11 @@ func (ng *AwsNodeGroup) IncreaseSize(delta int) error { return ng.awsManager.SetAsgSize(ng.asg, size+delta) } +// AtomicIncreaseSize is not implemented. +func (ng *AwsNodeGroup) AtomicIncreaseSize(delta int) error { + return cloudprovider.ErrNotImplemented +} + // DecreaseTargetSize decreases the target size of the node group. This function // doesn't permit to delete any existing node and can be used only to reduce the // request for new nodes that have not been yet fulfilled. Delta should be negative. diff --git a/cluster-autoscaler/cloudprovider/aws/ec2_instance_types.go b/cluster-autoscaler/cloudprovider/aws/ec2_instance_types.go index 4781bbbfd073..f71770c82d1b 100644 --- a/cluster-autoscaler/cloudprovider/aws/ec2_instance_types.go +++ b/cluster-autoscaler/cloudprovider/aws/ec2_instance_types.go @@ -28,7 +28,7 @@ type InstanceType struct { } // StaticListLastUpdateTime is a string declaring the last time the static list was updated. -var StaticListLastUpdateTime = "2023-11-29" +var StaticListLastUpdateTime = "2024-04-08" // InstanceTypes is a map of ec2 resources var InstanceTypes = map[string]*InstanceType{ @@ -1600,6 +1600,76 @@ var InstanceTypes = map[string]*InstanceType{ GPU: 1, Architecture: "arm64", }, + "g6.12xlarge": { + InstanceType: "g6.12xlarge", + VCPU: 48, + MemoryMb: 196608, + GPU: 4, + Architecture: "amd64", + }, + "g6.16xlarge": { + InstanceType: "g6.16xlarge", + VCPU: 64, + MemoryMb: 262144, + GPU: 1, + Architecture: "amd64", + }, + "g6.24xlarge": { + InstanceType: "g6.24xlarge", + VCPU: 96, + MemoryMb: 393216, + GPU: 4, + Architecture: "amd64", + }, + "g6.2xlarge": { + InstanceType: "g6.2xlarge", + VCPU: 8, + MemoryMb: 32768, + GPU: 1, + Architecture: "amd64", + }, + "g6.48xlarge": { + InstanceType: "g6.48xlarge", + VCPU: 192, + MemoryMb: 786432, + GPU: 8, + Architecture: "amd64", + }, + "g6.4xlarge": { + InstanceType: "g6.4xlarge", + VCPU: 16, + MemoryMb: 65536, + GPU: 1, + Architecture: "amd64", + }, + "g6.8xlarge": { + InstanceType: "g6.8xlarge", + VCPU: 32, + MemoryMb: 131072, + GPU: 1, + Architecture: "amd64", + }, + "g6.xlarge": { + InstanceType: "g6.xlarge", + VCPU: 4, + MemoryMb: 16384, + GPU: 1, + Architecture: "amd64", + }, + "gr6.4xlarge": { + InstanceType: "gr6.4xlarge", + VCPU: 16, + MemoryMb: 131072, + GPU: 1, + Architecture: "amd64", + }, + "gr6.8xlarge": { + InstanceType: "gr6.8xlarge", + VCPU: 32, + MemoryMb: 262144, + GPU: 1, + Architecture: "amd64", + }, "h1.16xlarge": { InstanceType: "h1.16xlarge", VCPU: 64, diff --git a/cluster-autoscaler/cloudprovider/aws/examples/cluster-autoscaler-run-on-control-plane.yaml b/cluster-autoscaler/cloudprovider/aws/examples/cluster-autoscaler-run-on-control-plane.yaml index 9cda4af03e5b..1bc986ce19d5 100644 --- a/cluster-autoscaler/cloudprovider/aws/examples/cluster-autoscaler-run-on-control-plane.yaml +++ b/cluster-autoscaler/cloudprovider/aws/examples/cluster-autoscaler-run-on-control-plane.yaml @@ -149,9 +149,9 @@ spec: - effect: NoSchedule operator: "Equal" value: "true" - key: node-role.kubernetes.io/master + key: node-role.kubernetes.io/control-plane nodeSelector: - kubernetes.io/role: master + kubernetes.io/role: control-plane containers: - image: registry.k8s.io/autoscaling/cluster-autoscaler:v1.26.2 name: cluster-autoscaler diff --git a/cluster-autoscaler/cloudprovider/azure/azure_agent_pool.go b/cluster-autoscaler/cloudprovider/azure/azure_agent_pool.go index f8d60aa99968..a3e714fc07bc 100644 --- a/cluster-autoscaler/cloudprovider/azure/azure_agent_pool.go +++ b/cluster-autoscaler/cloudprovider/azure/azure_agent_pool.go @@ -335,6 +335,11 @@ func (as *AgentPool) IncreaseSize(delta int) error { return realError } +// AtomicIncreaseSize is not implemented. +func (as *AgentPool) AtomicIncreaseSize(delta int) error { + return cloudprovider.ErrNotImplemented +} + // DecreaseTargetSize decreases the target size of the node group. This function // doesn't permit to delete any existing node and can be used only to reduce the // request for new nodes that have not been yet fulfilled. Delta should be negative. diff --git a/cluster-autoscaler/cloudprovider/azure/azure_cache.go b/cluster-autoscaler/cloudprovider/azure/azure_cache.go index 1beb7b2b8feb..711e98cb8236 100644 --- a/cluster-autoscaler/cloudprovider/azure/azure_cache.go +++ b/cluster-autoscaler/cloudprovider/azure/azure_cache.go @@ -51,7 +51,6 @@ type azureCache struct { // Cache content. resourceGroup string vmType string - vmsPoolSet map[string]struct{} // track the nodepools that're vms pool scaleSets map[string]compute.VirtualMachineScaleSet virtualMachines map[string][]compute.VirtualMachine registeredNodeGroups []cloudprovider.NodeGroup @@ -68,7 +67,6 @@ func newAzureCache(client *azClient, cacheTTL time.Duration, resourceGroup, vmTy refreshInterval: cacheTTL, resourceGroup: resourceGroup, vmType: vmType, - vmsPoolSet: make(map[string]struct{}), scaleSets: make(map[string]compute.VirtualMachineScaleSet), virtualMachines: make(map[string][]compute.VirtualMachine), registeredNodeGroups: make([]cloudprovider.NodeGroup, 0), @@ -89,13 +87,6 @@ func newAzureCache(client *azClient, cacheTTL time.Duration, resourceGroup, vmTy return cache, nil } -func (m *azureCache) getVMsPoolSet() map[string]struct{} { - m.mutex.Lock() - defer m.mutex.Unlock() - - return m.vmsPoolSet -} - func (m *azureCache) getVirtualMachines() map[string][]compute.VirtualMachine { m.mutex.Lock() defer m.mutex.Unlock() @@ -174,78 +165,54 @@ func (m *azureCache) fetchAzureResources() error { m.mutex.Lock() defer m.mutex.Unlock() - // fetch all the resources since CAS may be operating on mixed nodepools - // including both VMSS and VMs pools - vmssResult, err := m.fetchScaleSets() - if err == nil { - m.scaleSets = vmssResult - } else { - return err - } - - vmResult, vmsPoolSet, err := m.fetchVirtualMachines() - if err == nil { - m.virtualMachines = vmResult - m.vmsPoolSet = vmsPoolSet - } else { - return err + switch m.vmType { + case vmTypeVMSS: + // List all VMSS in the RG. + vmssResult, err := m.fetchScaleSets() + if err == nil { + m.scaleSets = vmssResult + } else { + return err + } + case vmTypeStandard: + // List all VMs in the RG. + vmResult, err := m.fetchVirtualMachines() + if err == nil { + m.virtualMachines = vmResult + } else { + return err + } } return nil } -const ( - legacyAgentpoolNameTag = "poolName" - agentpoolNameTag = "aks-managed-poolName" - agentpoolTypeTag = "aks-managed-agentpool-type" - vmsPoolType = "VirtualMachines" -) - // fetchVirtualMachines returns the updated list of virtual machines in the config resource group using the Azure API. -func (m *azureCache) fetchVirtualMachines() (map[string][]compute.VirtualMachine, map[string]struct{}, error) { +func (m *azureCache) fetchVirtualMachines() (map[string][]compute.VirtualMachine, error) { ctx, cancel := getContextWithCancel() defer cancel() result, err := m.azClient.virtualMachinesClient.List(ctx, m.resourceGroup) if err != nil { klog.Errorf("VirtualMachinesClient.List in resource group %q failed: %v", m.resourceGroup, err) - return nil, nil, err.Error() + return nil, err.Error() } instances := make(map[string][]compute.VirtualMachine) - // track the nodepools that're vms pools - vmsPoolSet := make(map[string]struct{}) for _, instance := range result { if instance.Tags == nil { continue } tags := instance.Tags - vmPoolName := tags[agentpoolNameTag] - // fall back to legacy tag name if not found - if vmPoolName == nil { - vmPoolName = tags[legacyAgentpoolNameTag] - } - + vmPoolName := tags["poolName"] if vmPoolName == nil { continue } instances[to.String(vmPoolName)] = append(instances[to.String(vmPoolName)], instance) - - // if the nodepool is already in the map, skip it - if _, ok := vmsPoolSet[to.String(vmPoolName)]; ok { - continue - } - - // nodes from vms pool will have tag "aks-managed-agentpool-type" set to "VirtualMachines" - if agnetpoolType := tags[agentpoolTypeTag]; agnetpoolType != nil { - if strings.EqualFold(to.String(agnetpoolType), vmsPoolType) { - vmsPoolSet[to.String(vmPoolName)] = struct{}{} - } - } } - return instances, vmsPoolSet, nil + return instances, nil } // fetchScaleSets returns the updated list of scale sets in the config resource group using the Azure API. @@ -356,7 +323,6 @@ func (m *azureCache) getAutoscalingOptions(ref azureRef) map[string]string { // FindForInstance returns node group of the given Instance func (m *azureCache) FindForInstance(instance *azureRef, vmType string) (cloudprovider.NodeGroup, error) { - vmsPoolSet := m.getVMsPoolSet() m.mutex.Lock() defer m.mutex.Unlock() @@ -374,8 +340,7 @@ func (m *azureCache) FindForInstance(instance *azureRef, vmType string) (cloudpr return nil, nil } - // cluster with vmss pool only - if vmType == vmTypeVMSS && len(vmsPoolSet) == 0 { + if vmType == vmTypeVMSS { if m.areAllScaleSetsUniform() { // Omit virtual machines not managed by vmss only in case of uniform scale set. if ok := virtualMachineRE.Match([]byte(inst.Name)); ok { diff --git a/cluster-autoscaler/cloudprovider/azure/azure_cloud_provider.go b/cluster-autoscaler/cloudprovider/azure/azure_cloud_provider.go index 98b0ed185da3..744873284e6d 100644 --- a/cluster-autoscaler/cloudprovider/azure/azure_cloud_provider.go +++ b/cluster-autoscaler/cloudprovider/azure/azure_cloud_provider.go @@ -19,6 +19,7 @@ package azure import ( "io" "os" + "strings" apiv1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/resource" @@ -105,6 +106,12 @@ func (azure *AzureCloudProvider) NodeGroupForNode(node *apiv1.Node) (cloudprovid klog.V(6).Infof("Skipping the search for node group for the node '%s' because it has no spec.ProviderID", node.ObjectMeta.Name) return nil, nil } + + if !strings.HasPrefix(node.Spec.ProviderID, "azure://") { + klog.V(6).Infof("Wrong azure ProviderID for node %v, skipped", node.Name) + return nil, nil + } + klog.V(6).Infof("Searching for node group for the node: %s\n", node.Spec.ProviderID) ref := &azureRef{ Name: node.Spec.ProviderID, diff --git a/cluster-autoscaler/cloudprovider/azure/azure_cloud_provider_test.go b/cluster-autoscaler/cloudprovider/azure/azure_cloud_provider_test.go index a7c52f56d11e..6038db4b5c43 100644 --- a/cluster-autoscaler/cloudprovider/azure/azure_cloud_provider_test.go +++ b/cluster-autoscaler/cloudprovider/azure/azure_cloud_provider_test.go @@ -44,9 +44,6 @@ func newTestAzureManager(t *testing.T) *AzureManager { mockVMSSClient.EXPECT().List(gomock.Any(), "rg").Return(expectedScaleSets, nil).AnyTimes() mockVMSSVMClient := mockvmssvmclient.NewMockInterface(ctrl) mockVMSSVMClient.EXPECT().List(gomock.Any(), "rg", "test-vmss", gomock.Any()).Return(expectedVMSSVMs, nil).AnyTimes() - mockVMClient := mockvmclient.NewMockInterface(ctrl) - expectedVMs := newTestVMList(3) - mockVMClient.EXPECT().List(gomock.Any(), "rg").Return(expectedVMs, nil).AnyTimes() manager := &AzureManager{ env: azure.PublicCloud, @@ -56,11 +53,11 @@ func newTestAzureManager(t *testing.T) *AzureManager { VMType: vmTypeVMSS, MaxDeploymentsCount: 2, Deployment: "deployment", + EnableForceDelete: true, }, azClient: &azClient{ virtualMachineScaleSetsClient: mockVMSSClient, virtualMachineScaleSetVMsClient: mockVMSSVMClient, - virtualMachinesClient: mockVMClient, deploymentsClient: &DeploymentsClientMock{ FakeStore: map[string]resources.DeploymentExtended{ "deployment": { @@ -119,68 +116,9 @@ func TestNodeGroups(t *testing.T) { assert.Equal(t, len(provider.NodeGroups()), 0) registered := provider.azureManager.RegisterNodeGroup( - newTestScaleSet(provider.azureManager, "test-asg"), - ) - assert.True(t, registered) - registered = provider.azureManager.RegisterNodeGroup( - newTestVMsPool(provider.azureManager, "test-vms-pool"), - ) - assert.True(t, registered) - assert.Equal(t, len(provider.NodeGroups()), 2) -} - -func TestMixedNodeGroups(t *testing.T) { - ctrl := gomock.NewController(t) - provider := newTestProvider(t) - mockVMSSClient := mockvmssclient.NewMockInterface(ctrl) - mockVMClient := mockvmclient.NewMockInterface(ctrl) - mockVMSSVMClient := mockvmssvmclient.NewMockInterface(ctrl) - provider.azureManager.azClient.virtualMachinesClient = mockVMClient - provider.azureManager.azClient.virtualMachineScaleSetsClient = mockVMSSClient - provider.azureManager.azClient.virtualMachineScaleSetVMsClient = mockVMSSVMClient - - expectedScaleSets := newTestVMSSList(3, "test-asg", "eastus", compute.Uniform) - expectedVMsPoolVMs := newTestVMsPoolVMList(3) - expectedVMSSVMs := newTestVMSSVMList(3) - - mockVMSSClient.EXPECT().List(gomock.Any(), provider.azureManager.config.ResourceGroup).Return(expectedScaleSets, nil).AnyTimes() - mockVMClient.EXPECT().List(gomock.Any(), provider.azureManager.config.ResourceGroup).Return(expectedVMsPoolVMs, nil).AnyTimes() - mockVMSSVMClient.EXPECT().List(gomock.Any(), provider.azureManager.config.ResourceGroup, "test-asg", gomock.Any()).Return(expectedVMSSVMs, nil).AnyTimes() - - assert.Equal(t, len(provider.NodeGroups()), 0) - registered := provider.azureManager.RegisterNodeGroup( - newTestScaleSet(provider.azureManager, "test-asg"), - ) - provider.azureManager.explicitlyConfigured["test-asg"] = true - assert.True(t, registered) - - registered = provider.azureManager.RegisterNodeGroup( - newTestVMsPool(provider.azureManager, "test-vms-pool"), - ) - provider.azureManager.explicitlyConfigured["test-vms-pool"] = true + newTestScaleSet(provider.azureManager, "test-asg")) assert.True(t, registered) - assert.Equal(t, len(provider.NodeGroups()), 2) - - // refresh cache - provider.azureManager.forceRefresh() - - // node from vmss pool - node := newApiNode(compute.Uniform, 0) - group, err := provider.NodeGroupForNode(node) - assert.NoError(t, err) - assert.NotNil(t, group, "Group should not be nil") - assert.Equal(t, group.Id(), "test-asg") - assert.Equal(t, group.MinSize(), 1) - assert.Equal(t, group.MaxSize(), 5) - - // node from vms pool - vmsPoolNode := newVMsNode(0) - group, err = provider.NodeGroupForNode(vmsPoolNode) - assert.NoError(t, err) - assert.NotNil(t, group, "Group should not be nil") - assert.Equal(t, group.Id(), "test-vms-pool") - assert.Equal(t, group.MinSize(), 3) - assert.Equal(t, group.MaxSize(), 10) + assert.Equal(t, len(provider.NodeGroups()), 1) } func TestNodeGroupForNode(t *testing.T) { @@ -198,9 +136,6 @@ func TestNodeGroupForNode(t *testing.T) { mockVMSSClient := mockvmssclient.NewMockInterface(ctrl) mockVMSSClient.EXPECT().List(gomock.Any(), provider.azureManager.config.ResourceGroup).Return(expectedScaleSets, nil) provider.azureManager.azClient.virtualMachineScaleSetsClient = mockVMSSClient - mockVMClient := mockvmclient.NewMockInterface(ctrl) - provider.azureManager.azClient.virtualMachinesClient = mockVMClient - mockVMClient.EXPECT().List(gomock.Any(), provider.azureManager.config.ResourceGroup).Return(expectedVMs, nil).AnyTimes() if orchMode == compute.Uniform { @@ -209,8 +144,11 @@ func TestNodeGroupForNode(t *testing.T) { provider.azureManager.azClient.virtualMachineScaleSetVMsClient = mockVMSSVMClient } else { + mockVMClient := mockvmclient.NewMockInterface(ctrl) provider.azureManager.config.EnableVmssFlex = true mockVMClient.EXPECT().ListVmssFlexVMsWithoutInstanceView(gomock.Any(), "test-asg").Return(expectedVMs, nil).AnyTimes() + provider.azureManager.azClient.virtualMachinesClient = mockVMClient + } registered := provider.azureManager.RegisterNodeGroup( diff --git a/cluster-autoscaler/cloudprovider/azure/azure_config.go b/cluster-autoscaler/cloudprovider/azure/azure_config.go index 9fe559d07e14..2f6f5f279ab2 100644 --- a/cluster-autoscaler/cloudprovider/azure/azure_config.go +++ b/cluster-autoscaler/cloudprovider/azure/azure_config.go @@ -130,6 +130,9 @@ type Config struct { CloudProviderBackoffDuration int `json:"cloudProviderBackoffDuration,omitempty" yaml:"cloudProviderBackoffDuration,omitempty"` CloudProviderBackoffJitter float64 `json:"cloudProviderBackoffJitter,omitempty" yaml:"cloudProviderBackoffJitter,omitempty"` + // EnableForceDelete defines whether to enable force deletion on the APIs + EnableForceDelete bool `json:"enableForceDelete,omitempty" yaml:"enableForceDelete,omitempty"` + // EnableDynamicInstanceList defines whether to enable dynamic instance workflow for instance information check EnableDynamicInstanceList bool `json:"enableDynamicInstanceList,omitempty" yaml:"enableDynamicInstanceList,omitempty"` @@ -303,6 +306,13 @@ func BuildAzureConfig(configReader io.Reader) (*Config, error) { } } + if enableForceDelete := os.Getenv("AZURE_ENABLE_FORCE_DELETE"); enableForceDelete != "" { + cfg.EnableForceDelete, err = strconv.ParseBool(enableForceDelete) + if err != nil { + return nil, fmt.Errorf("failed to parse AZURE_ENABLE_FORCE_DELETE: %q, %v", enableForceDelete, err) + } + } + err = initializeCloudProviderRateLimitConfig(&cfg.CloudProviderRateLimitConfig) if err != nil { return nil, err diff --git a/cluster-autoscaler/cloudprovider/azure/azure_manager.go b/cluster-autoscaler/cloudprovider/azure/azure_manager.go index 637b5a897805..daa449f3cf09 100644 --- a/cluster-autoscaler/cloudprovider/azure/azure_manager.go +++ b/cluster-autoscaler/cloudprovider/azure/azure_manager.go @@ -26,10 +26,13 @@ import ( "time" "github.com/Azure/go-autorest/autorest/azure" + "k8s.io/apimachinery/pkg/util/wait" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" "k8s.io/autoscaler/cluster-autoscaler/config" "k8s.io/autoscaler/cluster-autoscaler/config/dynamic" + kretry "k8s.io/client-go/util/retry" klog "k8s.io/klog/v2" + "sigs.k8s.io/cloud-provider-azure/pkg/retry" ) const ( @@ -106,7 +109,18 @@ func createAzureManagerInternal(configReader io.Reader, discoveryOpts cloudprovi return nil, err } - if err := manager.forceRefresh(); err != nil { + retryBackoff := wait.Backoff{ + Duration: 2 * time.Minute, + Factor: 1.0, + Jitter: 0.1, + Steps: 6, + Cap: 10 * time.Minute, + } + + err = kretry.OnError(retryBackoff, retry.IsErrorRetriable, func() (err error) { + return manager.forceRefresh() + }) + if err != nil { return nil, err } @@ -147,11 +161,6 @@ func (m *AzureManager) buildNodeGroupFromSpec(spec string) (cloudprovider.NodeGr return nil, fmt.Errorf("failed to parse node group spec: %v", err) } - vmsPoolSet := m.azureCache.getVMsPoolSet() - if _, ok := vmsPoolSet[s.Name]; ok { - return NewVMsPool(s, m), nil - } - switch m.config.VMType { case vmTypeStandard: return NewAgentPool(s, m) diff --git a/cluster-autoscaler/cloudprovider/azure/azure_manager_test.go b/cluster-autoscaler/cloudprovider/azure/azure_manager_test.go index 83ca223e059b..3bad46343f50 100644 --- a/cluster-autoscaler/cloudprovider/azure/azure_manager_test.go +++ b/cluster-autoscaler/cloudprovider/azure/azure_manager_test.go @@ -144,7 +144,6 @@ func TestCreateAzureManagerValidConfig(t *testing.T) { mockVMClient := mockvmclient.NewMockInterface(ctrl) mockVMSSClient := mockvmssclient.NewMockInterface(ctrl) mockVMSSClient.EXPECT().List(gomock.Any(), "fakeId").Return([]compute.VirtualMachineScaleSet{}, nil).Times(2) - mockVMClient.EXPECT().List(gomock.Any(), "fakeId").Return([]compute.VirtualMachine{}, nil).Times(2) mockAzClient := &azClient{ virtualMachinesClient: mockVMClient, virtualMachineScaleSetsClient: mockVMSSClient, @@ -227,7 +226,6 @@ func TestCreateAzureManagerValidConfigForStandardVMType(t *testing.T) { mockVMClient := mockvmclient.NewMockInterface(ctrl) mockVMClient.EXPECT().List(gomock.Any(), "fakeId").Return([]compute.VirtualMachine{}, nil).Times(2) mockVMSSClient := mockvmssclient.NewMockInterface(ctrl) - mockVMSSClient.EXPECT().List(gomock.Any(), "fakeId").Return([]compute.VirtualMachineScaleSet{}, nil).Times(2) mockAzClient := &azClient{ virtualMachinesClient: mockVMClient, virtualMachineScaleSetsClient: mockVMSSClient, @@ -340,7 +338,6 @@ func TestCreateAzureManagerWithNilConfig(t *testing.T) { mockVMClient := mockvmclient.NewMockInterface(ctrl) mockVMSSClient := mockvmssclient.NewMockInterface(ctrl) mockVMSSClient.EXPECT().List(gomock.Any(), "resourceGroup").Return([]compute.VirtualMachineScaleSet{}, nil).AnyTimes() - mockVMClient.EXPECT().List(gomock.Any(), "resourceGroup").Return([]compute.VirtualMachine{}, nil).AnyTimes() mockAzClient := &azClient{ virtualMachinesClient: mockVMClient, virtualMachineScaleSetsClient: mockVMSSClient, @@ -666,10 +663,7 @@ func TestGetFilteredAutoscalingGroupsVmss(t *testing.T) { expectedScaleSets := []compute.VirtualMachineScaleSet{fakeVMSSWithTags(vmssName, map[string]*string{vmssTag: &vmssTagValue, "min": &min, "max": &max})} mockVMSSClient := mockvmssclient.NewMockInterface(ctrl) mockVMSSClient.EXPECT().List(gomock.Any(), manager.config.ResourceGroup).Return(expectedScaleSets, nil).AnyTimes() - mockVMClient := mockvmclient.NewMockInterface(ctrl) - mockVMClient.EXPECT().List(gomock.Any(), manager.config.ResourceGroup).Return([]compute.VirtualMachine{}, nil).AnyTimes() manager.azClient.virtualMachineScaleSetsClient = mockVMSSClient - manager.azClient.virtualMachinesClient = mockVMClient err := manager.forceRefresh() assert.NoError(t, err) @@ -685,6 +679,7 @@ func TestGetFilteredAutoscalingGroupsVmss(t *testing.T) { minSize: minVal, maxSize: maxVal, manager: manager, + enableForceDelete: manager.config.EnableForceDelete, curSize: 3, sizeRefreshPeriod: manager.azureCache.refreshInterval, instancesRefreshPeriod: defaultVmssInstancesRefreshPeriod, @@ -742,9 +737,6 @@ func TestFetchAutoAsgsVmss(t *testing.T) { mockVMSSVMClient := mockvmssvmclient.NewMockInterface(ctrl) mockVMSSVMClient.EXPECT().List(gomock.Any(), manager.config.ResourceGroup, vmssName, gomock.Any()).Return(expectedVMSSVMs, nil).AnyTimes() manager.azClient.virtualMachineScaleSetVMsClient = mockVMSSVMClient - mockVMClient := mockvmclient.NewMockInterface(ctrl) - manager.azClient.virtualMachinesClient = mockVMClient - mockVMClient.EXPECT().List(gomock.Any(), manager.config.ResourceGroup).Return([]compute.VirtualMachine{}, nil).AnyTimes() err := manager.forceRefresh() assert.NoError(t, err) diff --git a/cluster-autoscaler/cloudprovider/azure/azure_scale_set.go b/cluster-autoscaler/cloudprovider/azure/azure_scale_set.go index f0b2e83f07e8..e7c6079c2206 100644 --- a/cluster-autoscaler/cloudprovider/azure/azure_scale_set.go +++ b/cluster-autoscaler/cloudprovider/azure/azure_scale_set.go @@ -58,6 +58,8 @@ type ScaleSet struct { minSize int maxSize int + enableForceDelete bool + sizeMutex sync.Mutex curSize int64 @@ -87,6 +89,7 @@ func NewScaleSet(spec *dynamic.NodeGroupSpec, az *AzureManager, curSize int64) ( sizeRefreshPeriod: az.azureCache.refreshInterval, enableDynamicInstanceList: az.config.EnableDynamicInstanceList, instancesRefreshJitter: az.config.VmssVmsCacheJitter, + enableForceDelete: az.config.EnableForceDelete, } if az.config.VmssVmsCacheTTL != 0 { @@ -251,6 +254,16 @@ func (scaleSet *ScaleSet) SetScaleSetSize(size int64) error { Sku: vmssInfo.Sku, Location: vmssInfo.Location, } + + if vmssInfo.ExtendedLocation != nil { + op.ExtendedLocation = &compute.ExtendedLocation{ + Name: vmssInfo.ExtendedLocation.Name, + Type: vmssInfo.ExtendedLocation.Type, + } + + klog.V(3).Infof("Passing ExtendedLocation information if it is not nil, with Edge Zone name:(%s)", *op.ExtendedLocation.Name) + } + ctx, cancel := getContextWithTimeout(vmssContextTimeout) defer cancel() klog.V(3).Infof("Waiting for virtualMachineScaleSetsClient.CreateOrUpdateAsync(%s)", scaleSet.Name) @@ -297,6 +310,11 @@ func (scaleSet *ScaleSet) IncreaseSize(delta int) error { return scaleSet.SetScaleSetSize(size + int64(delta)) } +// AtomicIncreaseSize is not implemented. +func (scaleSet *ScaleSet) AtomicIncreaseSize(delta int) error { + return cloudprovider.ErrNotImplemented +} + // GetScaleSetVms returns list of nodes for the given scale set. func (scaleSet *ScaleSet) GetScaleSetVms() ([]compute.VirtualMachineScaleSetVM, *retry.Error) { klog.V(4).Infof("GetScaleSetVms: starts") @@ -432,8 +450,15 @@ func (scaleSet *ScaleSet) DeleteInstances(instances []*azureRef, hasUnregistered resourceGroup := scaleSet.manager.config.ResourceGroup scaleSet.instanceMutex.Lock() - klog.V(3).Infof("Calling virtualMachineScaleSetsClient.DeleteInstancesAsync(%v)", requiredIds.InstanceIds) - future, rerr := scaleSet.manager.azClient.virtualMachineScaleSetsClient.DeleteInstancesAsync(ctx, resourceGroup, commonAsg.Id(), *requiredIds, false) + klog.V(3).Infof("Calling virtualMachineScaleSetsClient.DeleteInstancesAsync(%v), force delete set to %v", requiredIds.InstanceIds, scaleSet.enableForceDelete) + future, rerr := scaleSet.manager.azClient.virtualMachineScaleSetsClient.DeleteInstancesAsync(ctx, resourceGroup, commonAsg.Id(), *requiredIds, scaleSet.enableForceDelete) + + if scaleSet.enableForceDelete && isOperationNotAllowed(rerr) { + klog.Infof("falling back to normal delete for instances %v for %s", requiredIds.InstanceIds, scaleSet.Name) + future, rerr = scaleSet.manager.azClient.virtualMachineScaleSetsClient.DeleteInstancesAsync(ctx, resourceGroup, + commonAsg.Id(), *requiredIds, false) + } + scaleSet.instanceMutex.Unlock() if rerr != nil { klog.Errorf("virtualMachineScaleSetsClient.DeleteInstancesAsync for instances %v failed: %v", requiredIds.InstanceIds, rerr) @@ -741,3 +766,7 @@ func (scaleSet *ScaleSet) getOrchestrationMode() (compute.OrchestrationMode, err } return vmss.OrchestrationMode, nil } + +func isOperationNotAllowed(rerr *retry.Error) bool { + return rerr != nil && rerr.ServiceErrorCode() == retry.OperationNotAllowed +} diff --git a/cluster-autoscaler/cloudprovider/azure/azure_scale_set_test.go b/cluster-autoscaler/cloudprovider/azure/azure_scale_set_test.go index 85ee14c4c483..edfdb1fa08eb 100644 --- a/cluster-autoscaler/cloudprovider/azure/azure_scale_set_test.go +++ b/cluster-autoscaler/cloudprovider/azure/azure_scale_set_test.go @@ -32,14 +32,32 @@ import ( "sigs.k8s.io/cloud-provider-azure/pkg/azureclients/vmssvmclient/mockvmssvmclient" ) +const ( + testASG = "test-asg" + testLocation = "eastus" +) + func newTestScaleSet(manager *AzureManager, name string) *ScaleSet { return &ScaleSet{ azureRef: azureRef{ Name: name, }, - manager: manager, - minSize: 1, - maxSize: 5, + manager: manager, + minSize: 1, + maxSize: 5, + enableForceDelete: manager.config.EnableForceDelete, + } +} + +func newTestScaleSetMinSizeZero(manager *AzureManager, name string) *ScaleSet { + return &ScaleSet{ + azureRef: azureRef{ + Name: name, + }, + manager: manager, + minSize: 0, + maxSize: 5, + enableForceDelete: manager.config.EnableForceDelete, } } @@ -60,6 +78,22 @@ func newTestVMSSList(cap int64, name, loc string, orchmode compute.Orchestration } } +func newTestVMSSListForEdgeZones(capacity int64, name string) *compute.VirtualMachineScaleSet { + return &compute.VirtualMachineScaleSet{ + Name: to.StringPtr(name), + Sku: &compute.Sku{ + Capacity: to.Int64Ptr(capacity), + Name: to.StringPtr("Standard_D4_v2"), + }, + VirtualMachineScaleSetProperties: &compute.VirtualMachineScaleSetProperties{}, + Location: to.StringPtr(testLocation), + ExtendedLocation: &compute.ExtendedLocation{ + Name: to.StringPtr("losangeles"), + Type: compute.ExtendedLocationTypes("EdgeZone"), + }, + } +} + func newTestVMSSVMList(count int) []compute.VirtualMachineScaleSetVM { var vmssVMList []compute.VirtualMachineScaleSetVM for i := 0; i < count; i++ { @@ -121,6 +155,15 @@ func TestMinSize(t *testing.T) { assert.Equal(t, provider.NodeGroups()[0].MinSize(), 1) } +func TestMinSizeZero(t *testing.T) { + provider := newTestProvider(t) + registered := provider.azureManager.RegisterNodeGroup( + newTestScaleSetMinSizeZero(provider.azureManager, testASG)) + assert.True(t, registered) + assert.Equal(t, len(provider.NodeGroups()), 1) + assert.Equal(t, provider.NodeGroups()[0].MinSize(), 0) +} + func TestTargetSize(t *testing.T) { ctrl := gomock.NewController(t) defer ctrl.Finish() @@ -136,9 +179,6 @@ func TestTargetSize(t *testing.T) { mockVMSSClient := mockvmssclient.NewMockInterface(ctrl) mockVMSSClient.EXPECT().List(gomock.Any(), provider.azureManager.config.ResourceGroup).Return(expectedScaleSets, nil).AnyTimes() provider.azureManager.azClient.virtualMachineScaleSetsClient = mockVMSSClient - mockVMClient := mockvmclient.NewMockInterface(ctrl) - mockVMClient.EXPECT().List(gomock.Any(), provider.azureManager.config.ResourceGroup).Return([]compute.VirtualMachine{}, nil).AnyTimes() - provider.azureManager.azClient.virtualMachinesClient = mockVMClient if orchMode == compute.Uniform { @@ -148,7 +188,9 @@ func TestTargetSize(t *testing.T) { } else { provider.azureManager.config.EnableVmssFlex = true + mockVMClient := mockvmclient.NewMockInterface(ctrl) mockVMClient.EXPECT().ListVmssFlexVMsWithoutInstanceView(gomock.Any(), "test-asg").Return(expectedVMs, nil).AnyTimes() + provider.azureManager.azClient.virtualMachinesClient = mockVMClient } err := provider.azureManager.forceRefresh() @@ -177,26 +219,34 @@ func TestIncreaseSize(t *testing.T) { for _, orchMode := range orchestrationModes { provider := newTestProvider(t) - expectedScaleSets := newTestVMSSList(3, "test-asg", "eastus", orchMode) + expectedScaleSets := newTestVMSSList(3, testASG, testLocation, orchMode) + + // Include Edge Zone scenario here, testing scale from 3 to 5 and scale from zero cases. + expectedEdgeZoneScaleSets := newTestVMSSListForEdgeZones(3, "edgezone-vmss") + expectedEdgeZoneMinZeroScaleSets := newTestVMSSListForEdgeZones(0, "edgezone-minzero-vmss") + expectedScaleSets = append(expectedScaleSets, *expectedEdgeZoneScaleSets, *expectedEdgeZoneMinZeroScaleSets) mockVMSSClient := mockvmssclient.NewMockInterface(ctrl) mockVMSSClient.EXPECT().List(gomock.Any(), provider.azureManager.config.ResourceGroup).Return(expectedScaleSets, nil).AnyTimes() - mockVMSSClient.EXPECT().CreateOrUpdateAsync(gomock.Any(), provider.azureManager.config.ResourceGroup, "test-asg", gomock.Any()).Return(nil, nil) + mockVMSSClient.EXPECT().CreateOrUpdateAsync(gomock.Any(), provider.azureManager.config.ResourceGroup, testASG, gomock.Any()).Return(nil, nil) + // This should be Anytimes() because the parent function of this call - updateVMSSCapacity() is a goroutine + // and this test doesn't wait on goroutine, hence, it is difficult to write exact expected number (which is 3 here) + // before we return from this this. + // This is a future TODO: sync.WaitGroup should be used in actual code and make code easily testable mockVMSSClient.EXPECT().WaitForCreateOrUpdateResult(gomock.Any(), gomock.Any(), provider.azureManager.config.ResourceGroup).Return(&http.Response{StatusCode: http.StatusOK}, nil).AnyTimes() provider.azureManager.azClient.virtualMachineScaleSetsClient = mockVMSSClient - mockVMClient := mockvmclient.NewMockInterface(ctrl) - mockVMClient.EXPECT().List(gomock.Any(), provider.azureManager.config.ResourceGroup).Return([]compute.VirtualMachine{}, nil).AnyTimes() - provider.azureManager.azClient.virtualMachinesClient = mockVMClient if orchMode == compute.Uniform { mockVMSSVMClient := mockvmssvmclient.NewMockInterface(ctrl) - mockVMSSVMClient.EXPECT().List(gomock.Any(), provider.azureManager.config.ResourceGroup, "test-asg", gomock.Any()).Return(expectedVMSSVMs, nil).AnyTimes() + mockVMSSVMClient.EXPECT().List(gomock.Any(), provider.azureManager.config.ResourceGroup, testASG, gomock.Any()).Return(expectedVMSSVMs, nil).AnyTimes() provider.azureManager.azClient.virtualMachineScaleSetVMsClient = mockVMSSVMClient } else { provider.azureManager.config.EnableVmssFlex = true - mockVMClient.EXPECT().ListVmssFlexVMsWithoutInstanceView(gomock.Any(), "test-asg").Return(expectedVMs, nil).AnyTimes() + mockVMClient := mockvmclient.NewMockInterface(ctrl) + mockVMClient.EXPECT().ListVmssFlexVMsWithoutInstanceView(gomock.Any(), testASG).Return(expectedVMs, nil).AnyTimes() + provider.azureManager.azClient.virtualMachinesClient = mockVMClient } err := provider.azureManager.forceRefresh() assert.NoError(t, err) @@ -207,23 +257,63 @@ func TestIncreaseSize(t *testing.T) { assert.Equal(t, expectedErr, err) registered := provider.azureManager.RegisterNodeGroup( - newTestScaleSet(provider.azureManager, "test-asg")) + newTestScaleSet(provider.azureManager, testASG)) assert.True(t, registered) assert.Equal(t, len(provider.NodeGroups()), 1) - // current target size is 2. + // Current target size is 3. targetSize, err := provider.NodeGroups()[0].TargetSize() assert.NoError(t, err) assert.Equal(t, 3, targetSize) - // increase 3 nodes. + // Increase 2 nodes. err = provider.NodeGroups()[0].IncreaseSize(2) assert.NoError(t, err) - // new target size should be 5. + // New target size should be 5. targetSize, err = provider.NodeGroups()[0].TargetSize() assert.NoError(t, err) assert.Equal(t, 5, targetSize) + + // Testing Edge Zone scenario. Scale from 3 to 5. + registeredForEdgeZone := provider.azureManager.RegisterNodeGroup( + newTestScaleSet(provider.azureManager, "edgezone-vmss")) + assert.True(t, registeredForEdgeZone) + assert.Equal(t, len(provider.NodeGroups()), 2) + + targetSizeForEdgeZone, err := provider.NodeGroups()[1].TargetSize() + assert.NoError(t, err) + assert.Equal(t, 3, targetSizeForEdgeZone) + + mockVMSSClient.EXPECT().CreateOrUpdateAsync(gomock.Any(), provider.azureManager.config.ResourceGroup, + "edgezone-vmss", gomock.Any()).Return(nil, nil) + err = provider.NodeGroups()[1].IncreaseSize(2) + assert.NoError(t, err) + + targetSizeForEdgeZone, err = provider.NodeGroups()[1].TargetSize() + assert.NoError(t, err) + assert.Equal(t, 5, targetSizeForEdgeZone) + + // Testing Edge Zone scenario scaleFromZero case. Scale from 0 to 2. + registeredForEdgeZoneMinZero := provider.azureManager.RegisterNodeGroup( + newTestScaleSetMinSizeZero(provider.azureManager, "edgezone-minzero-vmss")) + assert.True(t, registeredForEdgeZoneMinZero) + assert.Equal(t, len(provider.NodeGroups()), 3) + + // Current target size is 0. + targetSizeForEdgeZoneMinZero, err := provider.NodeGroups()[2].TargetSize() + assert.NoError(t, err) + assert.Equal(t, 0, targetSizeForEdgeZoneMinZero) + + mockVMSSClient.EXPECT().CreateOrUpdateAsync(gomock.Any(), provider.azureManager.config.ResourceGroup, + "edgezone-minzero-vmss", gomock.Any()).Return(nil, nil) + err = provider.NodeGroups()[2].IncreaseSize(2) + assert.NoError(t, err) + + // New target size should be 2. + targetSizeForEdgeZoneMinZero, err = provider.NodeGroups()[2].TargetSize() + assert.NoError(t, err) + assert.Equal(t, 2, targetSizeForEdgeZoneMinZero) } } @@ -259,7 +349,6 @@ func TestIncreaseSizeOnVMProvisioningFailed(t *testing.T) { expectedScaleSets := newTestVMSSList(3, "vmss-failed-upscale", "eastus", compute.Uniform) expectedVMSSVMs := newTestVMSSVMList(3) - expectedVMs := newTestVMList(3) expectedVMSSVMs[2].ProvisioningState = to.StringPtr(provisioningStateFailed) if !testCase.isMissingInstanceView { expectedVMSSVMs[2].InstanceView = &compute.VirtualMachineScaleSetVMInstanceView{Statuses: &testCase.statuses} @@ -273,9 +362,6 @@ func TestIncreaseSizeOnVMProvisioningFailed(t *testing.T) { mockVMSSVMClient := mockvmssvmclient.NewMockInterface(ctrl) mockVMSSVMClient.EXPECT().List(gomock.Any(), manager.config.ResourceGroup, "vmss-failed-upscale", gomock.Any()).Return(expectedVMSSVMs, nil).AnyTimes() manager.azClient.virtualMachineScaleSetVMsClient = mockVMSSVMClient - mockVMClient := mockvmclient.NewMockInterface(ctrl) - mockVMClient.EXPECT().List(gomock.Any(), manager.config.ResourceGroup).Return(expectedVMs, nil).AnyTimes() - manager.azClient.virtualMachinesClient = mockVMClient manager.explicitlyConfigured["vmss-failed-upscale"] = true registered := manager.RegisterNodeGroup(newTestScaleSet(manager, vmssName)) assert.True(t, registered) @@ -365,9 +451,6 @@ func TestBelongs(t *testing.T) { mockVMSSClient := mockvmssclient.NewMockInterface(ctrl) mockVMSSClient.EXPECT().List(gomock.Any(), provider.azureManager.config.ResourceGroup).Return(expectedScaleSets, nil) provider.azureManager.azClient.virtualMachineScaleSetsClient = mockVMSSClient - mockVMClient := mockvmclient.NewMockInterface(ctrl) - mockVMClient.EXPECT().List(gomock.Any(), provider.azureManager.config.ResourceGroup).Return([]compute.VirtualMachine{}, nil).AnyTimes() - provider.azureManager.azClient.virtualMachinesClient = mockVMClient if orchMode == compute.Uniform { @@ -378,7 +461,9 @@ func TestBelongs(t *testing.T) { } else { provider.azureManager.config.EnableVmssFlex = true + mockVMClient := mockvmclient.NewMockInterface(ctrl) mockVMClient.EXPECT().ListVmssFlexVMsWithoutInstanceView(gomock.Any(), "test-asg").Return(expectedVMs, nil).AnyTimes() + provider.azureManager.azClient.virtualMachinesClient = mockVMClient } registered := provider.azureManager.RegisterNodeGroup( @@ -412,25 +497,53 @@ func TestDeleteNodes(t *testing.T) { vmssName := "test-asg" var vmssCapacity int64 = 3 - orchestrationModes := [2]compute.OrchestrationMode{compute.Uniform, compute.Flexible} - expectedVMSSVMs := newTestVMSSVMList(3) - expectedVMs := newTestVMList(3) + cases := []struct { + name string + orchestrationMode compute.OrchestrationMode + enableForceDelete bool + }{ + { + name: "uniform, force delete enabled", + orchestrationMode: compute.Uniform, + enableForceDelete: true, + }, + { + name: "uniform, force delete disabled", + orchestrationMode: compute.Uniform, + enableForceDelete: false, + }, + { + name: "flexible, force delete enabled", + orchestrationMode: compute.Flexible, + enableForceDelete: true, + }, + { + name: "flexible, force delete disabled", + orchestrationMode: compute.Flexible, + enableForceDelete: false, + }, + } - for _, orchMode := range orchestrationModes { + for _, tc := range cases { + orchMode := tc.orchestrationMode + enableForceDelete := tc.enableForceDelete + + expectedVMSSVMs := newTestVMSSVMList(3) + expectedVMs := newTestVMList(3) manager := newTestAzureManager(t) + manager.config.EnableForceDelete = enableForceDelete expectedScaleSets := newTestVMSSList(vmssCapacity, vmssName, "eastus", orchMode) + fmt.Printf("orchMode: %s, enableForceDelete: %t\n", orchMode, enableForceDelete) mockVMSSClient := mockvmssclient.NewMockInterface(ctrl) mockVMSSClient.EXPECT().List(gomock.Any(), manager.config.ResourceGroup).Return(expectedScaleSets, nil).Times(2) - mockVMSSClient.EXPECT().DeleteInstancesAsync(gomock.Any(), manager.config.ResourceGroup, gomock.Any(), gomock.Any(), false).Return(nil, nil) + mockVMSSClient.EXPECT().DeleteInstancesAsync(gomock.Any(), manager.config.ResourceGroup, gomock.Any(), gomock.Any(), enableForceDelete).Return(nil, nil) mockVMSSClient.EXPECT().WaitForDeleteInstancesResult(gomock.Any(), gomock.Any(), manager.config.ResourceGroup).Return(&http.Response{StatusCode: http.StatusOK}, nil).AnyTimes() manager.azClient.virtualMachineScaleSetsClient = mockVMSSClient mockVMSSVMClient := mockvmssvmclient.NewMockInterface(ctrl) mockVMClient := mockvmclient.NewMockInterface(ctrl) - manager.azClient.virtualMachinesClient = mockVMClient - mockVMClient.EXPECT().List(gomock.Any(), manager.config.ResourceGroup).Return(expectedVMs, nil).AnyTimes() if orchMode == compute.Uniform { mockVMSSVMClient.EXPECT().List(gomock.Any(), manager.config.ResourceGroup, "test-asg", gomock.Any()).Return(expectedVMSSVMs, nil).AnyTimes() @@ -438,6 +551,7 @@ func TestDeleteNodes(t *testing.T) { } else { manager.config.EnableVmssFlex = true mockVMClient.EXPECT().ListVmssFlexVMsWithoutInstanceView(gomock.Any(), "test-asg").Return(expectedVMs, nil).AnyTimes() + manager.azClient.virtualMachinesClient = mockVMClient } @@ -505,7 +619,6 @@ func TestDeleteNodes(t *testing.T) { instance2, found := scaleSet.getInstanceByProviderID(nodesToDelete[1].Spec.ProviderID) assert.True(t, found, true) assert.Equal(t, instance2.Status.State, cloudprovider.InstanceDeleting) - } } @@ -513,25 +626,51 @@ func TestDeleteNodeUnregistered(t *testing.T) { ctrl := gomock.NewController(t) defer ctrl.Finish() - orchestrationModes := [2]compute.OrchestrationMode{compute.Uniform, compute.Flexible} - vmssName := "test-asg" var vmssCapacity int64 = 2 - expectedVMSSVMs := newTestVMSSVMList(2) - expectedVMs := newTestVMList(2) - for _, orchMode := range orchestrationModes { + cases := []struct { + name string + orchestrationMode compute.OrchestrationMode + enableForceDelete bool + }{ + { + name: "uniform, force delete enabled", + orchestrationMode: compute.Uniform, + enableForceDelete: true, + }, + { + name: "uniform, force delete disabled", + orchestrationMode: compute.Uniform, + enableForceDelete: false, + }, + { + name: "flexible, force delete enabled", + orchestrationMode: compute.Flexible, + enableForceDelete: true, + }, + { + name: "flexible, force delete disabled", + orchestrationMode: compute.Flexible, + enableForceDelete: false, + }, + } + + for _, tc := range cases { + orchMode := tc.orchestrationMode + enableForceDelete := tc.enableForceDelete + expectedVMSSVMs := newTestVMSSVMList(2) + expectedVMs := newTestVMList(2) + manager := newTestAzureManager(t) + manager.config.EnableForceDelete = enableForceDelete expectedScaleSets := newTestVMSSList(vmssCapacity, vmssName, "eastus", orchMode) mockVMSSClient := mockvmssclient.NewMockInterface(ctrl) mockVMSSClient.EXPECT().List(gomock.Any(), manager.config.ResourceGroup).Return(expectedScaleSets, nil).Times(2) - mockVMSSClient.EXPECT().DeleteInstancesAsync(gomock.Any(), manager.config.ResourceGroup, gomock.Any(), gomock.Any(), false).Return(nil, nil) + mockVMSSClient.EXPECT().DeleteInstancesAsync(gomock.Any(), manager.config.ResourceGroup, gomock.Any(), gomock.Any(), enableForceDelete).Return(nil, nil) mockVMSSClient.EXPECT().WaitForDeleteInstancesResult(gomock.Any(), gomock.Any(), manager.config.ResourceGroup).Return(&http.Response{StatusCode: http.StatusOK}, nil).AnyTimes() manager.azClient.virtualMachineScaleSetsClient = mockVMSSClient - mockVMClient := mockvmclient.NewMockInterface(ctrl) - mockVMClient.EXPECT().List(gomock.Any(), manager.config.ResourceGroup).Return(expectedVMs, nil).AnyTimes() - manager.azClient.virtualMachinesClient = mockVMClient if orchMode == compute.Uniform { @@ -541,7 +680,9 @@ func TestDeleteNodeUnregistered(t *testing.T) { } else { manager.config.EnableVmssFlex = true + mockVMClient := mockvmclient.NewMockInterface(ctrl) mockVMClient.EXPECT().ListVmssFlexVMsWithoutInstanceView(gomock.Any(), "test-asg").Return(expectedVMs, nil).AnyTimes() + manager.azClient.virtualMachinesClient = mockVMClient } err := manager.forceRefresh() assert.NoError(t, err) @@ -687,9 +828,6 @@ func TestScaleSetNodes(t *testing.T) { mockVMSSClient := mockvmssclient.NewMockInterface(ctrl) mockVMSSClient.EXPECT().List(gomock.Any(), provider.azureManager.config.ResourceGroup).Return(expectedScaleSets, nil).AnyTimes() provider.azureManager.azClient.virtualMachineScaleSetsClient = mockVMSSClient - mockVMClient := mockvmclient.NewMockInterface(ctrl) - mockVMClient.EXPECT().List(gomock.Any(), provider.azureManager.config.ResourceGroup).Return([]compute.VirtualMachine{}, nil).AnyTimes() - provider.azureManager.azClient.virtualMachinesClient = mockVMClient if orchMode == compute.Uniform { @@ -699,7 +837,9 @@ func TestScaleSetNodes(t *testing.T) { } else { provider.azureManager.config.EnableVmssFlex = true + mockVMClient := mockvmclient.NewMockInterface(ctrl) mockVMClient.EXPECT().ListVmssFlexVMsWithoutInstanceView(gomock.Any(), "test-asg").Return(expectedVMs, nil).AnyTimes() + provider.azureManager.azClient.virtualMachinesClient = mockVMClient } registered := provider.azureManager.RegisterNodeGroup( @@ -754,7 +894,6 @@ func TestEnableVmssFlexFlag(t *testing.T) { provider.azureManager.config.EnableVmssFlex = false provider.azureManager.azClient.virtualMachineScaleSetsClient = mockVMSSClient mockVMClient := mockvmclient.NewMockInterface(ctrl) - mockVMClient.EXPECT().List(gomock.Any(), provider.azureManager.config.ResourceGroup).Return([]compute.VirtualMachine{}, nil).AnyTimes() mockVMClient.EXPECT().ListVmssFlexVMsWithoutInstanceView(gomock.Any(), "test-asg").Return(expectedVMs, nil).AnyTimes() provider.azureManager.azClient.virtualMachinesClient = mockVMClient diff --git a/cluster-autoscaler/cloudprovider/azure/azure_vms_pool.go b/cluster-autoscaler/cloudprovider/azure/azure_vms_pool.go deleted file mode 100644 index 015eaec4b20c..000000000000 --- a/cluster-autoscaler/cloudprovider/azure/azure_vms_pool.go +++ /dev/null @@ -1,174 +0,0 @@ -/* -Copyright 2017 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package azure - -import ( - "fmt" - - "github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2022-08-01/compute" - apiv1 "k8s.io/api/core/v1" - "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" - "k8s.io/autoscaler/cluster-autoscaler/config" - "k8s.io/autoscaler/cluster-autoscaler/config/dynamic" - schedulerframework "k8s.io/kubernetes/pkg/scheduler/framework" -) - -// VMsPool is single instance VM pool -// this is a placeholder for now, no real implementation -type VMsPool struct { - azureRef - manager *AzureManager - resourceGroup string - - minSize int - maxSize int - - curSize int64 - // sizeMutex sync.Mutex - // lastSizeRefresh time.Time -} - -// NewVMsPool creates a new VMsPool -func NewVMsPool(spec *dynamic.NodeGroupSpec, am *AzureManager) *VMsPool { - nodepool := &VMsPool{ - azureRef: azureRef{ - Name: spec.Name, - }, - - manager: am, - resourceGroup: am.config.ResourceGroup, - - curSize: -1, - minSize: spec.MinSize, - maxSize: spec.MaxSize, - } - - return nodepool -} - -// MinSize returns the minimum size the cluster is allowed to scaled down -// to as provided by the node spec in --node parameter. -func (agentPool *VMsPool) MinSize() int { - return agentPool.minSize -} - -// Exist is always true since we are initialized with an existing agentpool -func (agentPool *VMsPool) Exist() bool { - return true -} - -// Create creates the node group on the cloud provider side. -func (agentPool *VMsPool) Create() (cloudprovider.NodeGroup, error) { - return nil, cloudprovider.ErrAlreadyExist -} - -// Delete deletes the node group on the cloud provider side. -func (agentPool *VMsPool) Delete() error { - return cloudprovider.ErrNotImplemented -} - -// Autoprovisioned is always false since we are initialized with an existing agentpool -func (agentPool *VMsPool) Autoprovisioned() bool { - return false -} - -// GetOptions returns NodeGroupAutoscalingOptions that should be used for this particular -// NodeGroup. Returning a nil will result in using default options. -func (agentPool *VMsPool) GetOptions(defaults config.NodeGroupAutoscalingOptions) (*config.NodeGroupAutoscalingOptions, error) { - // TODO(wenxuan): Implement this method - return nil, cloudprovider.ErrNotImplemented -} - -// MaxSize returns the maximum size scale limit provided by --node -// parameter to the autoscaler main -func (agentPool *VMsPool) MaxSize() int { - return agentPool.maxSize -} - -// TargetSize returns the current TARGET size of the node group. It is possible that the -// number is different from the number of nodes registered in Kubernetes. -func (agentPool *VMsPool) TargetSize() (int, error) { - // TODO(wenxuan): Implement this method - return -1, cloudprovider.ErrNotImplemented -} - -// IncreaseSize increase the size through a PUT AP call. It calculates the expected size -// based on a delta provided as parameter -func (agentPool *VMsPool) IncreaseSize(delta int) error { - // TODO(wenxuan): Implement this method - return cloudprovider.ErrNotImplemented -} - -// DeleteNodes extracts the providerIDs from the node spec and -// delete or deallocate the nodes from the agent pool based on the scale down policy. -func (agentPool *VMsPool) DeleteNodes(nodes []*apiv1.Node) error { - // TODO(wenxuan): Implement this method - return cloudprovider.ErrNotImplemented -} - -// DecreaseTargetSize decreases the target size of the node group. -func (agentPool *VMsPool) DecreaseTargetSize(delta int) error { - // TODO(wenxuan): Implement this method - return cloudprovider.ErrNotImplemented -} - -// Id returns the name of the agentPool -func (agentPool *VMsPool) Id() string { - return agentPool.azureRef.Name -} - -// Debug returns a string with basic details of the agentPool -func (agentPool *VMsPool) Debug() string { - return fmt.Sprintf("%s (%d:%d)", agentPool.Id(), agentPool.MinSize(), agentPool.MaxSize()) -} - -func (agentPool *VMsPool) getVMsFromCache() ([]compute.VirtualMachine, error) { - // vmsPoolMap is a map of agent pool name to the list of virtual machines - vmsPoolMap := agentPool.manager.azureCache.getVirtualMachines() - if _, ok := vmsPoolMap[agentPool.Name]; !ok { - return []compute.VirtualMachine{}, fmt.Errorf("vms pool %s not found in the cache", agentPool.Name) - } - - return vmsPoolMap[agentPool.Name], nil -} - -// Nodes returns the list of nodes in the vms agentPool. -func (agentPool *VMsPool) Nodes() ([]cloudprovider.Instance, error) { - vms, err := agentPool.getVMsFromCache() - if err != nil { - return nil, err - } - - nodes := make([]cloudprovider.Instance, 0, len(vms)) - for _, vm := range vms { - if len(*vm.ID) == 0 { - continue - } - resourceID, err := convertResourceGroupNameToLower("azure://" + *vm.ID) - if err != nil { - return nil, err - } - nodes = append(nodes, cloudprovider.Instance{Id: resourceID}) - } - - return nodes, nil -} - -// TemplateNodeInfo is not implemented. -func (agentPool *VMsPool) TemplateNodeInfo() (*schedulerframework.NodeInfo, error) { - return nil, cloudprovider.ErrNotImplemented -} diff --git a/cluster-autoscaler/cloudprovider/azure/azure_vms_pool_test.go b/cluster-autoscaler/cloudprovider/azure/azure_vms_pool_test.go deleted file mode 100644 index a3b0ebe45e4a..000000000000 --- a/cluster-autoscaler/cloudprovider/azure/azure_vms_pool_test.go +++ /dev/null @@ -1,67 +0,0 @@ -/* -Copyright 2017 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package azure - -import ( - "fmt" - - "github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2022-08-01/compute" - "github.com/Azure/go-autorest/autorest/to" - apiv1 "k8s.io/api/core/v1" -) - -func newTestVMsPool(manager *AzureManager, name string) *VMsPool { - return &VMsPool{ - azureRef: azureRef{ - Name: name, - }, - manager: manager, - minSize: 3, - maxSize: 10, - } -} - -const ( - fakeVMsPoolVMID = "/subscriptions/test-subscription-id/resourceGroups/test-rg/providers/Microsoft.Compute/virtualMachines/%d" -) - -func newTestVMsPoolVMList(count int) []compute.VirtualMachine { - var vmList []compute.VirtualMachine - for i := 0; i < count; i++ { - vm := compute.VirtualMachine{ - ID: to.StringPtr(fmt.Sprintf(fakeVMsPoolVMID, i)), - VirtualMachineProperties: &compute.VirtualMachineProperties{ - VMID: to.StringPtr(fmt.Sprintf("123E4567-E89B-12D3-A456-426655440000-%d", i)), - }, - Tags: map[string]*string{ - agentpoolTypeTag: to.StringPtr("VirtualMachines"), - agentpoolNameTag: to.StringPtr("test-vms-pool"), - }, - } - vmList = append(vmList, vm) - } - return vmList -} - -func newVMsNode(vmID int64) *apiv1.Node { - node := &apiv1.Node{ - Spec: apiv1.NodeSpec{ - ProviderID: "azure://" + fmt.Sprintf(fakeVMsPoolVMID, vmID), - }, - } - return node -} diff --git a/cluster-autoscaler/cloudprovider/azure/examples/cluster-autoscaler-autodiscover.yaml b/cluster-autoscaler/cloudprovider/azure/examples/cluster-autoscaler-autodiscover.yaml index fee3dc20a305..d9652ad98043 100644 --- a/cluster-autoscaler/cloudprovider/azure/examples/cluster-autoscaler-autodiscover.yaml +++ b/cluster-autoscaler/cloudprovider/azure/examples/cluster-autoscaler-autodiscover.yaml @@ -154,9 +154,9 @@ spec: - effect: NoSchedule operator: "Equal" value: "true" - key: node-role.kubernetes.io/master + key: node-role.kubernetes.io/control-plane nodeSelector: - kubernetes.io/role: master + kubernetes.io/role: control-plane containers: - command: - ./cluster-autoscaler diff --git a/cluster-autoscaler/cloudprovider/azure/examples/cluster-autoscaler-standard-control-plane.yaml b/cluster-autoscaler/cloudprovider/azure/examples/cluster-autoscaler-standard-control-plane.yaml index b3d21d8d92a5..1a2bb5666082 100644 --- a/cluster-autoscaler/cloudprovider/azure/examples/cluster-autoscaler-standard-control-plane.yaml +++ b/cluster-autoscaler/cloudprovider/azure/examples/cluster-autoscaler-standard-control-plane.yaml @@ -156,9 +156,9 @@ spec: - effect: NoSchedule operator: "Equal" value: "true" - key: node-role.kubernetes.io/master + key: node-role.kubernetes.io/control-plane nodeSelector: - kubernetes.io/role: master + kubernetes.io/role: control-plane containers: - command: - ./cluster-autoscaler diff --git a/cluster-autoscaler/cloudprovider/azure/examples/cluster-autoscaler-standard-msi.yaml b/cluster-autoscaler/cloudprovider/azure/examples/cluster-autoscaler-standard-msi.yaml index 83d2bcccb7ac..3a3175972507 100644 --- a/cluster-autoscaler/cloudprovider/azure/examples/cluster-autoscaler-standard-msi.yaml +++ b/cluster-autoscaler/cloudprovider/azure/examples/cluster-autoscaler-standard-msi.yaml @@ -154,9 +154,9 @@ spec: - effect: NoSchedule operator: "Equal" value: "true" - key: node-role.kubernetes.io/master + key: node-role.kubernetes.io/control-plane nodeSelector: - kubernetes.io/role: master + kubernetes.io/role: control-plane containers: - command: - ./cluster-autoscaler diff --git a/cluster-autoscaler/cloudprovider/azure/examples/cluster-autoscaler-vmss-control-plane.yaml b/cluster-autoscaler/cloudprovider/azure/examples/cluster-autoscaler-vmss-control-plane.yaml index 9161887cb4db..1a1756b5b07e 100644 --- a/cluster-autoscaler/cloudprovider/azure/examples/cluster-autoscaler-vmss-control-plane.yaml +++ b/cluster-autoscaler/cloudprovider/azure/examples/cluster-autoscaler-vmss-control-plane.yaml @@ -155,9 +155,9 @@ spec: - effect: NoSchedule operator: "Equal" value: "true" - key: node-role.kubernetes.io/master + key: node-role.kubernetes.io/control-plane nodeSelector: - kubernetes.io/role: master + kubernetes.io/role: control-plane containers: - image: registry.k8s.io/autoscaling/cluster-autoscaler:{{ ca_version }} imagePullPolicy: Always diff --git a/cluster-autoscaler/cloudprovider/azure/examples/cluster-autoscaler-vmss-msi.yaml b/cluster-autoscaler/cloudprovider/azure/examples/cluster-autoscaler-vmss-msi.yaml index b28a8e3c4db0..aa113b32fdfd 100644 --- a/cluster-autoscaler/cloudprovider/azure/examples/cluster-autoscaler-vmss-msi.yaml +++ b/cluster-autoscaler/cloudprovider/azure/examples/cluster-autoscaler-vmss-msi.yaml @@ -153,9 +153,9 @@ spec: - effect: NoSchedule operator: "Equal" value: "true" - key: node-role.kubernetes.io/master + key: node-role.kubernetes.io/control-plane nodeSelector: - kubernetes.io/role: master + kubernetes.io/role: control-plane containers: - image: registry.k8s.io/autoscaling/cluster-autoscaler:{{ ca_version }} imagePullPolicy: Always diff --git a/cluster-autoscaler/cloudprovider/baiducloud/baiducloud_cloud_provider.go b/cluster-autoscaler/cloudprovider/baiducloud/baiducloud_cloud_provider.go index 11a81f322020..a38d2b86d46a 100644 --- a/cluster-autoscaler/cloudprovider/baiducloud/baiducloud_cloud_provider.go +++ b/cluster-autoscaler/cloudprovider/baiducloud/baiducloud_cloud_provider.go @@ -278,6 +278,11 @@ func (asg *Asg) IncreaseSize(delta int) error { return asg.baiducloudManager.ScaleUpCluster(delta, asg.Name) } +// AtomicIncreaseSize is not implemented. +func (asg *Asg) AtomicIncreaseSize(delta int) error { + return cloudprovider.ErrNotImplemented +} + // DeleteNodes deletes nodes from this node group. Error is returned either on // failure or if the given node doesn't belong to this node group. This function // should wait until node group size is updated. Implementation required. diff --git a/cluster-autoscaler/cloudprovider/bizflycloud/bizflycloud_node_group.go b/cluster-autoscaler/cloudprovider/bizflycloud/bizflycloud_node_group.go index 363d634e9e81..7ca070fffbc0 100644 --- a/cluster-autoscaler/cloudprovider/bizflycloud/bizflycloud_node_group.go +++ b/cluster-autoscaler/cloudprovider/bizflycloud/bizflycloud_node_group.go @@ -100,6 +100,11 @@ func (n *NodeGroup) IncreaseSize(delta int) error { return nil } +// AtomicIncreaseSize is not implemented. +func (n *NodeGroup) AtomicIncreaseSize(delta int) error { + return cloudprovider.ErrNotImplemented +} + // DeleteNodes deletes nodes from this node group (and also increasing the size // of the node group with that). Error is returned either on failure or if the // given node doesn't belong to this node group. This function should wait diff --git a/cluster-autoscaler/cloudprovider/brightbox/brightbox_node_group.go b/cluster-autoscaler/cloudprovider/brightbox/brightbox_node_group.go index e790fbe928a6..4b97f8779320 100644 --- a/cluster-autoscaler/cloudprovider/brightbox/brightbox_node_group.go +++ b/cluster-autoscaler/cloudprovider/brightbox/brightbox_node_group.go @@ -123,6 +123,11 @@ func (ng *brightboxNodeGroup) IncreaseSize(delta int) error { ) } +// AtomicIncreaseSize is not implemented. +func (ng *brightboxNodeGroup) AtomicIncreaseSize(delta int) error { + return cloudprovider.ErrNotImplemented +} + // DeleteNodes deletes nodes from this node group. Error is returned // either on failure or if the given node doesn't belong to this // node group. This function should wait until node group size is diff --git a/cluster-autoscaler/cloudprovider/builder/builder_all.go b/cluster-autoscaler/cloudprovider/builder/builder_all.go index 2a5549ff65d3..3e74c815ae3d 100644 --- a/cluster-autoscaler/cloudprovider/builder/builder_all.go +++ b/cluster-autoscaler/cloudprovider/builder/builder_all.go @@ -1,5 +1,5 @@ -//go:build !gce && !aws && !azure && !kubemark && !alicloud && !magnum && !digitalocean && !clusterapi && !huaweicloud && !ionoscloud && !linode && !hetzner && !bizflycloud && !brightbox && !packet && !oci && !vultr && !tencentcloud && !scaleway && !externalgrpc && !civo && !rancher && !volcengine && !baiducloud && !cherry && !cloudstack && !exoscale && !kamatera && !ovhcloud && !kwok -// +build !gce,!aws,!azure,!kubemark,!alicloud,!magnum,!digitalocean,!clusterapi,!huaweicloud,!ionoscloud,!linode,!hetzner,!bizflycloud,!brightbox,!packet,!oci,!vultr,!tencentcloud,!scaleway,!externalgrpc,!civo,!rancher,!volcengine,!baiducloud,!cherry,!cloudstack,!exoscale,!kamatera,!ovhcloud,!kwok +//go:build !gce && !aws && !azure && !kubemark && !alicloud && !magnum && !digitalocean && !clusterapi && !huaweicloud && !ionoscloud && !linode && !hetzner && !bizflycloud && !brightbox && !equinixmetal && !oci && !vultr && !tencentcloud && !scaleway && !externalgrpc && !civo && !rancher && !volcengine && !baiducloud && !cherry && !cloudstack && !exoscale && !kamatera && !ovhcloud +// +build !gce,!aws,!azure,!kubemark,!alicloud,!magnum,!digitalocean,!clusterapi,!huaweicloud,!ionoscloud,!linode,!hetzner,!bizflycloud,!brightbox,!equinixmetal,!oci,!vultr,!tencentcloud,!scaleway,!externalgrpc,!civo,!rancher,!volcengine,!baiducloud,!cherry,!cloudstack,!exoscale,!kamatera,!ovhcloud /* Copyright 2018 The Kubernetes Authors. @@ -32,6 +32,7 @@ import ( "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/cloudstack" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/clusterapi" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/digitalocean" + "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/equinixmetal" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/exoscale" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/externalgrpc" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/gce" @@ -45,7 +46,6 @@ import ( "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/mcm" oci "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/oci/instancepools" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/ovhcloud" - "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/packet" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/rancher" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/scaleway" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/tencentcloud" @@ -79,7 +79,7 @@ var AvailableCloudProviders = []string{ cloudprovider.LinodeProviderName, cloudprovider.BizflyCloudProviderName, cloudprovider.BrightboxProviderName, - cloudprovider.PacketProviderName, + cloudprovider.EquinixMetalProviderName, cloudprovider.VultrProviderName, cloudprovider.TencentcloudProviderName, cloudprovider.CivoProviderName, @@ -129,7 +129,7 @@ func buildCloudProvider(opts config.AutoscalingOptions, case cloudprovider.HetznerProviderName: return hetzner.BuildHetzner(opts, do, rl) case cloudprovider.PacketProviderName, cloudprovider.EquinixMetalProviderName: - return packet.BuildCloudProvider(opts, do, rl) + return equinixmetal.BuildCloudProvider(opts, do, rl) case cloudprovider.ClusterAPIProviderName: return clusterapi.BuildClusterAPI(opts, do, rl) case mcm.ProviderName: diff --git a/cluster-autoscaler/cloudprovider/builder/builder_kwok.go b/cluster-autoscaler/cloudprovider/builder/builder_kwok.go index b79f7973b18d..a254ac4246bc 100644 --- a/cluster-autoscaler/cloudprovider/builder/builder_kwok.go +++ b/cluster-autoscaler/cloudprovider/builder/builder_kwok.go @@ -23,6 +23,8 @@ import ( "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/kwok" "k8s.io/autoscaler/cluster-autoscaler/config" + + "k8s.io/client-go/informers" ) // AvailableCloudProviders supported by the cloud provider builder. @@ -33,10 +35,10 @@ var AvailableCloudProviders = []string{ // DefaultCloudProvider for Kwok-only build is Kwok. const DefaultCloudProvider = cloudprovider.KwokProviderName -func buildCloudProvider(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter) cloudprovider.CloudProvider { +func buildCloudProvider(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, informerFactory informers.SharedInformerFactory) cloudprovider.CloudProvider { switch opts.CloudProviderName { case cloudprovider.KwokProviderName: - return kwok.BuildKwokCloudProvider(opts, do, rl)(opts, do, rl) + return kwok.BuildKwok(opts, do, rl, informerFactory) } return nil diff --git a/cluster-autoscaler/cloudprovider/builder/builder_packet.go b/cluster-autoscaler/cloudprovider/builder/builder_packet.go index 4a13533fc713..5fc36299e8c5 100644 --- a/cluster-autoscaler/cloudprovider/builder/builder_packet.go +++ b/cluster-autoscaler/cloudprovider/builder/builder_packet.go @@ -1,5 +1,5 @@ -//go:build packet -// +build packet +//go:build equinixmetal +// +build equinixmetal /* Copyright 2019 The Kubernetes Authors. @@ -21,14 +21,14 @@ package builder import ( "k8s.io/autoscaler/cluster-autoscaler/cloudprovider" - "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/packet" + "k8s.io/autoscaler/cluster-autoscaler/cloudprovider/equinixmetal" "k8s.io/autoscaler/cluster-autoscaler/config" "k8s.io/client-go/informers" ) // AvailableCloudProviders supported by the cloud provider builder. var AvailableCloudProviders = []string{ - packet.ProviderName, + cloudprovider.PacketProviderName, cloudprovider.EquinixMetalProviderName, } @@ -37,8 +37,8 @@ const DefaultCloudProvider = cloudprovider.EquinixMetalProviderName func buildCloudProvider(opts config.AutoscalingOptions, do cloudprovider.NodeGroupDiscoveryOptions, rl *cloudprovider.ResourceLimiter, _ informers.SharedInformerFactory) cloudprovider.CloudProvider { switch opts.CloudProviderName { - case packet.ProviderName, cloudprovider.EquinixMetalProviderName: - return packet.BuildCloudProvider(opts, do, rl) + case cloudprovider.PacketProviderName, cloudprovider.EquinixMetalProviderName: + return equinixmetal.BuildCloudProvider(opts, do, rl) } return nil diff --git a/cluster-autoscaler/cloudprovider/cherryservers/cherry_node_group.go b/cluster-autoscaler/cloudprovider/cherryservers/cherry_node_group.go index 744bd52b66d3..4add7c862d7e 100644 --- a/cluster-autoscaler/cloudprovider/cherryservers/cherry_node_group.go +++ b/cluster-autoscaler/cloudprovider/cherryservers/cherry_node_group.go @@ -113,6 +113,11 @@ func (ng *cherryNodeGroup) IncreaseSize(delta int) error { return nil } +// AtomicIncreaseSize is not implemented. +func (ng *cherryNodeGroup) AtomicIncreaseSize(delta int) error { + return cloudprovider.ErrNotImplemented +} + // DeleteNodes deletes a set of nodes chosen by the autoscaler. func (ng *cherryNodeGroup) DeleteNodes(nodes []*apiv1.Node) error { // Batch simultaneous deletes on individual nodes diff --git a/cluster-autoscaler/cloudprovider/cherryservers/examples/cluster-autoscaler-deployment.yaml b/cluster-autoscaler/cloudprovider/cherryservers/examples/cluster-autoscaler-deployment.yaml index 183575b49c19..1cf37bc3e3f4 100644 --- a/cluster-autoscaler/cloudprovider/cherryservers/examples/cluster-autoscaler-deployment.yaml +++ b/cluster-autoscaler/cloudprovider/cherryservers/examples/cluster-autoscaler-deployment.yaml @@ -18,16 +18,16 @@ spec: spec: tolerations: - effect: NoSchedule - key: node-role.kubernetes.io/master + key: node-role.kubernetes.io/control-plane # Node affinity is used to force cluster-autoscaler to stick - # to the master node. This allows the cluster to reliably downscale + # to the macontrol-plane node. This allows the cluster to reliably downscale # to zero worker nodes when needed. affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - - key: node-role.kubernetes.io/master + - key: node-role.kubernetes.io/control-plane operator: Exists serviceAccountName: cluster-autoscaler containers: diff --git a/cluster-autoscaler/cloudprovider/civo/civo_node_group.go b/cluster-autoscaler/cloudprovider/civo/civo_node_group.go index d47abdbfbb4a..d20a8c4d5ebe 100644 --- a/cluster-autoscaler/cloudprovider/civo/civo_node_group.go +++ b/cluster-autoscaler/cloudprovider/civo/civo_node_group.go @@ -118,6 +118,11 @@ func (n *NodeGroup) IncreaseSize(delta int) error { return nil } +// AtomicIncreaseSize is not implemented. +func (n *NodeGroup) AtomicIncreaseSize(delta int) error { + return cloudprovider.ErrNotImplemented +} + // DeleteNodes deletes nodes from this node group (and also increasing the size // of the node group with that). Error is returned either on failure or if the // given node doesn't belong to this node group. This function should wait diff --git a/cluster-autoscaler/cloudprovider/cloud_provider.go b/cluster-autoscaler/cloudprovider/cloud_provider.go index e0bdc45b68fe..aa49b2e667c3 100644 --- a/cluster-autoscaler/cloudprovider/cloud_provider.go +++ b/cluster-autoscaler/cloudprovider/cloud_provider.go @@ -184,6 +184,17 @@ type NodeGroup interface { // node group size is updated. Implementation required. IncreaseSize(delta int) error + // AtomicIncreaseSize tries to increase the size of the node group atomically. + // - If the method returns nil, it guarantees that delta instances will be added to the node group + // within its MaxNodeProvisionTime. The function should wait until node group size is updated. + // The cloud provider is responsible for tracking and ensuring successful scale up asynchronously. + // - If the method returns an error, it guarantees that no new instances will be added to the node group + // as a result of this call. The cloud provider is responsible for ensuring that before returning from the method. + // Implementation is optional. If implemented, CA will take advantage of the method while scaling up + // GenericScaleUp ProvisioningClass, guaranteeing that all instances required for such a ProvisioningRequest + // are provisioned atomically. + AtomicIncreaseSize(delta int) error + // DeleteNodes deletes nodes from this node group. Error is returned either on // failure or if the given node doesn't belong to this node group. This function // should wait until node group size is updated. Implementation required. @@ -234,7 +245,7 @@ type NodeGroup interface { // GetOptions returns NodeGroupAutoscalingOptions that should be used for this particular // NodeGroup. Returning a nil will result in using default options. - // Implementation optional. + // Implementation optional. Callers MUST handle `cloudprovider.ErrNotImplemented`. GetOptions(defaults config.NodeGroupAutoscalingOptions) (*config.NodeGroupAutoscalingOptions, error) } diff --git a/cluster-autoscaler/cloudprovider/cloudstack/cloudstack_node_group.go b/cluster-autoscaler/cloudprovider/cloudstack/cloudstack_node_group.go index c4fdf5b805fb..9181b5cd82b9 100644 --- a/cluster-autoscaler/cloudprovider/cloudstack/cloudstack_node_group.go +++ b/cluster-autoscaler/cloudprovider/cloudstack/cloudstack_node_group.go @@ -71,6 +71,11 @@ func (asg *asg) IncreaseSize(delta int) error { return nil } +// AtomicIncreaseSize is not implemented. +func (asg *asg) AtomicIncreaseSize(delta int) error { + return cloudprovider.ErrNotImplemented +} + // DecreaseTargetSize decreases the target size of the node group. This function // doesn't permit to delete any existing node and can be used only to reduce the // request for new nodes that have not been yet fulfilled. Delta should be negative. diff --git a/cluster-autoscaler/cloudprovider/clusterapi/README.md b/cluster-autoscaler/cloudprovider/clusterapi/README.md index 2f4e247f4579..d6a73da14949 100644 --- a/cluster-autoscaler/cloudprovider/clusterapi/README.md +++ b/cluster-autoscaler/cloudprovider/clusterapi/README.md @@ -50,9 +50,7 @@ most likely need other command line flags. For more information you can invoke ## Configuring node group auto discovery -If you do not configure node group auto discovery, cluster autoscaler will attempt -to match nodes against any scalable resources found in any namespace and belonging -to any Cluster. +You must configure node group auto discovery to inform cluster autoscaler which cluster in which to find for scalable node groups. Limiting cluster autoscaler to only match against resources in the blue namespace @@ -323,13 +321,14 @@ set, the autoscaler will use the behavior described above. ## Sample manifest -A sample manifest that will create a deployment running the autoscaler is +A [sample manifest](https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/cloudprovider/clusterapi/examples/deployment.yaml) +that will create a deployment running the autoscaler is available. It can be deployed by passing it through `envsubst`, providing these environment variables to set the namespace to deploy into as well as the image and tag to use: ``` export AUTOSCALER_NS=kube-system -export AUTOSCALER_IMAGE=us.gcr.io/k8s-artifacts-prod/autoscaling/cluster-autoscaler:v1.20.0 +export AUTOSCALER_IMAGE=registry.k8s.io/autoscaling/cluster-autoscaler:v1.29.0 envsubst < examples/deployment.yaml | kubectl apply -f- ``` @@ -454,4 +453,3 @@ here as a reference for users who might be deploying on these infrastructures. | IBM Cloud | `ibm-cloud.kubernetes.io/worker-id` | Used by the IBM Cloud Cloud Controller Manager to identify the node | | IBM Cloud | `vpc-block-csi-driver-labels` | Used by the IBM Cloud CSI driver as a target for persistent volume node affinity | | IBM Cloud | `ibm-cloud.kubernetes.io/vpc-instance-id` | Used when a VPC is in use on IBM Cloud | - diff --git a/cluster-autoscaler/cloudprovider/clusterapi/clusterapi_controller.go b/cluster-autoscaler/cloudprovider/clusterapi/clusterapi_controller.go index 567bba5e0d1c..3869d1ac2baf 100644 --- a/cluster-autoscaler/cloudprovider/clusterapi/clusterapi_controller.go +++ b/cluster-autoscaler/cloudprovider/clusterapi/clusterapi_controller.go @@ -474,7 +474,9 @@ func newMachineController( Resource: resourceNameMachinePool, } machinePoolInformer = managementInformerFactory.ForResource(gvrMachinePool) - machinePoolInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{}) + if _, err := machinePoolInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{}); err != nil { + return nil, fmt.Errorf("failed to add event handler for resource %q: %w", resourceNameMachinePool, err) + } if err := machinePoolInformer.Informer().GetIndexer().AddIndexers(cache.Indexers{ machinePoolProviderIDIndex: indexMachinePoolByProviderID, diff --git a/cluster-autoscaler/cloudprovider/clusterapi/clusterapi_controller_test.go b/cluster-autoscaler/cloudprovider/clusterapi/clusterapi_controller_test.go index 359111be6bb1..fc89fdae577a 100644 --- a/cluster-autoscaler/cloudprovider/clusterapi/clusterapi_controller_test.go +++ b/cluster-autoscaler/cloudprovider/clusterapi/clusterapi_controller_test.go @@ -1043,9 +1043,8 @@ func TestControllerNodeGroupForNodeWithPositiveScalingBounds(t *testing.T) { if err != nil { t.Fatalf("unexpected error: %v", err) } - // We don't scale from 0 so nodes must belong to a - // nodegroup that has a scale size of at least 1. - if ng != nil { + // We allow scaling if minSize=maxSize + if ng == nil { t.Fatalf("unexpected nodegroup: %v", ng) } } @@ -1124,19 +1123,19 @@ func TestControllerNodeGroups(t *testing.T) { nodeGroupMaxSizeAnnotationKey: "1", } - // Test #5: machineset with no scaling bounds results in no nodegroups + // Test #5: 5 machineset with minSize=maxSize results in a five nodegroup machineSetConfigs = createMachineSetTestConfigs(namespace, clusterName, RandomString(6), 5, 1, annotations, nil) if err := addTestConfigs(t, controller, machineSetConfigs...); err != nil { t.Fatalf("unexpected error: %v", err) } - assertNodegroupLen(t, controller, 0) + assertNodegroupLen(t, controller, 5) - // Test #6: machinedeployment with no scaling bounds results in no nodegroups + // Test #6: add 2 machinedeployment with minSize=maxSize machineDeploymentConfigs = createMachineDeploymentTestConfigs(namespace, clusterName, RandomString(6), 2, 1, annotations, nil) if err := addTestConfigs(t, controller, machineDeploymentConfigs...); err != nil { t.Fatalf("unexpected error: %v", err) } - assertNodegroupLen(t, controller, 0) + assertNodegroupLen(t, controller, 7) annotations = map[string]string{ nodeGroupMinSizeAnnotationKey: "-1", diff --git a/cluster-autoscaler/cloudprovider/clusterapi/clusterapi_nodegroup.go b/cluster-autoscaler/cloudprovider/clusterapi/clusterapi_nodegroup.go index d28dc0a14f28..eb66ff8ee8ed 100644 --- a/cluster-autoscaler/cloudprovider/clusterapi/clusterapi_nodegroup.go +++ b/cluster-autoscaler/cloudprovider/clusterapi/clusterapi_nodegroup.go @@ -18,6 +18,7 @@ package clusterapi import ( "fmt" + "k8s.io/klog/v2" "math/rand" "github.com/pkg/errors" @@ -88,6 +89,11 @@ func (ng *nodegroup) IncreaseSize(delta int) error { return ng.scalableResource.SetSize(size + delta) } +// AtomicIncreaseSize is not implemented. +func (ng *nodegroup) AtomicIncreaseSize(delta int) error { + return cloudprovider.ErrNotImplemented +} + // DeleteNodes deletes nodes from this node group. Error is returned // either on failure or if the given node doesn't belong to this node // group. This function should wait until node group size is updated. @@ -355,7 +361,12 @@ func newNodeGroupFromScalableResource(controller *machineController, unstructure } // Ensure the node group would have the capacity to scale - if scalableResource.MaxSize()-scalableResource.MinSize() < 1 { + // allow MinSize = 0 + // allow MaxSize = MinSize + // don't allow MaxSize < MinSize + // don't allow MaxSize = MinSize = 0 + if scalableResource.MaxSize()-scalableResource.MinSize() < 0 || scalableResource.MaxSize() == 0 { + klog.V(4).Infof("nodegroup %s has no scaling capacity, skipping", scalableResource.Name()) return nil, nil } diff --git a/cluster-autoscaler/cloudprovider/clusterapi/clusterapi_nodegroup_test.go b/cluster-autoscaler/cloudprovider/clusterapi/clusterapi_nodegroup_test.go index 6da06bde3614..3012cdd6f1be 100644 --- a/cluster-autoscaler/cloudprovider/clusterapi/clusterapi_nodegroup_test.go +++ b/cluster-autoscaler/cloudprovider/clusterapi/clusterapi_nodegroup_test.go @@ -108,6 +108,18 @@ func TestNodeGroupNewNodeGroupConstructor(t *testing.T) { nodeCount: 5, errors: false, expectNil: true, + }, { + description: "no error and expect notNil: min=max=2", + annotations: map[string]string{ + nodeGroupMinSizeAnnotationKey: "2", + nodeGroupMaxSizeAnnotationKey: "2", + }, + nodeCount: 1, + minSize: 2, + maxSize: 2, + replicas: 1, + errors: false, + expectNil: false, }} newNodeGroup := func(controller *machineController, testConfig *testConfig) (*nodegroup, error) { diff --git a/cluster-autoscaler/cloudprovider/clusterapi/clusterapi_utils.go b/cluster-autoscaler/cloudprovider/clusterapi/clusterapi_utils.go index 58ae58915192..68c2be164436 100644 --- a/cluster-autoscaler/cloudprovider/clusterapi/clusterapi_utils.go +++ b/cluster-autoscaler/cloudprovider/clusterapi/clusterapi_utils.go @@ -201,6 +201,9 @@ func machineSetHasMachineDeploymentOwnerRef(machineSet *unstructured.Unstructure // normalizedProviderString splits s on '/' returning everything after // the last '/'. func normalizedProviderString(s string) normalizedProviderID { + if strings.HasPrefix(s, "azure://") && strings.Contains(s, "virtualMachineScaleSets") { + return normalizedProviderID(s) + } split := strings.Split(s, "/") return normalizedProviderID(split[len(split)-1]) } diff --git a/cluster-autoscaler/cloudprovider/clusterapi/clusterapi_utils_test.go b/cluster-autoscaler/cloudprovider/clusterapi/clusterapi_utils_test.go index c6bafd50a969..f56c767de209 100644 --- a/cluster-autoscaler/cloudprovider/clusterapi/clusterapi_utils_test.go +++ b/cluster-autoscaler/cloudprovider/clusterapi/clusterapi_utils_test.go @@ -422,6 +422,14 @@ func TestUtilNormalizedProviderID(t *testing.T) { description: "id with / characters", providerID: "aws:////i-12345678", expectedID: "i-12345678", + }, { + description: "azure standard vm", + providerID: "azure:///subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceGroupName/providers/Microsoft.Compute/virtualMachines/control-plane-1cbe5-d4dx7", + expectedID: "control-plane-1cbe5-d4dx7", + }, { + description: "azure vmss", + providerID: "azure:///subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceGroupName/providers/Microsoft.Compute/virtualMachineScaleSets/vmssName/virtualMachines/0", + expectedID: "azure:///subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceGroupName/providers/Microsoft.Compute/virtualMachineScaleSets/vmssName/virtualMachines/0", }} { t.Run(tc.description, func(t *testing.T) { actualID := normalizedProviderString(tc.providerID) diff --git a/cluster-autoscaler/cloudprovider/clusterapi/examples/deployment.yaml b/cluster-autoscaler/cloudprovider/clusterapi/examples/deployment.yaml index 4046cea7f48b..bfee32fc1423 100644 --- a/cluster-autoscaler/cloudprovider/clusterapi/examples/deployment.yaml +++ b/cluster-autoscaler/cloudprovider/clusterapi/examples/deployment.yaml @@ -27,7 +27,7 @@ spec: terminationGracePeriodSeconds: 10 tolerations: - effect: NoSchedule - key: node-role.kubernetes.io/master + key: node-role.kubernetes.io/control-plane --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1 @@ -165,6 +165,7 @@ rules: - machinedeployments/scale - machines - machinesets + - machinepools verbs: - get - list diff --git a/cluster-autoscaler/cloudprovider/digitalocean/digitalocean_node_group.go b/cluster-autoscaler/cloudprovider/digitalocean/digitalocean_node_group.go index 1b82b5e87628..421cdea1451c 100644 --- a/cluster-autoscaler/cloudprovider/digitalocean/digitalocean_node_group.go +++ b/cluster-autoscaler/cloudprovider/digitalocean/digitalocean_node_group.go @@ -106,6 +106,11 @@ func (n *NodeGroup) IncreaseSize(delta int) error { return nil } +// AtomicIncreaseSize is not implemented. +func (n *NodeGroup) AtomicIncreaseSize(delta int) error { + return cloudprovider.ErrNotImplemented +} + // DeleteNodes deletes nodes from this node group (and also increasing the size // of the node group with that). Error is returned either on failure or if the // given node doesn't belong to this node group. This function should wait diff --git a/cluster-autoscaler/cloudprovider/packet/OWNERS b/cluster-autoscaler/cloudprovider/equinixmetal/OWNERS similarity index 82% rename from cluster-autoscaler/cloudprovider/packet/OWNERS rename to cluster-autoscaler/cloudprovider/equinixmetal/OWNERS index cbb8c1796985..9fcd38cabf36 100644 --- a/cluster-autoscaler/cloudprovider/packet/OWNERS +++ b/cluster-autoscaler/cloudprovider/equinixmetal/OWNERS @@ -13,4 +13,4 @@ reviewers: - v-pap labels: -- area/provider/packet +- area/provider/equinixmetal diff --git a/cluster-autoscaler/cloudprovider/packet/README.md b/cluster-autoscaler/cloudprovider/equinixmetal/README.md similarity index 74% rename from cluster-autoscaler/cloudprovider/packet/README.md rename to cluster-autoscaler/cloudprovider/equinixmetal/README.md index 8e79741691b3..a0b751d02c96 100644 --- a/cluster-autoscaler/cloudprovider/packet/README.md +++ b/cluster-autoscaler/cloudprovider/equinixmetal/README.md @@ -21,18 +21,18 @@ The credentials for authenticating with Equinix Metal are stored in a secret and provided as an env var to the container. [examples/cluster-autoscaler-secret](examples/cluster-autoscaler-secret.yaml) In the above file you can modify the following fields: -| Secret | Key | Value | -|---------------------------------|-------------------------|------------------------------------------------------------------------------------------------------------------------------------| -| cluster-autoscaler-packet | authtoken | Your Equinix Metal API token. It must be base64 encoded. | -| cluster-autoscaler-cloud-config | Global/project-id | Your Equinix Metal project id | -| cluster-autoscaler-cloud-config | Global/api-server | The ip:port for you cluster's k8s api (e.g. K8S_MASTER_PUBLIC_IP:6443) | -| cluster-autoscaler-cloud-config | Global/facility | The Equinix Metal facility for the devices in your nodepool (eg: sv15) | -| cluster-autoscaler-cloud-config | Global/plan | The Equinix Metal plan (aka size/flavor) for new nodes in the nodepool (eg: c3.small.x86) | -| cluster-autoscaler-cloud-config | Global/billing | The billing interval for new nodes (default: hourly) | -| cluster-autoscaler-cloud-config | Global/os | The OS image to use for new nodes (default: ubuntu_18_04). If you change this also update cloudinit. | -| cluster-autoscaler-cloud-config | Global/cloudinit | The base64 encoded [user data](https://metal.equinix.com/developers/docs/servers/user-data/) submitted when provisioning devices. In the example file, the default value has been tested with Ubuntu 18.04 to install Docker & kubelet and then to bootstrap the node into the cluster using kubeadm. The kubeadm, kubelet, kubectl are pinned to version 1.17.4. For a different base OS or bootstrap method, this needs to be customized accordingly| -| cluster-autoscaler-cloud-config | Global/reservation | The values "require" or "prefer" will request the next available hardware reservation for new devices in selected facility & plan. If no hardware reservations match, "require" will trigger a failure, while "prefer" will launch on-demand devices instead (default: none) | -| cluster-autoscaler-cloud-config | Global/hostname-pattern | The pattern for the names of new Equinix Metal devices (default: "k8s-{{.ClusterName}}-{{.NodeGroup}}-{{.RandString8}}" ) | +| Secret | Key | Value | +|-------------------------------------|-------------------------|------------------------------------------------------------------------------------------------------------------------------------| +| cluster-autoscaler-equinixmetal | authtoken | Your Equinix Metal API token. It must be base64 encoded. | +| cluster-autoscaler-cloud-config | Global/project-id | Your Equinix Metal project id | +| cluster-autoscaler-cloud-config | Global/api-server | The ip:port for you cluster's k8s api (e.g. K8S_MASTER_PUBLIC_IP:6443) | +| cluster-autoscaler-cloud-config | Global/facility | The Equinix Metal facility for the devices in your nodepool (eg: sv15) | +| cluster-autoscaler-cloud-config | Global/plan | The Equinix Metal plan (aka size/flavor) for new nodes in the nodepool (eg: c3.small.x86) | +| cluster-autoscaler-cloud-config | Global/billing | The billing interval for new nodes (default: hourly) | +| cluster-autoscaler-cloud-config | Global/os | The OS image to use for new nodes (default: ubuntu_18_04). If you change this also update cloudinit. | +| cluster-autoscaler-cloud-config | Global/cloudinit | The base64 encoded [user data](https://metal.equinix.com/developers/docs/servers/user-data/) submitted when provisioning devices. In the example file, the default value has been tested with Ubuntu 18.04 to install Docker & kubelet and then to bootstrap the node into the cluster using kubeadm. The kubeadm, kubelet, kubectl are pinned to version 1.17.4. For a different base OS or bootstrap method, this needs to be customized accordingly| +| cluster-autoscaler-cloud-config | Global/reservation | The values "require" or "prefer" will request the next available hardware reservation for new devices in selected facility & plan. If no hardware reservations match, "require" will trigger a failure, while "prefer" will launch on-demand devices instead (default: none) | +| cluster-autoscaler-cloud-config | Global/hostname-pattern | The pattern for the names of new Equinix Metal devices (default: "k8s-{{.ClusterName}}-{{.NodeGroup}}-{{.RandString8}}" ) | You can always update the secret with more nodepool definitions (with different plans etc.) as shown in the example, but you should always provide a default nodepool configuration. @@ -106,7 +106,7 @@ environment variable in the deployment: ``` env: - - name: PACKET_CONTROLLER_NODE_IDENTIFIER_LABEL + - name: METAL_CONTROLLER_NODE_IDENTIFIER_LABEL value: