Skip to content
This repository has been archived by the owner on Apr 7, 2020. It is now read-only.

Commit

Permalink
Merge pull request #505 from rfranzke/feature/corev1beta1
Browse files Browse the repository at this point in the history
Adapt extensions to be able to work with all versions of `core.gardener.cloud` API group
  • Loading branch information
rfranzke committed Dec 18, 2019
2 parents 4c3d2be + 7929426 commit b3241f0
Show file tree
Hide file tree
Showing 288 changed files with 33,734 additions and 1,547 deletions.
8 changes: 0 additions & 8 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -79,14 +79,6 @@ docker-images: docker-image-hyper
revendor:
@GO111MODULE=on go mod vendor
@GO111MODULE=on go mod tidy
# Remove conversion files to prevent cyclic dependencies between Gardener and Extension APIs.
# This is needed as long as we migrate from gardener/v1beta1 to core/v1alpha1 APIs.
# This can be removed again as soon as the old gardener/v1beta1 API group is deleted.
@rm -f vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/zz_generated.conversion.go
@rm -f vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/conversions.go
@rm -f vendor/github.com/gardener/gardener/pkg/apis/garden/v1beta1/zz_generated.conversion.go
@rm -f vendor/github.com/gardener/gardener/pkg/apis/garden/v1beta1/conversions.go
sed -i 's/, addConversionFuncs)/\)/g' vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/register.go

.PHONY: start-os-coreos
start-os-coreos:
Expand Down
2 changes: 1 addition & 1 deletion controllers/networking-calico/docs/usage-as-end-user.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Using the Networking Calico extension with Gardener as end-user

The [`core.gardener.cloud/v1alpha1.Shoot` resource](https://github.com/gardener/gardener/blob/master/example/90-shoot.yaml) declares a `networking` field that is meant to contain network-specific configuration.
The [`core.gardener.cloud/v1beta1.Shoot` resource](https://github.com/gardener/gardener/blob/master/example/90-shoot.yaml) declares a `networking` field that is meant to contain network-specific configuration.

In this document we are describing how this configuration looks like for Calico and provide an example `Shoot` manifest with minimal configuration that you can use to create a cluster.

Expand Down
6 changes: 3 additions & 3 deletions controllers/networking-calico/pkg/controller/status.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ package controller
import (
"context"

gardencorev1alpha1 "github.com/gardener/gardener/pkg/apis/core/v1alpha1"
gardencorev1beta1 "github.com/gardener/gardener/pkg/apis/core/v1beta1"

calicov1alpha1 "github.com/gardener/gardener-extensions/controllers/networking-calico/pkg/apis/calico/v1alpha1"
extensionscontroller "github.com/gardener/gardener-extensions/pkg/controller"
Expand All @@ -38,8 +38,8 @@ func (a *actuator) updateProviderStatus(

return extensionscontroller.TryUpdateStatus(ctx, retry.DefaultBackoff, a.client, network, func() error {
network.Status.ProviderStatus = &runtime.RawExtension{Object: status}
network.Status.LastOperation = extensionscontroller.LastOperation(gardencorev1alpha1.LastOperationTypeReconcile,
gardencorev1alpha1.LastOperationStateSucceeded,
network.Status.LastOperation = extensionscontroller.LastOperation(gardencorev1beta1.LastOperationTypeReconcile,
gardencorev1beta1.LastOperationStateSucceeded,
100,
"Calico was configured successfully")
return nil
Expand Down
2 changes: 1 addition & 1 deletion controllers/provider-alicloud/docs/usage-as-end-user.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Using the Alicloud provider extension with Gardener as end-user

The [`core.gardener.cloud/v1alpha1.Shoot` resource](https://github.com/gardener/gardener/blob/master/example/90-shoot.yaml) declares a few fields that are meant to contain provider-specific configuration.
The [`core.gardener.cloud/v1beta1.Shoot` resource](https://github.com/gardener/gardener/blob/master/example/90-shoot.yaml) declares a few fields that are meant to contain provider-specific configuration.

In this document we are describing how this configuration looks like for Alicloud and provide an example `Shoot` manifest with minimal configuration that you can use to create an Alicloud cluster (modulo the landscape-specific information like cloud profile names, secret binding names, etc.).

Expand Down
4 changes: 2 additions & 2 deletions controllers/provider-alicloud/pkg/alicloud/client/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,12 @@ import (
"fmt"
"net/http"

"github.com/gardener/gardener-extensions/controllers/provider-alicloud/pkg/alicloud"

"github.com/aliyun/alibaba-cloud-sdk-go/services/ecs"
"github.com/aliyun/alibaba-cloud-sdk-go/services/sts"
alicloudvpc "github.com/aliyun/alibaba-cloud-sdk-go/services/vpc"
"github.com/aliyun/aliyun-oss-go-sdk/oss"
"github.com/gardener/gardener-extensions/controllers/provider-alicloud/pkg/alicloud"

corev1 "k8s.io/api/core/v1"
"sigs.k8s.io/controller-runtime/pkg/client"
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,13 @@ package validation
import (
apisalicloud "github.com/gardener/gardener-extensions/controllers/provider-alicloud/pkg/apis/alicloud"

gardencorev1alpha1 "github.com/gardener/gardener/pkg/apis/core/v1alpha1"
gardencorev1beta1 "github.com/gardener/gardener/pkg/apis/core/v1beta1"
apivalidation "k8s.io/apimachinery/pkg/api/validation"
"k8s.io/apimachinery/pkg/util/validation/field"
)

// ValidateControlPlaneConfig validates a ControlPlaneConfig object.
func ValidateControlPlaneConfig(controlPlaneConfig *apisalicloud.ControlPlaneConfig, region string, regions []gardencorev1alpha1.Region) field.ErrorList {
func ValidateControlPlaneConfig(controlPlaneConfig *apisalicloud.ControlPlaneConfig, region string, regions []gardencorev1beta1.Region) field.ErrorList {
allErrs := field.ErrorList{}

if len(controlPlaneConfig.Zone) == 0 {
Expand All @@ -36,15 +36,15 @@ func ValidateControlPlaneConfig(controlPlaneConfig *apisalicloud.ControlPlaneCon
}

// ValidateControlPlaneConfigUpdate validates a ControlPlaneConfig object.
func ValidateControlPlaneConfigUpdate(oldConfig, newConfig *apisalicloud.ControlPlaneConfig, region string, regions []gardencorev1alpha1.Region) field.ErrorList {
func ValidateControlPlaneConfigUpdate(oldConfig, newConfig *apisalicloud.ControlPlaneConfig, region string, regions []gardencorev1beta1.Region) field.ErrorList {
allErrs := field.ErrorList{}

allErrs = append(allErrs, apivalidation.ValidateImmutableField(newConfig.Zone, oldConfig.Zone, field.NewPath("zone"))...)

return allErrs
}

func validateZoneConstraints(regions []gardencorev1alpha1.Region, region, zone, oldZone string) (bool, []string) {
func validateZoneConstraints(regions []gardencorev1beta1.Region, region, zone, oldZone string) (bool, []string) {
if zone == oldZone {
return true, nil
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ import (
apisalicloud "github.com/gardener/gardener-extensions/controllers/provider-alicloud/pkg/apis/alicloud"
. "github.com/gardener/gardener-extensions/controllers/provider-alicloud/pkg/apis/alicloud/validation"

gardencorev1alpha1 "github.com/gardener/gardener/pkg/apis/core/v1alpha1"
gardencorev1beta1 "github.com/gardener/gardener/pkg/apis/core/v1beta1"
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
. "github.com/onsi/gomega/gstruct"
Expand All @@ -30,10 +30,10 @@ var _ = Describe("ControlPlaneConfig validation", func() {
region = "foo"
zone = "some-zone"

regions = []gardencorev1alpha1.Region{
regions = []gardencorev1beta1.Region{
{
Name: region,
Zones: []gardencorev1alpha1.AvailabilityZone{
Zones: []gardencorev1beta1.AvailabilityZone{
{Name: zone},
},
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ import (
"github.com/gardener/gardener-extensions/pkg/controller/controlplane/genericactuator"
"github.com/gardener/gardener-extensions/pkg/util"

v1alpha1constants "github.com/gardener/gardener/pkg/apis/core/v1alpha1/constants"
v1beta1constants "github.com/gardener/gardener/pkg/apis/core/v1beta1/constants"
extensionsv1alpha1 "github.com/gardener/gardener/pkg/apis/extensions/v1alpha1"
"github.com/gardener/gardener/pkg/utils/chart"
"github.com/gardener/gardener/pkg/utils/secrets"
Expand All @@ -45,8 +45,8 @@ import (

var controlPlaneSecrets = &secrets.Secrets{
CertificateSecretConfigs: map[string]*secrets.CertificateSecretConfig{
v1alpha1constants.SecretNameCACluster: {
Name: v1alpha1constants.SecretNameCACluster,
v1beta1constants.SecretNameCACluster: {
Name: v1beta1constants.SecretNameCACluster,
CommonName: "kubernetes",
CertType: secrets.CACert,
},
Expand All @@ -59,11 +59,11 @@ var controlPlaneSecrets = &secrets.Secrets{
CommonName: "system:cloud-controller-manager",
Organization: []string{user.SystemPrivilegedGroup},
CertType: secrets.ClientCert,
SigningCA: cas[v1alpha1constants.SecretNameCACluster],
SigningCA: cas[v1beta1constants.SecretNameCACluster],
},
KubeConfigRequest: &secrets.KubeConfigRequest{
ClusterName: clusterName,
APIServerURL: v1alpha1constants.DeploymentNameKubeAPIServer,
APIServerURL: v1beta1constants.DeploymentNameKubeAPIServer,
},
},
&secrets.ControlPlaneSecretConfig{
Expand All @@ -72,11 +72,11 @@ var controlPlaneSecrets = &secrets.Secrets{
CommonName: "system:csi-attacher",
Organization: []string{user.SystemPrivilegedGroup},
CertType: secrets.ClientCert,
SigningCA: cas[v1alpha1constants.SecretNameCACluster],
SigningCA: cas[v1beta1constants.SecretNameCACluster],
},
KubeConfigRequest: &secrets.KubeConfigRequest{
ClusterName: clusterName,
APIServerURL: v1alpha1constants.DeploymentNameKubeAPIServer,
APIServerURL: v1beta1constants.DeploymentNameKubeAPIServer,
},
},
&secrets.ControlPlaneSecretConfig{
Expand All @@ -85,11 +85,11 @@ var controlPlaneSecrets = &secrets.Secrets{
CommonName: "system:csi-provisioner",
Organization: []string{user.SystemPrivilegedGroup},
CertType: secrets.ClientCert,
SigningCA: cas[v1alpha1constants.SecretNameCACluster],
SigningCA: cas[v1beta1constants.SecretNameCACluster],
},
KubeConfigRequest: &secrets.KubeConfigRequest{
ClusterName: clusterName,
APIServerURL: v1alpha1constants.DeploymentNameKubeAPIServer,
APIServerURL: v1beta1constants.DeploymentNameKubeAPIServer,
},
},
&secrets.ControlPlaneSecretConfig{
Expand All @@ -98,11 +98,11 @@ var controlPlaneSecrets = &secrets.Secrets{
CommonName: "system:csi-snapshotter",
Organization: []string{user.SystemPrivilegedGroup},
CertType: secrets.ClientCert,
SigningCA: cas[v1alpha1constants.SecretNameCACluster],
SigningCA: cas[v1beta1constants.SecretNameCACluster],
},
KubeConfigRequest: &secrets.KubeConfigRequest{
ClusterName: clusterName,
APIServerURL: v1alpha1constants.DeploymentNameKubeAPIServer,
APIServerURL: v1beta1constants.DeploymentNameKubeAPIServer,
},
},
&secrets.ControlPlaneSecretConfig{
Expand All @@ -111,11 +111,11 @@ var controlPlaneSecrets = &secrets.Secrets{
CommonName: "system:csi-resizer",
Organization: []string{user.SystemPrivilegedGroup},
CertType: secrets.ClientCert,
SigningCA: cas[v1alpha1constants.SecretNameCACluster],
SigningCA: cas[v1beta1constants.SecretNameCACluster],
},
KubeConfigRequest: &secrets.KubeConfigRequest{
ClusterName: clusterName,
APIServerURL: v1alpha1constants.DeploymentNameKubeAPIServer,
APIServerURL: v1beta1constants.DeploymentNameKubeAPIServer,
},
},
}
Expand Down Expand Up @@ -219,7 +219,7 @@ func NewValuesProvider(logger logr.Logger) genericactuator.ValuesProvider {
}
}

// valuesProvider is a ValuesProvider that provides AWS-specific values for the 2 charts applied by the generic actuator.
// valuesProvider is a ValuesProvider that provides Alicloud-specific values for the 2 charts applied by the generic actuator.
type valuesProvider struct {
genericactuator.NoopValuesProvider
decoder runtime.Decoder
Expand Down Expand Up @@ -372,7 +372,7 @@ func getControlPlaneChartValues(
"podNetwork": extensionscontroller.GetPodNetwork(cluster),
"podAnnotations": map[string]interface{}{
"checksum/secret-cloud-controller-manager": checksums["cloud-controller-manager"],
"checksum/secret-cloudprovider": checksums[v1alpha1constants.SecretNameCloudProvider],
"checksum/secret-cloudprovider": checksums[v1beta1constants.SecretNameCloudProvider],
"checksum/configmap-cloud-provider-config": checksums[alicloud.CloudProviderConfigName],
},
},
Expand All @@ -387,7 +387,7 @@ func getControlPlaneChartValues(
"checksum/secret-csi-provisioner": checksums["csi-provisioner"],
"checksum/secret-csi-snapshotter": checksums["csi-snapshotter"],
"checksum/secret-csi-resizer": checksums["csi-resizer"],
"checksum/secret-cloudprovider": checksums[v1alpha1constants.SecretNameCloudProvider],
"checksum/secret-cloudprovider": checksums[v1beta1constants.SecretNameCloudProvider],
},
},
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ import (
extensionscontroller "github.com/gardener/gardener-extensions/pkg/controller"
mockclient "github.com/gardener/gardener-extensions/pkg/mock/controller-runtime/client"

gardencorev1alpha1 "github.com/gardener/gardener/pkg/apis/core/v1alpha1"
v1alpha1constants "github.com/gardener/gardener/pkg/apis/core/v1alpha1/constants"
gardencorev1beta1 "github.com/gardener/gardener/pkg/apis/core/v1beta1"
v1beta1constants "github.com/gardener/gardener/pkg/apis/core/v1beta1/constants"
extensionsv1alpha1 "github.com/gardener/gardener/pkg/apis/extensions/v1alpha1"
"github.com/golang/mock/gomock"
. "github.com/onsi/ginkgo"
Expand Down Expand Up @@ -57,7 +57,7 @@ var _ = Describe("ValuesProvider", func() {
Spec: extensionsv1alpha1.ControlPlaneSpec{
Region: "eu-central-1",
SecretRef: corev1.SecretReference{
Name: v1alpha1constants.SecretNameCloudProvider,
Name: v1beta1constants.SecretNameCloudProvider,
Namespace: namespace,
},
ProviderConfig: &runtime.RawExtension{
Expand Down Expand Up @@ -89,25 +89,25 @@ var _ = Describe("ValuesProvider", func() {

cidr = "10.250.0.0/19"
cluster = &extensionscontroller.Cluster{
Shoot: &gardencorev1alpha1.Shoot{
Shoot: &gardencorev1beta1.Shoot{
ObjectMeta: metav1.ObjectMeta{
Name: "myshoot",
},
Spec: gardencorev1alpha1.ShootSpec{
Networking: gardencorev1alpha1.Networking{
Spec: gardencorev1beta1.ShootSpec{
Networking: gardencorev1beta1.Networking{
Pods: &cidr,
},
Kubernetes: gardencorev1alpha1.Kubernetes{
Kubernetes: gardencorev1beta1.Kubernetes{
Version: "1.14.0",
},
},
},
}

cpSecretKey = client.ObjectKey{Namespace: namespace, Name: v1alpha1constants.SecretNameCloudProvider}
cpSecretKey = client.ObjectKey{Namespace: namespace, Name: v1beta1constants.SecretNameCloudProvider}
cpSecret = &corev1.Secret{
ObjectMeta: metav1.ObjectMeta{
Name: v1alpha1constants.SecretNameCloudProvider,
Name: v1beta1constants.SecretNameCloudProvider,
Namespace: namespace,
},
Type: corev1.SecretTypeOpaque,
Expand All @@ -118,13 +118,13 @@ var _ = Describe("ValuesProvider", func() {
}

checksums = map[string]string{
v1alpha1constants.SecretNameCloudProvider: "8bafb35ff1ac60275d62e1cbd495aceb511fb354f74a20f7d06ecb48b3a68432",
alicloud.CloudProviderConfigName: "08a7bc7fe8f59b055f173145e211760a83f02cf89635cef26ebb351378635606",
"cloud-controller-manager": "3d791b164a808638da9a8df03924be2a41e34cd664e42231c00fe369e3588272",
"csi-attacher": "2da58ad61c401a2af779a909d22fb42eed93a1524cbfdab974ceedb413fcb914",
"csi-provisioner": "f75b42d40ab501428c383dfb2336cb1fc892bbee1fc1d739675171e4acc4d911",
"csi-snapshotter": "bf417dd97dc3e8c2092bb5b2ba7b0f1093ebc4bb5952091ee554cf5b7ea74508",
"csi-resizer": "5df115bd53f09da2d6d27bfb048c14dabd14a66608cfdba5ecd2d0687889cc6a",
v1beta1constants.SecretNameCloudProvider: "8bafb35ff1ac60275d62e1cbd495aceb511fb354f74a20f7d06ecb48b3a68432",
alicloud.CloudProviderConfigName: "08a7bc7fe8f59b055f173145e211760a83f02cf89635cef26ebb351378635606",
"cloud-controller-manager": "3d791b164a808638da9a8df03924be2a41e34cd664e42231c00fe369e3588272",
"csi-attacher": "2da58ad61c401a2af779a909d22fb42eed93a1524cbfdab974ceedb413fcb914",
"csi-provisioner": "f75b42d40ab501428c383dfb2336cb1fc892bbee1fc1d739675171e4acc4d911",
"csi-snapshotter": "bf417dd97dc3e8c2092bb5b2ba7b0f1093ebc4bb5952091ee554cf5b7ea74508",
"csi-resizer": "5df115bd53f09da2d6d27bfb048c14dabd14a66608cfdba5ecd2d0687889cc6a",
}

configChartValues = map[string]interface{}{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ import (
"github.com/gardener/gardener-extensions/pkg/mock/go-logr/logr"
realterraformer "github.com/gardener/gardener-extensions/pkg/terraformer"
"github.com/gardener/gardener-extensions/pkg/util/chart"
gardencorev1alpha1 "github.com/gardener/gardener/pkg/apis/core/v1alpha1"
gardencorev1beta1 "github.com/gardener/gardener/pkg/apis/core/v1beta1"

"github.com/aliyun/alibaba-cloud-sdk-go/services/vpc"
extensionsv1alpha1 "github.com/gardener/gardener/pkg/apis/extensions/v1alpha1"
Expand Down Expand Up @@ -150,8 +150,8 @@ var _ = Describe("Actuator", func() {
accessKeyID = "accessKeyID"
accessKeySecret = "accessKeySecret"
cluster = controller.Cluster{
Shoot: &gardencorev1alpha1.Shoot{
Spec: gardencorev1alpha1.ShootSpec{
Shoot: &gardencorev1beta1.Shoot{
Spec: gardencorev1beta1.ShootSpec{
Region: region,
},
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ import (
mockclient "github.com/gardener/gardener-extensions/pkg/mock/controller-runtime/client"
mockkubernetes "github.com/gardener/gardener-extensions/pkg/mock/gardener/client/kubernetes"

gardencorev1alpha1 "github.com/gardener/gardener/pkg/apis/core/v1alpha1"
gardencorev1beta1 "github.com/gardener/gardener/pkg/apis/core/v1beta1"
extensionsv1alpha1 "github.com/gardener/gardener/pkg/apis/extensions/v1alpha1"
machinev1alpha1 "github.com/gardener/machine-controller-manager/pkg/apis/machine/v1alpha1"
"github.com/golang/mock/gomock"
Expand Down Expand Up @@ -191,9 +191,9 @@ var _ = Describe("Machines", func() {
}

cluster = &extensionscontroller.Cluster{
Shoot: &gardencorev1alpha1.Shoot{
Spec: gardencorev1alpha1.ShootSpec{
Kubernetes: gardencorev1alpha1.Kubernetes{
Shoot: &gardencorev1beta1.Shoot{
Spec: gardencorev1beta1.ShootSpec{
Kubernetes: gardencorev1beta1.Kubernetes{
Version: shootVersion,
},
},
Expand Down
Loading

0 comments on commit b3241f0

Please sign in to comment.