Skip to main content

Enable Astra Control Provisioner

Contributors netapp-dbagwell

Astra Trident versions 23.10 and later include the option to use Astra Control Provisioner, which enables licensed Astra Control users to access advanced storage provisioning functionality. Astra Control Provisioner provides this extended functionality in addition to standard Astra Trident CSI-based functionality.

In coming Astra Control updates, Astra Control Provisioner will replace Astra Trident as storage provisioner and orchestrator in the Astra Control architecture. Because of this, it's highly recommended that Astra Control users enable Astra Control Provisioner. Astra Trident will continue to remain open source and be released, maintained, supported, and updated with new CSI and other features from NetApp.

About this task

You should follow this procedure if you are a licensed Astra Control Center user and you are looking to use Astra Control Provisioner functionality. You should also follow this procedure if you are an Astra Trident user and want to use the additional functionality that Astra Control Provisioner provides without also using Astra Control.

For each case, the provisioner functionality is not enabled by default in Astra Trident 23.10 but can be enabled using this process.

Before you begin

If you are enabling Astra Control Provisioner, do the following first:

Astra Control Provisioners users with Astra Control Center
  • Obtain an Astra Control Center license: You'll need an Astra Control Center license to enable Astra Control Provisioner and access the functionality it provides.

  • Install or upgrade to Astra Control Center 23.10: You'll need this version if you are planning to use Astra Control Provisioner with Astra Control.

  • Confirm that your cluster has an AMD64 system architecture: The Astra Control Provisioner image is provided in both AMD64 and ARM64 CPU architectures, but only AMD64 is supported by Astra Control Center.

  • Get an Astra Control Service account for registry access: If you intend to use the Astra Control registry rather than the NetApp Support Site to download the Astra Control Provisioner image, complete the registration for an Astra Control Service account. After you complete and submit the form and create a BlueXP account, you'll receive an Astra Control Service welcome email.

  • If you have Astra Trident installed, confirm that its version is within a four-release window: You can perform a direct upgrade to Astra Trident 23.10 with Astra Control Provisioner if your Astra Trident is within a four-release window of version 23.10. For example, you can directly upgrade from Astra Trident 22.10 to 23.10.

Astra Control Provisioner only users
  • Obtain an Astra Control Center license: You'll need an Astra Control Center license to enable Astra Control Provisioner and access the functionality it provides.

  • If you have Astra Trident installed, confirm that its version is within a four-release window: You can perform a direct upgrade to Astra Trident 23.10 with Astra Control Provisioner if your Astra Trident is within a four-release window of version 23.10. For example, you can directly upgrade from Astra Trident 22.10 to 23.10.

  • Get an Astra Control Service account for registry access: You'll need access to the registry to download Astra Control Provisioner images. To get started, complete the registration for an Astra Control Service account. After you complete and submit the form and create a BlueXP account, you'll receive an Astra Control Service welcome email.

(Step 1) Download and extract Astra Control Provisioner

Astra Control Center users can download the image using either the NetApp Support Site or Astra Control registry method. Astra Trident users wanting to use Astra Control Provisioner without Astra Control should use the registry method.

(Option) NetApp Support Site

  1. Download the Astra Control Provisioner bundle (trident-acp-[version].tar) from the Astra Control Center downloads page.

  2. (Recommended but optional) Download the certificates and signatures bundle for Astra Control Center (astra-control-center-certs-[version].tar.gz) to verify the signature of the trident-acp-[version] tar bundle.

    Expand for details
    tar -vxzf astra-control-center-certs-[version].tar.gz
    openssl dgst -sha256 -verify certs/AstraControlCenterDockerImages-public.pub -signature certs/trident-acp-[version].tar.sig trident-acp-[version].tar
  3. Load the Astra Control Provisioner image:

    docker load < trident-acp-23.10.0.tar

    Response:

    Loaded image: trident-acp:23.10.0-linux-amd64
  4. Tag the image:

    docker tag trident-acp:23.10.0-linux-amd64 <my_custom_registry>/trident-acp:23.10.0
  5. Push the image to your custom registry:

    docker push <my_custom_registry>/trident-acp:23.10.0

(Option) Astra Control image registry

Note You can use Podman instead of Docker for the commands in this procedure. If you are using a Windows environment, PowerShell is recommended.
  1. Access the NetApp Astra Control image registry:

    1. Log on to the Astra Control Service web UI and select the figure icon at the top right of the page.

    2. Select API access.

    3. Write down your account ID.

    4. From the same page, select Generate API token and copy the API token string to the clipboard and save it in your editor.

    5. Log into the Astra Control registry using your preferred method:

      docker login cr.astra.netapp.io -u <account-id> -p <api-token>
      crane auth login cr.astra.netapp.io -u <account-id> -p <api-token>
  2. If you have a custom registry, follow these steps for your preferred method to move the image to your custom registry. If you aren't using a registry, follow the Trident operator steps in the next section.

    Note You can use Podman instead of Docker for the following commands. If you are using a Windows environment, PowerShell is recommended.
    Docker
    1. Pull the Astra Control Provisioner image from the registry:

      Note The image pulled will not support multiple platforms and will only support the same platform as the host that pulled the image, such as Linux AMD64.
      docker pull cr.astra.netapp.io/astra/trident-acp:23.10.0 --platform <cluster platform>

      Example:

      docker pull cr.astra.netapp.io/astra/trident-acp:23.10.0 --platform linux/amd64
    2. Tag the image:

      docker tag cr.astra.netapp.io/astra/trident-acp:23.10.0 <my_custom_registry>/trident-acp:23.10.0
    3. Push the image to your custom registry:

      docker push <my_custom_registry>/trident-acp:23.10.0
    Crane
    1. Copy the Astra Control Provisioner manifest to your custom registry:

      crane copy cr.astra.netapp.io/astra/trident-acp:23.10.0 <my_custom_registry>/trident-acp:23.10.0

(Step 2) Enable Astra Control Provisioner in Astra Trident

Determine if the original installation method used an operator (either manually or with Helm) or tridentctl and complete the appropriate steps according to your original method.

Warning Do not use Helm to enable Astra Control Provisioner. If you used Helm for the original installation and you are upgrading to 23.10, you'll need to use either the Trident operator or tridentctl to perform Astra Control Provisioner enablement.
Astra Trident operator
  1. Download the Astra Trident installer and extract it.

  2. Complete these steps if you have not yet installed Astra Trident or if you removed the operator from your original Astra Trident deployment:

    1. Create the CRD:

      kubectl create -f deploy/crds/trident.netapp.io_tridentorchestrators_crd_post1.16.yaml
    2. Create the trident namespace (kubectl create namespace trident) or confirm that the trident namespace still exists (kubectl get all -n trident). If the namespace has been removed, create it again.

  3. Update Astra Trident to 23.10.0:

    Note For clusters running Kubernetes 1.24 or earlier, use bundle_pre_1_25.yaml. For clusters running Kubernetes 1.25 or later, use bundle_post_1_25.yaml.
    kubectl -n trident apply -f trident-installer-23.10.0/deploy/<bundle-name.yaml>
  4. Verify Astra Trident is running:

    kubectl get torc -n trident

    Response:

    NAME      AGE
    trident   21m
  5. If you have a registry that uses secrets, create a secret to use to pull the Astra Control Provisioner image:

    kubectl create secret docker-registry <secret_name> -n trident --docker-server=<my_custom_registry> --docker-username=<username> --docker-password=<token>
  6. Edit the TridentOrchestrator CR and make the following edits:

    kubectl edit torc trident -n trident
    1. Set a custom registry location for the Astra Trident image or pull it from the Astra Control registry (tridentImage: <my_custom_registry>/trident:23.10.0 or tridentImage: netapp/trident:23.10.0).

    2. Enable Astra Control Provisioner (enableACP: true).

    3. Set the custom registry location for the Astra Control Provisioner image or pull it from the Astra Control registry (acpImage: <my_custom_registry>/trident-acp:23.10.0 or acpImage: cr.astra.netapp.io/astra/trident-acp:23.10.0).

    4. If you established image pull secrets earlier in this procedure, you can set them here (imagePullSecrets: - <secret_name>). Use the same name secret name you established in the previous steps.

    apiVersion: trident.netapp.io/v1
    kind: TridentOrchestrator
    metadata:
      name: trident
    spec:
      debug: true
      namespace: trident
      tridentImage: <registry>/trident:23.10.0
      enableACP: true
      acpImage: <registry>/trident-acp:23.10.0
      imagePullSecrets:
      - <secret_name>
  7. Save and exit the file. The deployment process will begin automatically.

  8. Verify the operator, deployment, and replicasets are created.

    kubectl get all -n trident
    Important There should only be one instance of the operator in a Kubernetes cluster. Do not create multiple deployments of the Astra Trident operator.
  9. Verify the trident-acp container is running and that acpVersion is 23.10.0 with a status of Installed:

    kubectl get torc -o yaml

    Response:

    status:
      acpVersion: 23.10.0
      currentInstallationParams:
        ...
        acpImage: <registry>/trident-acp:23.10.0
        enableACP: "true"
        ...
      ...
      status: Installed
tridentctl
  1. Download the Astra Trident installer and extract it.

  2. If you have an existing Astra Trident, uninstall it from the cluster that hosts it.

  3. Install Astra Trident with Astra Control Provisioner enabled (--enable-acp=true):

    ./tridentctl -n trident install --enable-acp=true --acp-image=mycustomregistry/trident-acp:23.10
  4. Confirm that Astra Control Provisioner has been enabled:

    ./tridentctl -n trident version

    Response:

    +----------------+----------------+-------------+ | SERVER VERSION | CLIENT VERSION | ACP VERSION | +----------------+----------------+-------------+ | 23.10.0 | 23.10.0 | 23.10.0. | +----------------+----------------+-------------+

Result

Astra Control Provisioner functionality is enabled and you can use any features available for the version you are running.

(For Astra Control Center users only) After Astra Control Provisioner is installed, the cluster hosting the provisioner in the Astra Control Center UI will show an ACP version rather than Trident version field and current installed version number.

A screenshot depicting the ACP version location in UI