Skip to content

Commit

Permalink
Update API versions for 1.19
Browse files Browse the repository at this point in the history
kubernetes/kubernetes#91420
kubernetes/kubernetes#90672
kubernetes/kubernetes#90671
kubernetes/kubernetes#89778

kubernetes/kubernetes#90463 can only be tacked
later when the GRM vendors the 1.19 libraries and is capable of
understanding autoscaling/v2beta2 (as it has some incompatible changes
compared to autoscaling/v2beta1)
  • Loading branch information
rfranzke committed Aug 28, 2020
1 parent bbca8e4 commit 90d6bdd
Show file tree
Hide file tree
Showing 9 changed files with 32 additions and 17 deletions.
4 changes: 3 additions & 1 deletion charts/utils-templates/templates/_versions.tpl
Expand Up @@ -81,7 +81,9 @@ policy/v1beta1
{{- end -}}

{{- define "ingressversion" -}}
{{- if semverCompare ">= 1.14-0" .Capabilities.KubeVersion.GitVersion -}}
{{- if semverCompare ">= 1.19-0" .Capabilities.KubeVersion.GitVersion -}}
networking.k8s.io/v1
{{- else if semverCompare ">= 1.14-0" .Capabilities.KubeVersion.GitVersion -}}
networking.k8s.io/v1beta1
{{- else -}}
extensions/v1beta1
Expand Down
4 changes: 2 additions & 2 deletions extensions/pkg/controller/csimigration/reconciler.go
Expand Up @@ -30,7 +30,7 @@ import (
"github.com/go-logr/logr"
appsv1 "k8s.io/api/apps/v1"
corev1 "k8s.io/api/core/v1"
storagev1beta1 "k8s.io/api/storage/v1beta1"
storagev1 "k8s.io/api/storage/v1"
apierrors "k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
Expand Down Expand Up @@ -182,7 +182,7 @@ func (r *reconciler) reconcile(ctx context.Context, cluster *extensionsv1alpha1.
// Delete legacy storage classes created by the extension controller to allow their recreation with the new CSI
// provisioner names and the same storage class names (the storage classes are immutable, hence, a regular UPDATE
// does not work).
storageClassList := &storagev1beta1.StorageClassList{}
storageClassList := &storagev1.StorageClassList{}
if err := shootClient.List(ctx, storageClassList); err != nil {
return reconcile.Result{}, err
}
Expand Down
12 changes: 6 additions & 6 deletions extensions/pkg/controller/csimigration/reconciler_test.go
Expand Up @@ -28,7 +28,7 @@ import (
. "github.com/onsi/gomega"
appsv1 "k8s.io/api/apps/v1"
corev1 "k8s.io/api/core/v1"
storagev1beta1 "k8s.io/api/storage/v1beta1"
storagev1 "k8s.io/api/storage/v1"
apierrors "k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
Expand Down Expand Up @@ -199,17 +199,17 @@ var _ = Describe("reconciler", func() {
return nil
})

storageClass := &storagev1beta1.StorageClass{
storageClass := &storagev1.StorageClass{
ObjectMeta: metav1.ObjectMeta{
Name: storageClassName,
},
Provisioner: storageClassProvisioner,
}
shootClient.EXPECT().List(ctx, gomock.AssignableToTypeOf(&storagev1beta1.StorageClassList{})).DoAndReturn(func(_ context.Context, list runtime.Object, _ ...client.ListOption) error {
obj := &storagev1beta1.StorageClassList{
Items: []storagev1beta1.StorageClass{*storageClass},
shootClient.EXPECT().List(ctx, gomock.AssignableToTypeOf(&storagev1.StorageClassList{})).DoAndReturn(func(_ context.Context, list runtime.Object, _ ...client.ListOption) error {
obj := &storagev1.StorageClassList{
Items: []storagev1.StorageClass{*storageClass},
}
obj.DeepCopyInto(list.(*storagev1beta1.StorageClassList))
obj.DeepCopyInto(list.(*storagev1.StorageClassList))
return nil
})
shootClient.EXPECT().Delete(ctx, storageClass)
Expand Down
6 changes: 3 additions & 3 deletions hack/local-development/dev-setup-register-gardener
Expand Up @@ -156,7 +156,7 @@ subsets:
EOF

cat <<EOF | kubectl apply -f -
apiVersion: apiregistration.k8s.io/v1beta1
apiVersion: apiregistration.k8s.io/v1
kind: APIService
metadata:
name: $CORE_V1ALPHA1_APISERVICE_NAME
Expand All @@ -171,7 +171,7 @@ spec:
namespace: garden
$APISERVICE_PORT_STRING
---
apiVersion: apiregistration.k8s.io/v1beta1
apiVersion: apiregistration.k8s.io/v1
kind: APIService
metadata:
name: $CORE_V1BETA1_APISERVICE_NAME
Expand All @@ -186,7 +186,7 @@ spec:
namespace: garden
$APISERVICE_PORT_STRING
---
apiVersion: apiregistration.k8s.io/v1beta1
apiVersion: apiregistration.k8s.io/v1
kind: APIService
metadata:
name: $SETTINGS_APISERVICE_NAME
Expand Down
4 changes: 2 additions & 2 deletions pkg/operation/botanist/cleanup.go
Expand Up @@ -39,7 +39,7 @@ import (
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/selection"
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
apiregistrationv1beta1 "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1"
apiregistrationv1 "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1"
"k8s.io/kube-aggregator/pkg/controllers/autoregister"
"sigs.k8s.io/controller-runtime/pkg/client"
)
Expand Down Expand Up @@ -202,7 +202,7 @@ func (b *Botanist) CleanExtendedAPIs(ctx context.Context) error {
)

return flow.Parallel(
cleanResourceFn(defaultOps, c, &apiregistrationv1beta1.APIServiceList{}, APIServiceCleanOption, GracePeriodFiveMinutes, FinalizeAfterOneHour),
cleanResourceFn(defaultOps, c, &apiregistrationv1.APIServiceList{}, APIServiceCleanOption, GracePeriodFiveMinutes, FinalizeAfterOneHour),
cleanResourceFn(crdCleanOps, c, &apiextensionsv1beta1.CustomResourceDefinitionList{}, CustomResourceDefinitionCleanOption, GracePeriodFiveMinutes, FinalizeAfterOneHour),
)(ctx)
}
Expand Down
1 change: 1 addition & 0 deletions pkg/operation/botanist/controlplane.go
Expand Up @@ -1151,6 +1151,7 @@ func (b *Botanist) DeployKubeAPIServer(ctx context.Context) error {
// the HVPA controller will create its own for the kube-apiserver deployment.
if hvpaEnabled {
for _, obj := range []runtime.Object{
// TODO: Use autoscaling/v2beta2 for Kubernetes 1.19+ shoots once kubernetes-v1.19 golang dependencies were vendored.
&autoscalingv2beta1.HorizontalPodAutoscaler{
ObjectMeta: metav1.ObjectMeta{
Namespace: b.Shoot.SeedNamespace,
Expand Down
Expand Up @@ -332,7 +332,9 @@ func (k *kubeScheduler) computeEnvironmentVariables() []corev1.EnvVar {

func (k *kubeScheduler) computeComponentConfig() (string, string, error) {
var apiVersion string
if versionConstraintK8sGreaterEqual118.Check(k.version) {
if versionConstraintK8sGreaterEqual119.Check(k.version) {
apiVersion = "kubescheduler.config.k8s.io/v1beta1"
} else if versionConstraintK8sGreaterEqual118.Check(k.version) {
apiVersion = "kubescheduler.config.k8s.io/v1alpha2"
} else if versionConstraintK8sGreaterEqual112.Check(k.version) {
apiVersion = "kubescheduler.config.k8s.io/v1alpha1"
Expand Down Expand Up @@ -394,6 +396,7 @@ var (
versionConstraintK8sGreaterEqual115 *semver.Constraints
versionConstraintK8sGreaterEqual117 *semver.Constraints
versionConstraintK8sGreaterEqual118 *semver.Constraints
versionConstraintK8sGreaterEqual119 *semver.Constraints
)

func init() {
Expand All @@ -416,6 +419,8 @@ func init() {
utilruntime.Must(err)
versionConstraintK8sGreaterEqual118, err = semver.NewConstraint(">= 1.18")
utilruntime.Must(err)
versionConstraintK8sGreaterEqual119, err = semver.NewConstraint(">= 1.19")
utilruntime.Must(err)
}

// Secrets is collection of secrets for the kube-scheduler.
Expand Down
Expand Up @@ -383,6 +383,8 @@ var _ = Describe("KubeScheduler", func() {
Entry("kubernetes 1.17 w/ full config", "1.17.7", configFull),
Entry("kubernetes 1.18 w/o config", "1.18.8", configEmpty),
Entry("kubernetes 1.18 w/ full config", "1.18.8", configFull),
Entry("kubernetes 1.19 w/o config", "1.19.8", configEmpty),
Entry("kubernetes 1.19 w/ full config", "1.19.8", configFull),
)
})
})
Expand All @@ -407,11 +409,15 @@ var _ = Describe("KubeScheduler", func() {
})

func componentConfigYAMLForKubernetesVersion(version string) (string, string) {
apiVersion, checksum := "componentconfig/v1alpha1", "a09f1f2d75393187666e68e29d3f405db81f8027d1111918ce40e4cb31c2e696"
if k8sVersionGreaterEqual118, _ := versionutils.CompareVersions(version, ">=", "1.18"); k8sVersionGreaterEqual118 {
var apiVersion, checksum string
if k8sVersionGreaterEqual119, _ := versionutils.CompareVersions(version, ">=", "1.19"); k8sVersionGreaterEqual119 {
apiVersion, checksum = "kubescheduler.config.k8s.io/v1beta1", "9988c880500b124fb153fd6e8c34435386b1924dcd48a39385fdb6d2bef492a9"
} else if k8sVersionGreaterEqual118, _ := versionutils.CompareVersions(version, ">=", "1.18"); k8sVersionGreaterEqual118 {
apiVersion, checksum = "kubescheduler.config.k8s.io/v1alpha2", "a1916d3e007de7f094bb829768c16eef1c4ec2ba30087e3bb1e564ecd2990fc5"
} else if k8sVersionGreaterEqual112, _ := versionutils.CompareVersions(version, ">=", "1.12"); k8sVersionGreaterEqual112 {
apiVersion, checksum = "kubescheduler.config.k8s.io/v1alpha1", "b1821b1b8e76431815e36877e29eda9a50fbdd9adc2a9e579f378fe69a6f744c"
} else {
apiVersion, checksum = "componentconfig/v1alpha1", "a09f1f2d75393187666e68e29d3f405db81f8027d1111918ce40e4cb31c2e696"
}

return `apiVersion: ` + apiVersion + `
Expand Down
1 change: 1 addition & 0 deletions pkg/operation/common/utils.go
Expand Up @@ -416,6 +416,7 @@ func DeleteLoggingStack(ctx context.Context, k8sClient client.Client, namespace
&rbacv1.RoleBindingList{},
&appsv1.DaemonSetList{},
&appsv1.DeploymentList{},
// TODO: Use autoscaling/v2beta2 for Kubernetes 1.19+ shoots once kubernetes-v1.19 golang dependencies were vendored.
&autoscalingv2beta1.HorizontalPodAutoscalerList{},
&extensionsv1beta1.IngressList{},
&corev1.SecretList{},
Expand Down

0 comments on commit 90d6bdd

Please sign in to comment.