Customize Trident operator deployment

Contributors juliantap

The Trident operator enables you to customize the manner in which Astra Trident is installed by using the attributes in the TridentOrchestrator spec.

See the following table for the list of attributes:

Parameter Description Default

namespace

Namespace to install Astra Trident in

"default"

debug

Enable debugging for Astra Trident

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:21.04.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.18+)
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

Important spec.namespace is specified in TridentOrchestrator to signify which namespace Astra Trident is installed in. This parameter cannot be updated after Astra Trident is installed. Attempting to do so causes the status of TridentOrchestrator to change to Failed. Astra Trident is not meant to be migrated across namespaces.
Note Automatic worker node prep is a beta feature meant to be used in non-production environments only.
Tip For more information on formatting pod parameters, see Assigning Pods to Nodes.

You can use the attributes mentioned above when defining TridentOrchestrator to customize your installation. Here’s an example:

$ cat deploy/crds/tridentorchestrator_cr_imagepullsecrets.yaml
apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
  name: trident
spec:
  debug: true
  namespace: trident
  imagePullSecrets:
  - thisisasecret

Here is another example that shows 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

If you are looking 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.