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

Commit

Permalink
Controlplane actuators create managed resources for storage classes
Browse files Browse the repository at this point in the history
```improvement operator
The control plane actuators do now create `ManagedResource`s for storage classes.
```
  • Loading branch information
rfranzke committed Jul 23, 2019
1 parent 5bba6fa commit 38e7ab4
Show file tree
Hide file tree
Showing 45 changed files with 453 additions and 126 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
apiVersion: v1
description: A Helm chart for storageclasses that should be installed to the shoot
name: shoot-storageclasses
version: 0.1.0
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{{- define "storageclassversion" -}}
{{- if semverCompare ">= 1.13-0" .Capabilities.KubeVersion.GitVersion -}}
storage.k8s.io/v1
{{- else -}}
storage.k8s.io/v1beta1
{{- end -}}
{{- end -}}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
apiVersion: {{ include "storageclassversion" . }}
kind: StorageClass
metadata:
name: default
annotations:
storageclass.kubernetes.io/is-default-class: "true"
provisioner: diskplugin.csi.alibabacloud.com
parameters:
csi.storage.k8s.io/fstype: ext4
type: cloud_ssd
readOnly: "false"
encrypted: "true"
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ var (
func AddToManagerWithOptions(mgr manager.Manager, opts controller.Options) error {
return controlplane.Add(mgr, controlplane.AddArgs{
Actuator: genericactuator.NewActuator(controlPlaneSecrets, configChart, controlPlaneChart, controlPlaneShootChart,
NewValuesProvider(logger), extensionscontroller.ChartRendererFactoryFunc(util.NewChartRendererForShoot),
storageClassChart, NewValuesProvider(logger), extensionscontroller.ChartRendererFactoryFunc(util.NewChartRendererForShoot),
imagevector.ImageVector(), alicloud.CloudProviderConfigName, logger),
Type: alicloud.Type,
ControllerOptions: opts,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -183,6 +183,11 @@ var controlPlaneShootChart = &chart.Chart{
},
}

var storageClassChart = &chart.Chart{
Name: "shoot-storageclasses",
Path: filepath.Join(alicloud.InternalChartsPath, "shoot-storageclasses"),
}

// NewValuesProvider creates a new ValuesProvider for the generic actuator.
func NewValuesProvider(logger logr.Logger) genericactuator.ValuesProvider {
return &valuesProvider{
Expand Down Expand Up @@ -271,6 +276,15 @@ func (vp *valuesProvider) GetControlPlaneShootChartValues(
return getControlPlaneShootChartValues(cluster, credentials)
}

// GetStorageClassesChartValues returns the values for the shoot storageclasses chart applied by the generic actuator.
func (vp *valuesProvider) GetStorageClassesChartValues(
ctx context.Context,
cp *extensionsv1alpha1.ControlPlane,
cluster *extensionscontroller.Cluster,
) (map[string]interface{}, error) {
return nil, nil
}

// getCredentials determines the credentials from the secret referenced in the ControlPlane resource.
func (vp *valuesProvider) getCredentials(
ctx context.Context,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
apiVersion: v1
description: A Helm chart for storageclasses that should be installed to the shoot
name: shoot-storageclasses
version: 0.1.0
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{{- define "storageclassversion" -}}
{{- if semverCompare ">= 1.13-0" .Capabilities.KubeVersion.GitVersion -}}
storage.k8s.io/v1
{{- else -}}
storage.k8s.io/v1beta1
{{- end -}}
{{- end -}}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
---
apiVersion: {{ include "storageclassversion" . }}
kind: StorageClass
metadata:
name: default
annotations:
storageclass.kubernetes.io/is-default-class: "true"
provisioner: kubernetes.io/aws-ebs
parameters:
type: gp2
---
apiVersion: {{ include "storageclassversion" . }}
kind: StorageClass
metadata:
name: gp2
provisioner: kubernetes.io/aws-ebs
parameters:
type: gp2
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ var (
func AddToManagerWithOptions(mgr manager.Manager, opts controller.Options) error {
return controlplane.Add(mgr, controlplane.AddArgs{
Actuator: genericactuator.NewActuator(controlPlaneSecrets, configChart, ccmChart, ccmShootChart,
NewValuesProvider(logger), extensionscontroller.ChartRendererFactoryFunc(util.NewChartRendererForShoot),
storageClassChart, NewValuesProvider(logger), extensionscontroller.ChartRendererFactoryFunc(util.NewChartRendererForShoot),
imagevector.ImageVector(), aws.CloudProviderConfigName, logger),
Type: aws.Type,
ControllerOptions: opts,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,11 +31,8 @@ import (
"github.com/gardener/gardener/pkg/operation/common"
"github.com/gardener/gardener/pkg/utils/chart"
"github.com/gardener/gardener/pkg/utils/secrets"

"github.com/go-logr/logr"

"github.com/pkg/errors"

appsv1 "k8s.io/api/apps/v1"
corev1 "k8s.io/api/core/v1"
rbacv1 "k8s.io/api/rbac/v1"
Expand Down Expand Up @@ -116,6 +113,11 @@ var ccmShootChart = &chart.Chart{
},
}

var storageClassChart = &chart.Chart{
Name: "shoot-storageclasses",
Path: filepath.Join(aws.InternalChartsPath, "shoot-storageclasses"),
}

// NewValuesProvider creates a new ValuesProvider for the generic actuator.
func NewValuesProvider(logger logr.Logger) genericactuator.ValuesProvider {
return &valuesProvider{
Expand Down Expand Up @@ -178,6 +180,15 @@ func (vp *valuesProvider) GetControlPlaneShootChartValues(
return nil, nil
}

// GetStorageClassesChartValues returns the values for the shoot storageclasses chart applied by the generic actuator.
func (vp *valuesProvider) GetStorageClassesChartValues(
ctx context.Context,
cp *extensionsv1alpha1.ControlPlane,
cluster *extensionscontroller.Cluster,
) (map[string]interface{}, error) {
return nil, nil
}

// getConfigChartValues collects and returns the configuration chart values.
func getConfigChartValues(
infraStatus *apisaws.InfrastructureStatus,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
apiVersion: v1
description: A Helm chart for storageclasses that should be installed to the shoot
name: shoot-storageclasses
version: 0.1.0
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{{- define "storageclassversion" -}}
{{- if semverCompare ">= 1.13-0" .Capabilities.KubeVersion.GitVersion -}}
storage.k8s.io/v1
{{- else -}}
storage.k8s.io/v1beta1
{{- end -}}
{{- end -}}
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
---
apiVersion: {{ include "storageclassversion" . }}
kind: StorageClass
metadata:
name: default
annotations:
storageclass.kubernetes.io/is-default-class: "true"
provisioner: kubernetes.io/azure-disk
parameters:
storageaccounttype: Standard_LRS
kind: managed
---
apiVersion: {{ include "storageclassversion" . }}
kind: StorageClass
metadata:
name: managed-standard-hdd
provisioner: kubernetes.io/azure-disk
parameters:
storageaccounttype: Standard_LRS
kind: managed
---
apiVersion: {{ include "storageclassversion" . }}
kind: StorageClass
metadata:
name: managed-premium-ssd
provisioner: kubernetes.io/azure-disk
parameters:
storageaccounttype: Premium_LRS
kind: managed
---
apiVersion: {{ include "storageclassversion" . }}
kind: StorageClass
metadata:
name: files
provisioner: kubernetes.io/azure-file
parameters:
skuName: Standard_LRS
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ var (
func AddToManagerWithOptions(mgr manager.Manager, opts controller.Options) error {
return controlplane.Add(mgr, controlplane.AddArgs{
Actuator: genericactuator.NewActuator(controlPlaneSecrets, configChart, ccmChart, ccmShootChart,
NewValuesProvider(logger), extensionscontroller.ChartRendererFactoryFunc(util.NewChartRendererForShoot),
storageClassChart, NewValuesProvider(logger), extensionscontroller.ChartRendererFactoryFunc(util.NewChartRendererForShoot),
imagevector.ImageVector(), azure.CloudProviderConfigName, logger),
Type: azure.Type,
ControllerOptions: opts,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,18 +33,14 @@ import (
"github.com/gardener/gardener/pkg/operation/common"
"github.com/gardener/gardener/pkg/utils/chart"
"github.com/gardener/gardener/pkg/utils/secrets"

"github.com/go-logr/logr"

"github.com/pkg/errors"

appsv1 "k8s.io/api/apps/v1"
corev1 "k8s.io/api/core/v1"
rbacv1 "k8s.io/api/rbac/v1"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/serializer"
"k8s.io/apiserver/pkg/authentication/user"

"sigs.k8s.io/controller-runtime/pkg/client"
)

Expand Down Expand Up @@ -124,6 +120,11 @@ var ccmShootChart = &chart.Chart{
},
}

var storageClassChart = &chart.Chart{
Name: "shoot-storageclasses",
Path: filepath.Join(internal.InternalChartsPath, "shoot-storageclasses"),
}

// NewValuesProvider creates a new ValuesProvider for the generic actuator.
func NewValuesProvider(logger logr.Logger) genericactuator.ValuesProvider {
return &valuesProvider{
Expand Down Expand Up @@ -205,6 +206,15 @@ func (vp *valuesProvider) GetControlPlaneShootChartValues(
return nil, nil
}

// GetStorageClassesChartValues returns the values for the shoot storageclasses chart applied by the generic actuator.
func (vp *valuesProvider) GetStorageClassesChartValues(
ctx context.Context,
cp *extensionsv1alpha1.ControlPlane,
cluster *extensionscontroller.Cluster,
) (map[string]interface{}, error) {
return nil, nil
}

// getConfigChartValues collects and returns the configuration chart values.
func getConfigChartValues(
infraStatus *apisazure.InfrastructureStatus,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
apiVersion: v1
description: A Helm chart for storageclasses that should be installed to the shoot
name: shoot-storageclasses
version: 0.1.0
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{{- define "storageclassversion" -}}
{{- if semverCompare ">= 1.13-0" .Capabilities.KubeVersion.GitVersion -}}
storage.k8s.io/v1
{{- else -}}
storage.k8s.io/v1beta1
{{- end -}}
{{- end -}}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
---
apiVersion: {{ include "storageclassversion" . }}
kind: StorageClass
metadata:
name: default
annotations:
storageclass.kubernetes.io/is-default-class: "true"
provisioner: kubernetes.io/gce-pd
parameters:
type: pd-standard

---
apiVersion: {{ include "storageclassversion" . }}
kind: StorageClass
metadata:
name: gce-sc-fast
provisioner: kubernetes.io/gce-pd
parameters:
type: pd-ssd
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ import (
type ControlPlaneConfig struct {
metav1.TypeMeta

// Zone is the GCP zone
// Zone is the GCP zone.
Zone string

// CloudControllerManager contains configuration settings for the cloud-controller-manager.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ import (
type ControlPlaneConfig struct {
metav1.TypeMeta `json:",inline"`

// Zone is the GCP zone
// Zone is the GCP zone.
Zone string `json:"zone"`

// CloudControllerManager contains configuration settings for the cloud-controller-manager.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ var (
func AddToManagerWithOptions(mgr manager.Manager, opts controller.Options) error {
return controlplane.Add(mgr, controlplane.AddArgs{
Actuator: genericactuator.NewActuator(controlPlaneSecrets, configChart, ccmChart, ccmShootChart,
NewValuesProvider(logger), extensionscontroller.ChartRendererFactoryFunc(util.NewChartRendererForShoot),
storageClassChart, NewValuesProvider(logger), extensionscontroller.ChartRendererFactoryFunc(util.NewChartRendererForShoot),
imagevector.ImageVector(), internal.CloudProviderConfigName, logger),
Type: gcp.Type,
ControllerOptions: opts,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,18 +32,14 @@ import (
"github.com/gardener/gardener/pkg/operation/common"
"github.com/gardener/gardener/pkg/utils/chart"
"github.com/gardener/gardener/pkg/utils/secrets"

"github.com/go-logr/logr"

"github.com/pkg/errors"

appsv1 "k8s.io/api/apps/v1"
corev1 "k8s.io/api/core/v1"
rbacv1 "k8s.io/api/rbac/v1"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/serializer"
"k8s.io/apiserver/pkg/authentication/user"

"sigs.k8s.io/controller-runtime/pkg/client"
)

Expand Down Expand Up @@ -119,6 +115,11 @@ var ccmShootChart = &chart.Chart{
},
}

var storageClassChart = &chart.Chart{
Name: "shoot-storageclasses",
Path: filepath.Join(gcp.InternalChartsPath, "shoot-storageclasses"),
}

// NewValuesProvider creates a new ValuesProvider for the generic actuator.
func NewValuesProvider(logger logr.Logger) genericactuator.ValuesProvider {
return &valuesProvider{
Expand Down Expand Up @@ -200,6 +201,15 @@ func (vp *valuesProvider) GetControlPlaneShootChartValues(
return nil, nil
}

// GetStorageClassesChartValues returns the values for the shoot storageclasses chart applied by the generic actuator.
func (vp *valuesProvider) GetStorageClassesChartValues(
ctx context.Context,
cp *extensionsv1alpha1.ControlPlane,
cluster *extensionscontroller.Cluster,
) (map[string]interface{}, error) {
return nil, nil
}

// getConfigChartValues collects and returns the configuration chart values.
func getConfigChartValues(
cpConfig *apisgcp.ControlPlaneConfig,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
apiVersion: v1
description: A Helm chart for storageclasses that should be installed to the shoot
name: shoot-storageclasses
version: 0.1.0
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{{- define "storageclassversion" -}}
{{- if semverCompare ">= 1.13-0" .Capabilities.KubeVersion.GitVersion -}}
storage.k8s.io/v1
{{- else -}}
storage.k8s.io/v1beta1
{{- end -}}
{{- end -}}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
apiVersion: {{ include "storageclassversion" . }}
kind: StorageClass
metadata:
name: default-class
annotations:
storageclass.kubernetes.io/is-default-class: "true"
provisioner: kubernetes.io/cinder
parameters:
availability: {{ .Values.availability }}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
availability: zone-1

0 comments on commit 38e7ab4

Please sign in to comment.