|
| 1 | +# NetApp-Trident |
| 2 | +Trident is a fully supported open source project maintained by NetApp. It has been designed from the ground up to help you meet your containerized applications' persistence demands using industry-standard interfaces, such as the Container Storage Interface. |
| 3 | + |
| 4 | +Trident deploys in Kubernetes clusters as pods and provides dynamic storage orchestration services for your Kubernetes workloads. It enables your containerized applications to quickly consume persistent storage from NetApp's broad portfolio that |
| 5 | +includes ONTAP, Element, HCI/SolidFire, as well as the Azure NetApp Files service, Cloud Volumes Service on Google Cloud, and Amazon FSx for ONTAP. |
| 6 | + |
| 7 | +Trident features also address data protection, disaster recovery, portability, and migration use cases for Kubernetes workloads leveraging NetApp's industry-leading data management technology for snapshots, backups, |
| 8 | +replication, and cloning. |
| 9 | + |
| 10 | +## Prerequisites |
| 11 | +For a full list of Trident requirements, check out the [Getting Started](https://docs.netapp.com/us-en/trident/trident-get-started/requirements.html) guide. |
| 12 | + |
| 13 | +Critical information about Trident: |
| 14 | +* Kubernetes 1.31 is now supported in Trident. Upgrade Trident prior to upgrading Kubernetes. |
| 15 | +* Trident strictly enforces the use of multipathing configuration in SAN environments, with a recommended value of find_multipaths: no: in multipath.conf file. |
| 16 | + |
| 17 | +Supported frontends (orchestrators) |
| 18 | +Trident supports multiple container engines and orchestrators, including the following: |
| 19 | +* Anthos On-Prem (VMware) and Anthos on bare metal 1.16 |
| 20 | +* Kubernetes 1.25 - 1.31 |
| 21 | +* OpenShift 4.10 - 4.17 |
| 22 | +* Rancher Kubernetes Engine 2 (RKE2) v1.28.5+rke2r1 |
| 23 | + |
| 24 | +The Trident operator is supported with these releases: |
| 25 | +* Anthos On-Prem (VMware) and Anthos on bare metal 1.16 |
| 26 | +* Kubernetes 1.25 - 1.31 |
| 27 | +* OpenShift 4.10 - 4.17 |
| 28 | +* Rancher Kubernetes Engine 2 (RKE2) v1.28.5+rke2r1 |
| 29 | + |
| 30 | +Trident also works with a host of other fully-managed and self-managed Kubernetes offerings, including Google Kubernetes Engine (GKE), Amazon Elastic Kubernetes Services (EKS), Azure Kubernetes Service (AKS), Mirantis Kubernetes Engine (MKE), and VMWare Tanzu Portfolio. |
| 31 | + |
| 32 | +Supported backends (storage) |
| 33 | +To use Trident, you need one or more of the following supported backends: |
| 34 | +* Amazon FSx for NetApp ONTAP |
| 35 | +* Azure NetApp Files |
| 36 | +* Cloud Volumes ONTAP |
| 37 | +* Google Cloud NetApp Volumes |
| 38 | +* FAS/AFF/Select 9.5 or later |
| 39 | +* NetApp All SAN Array (ASA) |
| 40 | +* NetApp HCI/Element software 11 or above |
| 41 | + |
| 42 | +## Parameters |
| 43 | +This table and the values.yaml file, which is part of the Helm chart, provide the list of keys and their default values. |
| 44 | +| Parameter | Description | Default | Required | |
| 45 | +| --- | --- | --- | --- | |
| 46 | +| nodeSelector | Node labels for pod assignment | Empty | No | |
| 47 | +| podAnnotations| Pod annotations| Empty | No | |
| 48 | +| deploymentAnnotations | Deployment annotations | Empty | No | |
| 49 | +| tolerations | Tolerations for pod assignment | Empty | No | |
| 50 | +| affinity | Affinity for pod assignment | All Nodes | Yes | |
| 51 | +| tridentControllerPluginNodeSelector | Additional node selectors for pods. Refer to Understanding controller pods and node pods for details. | Empty | No | |
| 52 | +| tridentControllerPluginTolerations | Overrides Kubernetes tolerations for pods. Refer to Understanding controller pods and node pods for details. | Empty | No | |
| 53 | +| tridentNodePluginNodeSelector | Additional node selectors for pods. Refer to Understanding controller pods and node pods for details. | Empty | No | |
| 54 | +| tridentNodePluginTolerations | Overrides Kubernetes tolerations for pods. Refer to Understanding controller pods and node pods for details. | Empty | No | |
| 55 | +| imageRegistry | Identifies the registry for the trident-operator, trident, and other images. Leave empty to accept the default. | Empty | No | |
| 56 | +| imagePullPolicy | Sets the image pull policy for the trident-operator. | IfNotPresent | Yes | |
| 57 | +| imagePullSecrets | Sets the image pull secrets for the trident-operator, trident, and other images. | Empty | No | |
| 58 | +| kubeletDir | Allows overriding the host location of kubelet's internal state. | "/var/lib/kubelet" | Yes | |
| 59 | +| operatorLogLevel | Allows the log level of the Trident operator to be set to: trace, debug, info, warn, error, or fatal. | "info" | Yes | |
| 60 | +| operatorDebug | Allows the log level of the Trident operator to be set to debug. | true | Yes | |
| 61 | +| operatorImage | Allows the complete override of the image for trident-operator. | Empty | No | |
| 62 | +| operatorImageTag | Allows overriding the tag of the trident-operator image. | Empty | No | |
| 63 | +| tridentIPv6 | Allows enabling Trident to work in IPv6 clusters. | false | No | |
| 64 | +| tridentK8sTimeout | Overrides the default 30-second timeout for most Kubernetes API operations (if non-zero, in seconds). | 0 | No | |
| 65 | +| tridentHttpRequestTimeout | Overrides the default 90-second timeout for the HTTP requests, with 0s being an infinite duration for the timeout. Negative values are not allowed. | "90s" | Yes | |
| 66 | +| tridentSilenceAutosupport | Allows disabling Trident periodic AutoSupport reporting. | false | No | |
| 67 | +| tridentAutosupportImageTag | Allows overriding the tag of the image for Trident AutoSupport container. | <version> | Yes | |
| 68 | +| tridentAutosupportProxy | Enables Trident AutoSupport container to phone home via an HTTP proxy. | Empty | No | |
| 69 | +| tridentLogFormat | Sets the Trident logging format (text or json). | "text" | No | |
| 70 | +| tridentDisableAuditLog | Disables Trident audit logger. | true | No | |
| 71 | +| tridentLogLevel | Allows the log level of Trident to be set to: trace, debug, info, warn, error, or fatal. | "info" | No | |
| 72 | +| tridentDebug | Allows the log level of Trident to be set to debug. | false | No | |
| 73 | +| tridentLogWorkflows | Allows specific Trident workflows to be enabled for trace logging or log suppression. | Empty | No | |
| 74 | +| tridentLogLayers | Allows specific Trident layers to be enabled for trace logging or log suppression. | Empty | No | |
| 75 | +| tridentImage | Allows the complete override of the image for Trident. | Empty | No | |
| 76 | +| tridentImageTag | Allows overriding the tag of the image for Trident. | Empty | No | |
| 77 | +| tridentProbePort | Allows overriding the default port used for Kubernetes liveness/readiness probes. | Empty | No | |
| 78 | +| windows | Enables Trident to be installed on Windows worker node. | false | No | |
| 79 | +| enableForceDetach | Allows enabling the force detach feature. | false | No | |
| 80 | +| excludePodSecurityPolicy | Excludes the operator pod security policy from creation. | false | No | |
| 81 | +| cloudProvider | Set to "Azure" when using managed identities or a cloud identity on an AKS cluster. Set to "AWS" when using a cloud identity on an EKS cluster. | Empty | No | |
| 82 | +| cloudIdentity | Set to workload identity ("azure.workload.identity/client-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx") when using cloud identity on an AKS cluster. Set to AWS IAM role ("'eks.amazonaws.com/role-arn: arn:aws:iam::123456:role/trident-role'") when using cloud identity on an EKS cluster. | Empty | No | |
| 83 | +| iscsiSelfHealingInterval | The interval at which the iSCSI self-healing is invoked. | 5m0s | No | |
| 84 | +| iscsiSelfHealingWaitTime | The duration after which iSCSI self-healing initiates an attempt to resolve a stale session by performing a logout and subsequent login. | 7m0s | No | |
| 85 | +| nodePrep | Enables Trident to prepare the nodes of the Kubernetes cluster to manage volumes using the specified data storage protocol. | Currently, iscsi is the only value supported. | No | |
| 86 | + |
| 87 | +## Usage |
| 88 | +Please refer to the Trident Documentation for usage related to Trident Backend Setup, Storage Class parameters, and other features - [Trident Docs](https://docs.netapp.com/us-en/trident/index.html) |
| 89 | + |
| 90 | +## Upgrade |
| 91 | +This pack is maintained by NetApp and new version of this pack will be updated along with new versions of Trident according to the regular [release cycle](https://mysupport.netapp.com/site/info/trident-support) |
| 92 | + |
| 93 | +## References: |
| 94 | +* [Trident Docs](https://docs.netapp.com/us-en/trident/index.html) |
| 95 | +* [NetApp's Support site](https://mysupport.netapp.com/site/info/version-support) |
| 96 | +* [Trident's Release and Support Lifecycle](https://mysupport.netapp.com/site/info/trident-support) |
| 97 | +* [Chat](http://netapp.io/slack/) |
| 98 | +* [GitHub last commit](https://github.com/NetApp/trident/commits) |
| 99 | +* [Go Report Card](https://goreportcard.com/report/github.com/netapp/trident) |
0 commit comments