This is unreleased documentation for SUSE® Storage 1.9.0 (Dev).

Install SUSE Storage Using ArgoCD

Prerequisites

  • Your workstation: Install the Argo CD CLI.

  • Kubernetes cluster:

    • Ensure that each node fulfills the installation requirements.

    • Install Argo CD.

      kubectl create namespace argocd
      kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/core-install.yaml
      bash

      Allow some time for the deployment of Argo CD components in the argocd namespace.

Use this script to check the environment for potential issues.

Installation

  1. Log in to Argo CD.

     argocd login --core
    bash
  2. Set the current namespace to argocd.

     kubectl config set-context --current --namespace=argocd
    bash
  3. Create the Longhorn Application custom resource.

     cat > longhorn-application.yaml <<EOF
     apiVersion: argoproj.io/v1alpha1
     kind: Application
     metadata:
       name: longhorn
       namespace: argocd
     spec:
       syncPolicy:
         syncOptions:
           - CreateNamespace=true
       project: default
       sources:
         - chart: longhorn
           repoURL: https://charts.longhorn.io/
           targetRevision: v1.9.0 # Replace with the version you'd like to install or upgrade to
           helm:
             values: |
               preUpgradeChecker:
                 jobEnabled: false
       destination:
         server: https://kubernetes.default.svc
         namespace: longhorn-system
     EOF
     kubectl apply -f longhorn-application.yaml
    bash
  4. Deploy SUSE Storage with the configured settings.

     argocd app sync longhorn
    bash
  5. Verify that SUSE Storage was installed successfully.

     kubectl -n longhorn-system get pod
    bash

    Example of a successful installation:

     NAME                                                READY   STATUS    RESTARTS   AGE
     longhorn-ui-b7c844b49-w25g5                         1/1     Running   0          2m41s
     longhorn-manager-pzgsp                              1/1     Running   0          2m41s
     longhorn-driver-deployer-6bd59c9f76-lqczw           1/1     Running   0          2m41s
     longhorn-csi-plugin-mbwqz                           2/2     Running   0          100s
     csi-snapshotter-588457fcdf-22bqp                    1/1     Running   0          100s
     csi-snapshotter-588457fcdf-2wd6g                    1/1     Running   0          100s
     csi-provisioner-869bdc4b79-mzrwf                    1/1     Running   0          101s
     csi-provisioner-869bdc4b79-klgfm                    1/1     Running   0          101s
     csi-resizer-6d8cf5f99f-fd2ck                        1/1     Running   0          101s
     csi-provisioner-869bdc4b79-j46rx                    1/1     Running   0          101s
     csi-snapshotter-588457fcdf-bvjdt                    1/1     Running   0          100s
     csi-resizer-6d8cf5f99f-68cw7                        1/1     Running   0          101s
     csi-attacher-7bf4b7f996-df8v6                       1/1     Running   0          101s
     csi-attacher-7bf4b7f996-g9cwc                       1/1     Running   0          101s
     csi-attacher-7bf4b7f996-8l9sw                       1/1     Running   0          101s
     csi-resizer-6d8cf5f99f-smdjw                        1/1     Running   0          101s
     instance-manager-b34d5db1fe1e2d52bcfb308be3166cfc   1/1     Running   0          114s
     engine-image-ei-df38d2e5-cv6nc                      1/1     Running   0          114s
    bash
  6. Create an NGINX Ingress controller with basic authentication to access the UI. Authentication to the UI is not enabled by default.

  7. Access the UI.