Parameters

The parent key for all of the following parameters is csi_cloudscale.

namespace

type

string

default

syn-csi-cloudscale

The namespace in which to install the driver. Unless kube-system is chosen, the component will take ownership of the namespace. In K8s prior to 1.17, the driver won’t run in namespaces other than kube-system. This is because the priority class system-cluster-critical is only available to pods in namespace kube-system. See the Kubernetes priority class consumption documentation for instructions on how to allow the driver to run in a namespace other than kube-system.

images

type

dictionary

default

See class/defaults.yml

Container image to use for the cloudscale.ch CSI driver. See the upstream list of available versions for supported values. See the upstream Kubernetes compatibility table to choose the right version for your cluster.

charts

type

dictionary

default

See class/defaults.yml

Helm chart to use to deploy the cloudscale.ch CSI driver.

api_token

type

string

default

?{vaultkv:${cluster:tenant}/${cluster:name}/cloudscale/token}

cloudscale.ch API token to be used by the CSI driver. This should be a reference to a secret in Vault instead of the plaintext token.

api_token_secret_name

type

string

default

cloudscale

Name of the Kubernetes secret which is created to hold the API token. The value of this parameter is also passed to the Helm chart as helm_values.token.existingSecret

fs_type

type

string

default

ext4

The filesystem type used in the storage classes.

According cloudscale.ch just ext4 is supported.

driver_daemonset_tolerations

type

dictionary

default

{}

Tolerations that should be applied to the CSI node driver daemonset. The component will transform entries in the dictionary to valid Kubernetes tolerations entries. The component will reuse the key in the dictionary as value for field key in the tolerations entry.

The component will append tolerations defined in this parameter to tolerations provided through helm_values.node.tolerations.

Example

Allow the CSI node driver daemonset to be scheduled on nodes which have a storagenode taint.

cluster-id.yaml
parameters:
  csi_cloudscale:
    driver_daemonset_tolerations:
      storagenode:
        operator: Exists
Resulting configuration in the node driver DaemonSet
# ... remaining object omitted ...
spec:
  template:
    spec:
      # ... remaining spec omitted ...
      tolerations:
        - key: storagenode
          operator: Exists

resources

type

dict

default

See class/defaults.yml

Resource requests and limits to apply to individual CSI driver containers.

The component looks for keys matching the individual container names for the controller StatefulSet and CSI driver daemonset in the keys controller and csi_driver of this parameter respectively.

The value of such a key — if found — is used as the container’s resources field.

The component supports removing requests or limits by setting the corresponding fields to null.

The component doesn’t validate provided requests and limits. It’s the user’s responsibility to provide values which result in a valid container spec.

Example

This example increases the memory limit for the csi-cloudscale-plugin container for both the controller and the csi_driver to 256Mi.

parameters:
  csi_cloudscale:
    resources:
      controller:
        csi-cloudscale-plugin:
          limits:
            memory: 256Mi
      csi_driver:
        csi-cloudscale-plugin:
          limits:
            memory: 256Mi

helm_values

type

dictionary

default

See class/defaults.yml

Helm values to use when rendering the CSI driver Helm chart. See the upstream values.yaml for supported values.

We explicitly set fields controller.serviceAccountName and node.serviceAccountName and reference those fields in the component to manage additional RoleBindings on OpenShift 4.