Currently, we hardcode the exact image to use in cluster/gce. This is
problematic as the image gets stale very frequently and has old versions
of components such as containerd, kernel, and CVE issues.
Instead, fetch the latest image from the image family. This will ensure
the image will stay up to date. Each image change in image family is
expected to be minor. Switching to a new LTS milestone will require
updating the image family set.
Also add new kube-up environment variables to allow controlling the image
family used, namely:
* IMAGE_FAMILY - default image family to use
* MASTER_IMAGE_FAMILY - image family for master to use (defaults to
IMAGE_FAMILY if unset)
* NODE_IMAGE_FAMILY - image family for node to use (defaults to
IMAGE_FAMILY if unset)
Signed-off-by: David Porter <david@porter.me>
Currently if we disable cloud provider by the following
CLOUD_PROVIDER_FLAG=external
KUBE_FEATURE_GATES=DisableCloudProviders=true,DisableKubeletCloudCredentialProviders=true
we can no longer schedule workloads due to taints and a lack of
node configuration.
This pulls a CCM image from K/cloud-provider-gcp to run tests.
This is a pre-step for taking the above feature gates to beta.
It does not address the last known good dependency issue.
Specifically the CCM image is built on top of client-go and staging.
However this image will be an "old" verison of those libraries.
So it does not test if those libraries work in the CCM.
Fix shellcheck errors.
Add CCM_FEATURE_GATES for testing.
Switching to extended regex from perl regex.
Adding instrumentation to cluster configuration.
Improved regex to not greedily get key-value pairs.
Fixed issue with error on regex no line match.
Switch credentialprovider version to v1alpha1
Adding the ability to ignore no schedule flags in testing.
Specifically node.cloudprovider.kubernetes.io/uninitialized:NoSchedule
Fix shellcheck complaint.
COS-85 is very old OS image and is EoL in September 2022. Update to the
latest stable LTS version of COS.
Signed-off-by: David Porter <david@porter.me>
This is needed for testing metrics support via the secure port
of kube-scheduler and kube-controller-manager. To access that
port, port-forwarding is used.