Skip to content

Commit

Permalink
Added trident-operator pack 24.10.0 (#99)
Browse files Browse the repository at this point in the history
* Added trident-operator pack 24.10.0

* Updated README.md file to adhere to template

* Fixed a typo in README.md

* Refined README.md

* Added annotations to pack.json and changed name to csi-trident

* fixed a typo in the README.md

* Added Trident 24.10.0 for CSI layer packs

* changed csi-trident to csi-trident-addon

---------

Co-authored-by: Turner, Brian <Brian.Turner@netapp.com>
Co-authored-by: Vishwanath S <vishwanaths@spectrocloud.com>
  • Loading branch information
3 people authored Dec 4, 2024
1 parent 235ee25 commit 9df0d43
Show file tree
Hide file tree
Showing 10 changed files with 641 additions and 0 deletions.
99 changes: 99 additions & 0 deletions packs/trident-operator-24.10.0-addon/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
# NetApp-Trident
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.

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
includes ONTAP, Element, HCI/SolidFire, as well as the Azure NetApp Files service, Cloud Volumes Service on Google Cloud, and Amazon FSx for ONTAP.

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,
replication, and cloning.

## Prerequisites
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.

Critical information about Trident:
* Kubernetes 1.31 is now supported in Trident. Upgrade Trident prior to upgrading Kubernetes.
* Trident strictly enforces the use of multipathing configuration in SAN environments, with a recommended value of find_multipaths: no: in multipath.conf file.

Supported frontends (orchestrators)
Trident supports multiple container engines and orchestrators, including the following:
* Anthos On-Prem (VMware) and Anthos on bare metal 1.16
* Kubernetes 1.25 - 1.31
* OpenShift 4.10 - 4.17
* Rancher Kubernetes Engine 2 (RKE2) v1.28.5+rke2r1

The Trident operator is supported with these releases:
* Anthos On-Prem (VMware) and Anthos on bare metal 1.16
* Kubernetes 1.25 - 1.31
* OpenShift 4.10 - 4.17
* Rancher Kubernetes Engine 2 (RKE2) v1.28.5+rke2r1

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.

Supported backends (storage)
To use Trident, you need one or more of the following supported backends:
* Amazon FSx for NetApp ONTAP
* Azure NetApp Files
* Cloud Volumes ONTAP
* Google Cloud NetApp Volumes
* FAS/AFF/Select 9.5 or later
* NetApp All SAN Array (ASA)
* NetApp HCI/Element software 11 or above

## Parameters
This table and the values.yaml file, which is part of the Helm chart, provide the list of keys and their default values.
| Parameter | Description | Default | Required |
| --- | --- | --- | --- |
| nodeSelector | Node labels for pod assignment | Empty | No |
| podAnnotations| Pod annotations| Empty | No |
| deploymentAnnotations | Deployment annotations | Empty | No |
| tolerations | Tolerations for pod assignment | Empty | No |
| affinity | Affinity for pod assignment | All Nodes | Yes |
| tridentControllerPluginNodeSelector | Additional node selectors for pods. Refer to Understanding controller pods and node pods for details. | Empty | No |
| tridentControllerPluginTolerations | Overrides Kubernetes tolerations for pods. Refer to Understanding controller pods and node pods for details. | Empty | No |
| tridentNodePluginNodeSelector | Additional node selectors for pods. Refer to Understanding controller pods and node pods for details. | Empty | No |
| tridentNodePluginTolerations | Overrides Kubernetes tolerations for pods. Refer to Understanding controller pods and node pods for details. | Empty | No |
| imageRegistry | Identifies the registry for the trident-operator, trident, and other images. Leave empty to accept the default. | Empty | No |
| imagePullPolicy | Sets the image pull policy for the trident-operator. | IfNotPresent | Yes |
| imagePullSecrets | Sets the image pull secrets for the trident-operator, trident, and other images. | Empty | No |
| kubeletDir | Allows overriding the host location of kubelet's internal state. | "/var/lib/kubelet" | Yes |
| operatorLogLevel | Allows the log level of the Trident operator to be set to: trace, debug, info, warn, error, or fatal. | "info" | Yes |
| operatorDebug | Allows the log level of the Trident operator to be set to debug. | true | Yes |
| operatorImage | Allows the complete override of the image for trident-operator. | Empty | No |
| operatorImageTag | Allows overriding the tag of the trident-operator image. | Empty | No |
| tridentIPv6 | Allows enabling Trident to work in IPv6 clusters. | false | No |
| tridentK8sTimeout | Overrides the default 30-second timeout for most Kubernetes API operations (if non-zero, in seconds). | 0 | No |
| 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 |
| tridentSilenceAutosupport | Allows disabling Trident periodic AutoSupport reporting. | false | No |
| tridentAutosupportImageTag | Allows overriding the tag of the image for Trident AutoSupport container. | <version> | Yes |
| tridentAutosupportProxy | Enables Trident AutoSupport container to phone home via an HTTP proxy. | Empty | No |
| tridentLogFormat | Sets the Trident logging format (text or json). | "text" | No |
| tridentDisableAuditLog | Disables Trident audit logger. | true | No |
| tridentLogLevel | Allows the log level of Trident to be set to: trace, debug, info, warn, error, or fatal. | "info" | No |
| tridentDebug | Allows the log level of Trident to be set to debug. | false | No |
| tridentLogWorkflows | Allows specific Trident workflows to be enabled for trace logging or log suppression. | Empty | No |
| tridentLogLayers | Allows specific Trident layers to be enabled for trace logging or log suppression. | Empty | No |
| tridentImage | Allows the complete override of the image for Trident. | Empty | No |
| tridentImageTag | Allows overriding the tag of the image for Trident. | Empty | No |
| tridentProbePort | Allows overriding the default port used for Kubernetes liveness/readiness probes. | Empty | No |
| windows | Enables Trident to be installed on Windows worker node. | false | No |
| enableForceDetach | Allows enabling the force detach feature. | false | No |
| excludePodSecurityPolicy | Excludes the operator pod security policy from creation. | false | No |
| 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 |
| 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 |
| iscsiSelfHealingInterval | The interval at which the iSCSI self-healing is invoked. | 5m0s | No |
| 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 |
| 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 |

## Usage
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)

## Upgrade
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)

## References:
* [Trident Docs](https://docs.netapp.com/us-en/trident/index.html)
* [NetApp's Support site](https://mysupport.netapp.com/site/info/version-support)
* [Trident's Release and Support Lifecycle](https://mysupport.netapp.com/site/info/trident-support)
* [Chat](http://netapp.io/slack/)
* [GitHub last commit](https://github.com/NetApp/trident/commits)
* [Go Report Card](https://goreportcard.com/report/github.com/netapp/trident)
Binary file not shown.
Binary file added packs/trident-operator-24.10.0-addon/logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
21 changes: 21 additions & 0 deletions packs/trident-operator-24.10.0-addon/pack.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"addonType":"system app",
"cloudTypes": [
"vsphere",
"maas",
"edge-native"
],
"annotations": {
"docsURL": "https://github.com/NetApp/trident",
"description": "NetApp Trident",
"source": "community",
"contributor": "NetApp"
},
"displayName": "Trident",
"charts": [
"charts/trident-operator-24.10.0.tgz"
],
"layer": "addon",
"name": "csi-trident-addon",
"version": "24.10.0"
}
201 changes: 201 additions & 0 deletions packs/trident-operator-24.10.0-addon/values.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,201 @@
pack:
content:
images:
- image: docker.io/netapp/trident-operator:24.10.0
- image: docker.io/netapp/trident-autosupport:24.10.0
- image: docker.io/netapp/trident:24.10.0

charts:
- repo: https://github.com/NetApp/trident/releases/download/v24.10.0/trident-installer-24.10.0.tar.gz
name: trident-operator
version: 24.10.0

# The namespace (on the target cluster) to install this chart
# When not found, a new namespace will be created
namespace: trident

# Add Pod Security Standard label to trident-system namespace.
namespaceLabels:
"trident": "pod-security.kubernetes.io/enforce=privileged"

charts:
trident-operator:
# Default values for standalone.
# This is a YAML-formatted file.

## Node labels for pod assignment
## ref: https://kubernetes.io/docs/user-guide/node-selection/
nodeSelector: {}

## Pod AnnotationsF
podAnnotations: {}

## Deployment Annotations
deploymentAnnotations: {}

## Tolerations for pod assignment
## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
tolerations: []

## Affinity for pod assignment
## The following affinity configuration ensures that the Trident operator will only be scheduled on nodes with the specified architecture and OS, Hence, do not modify this section. To add custom affinity rules, please append your content to this configuration as needed
## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/arch
operator: In
values:
- arm64
- amd64
- key: kubernetes.io/os
operator: In
values:
- linux


# tridentControllerPluginNodeSelector additional nodeSelectors for the Pod running the Trident Controller CSI Plugin.
# tridentControllerPluginNodeSelector : {}

# tridentControllerPluginTolerations overrides tolerations for the Pod running the Trident Controler CSI Plugin.
# tridentControllerPluginTolerations: []

# tridentNodePluginNodeSelector additional nodeSelectors for Pods running the Trident Node CSI Plugin.
# tridentNodePluginNodeSelector : {}

# tridentNodePluginTolerations overrides tolerations for Pods running the Trident Node CSI Plugin.
# tridentNodePluginTolerations: []



# imageRegistry identifies the registry for the trident-operator, trident, and other images. Leave empty to accept the default.
imageRegistry: ""

# imagePullPolicy sets the image pull policy for the trident-operator.
imagePullPolicy: IfNotPresent

# imagePullSecrets sets the image pull secrets for the trident-operator, trident, and other images.
imagePullSecrets: []

# kubeletDir allows overriding the host location of kubelet's internal state. (default "/var/lib/kubelet").
kubeletDir: ""


# operatorLogLevel allows the log level of the Trident operator to be set to one of these:
# trace, debug, info, warn, error, fatal.
# operatorLogLevel: "info"

# operatorDebug allows the log level of the Trident operator to be set to debug
operatorDebug: true

# operatorImage allows the complete override of the image for trident-operator.
operatorImage: ""

# operatorImageTag allows overriding the tag of the trident-operator image.
operatorImageTag: ""


# tridentIPv6 allows enabling Trident to work in IPv6 clusters.
tridentIPv6: false

# tridentK8sTimeout overrides the default 30-second timeout for most Kubernetes API operations (if non-zero, in seconds).
tridentK8sTimeout: 0

# tridentHttpRequestTimeout (duration) overrides the default 90-second timeout for the HTTP requests, with 0s being an
# infinite duration for the timeout. Negative values are not allowed.
tridentHttpRequestTimeout: "90s"

# tridentSilenceAutosupport allows disabling Trident's periodic Autosupport reporting.
tridentSilenceAutosupport: false

# tridentAutosupportImage allows the complete override of the image for Trident's Autosupport container.
tridentAutosupportImage: ""

# tridentAutosupportImageTag allows overriding the tag of the image for Trident's Autosupport container.
tridentAutosupportImageTag: "24.10"

# tridentAutosupportProxy allows Trident's autosupport container to phone home via an HTTP proxy.
tridentAutosupportProxy: ""

# tridentAutosupportInsecure allows Trident's autosupport container to skip TLS verification
tridentAutosupportInsecure: false

# tridentLogFormat sets the Trident logging format (text or json).
tridentLogFormat: "text"

# tridentDisableAuditLog disables Trident's audit logger.
tridentDisableAuditLog: true

# tridentLogLevel allows the log level of Trident to be set to one of these: trace, debug, info, warn, error, fatal.
#tridentLogLevel: "info"

# tridentDebug allows the log level of Trident to be set to debug
tridentDebug: false

# tridentLogWorkflows allows specific Trident workflows to be enabled for trace logging or log suppression.
tridentLogWorkflows: ""

# tridentLogLayers allows specific Trident layers to be enabled for trace logging or log suppression.
tridentLogLayers: ""

# tridentImage allows the complete override of the image for Trident.
tridentImage: ""

# tridentImageTag allows overriding the tag of the image for Trident.
tridentImageTag: ""

# (Deprecated) tridentEnableNodePrep attempts to automatically install required packages on nodes.
tridentEnableNodePrep: false

# (Deprecated) tridentSkipK8sVersionCheck allows overriding the k8s version limit for Trident.
tridentSkipK8sVersionCheck: false

# tridentProbePort allows overriding the default port used for k8s liveness/readiness probes.
tridentProbePort: ""

# windows allows Trident to be installed on Windows worker node.
windows: false

# enableForceDetach allows enabling the force detach feature.
enableForceDetach: false

# cloudProvider indicates which cloud platform Trident is running on.
cloudProvider: ""

# cloudIdentity indicates the identity that needs to be set on service account.
cloudIdentity: ""

# enableACP allows enabling the Trident-ACP container to run.
enableACP: false

# acpImage indicates the image the Trident-ACP container should pull.
acpImage: ""

# iscsiSelfHealingInterval is the interval at which the iSCSI self-healing job is invoked
iscsiSelfHealingInterval: "5m0s"

# iscsiSelfHealingWaitTime is the wait time after which iSCSI self-healing attempts to fix stale sessions
iscsiSelfHealingWaitTime: "7m0s"

# configuratorReconcileInterval is the resource refresh rate for the auto generated backends.
configuratorReconcileInterval: 30m0s

# forceInstallRancherClusterRoles will install a Rancher specific ClusterRole and ClusterRoleBinding when set to true.
# When set to false, the ClusterRole and ClusterRoleBinding will be installed only when a Rancher cluster is detected.
forceInstallRancherClusterRoles: false

# Auto generated ANF backend related fields consumed by the configurator controller.
anfConfigurator:
enabled: false
virtualNetwork: ""
subnet: ""
subscriptionID: ""
tenantID: ""
location: ""
clientCredentials: ""
capacityPools: []
netappAccounts: []
resourceGroups: []
customerEncryptionKeys: {}
Loading

0 comments on commit 9df0d43

Please sign in to comment.