Customize Trident operator deployment

Contributors juliantap netapp-mwallis

The Trident operator allows you to customize Astra Trident installation using the attributes in the TridentOrchestrator spec.

If you want to customize the installation beyond what TridentOrchestrator arguments allow, you should consider using tridentctl to generate custom YAML manifests that you can modify as needed.

Warning spec.namespace is specified in TridentOrchestrator to signify which namespace where Astra Trident is installed. This parameter cannot be updated after Astra Trident is installed. Attempting to do so causes the TridentOrchestrator status to change to Failed. Astra Trident is not intended to be migrated across namespaces.

Configuration options

This table details TridentOrchestrator attributes:

Parameter Description Default

namespace

Namespace to install Astra Trident in

"default"

debug

Enable debugging for Astra Trident

false

windows

Setting to true enables installation on Windows worker nodes.

false

IPv6

Install Astra Trident over IPv6

false

k8sTimeout

Timeout for Kubernetes operations

30sec

silenceAutosupport

Don’t send autosupport bundles to NetApp
automatically

false

enableNodePrep

Manage worker node dependencies automatically (BETA)

false

autosupportImage

The container image for Autosupport Telemetry

"netapp/trident-autosupport:22.10.0"

autosupportProxy

The address/port of a proxy for sending Autosupport
Telemetry

"http://proxy.example.com:8888"

uninstall

A flag used to uninstall Astra Trident

false

logFormat

Astra Trident logging format to be used [text,json]

"text"

tridentImage

Astra Trident image to install

"netapp/trident:21.04"

imageRegistry

Path to internal registry, of the format
<registry FQDN>[:port][/subpath]

"k8s.gcr.io/sig-storage (k8s 1.19+)
or quay.io/k8scsi"

kubeletDir

Path to the kubelet directory on the host

“/var/lib/kubelet”

wipeout

A list of resources to delete to perform a complete removal of
Astra Trident

imagePullSecrets

Secrets to pull images from an internal registry

controllerPluginNodeSelector

Additional node selectors for pods running the Trident Controller CSI Plugin. Follows same format as pod.spec.nodeSelector.

No default; optional

controllerPluginTolerations

Overrides tolerations for pods running the Trident Controller CSI Plugin. Follows the same format as pod.spec.Tolerations.

No default; optional

nodePluginNodeSelector

Additional node selectors for pods running the Trident Node CSI Plugin. Follows same format as pod.spec.nodeSelector.

No default; optional

nodePluginTolerations

Overrides tolerations for pods running the Trident Node CSI Plugin. Follows the same format as pod.spec.Tolerations.

No default; optional

Note For more information on formatting pod parameters, see Assigning Pods to Nodes.

Sample configurations

You can use the attributes mentioned above when defining TridentOrchestrator to customize your installation.

Example 1: Basic custom configuration

This is an example for a basic custom configuration.

cat deploy/crds/tridentorchestrator_cr_imagepullsecrets.yaml
apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
  name: trident
spec:
  debug: true
  namespace: trident
  imagePullSecrets:
  - thisisasecret
Example 2: Deploy with node selectors

This example illustrates how Trident can be deployed with node selectors:

apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
  name: trident
spec:
  debug: true
  namespace: trident
  controllerPluginNodeSelector:
    nodetype: master
  nodePluginNodeSelector:
    storage: netapp
Example 3: Deploy on Windows worker nodes

This example illustrates deployment on a Windows worker node.

$ cat deploy/crds/tridentorchestrator_cr.yaml
apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
  name: trident
spec:
  debug: true
  namespace: trident
  windows: true