Installation using repctl

Install Replication Walkthrough

NOTE: These steps should not be used when installing using Dell CSM Operator.

Set up repctl tool

Before you begin, make sure you have the repctl tool available.

You can download a pre-built repctl binary from our Releases page.

mv repctl-linux-amd64 repctl
chmod +x repctl

Alternately, if you want to build the binary yourself, you can follow these steps:

git clone -b v1.6.0
cd csm-replication/repctl
make build

Installation steps

NOTE: The repctl commands only have to be run from one Kubernetes cluster. Repctl does the appropriate configuration on both clusters, when installing replication with it.

You can start using Container Storage Modules (CSM) for Replication with help from repctl using these simple steps:

  1. Prepare admin Kubernetes clusters configs
  2. Add admin configs as clusters to repctl:
    ./repctl cluster add -f "/root/.kube/config-1","/root/.kube/config-2" -n "cluster-1","cluster-2"

    NOTE: If using a single Kubernetes cluster in a stretched configuration there will be only one cluster.

  3. Install replication controller and CRDs:
    ./repctl create -f ../deploy/replicationcrds.all.yaml
    ./repctl create -f ../deploy/controller.yaml

    NOTE: The controller will report that configmap is invalid. This is expected behavior. The message should disappear once you inject the kubeconfigs (next step).

  4. (Choose one)
    1. (More secure) Inject service accounts’ configs into clusters:
      ./repctl cluster inject --use-sa
    2. (Less secure) Inject admin configs into clusters:
      ./repctl cluster inject
  5. Modify csm-replication/repctl/examples/<storage>_example_values.yaml config with replication information:

    NOTE: clusterID should match names you gave to clusters in step 2

  6. Create replication storage classes using config:
    ./repctl create sc --from-config ./examples/<storage>_example_values.yaml
  7. Install CSI driver for your chosen storage in source cluster and provision replicated volumes
  8. (optional) Create PVCs on target cluster from Replication Group:
    ./repctl create pvc --rg <rg-name> -t <target-namespace> --dry-run=false

Note: all repctl output is saved in a repctl.log file in the current working directory and can be attached to any installation troubleshooting requests.