From 6dcb6eaaf02cdabe303a7e8cdd5f95db5f5f3925 Mon Sep 17 00:00:00 2001 From: Trevor Dawe Date: Thu, 11 Aug 2022 10:35:43 -0400 Subject: [PATCH 01/13] Documentation for Application Mobility --- content/docs/application-mobility/_index.md | 65 +++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 content/docs/application-mobility/_index.md diff --git a/content/docs/application-mobility/_index.md b/content/docs/application-mobility/_index.md new file mode 100644 index 0000000000..784740451f --- /dev/null +++ b/content/docs/application-mobility/_index.md @@ -0,0 +1,65 @@ +--- +title: "Application Mobility" +linkTitle: "Application Mobility" +weight: 9 +Description: > + Application Mobility for Dell Container Storage Modules (CSM) +--- + +{{% pageinfo color="primary" %}} +Application Mobility is currently in tech-preview and is not supported in production environments +{{% /pageinfo %}} + +# Overview +TODO: List of features + +# Pre-requisites +- Request a License for Application Mobility: https://app.smartsheet.com/b/form/5e46fad643874d56b1f9cf4c9f3071fb + +# Installation +1. Create a namespace where Application Mobility will be installed. +``` +kubectl create ns application-mobility +``` +1. Create the Secret containing a license file (see Pre-requisites above) +``` +kubectl apply -f license.yml +``` +1. Add the Dell Helm Charts repo helm repo add dell https://dell.github.io/helm-charts +``` +helm repo add dell https://dell.github.io/helm-charts +``` + +## Configuration + +The following table lists the configurable parameters of the Application Mobility Helm chart and their default values. + +| Parameter | Description | Default | +| - | - | - | +| `replicaCount` | Number of replicas for the Application Mobility controllers | `1` | +| `image.pullPolicy` | Image pull policy for the Application Mobility controller images | `IfNotPresent` | +| `controller.image` | Location of the csm-application-mobility Docker image | `dell/csm-application-mobility:v0.1.0` | +| `cert-manager.enabled` | If set to true, cert-manager will be installed during Application Mobility installation | `false` | +| `veleroNamespace` | If Velero is already installed, set to the namespace where Velero is insatlled | `velero` | +| `licenseName` | Name of the Secret that contains the License for CSM Application Mobility | `license` | +| `objectstore.secretName` | If velero is already installed on the cluster, specify the name of the secret in velero namespace that has credentials to access object store | `` | + +| `velero.enabled` | If set to true, Velero will be installed during Application Mobility installation | `true` | +| `velero.use-volume-snapshots` | If set to true, Velero will use volume snapshots | `false` | +| `velero.deployRestic` | If set to true, Velero will also deploy Restic | `true` | +| `velero.cleanUpCRDs` | If set to true, Velero CRDs will be cleaned up | `true` | + +| `velero.credentials.existingSecret` | Optionally, specify the name of the pre-created secret in the release namespace that holds the object store credentials. Either this or secretContents should be specified | `` | +| `velero.credentials.name` | Optionally, specify the name to be used for secret that will be created to hold object store credentials. Used in conjunction with secretContents. | `` | +| `velero.credentials.secretContents` | Optionally, specify the object store access credentials to be stored in a secret with key "cloud". Either this or existingSecret should be provided. | `` | + + +| `velero.configuration.provider` | Provider to use for Velero. | `aws` | +| `velero.configuration.backupStorageLocation.name` | Name of the backup storage location for Velero. | `default` | +| `velero.configuration.backupStorageLocation.bucket` | Name of the object store bucket to use for backups. | `velero-bucket` | +| `velero.configuration.backupStorageLocation.config.region` | The region for the object store. | `s3` | + + + +# Using dellctl + From 50ba044b7a2db5a70439fb5fa89cb5b92afec414 Mon Sep 17 00:00:00 2001 From: Trevor Dawe Date: Fri, 12 Aug 2022 15:23:24 -0400 Subject: [PATCH 02/13] Added more documentation --- content/docs/application-mobility/_index.md | 55 ++-------------- .../docs/application-mobility/deployment.md | 64 +++++++++++++++++++ .../application-mobility/troubleshooting.md | 42 ++++++++++++ .../application-mobility/uninstallation.md | 21 ++++++ 4 files changed, 134 insertions(+), 48 deletions(-) create mode 100644 content/docs/application-mobility/deployment.md create mode 100644 content/docs/application-mobility/troubleshooting.md create mode 100644 content/docs/application-mobility/uninstallation.md diff --git a/content/docs/application-mobility/_index.md b/content/docs/application-mobility/_index.md index 784740451f..967922a981 100644 --- a/content/docs/application-mobility/_index.md +++ b/content/docs/application-mobility/_index.md @@ -11,55 +11,14 @@ Application Mobility is currently in tech-preview and is not supported in produc {{% /pageinfo %}} # Overview -TODO: List of features +Container Storage Modules for Application Mobility provides Kubernetes administrators the ability to clone their application workloads and data to other clusters, either on-premise or in the cloud. -# Pre-requisites -- Request a License for Application Mobility: https://app.smartsheet.com/b/form/5e46fad643874d56b1f9cf4c9f3071fb +Application Mobility uses [Velero](https://velero.io) and its integration of [Restic](https://restic.net) to copy both application metadata and data to object storage. When a backup is requested, Application Mobility uses the following options to determine how the application data is backed up: +- If [Volume Group Snapshots](../snapshots/volume-group-snapshots/) are enabled on the CSI driver backing the application's Persistent Volumes, crash consistent snapshots of all volumes are used for the backup. +- If Volume Snapshots are enabled on the Kubernetes cluster and supported by the CSI driver, individual snapshots are used for each Persistent Volume used by the application. +- If no snapshot options are enabled, default to using full copies of each Persistent Volume used by the application. -# Installation -1. Create a namespace where Application Mobility will be installed. -``` -kubectl create ns application-mobility -``` -1. Create the Secret containing a license file (see Pre-requisites above) -``` -kubectl apply -f license.yml -``` -1. Add the Dell Helm Charts repo helm repo add dell https://dell.github.io/helm-charts -``` -helm repo add dell https://dell.github.io/helm-charts -``` -## Configuration - -The following table lists the configurable parameters of the Application Mobility Helm chart and their default values. - -| Parameter | Description | Default | -| - | - | - | -| `replicaCount` | Number of replicas for the Application Mobility controllers | `1` | -| `image.pullPolicy` | Image pull policy for the Application Mobility controller images | `IfNotPresent` | -| `controller.image` | Location of the csm-application-mobility Docker image | `dell/csm-application-mobility:v0.1.0` | -| `cert-manager.enabled` | If set to true, cert-manager will be installed during Application Mobility installation | `false` | -| `veleroNamespace` | If Velero is already installed, set to the namespace where Velero is insatlled | `velero` | -| `licenseName` | Name of the Secret that contains the License for CSM Application Mobility | `license` | -| `objectstore.secretName` | If velero is already installed on the cluster, specify the name of the secret in velero namespace that has credentials to access object store | `` | - -| `velero.enabled` | If set to true, Velero will be installed during Application Mobility installation | `true` | -| `velero.use-volume-snapshots` | If set to true, Velero will use volume snapshots | `false` | -| `velero.deployRestic` | If set to true, Velero will also deploy Restic | `true` | -| `velero.cleanUpCRDs` | If set to true, Velero CRDs will be cleaned up | `true` | - -| `velero.credentials.existingSecret` | Optionally, specify the name of the pre-created secret in the release namespace that holds the object store credentials. Either this or secretContents should be specified | `` | -| `velero.credentials.name` | Optionally, specify the name to be used for secret that will be created to hold object store credentials. Used in conjunction with secretContents. | `` | -| `velero.credentials.secretContents` | Optionally, specify the object store access credentials to be stored in a secret with key "cloud". Either this or existingSecret should be provided. | `` | - - -| `velero.configuration.provider` | Provider to use for Velero. | `aws` | -| `velero.configuration.backupStorageLocation.name` | Name of the backup storage location for Velero. | `default` | -| `velero.configuration.backupStorageLocation.bucket` | Name of the object store bucket to use for backups. | `velero-bucket` | -| `velero.configuration.backupStorageLocation.config.region` | The region for the object store. | `s3` | - - - -# Using dellctl +## Using dellctl +Check the [CLI documentation](../cli/) \ No newline at end of file diff --git a/content/docs/application-mobility/deployment.md b/content/docs/application-mobility/deployment.md new file mode 100644 index 0000000000..2ed1698b24 --- /dev/null +++ b/content/docs/application-mobility/deployment.md @@ -0,0 +1,64 @@ +--- +title: "Deployment" +linkTitle: "Deployment" +weight: 1 +Description: > + Dell Container Storage Modules (CSM) for Application Mobility +--- + +{{% pageinfo color="primary" %}} +Application Mobility is currently in tech-preview and is not supported in production environments +{{% /pageinfo %}} + +## Pre-requisites +- [Request a License for Application Mobility](../license/) +- Object store accessible by both the source and target clusters and supported by Restic (https://restic.readthedocs.io/en/latest/030_preparing_a_new_repo.html) + +## Installation +1. Create a namespace where Application Mobility will be installed. + ``` + kubectl create ns application-mobility + ``` +1. Edit the license Secret file (see Pre-requisites above) and set the correct namespace (ex: `namespace: application-mobility`) +1. Create the Secret containing a license file + ``` + kubectl apply -f license.yml + ``` +1. Add the Dell Helm Charts repo helm repo add dell https://dell.github.io/helm-charts + ``` + helm repo add dell https://dell.github.io/helm-charts + ``` +1. Either create a values.yml file or provide the `--set` options to the `helm install` to override default values from the Configuration section. +1. Install the helm chart + ``` + helm install -n application-mobility dell/application-mobility + ``` + + +### Configuration + +The following table lists the configurable parameters of the Application Mobility Helm chart and their default values. + +| Parameter | Description | Default | +| - | - | - | +| `replicaCount` | Number of replicas for the Application Mobility controllers | `1` | +| `image.pullPolicy` | Image pull policy for the Application Mobility controller images | `IfNotPresent` | +| `controller.image` | Location of the csm-application-mobility Docker image | `dell/csm-application-mobility:v0.1.0` | +| `cert-manager.enabled` | If set to true, cert-manager will be installed during Application Mobility installation | `false` | +| `veleroNamespace` | If Velero is already installed, set to the namespace where Velero is insatlled | `velero` | +| `licenseName` | Name of the Secret that contains the License for CSM Application Mobility | `license` | +| `objectstore.secretName` | If velero is already installed on the cluster, specify the name of the secret in velero namespace that has credentials to access object store | ` ` | +| `velero.enabled` | If set to true, Velero will be installed during Application Mobility installation | `true` | +| `velero.use-volume-snapshots` | If set to true, Velero will use volume snapshots | `false` | +| `velero.deployRestic` | If set to true, Velero will also deploy Restic | `true` | +| `velero.cleanUpCRDs` | If set to true, Velero CRDs will be cleaned up | `true` | +| `velero.credentials.existingSecret` | Optionally, specify the name of the pre-created secret in the release namespace that holds the object store credentials. Either this or secretContents should be specified | ` ` | +| `velero.credentials.name` | Optionally, specify the name to be used for secret that will be created to hold object store credentials. Used in conjunction with secretContents. | ` ` | +| `velero.credentials.secretContents` | Optionally, specify the object store access credentials to be stored in a secret with key "cloud". Either this or existingSecret should be provided. | ` ` | +| `velero.configuration.provider` | Provider to use for Velero. | `aws` | +| `velero.configuration.backupStorageLocation.name` | Name of the backup storage location for Velero. | `default` | +| `velero.configuration.backupStorageLocation.bucket` | Name of the object store bucket to use for backups. | `velero-bucket` | +| `velero.configuration.backupStorageLocation.config.region` | The region for the object store. | `s3` | +| `velero.configuration.backupStorageLocation.config.s3ForcePathStyle` | Force path style. | `true` | +| `velero.configuration.backupStorageLocation.config.s3Url` | URL for accessing object store. | `http://10.10.10.10:9000` | +| `velero.initContainers` | List of init-containers used as plugins by Velero. (TODO: Add note about dell-velero-plugin image location) | ` ` | diff --git a/content/docs/application-mobility/troubleshooting.md b/content/docs/application-mobility/troubleshooting.md new file mode 100644 index 0000000000..03bfd9d272 --- /dev/null +++ b/content/docs/application-mobility/troubleshooting.md @@ -0,0 +1,42 @@ +--- +title: "Troubleshooting" +linkTitle: "Troubleshooting" +weight: 3 +Description: > + Troubleshooting guide +--- + +{{% pageinfo color="primary" %}} +Application Mobility is currently in tech-preview and is not supported in production environments +{{% /pageinfo %}} + +## Frequently Asked Questions +1. [How can I diagnose an issue with Container Storage Modules (CSM) for Application Mobility?](#how-can-i-diagnose-an-issue-with-csm-for-observability) +2. [How can I view logs?](#how-can-i-view-logs) +3. [How can I debug and troubleshoot issues with Kubernetes?](#how-can-i-debug-and-troubleshoot-issues-with-kubernetes) + +### How can I diagnose an issue with CSM for Application Mobility? + +Once you have attempted to install CSM for Application Mobility to your Kubernetes or OpenShift cluster, the first step in troubleshooting is locating the problem. + +Get information on the state of your Pods. +```console +kubectl get pods -n $namespace +``` +Get verbose output of the current state of a Pod. +```console +kubectl describe pod -n $namespace $pod +``` +### How can I view logs? + +View pod container logs. Output logs to a file for further debugging. +```console +kubectl logs -n $namespace $pod $container +kubectl logs -n $namespace $pod $container > $logFileName +``` + +### How can I debug and troubleshoot issues with Kubernetes? + +* To debug your application that may not be behaving correctly, please reference Kubernetes [troubleshooting applications guide](https://kubernetes.io/docs/tasks/debug-application-cluster/debug-application/). + +* For tips on debugging your cluster, please see this [troubleshooting guide](https://kubernetes.io/docs/tasks/debug-application-cluster/debug-cluster/). \ No newline at end of file diff --git a/content/docs/application-mobility/uninstallation.md b/content/docs/application-mobility/uninstallation.md new file mode 100644 index 0000000000..a9f10ed856 --- /dev/null +++ b/content/docs/application-mobility/uninstallation.md @@ -0,0 +1,21 @@ +--- +title: Uninstallation +linktitle: Uninstallation +weight: 2 +description: > + Dell Container Storage Modules (CSM) for Application Mobility Uninstallation +--- + +{{% pageinfo color="primary" %}} +Application Mobility is currently in tech-preview and is not supported in production environments +{{% /pageinfo %}} + +This section outlines the uninstallation steps for Container Storage Modules (CSM) for Application Mobility. + +## Uninstall the CSM for Application Mobility Helm Chart + +The command below removes all the Kubernetes components associated with the chart. + +```console +$ helm delete application-mobility --namespace [APPLICATION_MOBILITY_NAMESPACE] +``` From c669c34649126edb0ae15d4e3a424dab79f785ed Mon Sep 17 00:00:00 2001 From: Trevor Dawe Date: Wed, 17 Aug 2022 07:39:29 -0400 Subject: [PATCH 03/13] Added examples --- content/docs/application-mobility/_index.md | 7 +- .../application-mobility/troubleshooting.md | 2 +- .../docs/application-mobility/use_cases.md | 67 +++++++++++++++++++ 3 files changed, 69 insertions(+), 7 deletions(-) create mode 100644 content/docs/application-mobility/use_cases.md diff --git a/content/docs/application-mobility/_index.md b/content/docs/application-mobility/_index.md index 967922a981..90c9427cbd 100644 --- a/content/docs/application-mobility/_index.md +++ b/content/docs/application-mobility/_index.md @@ -16,9 +16,4 @@ Container Storage Modules for Application Mobility provides Kubernetes administr Application Mobility uses [Velero](https://velero.io) and its integration of [Restic](https://restic.net) to copy both application metadata and data to object storage. When a backup is requested, Application Mobility uses the following options to determine how the application data is backed up: - If [Volume Group Snapshots](../snapshots/volume-group-snapshots/) are enabled on the CSI driver backing the application's Persistent Volumes, crash consistent snapshots of all volumes are used for the backup. - If Volume Snapshots are enabled on the Kubernetes cluster and supported by the CSI driver, individual snapshots are used for each Persistent Volume used by the application. -- If no snapshot options are enabled, default to using full copies of each Persistent Volume used by the application. - - -## Using dellctl - -Check the [CLI documentation](../cli/) \ No newline at end of file +- If no snapshot options are enabled, default to using full copies of each Persistent Volume used by the application. \ No newline at end of file diff --git a/content/docs/application-mobility/troubleshooting.md b/content/docs/application-mobility/troubleshooting.md index 03bfd9d272..48e22077a2 100644 --- a/content/docs/application-mobility/troubleshooting.md +++ b/content/docs/application-mobility/troubleshooting.md @@ -1,7 +1,7 @@ --- title: "Troubleshooting" linkTitle: "Troubleshooting" -weight: 3 +weight: 4 Description: > Troubleshooting guide --- diff --git a/content/docs/application-mobility/use_cases.md b/content/docs/application-mobility/use_cases.md new file mode 100644 index 0000000000..06e91fc508 --- /dev/null +++ b/content/docs/application-mobility/use_cases.md @@ -0,0 +1,67 @@ +--- +title: "Use Cases" +linkTitle: "Use Cases" +weight: 3 +Description: > + Application Mobility for Dell Container Storage Modules (CSM) +--- + +{{% pageinfo color="primary" %}} +Application Mobility is currently in tech-preview and is not supported in production environments +{{% /pageinfo %}} + +# Use Cases + +After Application Mobility is installed, the [dellctl CLI](../cli/) can be used to register clusters and manage backups and restores of applications. + +## Backup and Restore an Application +The following example details the steps when an application in namespace `demo1` is being backed up and then later restored to either the same cluster or another cluster. In this sample, both Application Mobility and Velero were installed in the `application-mobility` namespace. + +1. If Velero is not installed in the default `velero` namespace, set the following environment variable to the namespace where it is running: + ``` + export VELERO_NAMESPACE=application-mobility + ``` +1. On the source cluster, create a Backup by providing a name and the included namespace where the application is running. The application and its data will be available in the object store bucket and can be restored at a later time. + ``` + dellctl backup create backup1 --include-namespaces demo1 --namespace application-mobility + ``` +1. Monitor the backup status until it is marked as Completed. + ``` + dellctl backup get --namespace application-mobility + ``` +1. The application and its data can be restored on either the same cluster or another cluster by referring to the backup name and providing an optional mapping of the original namespace to the target namespace. + ``` + dellctl restore create restore1 --from-backup backup1 \ + --namespace-mappings "demo1:restorens1" --namespace application-mobility + ``` +1. Monitor the restore status until it is marked as Completed. + ``` + dellctl restore get --namespace application-mobility + ``` + +## Clone an Application +The following example details the steps when an application in namespace `demo1` is cloned from a source cluster to a target cluster in a single operation. In this sample, both Application Mobility and Velero were installed in the `application-mobility` namespace. + +1. If Velero is not installed in the default `velero` namespace, set the following environment variable to the namespace where it is running: + ``` + export VELERO_NAMESPACE=application-mobility + ``` + +1. Register both the source and target clusters + ``` + dellctl cluster add -n cluster1 -f ~/kubeconfigs/cluster1-kubeconfig + dellctl cluster add -n cluster2 -f ~/kubeconfigs/cluster2-kubeconfig + ``` +1. On the source cluster, create a Backup by providing a name and the included namespace where the application is running. The application and its data will be available in the object store bucket and can be restored at a later time. + ``` + dellctl backup create backup1 --include-namespaces demo1 --cluster-id cluster1 \ + --clones "cluster2/demo1:restore-ns2" --namespace application-mobility + ``` +1. Monitor the backup status until it is marked as Completed. + ``` + dellctl backup get --namespace application-mobility + ``` + +## Using dellctl + +Check the [CLI documentation] \ No newline at end of file From 3c03e530540e193508f8e83b5ad088e4613cf545 Mon Sep 17 00:00:00 2001 From: Trevor Dawe Date: Wed, 17 Aug 2022 08:45:51 -0400 Subject: [PATCH 04/13] Updated docs --- content/docs/application-mobility/_index.md | 20 ++++++++++++----- .../docs/application-mobility/deployment.md | 16 +++++--------- .../application-mobility/troubleshooting.md | 16 +++++++++----- .../application-mobility/uninstallation.md | 10 +++------ .../docs/application-mobility/use_cases.md | 22 +++++-------------- 5 files changed, 41 insertions(+), 43 deletions(-) diff --git a/content/docs/application-mobility/_index.md b/content/docs/application-mobility/_index.md index 90c9427cbd..d262851eb8 100644 --- a/content/docs/application-mobility/_index.md +++ b/content/docs/application-mobility/_index.md @@ -6,14 +6,24 @@ Description: > Application Mobility for Dell Container Storage Modules (CSM) --- -{{% pageinfo color="primary" %}} -Application Mobility is currently in tech-preview and is not supported in production environments -{{% /pageinfo %}} +>> NOTE: This tech-preview release is not intended for use in production environment. + +>> NOTE: Application Mobility requires a time-based license. See [Deployment](./deployment) for instructions. -# Overview Container Storage Modules for Application Mobility provides Kubernetes administrators the ability to clone their application workloads and data to other clusters, either on-premise or in the cloud. Application Mobility uses [Velero](https://velero.io) and its integration of [Restic](https://restic.net) to copy both application metadata and data to object storage. When a backup is requested, Application Mobility uses the following options to determine how the application data is backed up: - If [Volume Group Snapshots](../snapshots/volume-group-snapshots/) are enabled on the CSI driver backing the application's Persistent Volumes, crash consistent snapshots of all volumes are used for the backup. - If Volume Snapshots are enabled on the Kubernetes cluster and supported by the CSI driver, individual snapshots are used for each Persistent Volume used by the application. -- If no snapshot options are enabled, default to using full copies of each Persistent Volume used by the application. \ No newline at end of file +- If no snapshot options are enabled, default to using full copies of each Persistent Volume used by the application. + + +## Supported Operating Systems/Container Orchestrator Platforms +{{}} +| COP/OS | Supported Versions | +|-|-| +| Kubernetes | 1.23, 1.24 | +| Red Hat OpenShift | 4.10 | +| RHEL | 7.x, 8.x | +| CentOS | 7.8, 7.9 | +{{
}} \ No newline at end of file diff --git a/content/docs/application-mobility/deployment.md b/content/docs/application-mobility/deployment.md index 2ed1698b24..89affd7dff 100644 --- a/content/docs/application-mobility/deployment.md +++ b/content/docs/application-mobility/deployment.md @@ -3,16 +3,12 @@ title: "Deployment" linkTitle: "Deployment" weight: 1 Description: > - Dell Container Storage Modules (CSM) for Application Mobility + Deployment for Dell Container Storage Modules (CSM) for Application Mobility --- -{{% pageinfo color="primary" %}} -Application Mobility is currently in tech-preview and is not supported in production environments -{{% /pageinfo %}} - ## Pre-requisites -- [Request a License for Application Mobility](../license/) -- Object store accessible by both the source and target clusters and supported by Restic (https://restic.readthedocs.io/en/latest/030_preparing_a_new_repo.html) +- [Request a License for Application Mobility](../../license/) +- Object store bucket accessible by both the source and target clusters ## Installation 1. Create a namespace where Application Mobility will be installed. @@ -24,14 +20,14 @@ Application Mobility is currently in tech-preview and is not supported in produc ``` kubectl apply -f license.yml ``` -1. Add the Dell Helm Charts repo helm repo add dell https://dell.github.io/helm-charts +1. Add the Dell Helm Charts repository ``` helm repo add dell https://dell.github.io/helm-charts ``` -1. Either create a values.yml file or provide the `--set` options to the `helm install` to override default values from the Configuration section. +1. Either create a values.yml file or provide the `--set` options to the `helm install` to override default values from the [Configuration](#configuration) section. 1. Install the helm chart ``` - helm install -n application-mobility dell/application-mobility + helm install -n application-mobility dell/csm-application-mobility ``` diff --git a/content/docs/application-mobility/troubleshooting.md b/content/docs/application-mobility/troubleshooting.md index 48e22077a2..66ca400206 100644 --- a/content/docs/application-mobility/troubleshooting.md +++ b/content/docs/application-mobility/troubleshooting.md @@ -6,14 +6,11 @@ Description: > Troubleshooting guide --- -{{% pageinfo color="primary" %}} -Application Mobility is currently in tech-preview and is not supported in production environments -{{% /pageinfo %}} - ## Frequently Asked Questions 1. [How can I diagnose an issue with Container Storage Modules (CSM) for Application Mobility?](#how-can-i-diagnose-an-issue-with-csm-for-observability) 2. [How can I view logs?](#how-can-i-view-logs) 3. [How can I debug and troubleshoot issues with Kubernetes?](#how-can-i-debug-and-troubleshoot-issues-with-kubernetes) +4. [Why are there error logs about a license?](#why-are-there-error-logs-about-a-license) ### How can I diagnose an issue with CSM for Application Mobility? @@ -39,4 +36,13 @@ kubectl logs -n $namespace $pod $container > $logFileName * To debug your application that may not be behaving correctly, please reference Kubernetes [troubleshooting applications guide](https://kubernetes.io/docs/tasks/debug-application-cluster/debug-application/). -* For tips on debugging your cluster, please see this [troubleshooting guide](https://kubernetes.io/docs/tasks/debug-application-cluster/debug-cluster/). \ No newline at end of file +* For tips on debugging your cluster, please see this [troubleshooting guide](https://kubernetes.io/docs/tasks/debug-application-cluster/debug-cluster/). + +### Why are there error logs about a license? + +Application Mobility requires a license in order to function. See the [Deployment](../deployment) instructions for steps to request a license. + +There will be errors in the logs about the license for the following cases: +- License does not exist +- License is not valid for the current Kubernetes cluster +- License has expired \ No newline at end of file diff --git a/content/docs/application-mobility/uninstallation.md b/content/docs/application-mobility/uninstallation.md index a9f10ed856..b81e9d2add 100644 --- a/content/docs/application-mobility/uninstallation.md +++ b/content/docs/application-mobility/uninstallation.md @@ -3,19 +3,15 @@ title: Uninstallation linktitle: Uninstallation weight: 2 description: > - Dell Container Storage Modules (CSM) for Application Mobility Uninstallation + Uninstallation for Dell Container Storage Modules (CSM) for Application Mobility --- -{{% pageinfo color="primary" %}} -Application Mobility is currently in tech-preview and is not supported in production environments -{{% /pageinfo %}} - This section outlines the uninstallation steps for Container Storage Modules (CSM) for Application Mobility. ## Uninstall the CSM for Application Mobility Helm Chart The command below removes all the Kubernetes components associated with the chart. -```console -$ helm delete application-mobility --namespace [APPLICATION_MOBILITY_NAMESPACE] +``` +$ helm delete [APPLICATION_MOBILITY_NAME] --namespace [APPLICATION_MOBILITY_NAMESPACE] ``` diff --git a/content/docs/application-mobility/use_cases.md b/content/docs/application-mobility/use_cases.md index 06e91fc508..b026c82a78 100644 --- a/content/docs/application-mobility/use_cases.md +++ b/content/docs/application-mobility/use_cases.md @@ -3,19 +3,13 @@ title: "Use Cases" linkTitle: "Use Cases" weight: 3 Description: > - Application Mobility for Dell Container Storage Modules (CSM) + Use cases for Dell Container Storage Modules (CSM) for Application Mobility --- -{{% pageinfo color="primary" %}} -Application Mobility is currently in tech-preview and is not supported in production environments -{{% /pageinfo %}} - -# Use Cases - -After Application Mobility is installed, the [dellctl CLI](../cli/) can be used to register clusters and manage backups and restores of applications. +After Application Mobility is installed, the [dellctl CLI](../../cli/) can be used to register clusters and manage backups and restores of applications. ## Backup and Restore an Application -The following example details the steps when an application in namespace `demo1` is being backed up and then later restored to either the same cluster or another cluster. In this sample, both Application Mobility and Velero were installed in the `application-mobility` namespace. +The following example details the steps when an application in namespace `demo1` is being backed up and then later restored to either the same cluster or another cluster. In this sample, both Application Mobility and Velero are installed in the `application-mobility` namespace. 1. If Velero is not installed in the default `velero` namespace, set the following environment variable to the namespace where it is running: ``` @@ -40,7 +34,7 @@ The following example details the steps when an application in namespace `demo1` ``` ## Clone an Application -The following example details the steps when an application in namespace `demo1` is cloned from a source cluster to a target cluster in a single operation. In this sample, both Application Mobility and Velero were installed in the `application-mobility` namespace. +The following example details the steps when an application in namespace `demo1` is cloned from a source cluster to a target cluster in a single operation. In this sample, both Application Mobility and Velero are installed in the `application-mobility` namespace. 1. If Velero is not installed in the default `velero` namespace, set the following environment variable to the namespace where it is running: ``` @@ -52,7 +46,7 @@ The following example details the steps when an application in namespace `demo1` dellctl cluster add -n cluster1 -f ~/kubeconfigs/cluster1-kubeconfig dellctl cluster add -n cluster2 -f ~/kubeconfigs/cluster2-kubeconfig ``` -1. On the source cluster, create a Backup by providing a name and the included namespace where the application is running. The application and its data will be available in the object store bucket and can be restored at a later time. +1. Create a Backup by providing a name, the included namespace where the application is running, the source cluster, and the target cluster and namespace mapping where the application will be restored. ``` dellctl backup create backup1 --include-namespaces demo1 --cluster-id cluster1 \ --clones "cluster2/demo1:restore-ns2" --namespace application-mobility @@ -60,8 +54,4 @@ The following example details the steps when an application in namespace `demo1` 1. Monitor the backup status until it is marked as Completed. ``` dellctl backup get --namespace application-mobility - ``` - -## Using dellctl - -Check the [CLI documentation] \ No newline at end of file + ``` \ No newline at end of file From acbef13bcc2b4b025927fae9d969e5b8717868b8 Mon Sep 17 00:00:00 2001 From: Trevor Dawe Date: Wed, 17 Aug 2022 10:11:51 -0400 Subject: [PATCH 05/13] Added config for installing helm chart --- content/docs/application-mobility/deployment.md | 12 +++++++----- content/docs/application-mobility/use_cases.md | 9 ++++----- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/content/docs/application-mobility/deployment.md b/content/docs/application-mobility/deployment.md index 89affd7dff..93257e2e54 100644 --- a/content/docs/application-mobility/deployment.md +++ b/content/docs/application-mobility/deployment.md @@ -39,7 +39,7 @@ The following table lists the configurable parameters of the Application Mobilit | - | - | - | | `replicaCount` | Number of replicas for the Application Mobility controllers | `1` | | `image.pullPolicy` | Image pull policy for the Application Mobility controller images | `IfNotPresent` | -| `controller.image` | Location of the csm-application-mobility Docker image | `dell/csm-application-mobility:v0.1.0` | +| `controller.image` | Location of the csm-application-mobility Docker image | `dell/csm-application-mobility-controller:v0.1.0` | | `cert-manager.enabled` | If set to true, cert-manager will be installed during Application Mobility installation | `false` | | `veleroNamespace` | If Velero is already installed, set to the namespace where Velero is insatlled | `velero` | | `licenseName` | Name of the Secret that contains the License for CSM Application Mobility | `license` | @@ -54,7 +54,9 @@ The following table lists the configurable parameters of the Application Mobilit | `velero.configuration.provider` | Provider to use for Velero. | `aws` | | `velero.configuration.backupStorageLocation.name` | Name of the backup storage location for Velero. | `default` | | `velero.configuration.backupStorageLocation.bucket` | Name of the object store bucket to use for backups. | `velero-bucket` | -| `velero.configuration.backupStorageLocation.config.region` | The region for the object store. | `s3` | -| `velero.configuration.backupStorageLocation.config.s3ForcePathStyle` | Force path style. | `true` | -| `velero.configuration.backupStorageLocation.config.s3Url` | URL for accessing object store. | `http://10.10.10.10:9000` | -| `velero.initContainers` | List of init-containers used as plugins by Velero. (TODO: Add note about dell-velero-plugin image location) | ` ` | +| `velero.configuration.backupStorageLocation.config` | Additional provider-specific configuration. See https://velero.io/docs/v1.9/api-types/backupstoragelocation/ for specific details. | ` ` | +| `velero.initContainers` | List of plugins used by Velero. Dell Velero plugin is required and plugins for other providers can be added. | ` ` | +| `velero.initContainers[0].name` | Name of the Dell Velero plugin. | `dell-custom-velero-plugin` | +| `velero.initContainers[0].image` | Location of the Dell Velero plugin image. | `dellemc/csm-application-mobility-velero-plugin:v0.1.0` | +| `velero.initContainers[0].volumeMounts[0].mountPath` | Mount path of the volume mount. | `/target` | +| `velero.initContainers[0].volumeMounts[0].name` | Name of the volume mount. | `okygubs` | \ No newline at end of file diff --git a/content/docs/application-mobility/use_cases.md b/content/docs/application-mobility/use_cases.md index b026c82a78..82f6e76968 100644 --- a/content/docs/application-mobility/use_cases.md +++ b/content/docs/application-mobility/use_cases.md @@ -11,11 +11,11 @@ After Application Mobility is installed, the [dellctl CLI](../../cli/) can be us ## Backup and Restore an Application The following example details the steps when an application in namespace `demo1` is being backed up and then later restored to either the same cluster or another cluster. In this sample, both Application Mobility and Velero are installed in the `application-mobility` namespace. -1. If Velero is not installed in the default `velero` namespace, set the following environment variable to the namespace where it is running: +1. If Velero is not installed in the default `velero` namespace, set the following environment variable to the namespace where it is installed: ``` export VELERO_NAMESPACE=application-mobility ``` -1. On the source cluster, create a Backup by providing a name and the included namespace where the application is running. The application and its data will be available in the object store bucket and can be restored at a later time. +1. On the source cluster, create a Backup by providing a name and the included namespace where the application is installed. The application and its data will be available in the object store bucket and can be restored at a later time. ``` dellctl backup create backup1 --include-namespaces demo1 --namespace application-mobility ``` @@ -36,17 +36,16 @@ The following example details the steps when an application in namespace `demo1` ## Clone an Application The following example details the steps when an application in namespace `demo1` is cloned from a source cluster to a target cluster in a single operation. In this sample, both Application Mobility and Velero are installed in the `application-mobility` namespace. -1. If Velero is not installed in the default `velero` namespace, set the following environment variable to the namespace where it is running: +1. If Velero is not installed in the default `velero` namespace, set the following environment variable to the namespace where it is installed: ``` export VELERO_NAMESPACE=application-mobility ``` - 1. Register both the source and target clusters ``` dellctl cluster add -n cluster1 -f ~/kubeconfigs/cluster1-kubeconfig dellctl cluster add -n cluster2 -f ~/kubeconfigs/cluster2-kubeconfig ``` -1. Create a Backup by providing a name, the included namespace where the application is running, the source cluster, and the target cluster and namespace mapping where the application will be restored. +1. Create a Backup by providing a name, the included namespace where the application is installed, the source cluster, and the target cluster and namespace mapping where the application will be restored. ``` dellctl backup create backup1 --include-namespaces demo1 --cluster-id cluster1 \ --clones "cluster2/demo1:restore-ns2" --namespace application-mobility From 691a77ef08808e945bd3df402dfb2881fc796833 Mon Sep 17 00:00:00 2001 From: Trevor Dawe Date: Wed, 17 Aug 2022 10:20:00 -0400 Subject: [PATCH 06/13] Added application mobility to list of modules --- content/docs/_index.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/content/docs/_index.md b/content/docs/_index.md index 2f370b263a..4819bc1e4e 100644 --- a/content/docs/_index.md +++ b/content/docs/_index.md @@ -64,4 +64,5 @@ CSM is made up of multiple components including modules (enterprise capabilities | Observability v1.2| ✔️ | ❌ | ✔️ | ❌ | ❌ | | Replication v1.3| ❌ | ✔️ | ✔️ | ✔️ | ❌ | | Resiliency v1.2| ✔️ | ✔️ | ❌ | ❌ | ✔️ | -| Encryption v0.1.0| ❌ | ✔️ | ❌ | ❌ | ❌ | \ No newline at end of file +| Encryption v0.1.0| ❌ | ✔️ | ❌ | ❌ | ❌ | +| Application Mobility v0.1.0| ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | From 4f7a2eb318f84de75e68c94272216f84772c5b48 Mon Sep 17 00:00:00 2001 From: Trevor Dawe Date: Wed, 17 Aug 2022 10:36:22 -0400 Subject: [PATCH 07/13] Updated wording --- content/docs/application-mobility/_index.md | 4 ++-- content/docs/application-mobility/uninstallation.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/content/docs/application-mobility/_index.md b/content/docs/application-mobility/_index.md index d262851eb8..b8591f8651 100644 --- a/content/docs/application-mobility/_index.md +++ b/content/docs/application-mobility/_index.md @@ -10,9 +10,9 @@ Description: > >> NOTE: Application Mobility requires a time-based license. See [Deployment](./deployment) for instructions. -Container Storage Modules for Application Mobility provides Kubernetes administrators the ability to clone their application workloads and data to other clusters, either on-premise or in the cloud. +Container Storage Modules for Application Mobility provide Kubernetes administrators the ability to clone their application workloads and data to other clusters, either on-premise or in the cloud. -Application Mobility uses [Velero](https://velero.io) and its integration of [Restic](https://restic.net) to copy both application metadata and data to object storage. When a backup is requested, Application Mobility uses the following options to determine how the application data is backed up: +Application Mobility uses [Velero](https://velero.io) and its integration of [Restic](https://restic.net) to copy both application metadata and data to object storage. When a backup is requested, Application Mobility uses these options to determine how the application data is backed up: - If [Volume Group Snapshots](../snapshots/volume-group-snapshots/) are enabled on the CSI driver backing the application's Persistent Volumes, crash consistent snapshots of all volumes are used for the backup. - If Volume Snapshots are enabled on the Kubernetes cluster and supported by the CSI driver, individual snapshots are used for each Persistent Volume used by the application. - If no snapshot options are enabled, default to using full copies of each Persistent Volume used by the application. diff --git a/content/docs/application-mobility/uninstallation.md b/content/docs/application-mobility/uninstallation.md index b81e9d2add..e9729cd071 100644 --- a/content/docs/application-mobility/uninstallation.md +++ b/content/docs/application-mobility/uninstallation.md @@ -10,7 +10,7 @@ This section outlines the uninstallation steps for Container Storage Modules (CS ## Uninstall the CSM for Application Mobility Helm Chart -The command below removes all the Kubernetes components associated with the chart. +This command removes all the Kubernetes components associated with the chart. ``` $ helm delete [APPLICATION_MOBILITY_NAME] --namespace [APPLICATION_MOBILITY_NAMESPACE] From 1520aaefc9ec3f6a18296be25b5b537f0b2d052c Mon Sep 17 00:00:00 2001 From: Trevor Dawe Date: Wed, 17 Aug 2022 10:43:39 -0400 Subject: [PATCH 08/13] Updated wording --- content/docs/application-mobility/deployment.md | 2 +- content/docs/application-mobility/troubleshooting.md | 2 +- content/docs/application-mobility/use_cases.md | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/content/docs/application-mobility/deployment.md b/content/docs/application-mobility/deployment.md index 93257e2e54..f594fd757e 100644 --- a/content/docs/application-mobility/deployment.md +++ b/content/docs/application-mobility/deployment.md @@ -33,7 +33,7 @@ Description: > ### Configuration -The following table lists the configurable parameters of the Application Mobility Helm chart and their default values. +This table lists the configurable parameters of the Application Mobility Helm chart and their default values. | Parameter | Description | Default | | - | - | - | diff --git a/content/docs/application-mobility/troubleshooting.md b/content/docs/application-mobility/troubleshooting.md index 66ca400206..dd2c232733 100644 --- a/content/docs/application-mobility/troubleshooting.md +++ b/content/docs/application-mobility/troubleshooting.md @@ -42,7 +42,7 @@ kubectl logs -n $namespace $pod $container > $logFileName Application Mobility requires a license in order to function. See the [Deployment](../deployment) instructions for steps to request a license. -There will be errors in the logs about the license for the following cases: +There will be errors in the logs about the license for these cases: - License does not exist - License is not valid for the current Kubernetes cluster - License has expired \ No newline at end of file diff --git a/content/docs/application-mobility/use_cases.md b/content/docs/application-mobility/use_cases.md index 82f6e76968..336847e3a8 100644 --- a/content/docs/application-mobility/use_cases.md +++ b/content/docs/application-mobility/use_cases.md @@ -9,9 +9,9 @@ Description: > After Application Mobility is installed, the [dellctl CLI](../../cli/) can be used to register clusters and manage backups and restores of applications. ## Backup and Restore an Application -The following example details the steps when an application in namespace `demo1` is being backed up and then later restored to either the same cluster or another cluster. In this sample, both Application Mobility and Velero are installed in the `application-mobility` namespace. +This example details the steps when an application in namespace `demo1` is being backed up and then later restored to either the same cluster or another cluster. In this sample, both Application Mobility and Velero are installed in the `application-mobility` namespace. -1. If Velero is not installed in the default `velero` namespace, set the following environment variable to the namespace where it is installed: +1. If Velero is not installed in the default `velero` namespace, set this environment variable to the namespace where it is installed: ``` export VELERO_NAMESPACE=application-mobility ``` @@ -34,9 +34,9 @@ The following example details the steps when an application in namespace `demo1` ``` ## Clone an Application -The following example details the steps when an application in namespace `demo1` is cloned from a source cluster to a target cluster in a single operation. In this sample, both Application Mobility and Velero are installed in the `application-mobility` namespace. +This example details the steps when an application in namespace `demo1` is cloned from a source cluster to a target cluster in a single operation. In this sample, both Application Mobility and Velero are installed in the `application-mobility` namespace. -1. If Velero is not installed in the default `velero` namespace, set the following environment variable to the namespace where it is installed: +1. If Velero is not installed in the default `velero` namespace, set this environment variable to the namespace where it is installed: ``` export VELERO_NAMESPACE=application-mobility ``` From e123e7c7cf92670eea2cd48a060f95cf449a61de Mon Sep 17 00:00:00 2001 From: Trevor Dawe Date: Wed, 17 Aug 2022 12:26:47 -0400 Subject: [PATCH 09/13] Fixed default volume mount name --- content/docs/application-mobility/deployment.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/docs/application-mobility/deployment.md b/content/docs/application-mobility/deployment.md index f594fd757e..1329465709 100644 --- a/content/docs/application-mobility/deployment.md +++ b/content/docs/application-mobility/deployment.md @@ -59,4 +59,4 @@ This table lists the configurable parameters of the Application Mobility Helm ch | `velero.initContainers[0].name` | Name of the Dell Velero plugin. | `dell-custom-velero-plugin` | | `velero.initContainers[0].image` | Location of the Dell Velero plugin image. | `dellemc/csm-application-mobility-velero-plugin:v0.1.0` | | `velero.initContainers[0].volumeMounts[0].mountPath` | Mount path of the volume mount. | `/target` | -| `velero.initContainers[0].volumeMounts[0].name` | Name of the volume mount. | `okygubs` | \ No newline at end of file +| `velero.initContainers[0].volumeMounts[0].name` | Name of the volume mount. | `plugins` | \ No newline at end of file From 6d2a157a11ffaed09cffc1c71d5b05f273685b72 Mon Sep 17 00:00:00 2001 From: Trevor Dawe Date: Wed, 17 Aug 2022 13:53:59 -0400 Subject: [PATCH 10/13] Added documentation about mapping between source and target storage classes --- .../docs/application-mobility/use_cases.md | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/content/docs/application-mobility/use_cases.md b/content/docs/application-mobility/use_cases.md index 336847e3a8..ad36c45dfa 100644 --- a/content/docs/application-mobility/use_cases.md +++ b/content/docs/application-mobility/use_cases.md @@ -23,6 +23,7 @@ This example details the steps when an application in namespace `demo1` is being ``` dellctl backup get --namespace application-mobility ``` +1. If the Storage Class name on the target cluster is different than the Storage Class name on the source cluster where the backup was created, a mapping between source and target Storage Class names must be defined. See [Changing PV/PVC Storage Classes](#changing-pvpvc-storage-classes). 1. The application and its data can be restored on either the same cluster or another cluster by referring to the backup name and providing an optional mapping of the original namespace to the target namespace. ``` dellctl restore create restore1 --from-backup backup1 \ @@ -45,6 +46,7 @@ This example details the steps when an application in namespace `demo1` is clone dellctl cluster add -n cluster1 -f ~/kubeconfigs/cluster1-kubeconfig dellctl cluster add -n cluster2 -f ~/kubeconfigs/cluster2-kubeconfig ``` +1. If the Storage Class name on the target cluster is different than the Storage Class name on the source cluster where the backup was created, a mapping between source and target Storage Class names must be defined. See [Changing PV/PVC Storage Classes](#changing-pvpvc-storage-classes). 1. Create a Backup by providing a name, the included namespace where the application is installed, the source cluster, and the target cluster and namespace mapping where the application will be restored. ``` dellctl backup create backup1 --include-namespaces demo1 --cluster-id cluster1 \ @@ -53,4 +55,19 @@ This example details the steps when an application in namespace `demo1` is clone 1. Monitor the backup status until it is marked as Completed. ``` dellctl backup get --namespace application-mobility - ``` \ No newline at end of file + ``` + +## Changing PV/PVC Storage Classes +Create a ConfigMap on the target cluster in the same namespace where Application Mobility is installed. The data field must contain a mapping of source Storage Class name to target Storage Class name. See Velero's documentation for [Changing PV/PVC Storage Classes](https://velero.io/docs/v1.9/restore-reference/#changing-pvpvc-storage-classes) for additional details. +``` +apiVersion: v1 +kind: ConfigMap +metadata: + name: change-storage-class-config + namespace: + labels: + velero.io/plugin-config: "" + velero.io/change-storage-class: RestoreItemAction +data: + : +``` \ No newline at end of file From 9591268c58f3b0d1b638ee1a451294473aef9bfb Mon Sep 17 00:00:00 2001 From: Trevor Dawe Date: Thu, 18 Aug 2022 15:18:16 -0400 Subject: [PATCH 11/13] Updated docs for Application Mobility --- content/docs/application-mobility/_index.md | 15 +++++++++++++-- content/docs/application-mobility/deployment.md | 2 +- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/content/docs/application-mobility/_index.md b/content/docs/application-mobility/_index.md index b8591f8651..64a9e68e3e 100644 --- a/content/docs/application-mobility/_index.md +++ b/content/docs/application-mobility/_index.md @@ -10,13 +10,24 @@ Description: > >> NOTE: Application Mobility requires a time-based license. See [Deployment](./deployment) for instructions. -Container Storage Modules for Application Mobility provide Kubernetes administrators the ability to clone their application workloads and data to other clusters, either on-premise or in the cloud. +Container Storage Modules for Application Mobility provide Kubernetes administrators the ability to clone their stateful application workloads and application data to other clusters, either on-premise or in the cloud. Application Mobility uses [Velero](https://velero.io) and its integration of [Restic](https://restic.net) to copy both application metadata and data to object storage. When a backup is requested, Application Mobility uses these options to determine how the application data is backed up: - If [Volume Group Snapshots](../snapshots/volume-group-snapshots/) are enabled on the CSI driver backing the application's Persistent Volumes, crash consistent snapshots of all volumes are used for the backup. -- If Volume Snapshots are enabled on the Kubernetes cluster and supported by the CSI driver, individual snapshots are used for each Persistent Volume used by the application. +- If [Volume Snapshots](../snapshots/) are enabled on the Kubernetes cluster and supported by the CSI driver, individual snapshots are used for each Persistent Volume used by the application. - If no snapshot options are enabled, default to using full copies of each Persistent Volume used by the application. +After a backup has been created, it can be restored on the same Kubernetes cluster or any other cluster(s) if this criteria is met: +- Application Mobility is installed on the target cluster(s). +- The target cluster(s) has access to the object store bucket. For example, if backing up and restoring an application from an on-premise Kubernetes cluster to AWS EKS, an S3 bucket can be used if both the on-premise and EKS cluster have access to it. +- Storage Class is defined on the target cluster(s) to support creating the required Persistent Volumes used by the application. + +## Supported Data Movers +{{}} +| Data Mover | Description | +|-|-| +| Restic | Persistent Volume data will be stored in the provided object store bucket | +{{
}} ## Supported Operating Systems/Container Orchestrator Platforms {{}} diff --git a/content/docs/application-mobility/deployment.md b/content/docs/application-mobility/deployment.md index 1329465709..0d2e9342a2 100644 --- a/content/docs/application-mobility/deployment.md +++ b/content/docs/application-mobility/deployment.md @@ -27,7 +27,7 @@ Description: > 1. Either create a values.yml file or provide the `--set` options to the `helm install` to override default values from the [Configuration](#configuration) section. 1. Install the helm chart ``` - helm install -n application-mobility dell/csm-application-mobility + helm install application-mobility -n application-mobility dell/csm-application-mobility ``` From 3e652f84d90080907ab7c775f3f1d1f65e2be333 Mon Sep 17 00:00:00 2001 From: Trevor Dawe Date: Thu, 18 Aug 2022 17:20:28 -0400 Subject: [PATCH 12/13] Updated documentation and tables --- content/docs/application-mobility/_index.md | 2 +- .../docs/application-mobility/deployment.md | 52 +++++++++---------- .../application-mobility/troubleshooting.md | 8 +-- .../application-mobility/uninstallation.md | 6 +-- .../docs/application-mobility/use_cases.md | 2 +- 5 files changed, 35 insertions(+), 35 deletions(-) diff --git a/content/docs/application-mobility/_index.md b/content/docs/application-mobility/_index.md index 64a9e68e3e..af367ffed0 100644 --- a/content/docs/application-mobility/_index.md +++ b/content/docs/application-mobility/_index.md @@ -3,7 +3,7 @@ title: "Application Mobility" linkTitle: "Application Mobility" weight: 9 Description: > - Application Mobility for Dell Container Storage Modules (CSM) + Application Mobility --- >> NOTE: This tech-preview release is not intended for use in production environment. diff --git a/content/docs/application-mobility/deployment.md b/content/docs/application-mobility/deployment.md index 0d2e9342a2..b9fbf58d7c 100644 --- a/content/docs/application-mobility/deployment.md +++ b/content/docs/application-mobility/deployment.md @@ -3,7 +3,7 @@ title: "Deployment" linkTitle: "Deployment" weight: 1 Description: > - Deployment for Dell Container Storage Modules (CSM) for Application Mobility + Deployment --- ## Pre-requisites @@ -35,28 +35,28 @@ Description: > This table lists the configurable parameters of the Application Mobility Helm chart and their default values. -| Parameter | Description | Default | -| - | - | - | -| `replicaCount` | Number of replicas for the Application Mobility controllers | `1` | -| `image.pullPolicy` | Image pull policy for the Application Mobility controller images | `IfNotPresent` | -| `controller.image` | Location of the csm-application-mobility Docker image | `dell/csm-application-mobility-controller:v0.1.0` | -| `cert-manager.enabled` | If set to true, cert-manager will be installed during Application Mobility installation | `false` | -| `veleroNamespace` | If Velero is already installed, set to the namespace where Velero is insatlled | `velero` | -| `licenseName` | Name of the Secret that contains the License for CSM Application Mobility | `license` | -| `objectstore.secretName` | If velero is already installed on the cluster, specify the name of the secret in velero namespace that has credentials to access object store | ` ` | -| `velero.enabled` | If set to true, Velero will be installed during Application Mobility installation | `true` | -| `velero.use-volume-snapshots` | If set to true, Velero will use volume snapshots | `false` | -| `velero.deployRestic` | If set to true, Velero will also deploy Restic | `true` | -| `velero.cleanUpCRDs` | If set to true, Velero CRDs will be cleaned up | `true` | -| `velero.credentials.existingSecret` | Optionally, specify the name of the pre-created secret in the release namespace that holds the object store credentials. Either this or secretContents should be specified | ` ` | -| `velero.credentials.name` | Optionally, specify the name to be used for secret that will be created to hold object store credentials. Used in conjunction with secretContents. | ` ` | -| `velero.credentials.secretContents` | Optionally, specify the object store access credentials to be stored in a secret with key "cloud". Either this or existingSecret should be provided. | ` ` | -| `velero.configuration.provider` | Provider to use for Velero. | `aws` | -| `velero.configuration.backupStorageLocation.name` | Name of the backup storage location for Velero. | `default` | -| `velero.configuration.backupStorageLocation.bucket` | Name of the object store bucket to use for backups. | `velero-bucket` | -| `velero.configuration.backupStorageLocation.config` | Additional provider-specific configuration. See https://velero.io/docs/v1.9/api-types/backupstoragelocation/ for specific details. | ` ` | -| `velero.initContainers` | List of plugins used by Velero. Dell Velero plugin is required and plugins for other providers can be added. | ` ` | -| `velero.initContainers[0].name` | Name of the Dell Velero plugin. | `dell-custom-velero-plugin` | -| `velero.initContainers[0].image` | Location of the Dell Velero plugin image. | `dellemc/csm-application-mobility-velero-plugin:v0.1.0` | -| `velero.initContainers[0].volumeMounts[0].mountPath` | Mount path of the volume mount. | `/target` | -| `velero.initContainers[0].volumeMounts[0].name` | Name of the volume mount. | `plugins` | \ No newline at end of file +| Parameter | Description | Required | Default | +| - | - | - | - | +| `replicaCount` | Number of replicas for the Application Mobility controllers | Yes | `1` | +| `image.pullPolicy` | Image pull policy for the Application Mobility controller images | Yes | `IfNotPresent` | +| `controller.image` | Location of the Application Mobility Docker image | Yes | `dell/csm-application-mobility-controller:v0.1.0` | +| `cert-manager.enabled` | If set to true, cert-manager will be installed during Application Mobility installation | Yes | `false` | +| `veleroNamespace` | If Velero is already installed, set to the namespace where Velero is installed | No | `velero` | +| `licenseName` | Name of the Secret that contains the License for Application Mobility | Yes | `license` | +| `objectstore.secretName` | If velero is already installed on the cluster, specify the name of the secret in velero namespace that has credentials to access object store | No | ` ` | +| `velero.enabled` | If set to true, Velero will be installed during Application Mobility installation | Yes | `true` | +| `velero.use-volume-snapshots` | If set to true, Velero will use volume snapshots | Yes | `false` | +| `velero.deployRestic` | If set to true, Velero will also deploy Restic | Yes | `true` | +| `velero.cleanUpCRDs` | If set to true, Velero CRDs will be cleaned up | Yes | `true` | +| `velero.credentials.existingSecret` | Optionally, specify the name of the pre-created secret in the release namespace that holds the object store credentials. Either this or secretContents should be specified | No | ` ` | +| `velero.credentials.name` | Optionally, specify the name to be used for secret that will be created to hold object store credentials. Used in conjunction with secretContents. | No | ` ` | +| `velero.credentials.secretContents` | Optionally, specify the object store access credentials to be stored in a secret with key "cloud". Either this or existingSecret should be provided. | No | ` ` | +| `velero.configuration.provider` | Provider to use for Velero. | Yes | `aws` | +| `velero.configuration.backupStorageLocation.name` | Name of the backup storage location for Velero. | Yes | `default` | +| `velero.configuration.backupStorageLocation.bucket` | Name of the object store bucket to use for backups. | Yes | `velero-bucket` | +| `velero.configuration.backupStorageLocation.config` | Additional provider-specific configuration. See https://velero.io/docs/v1.9/api-types/backupstoragelocation/ for specific details. | Yes | ` ` | +| `velero.initContainers` | List of plugins used by Velero. Dell Velero plugin is required and plugins for other providers can be added. | Yes | ` ` | +| `velero.initContainers[0].name` | Name of the Dell Velero plugin. | Yes | `dell-custom-velero-plugin` | +| `velero.initContainers[0].image` | Location of the Dell Velero plugin image. | Yes | `dellemc/csm-application-mobility-velero-plugin:v0.1.0` | +| `velero.initContainers[0].volumeMounts[0].mountPath` | Mount path of the volume mount. | Yes | `/target` | +| `velero.initContainers[0].volumeMounts[0].name` | Name of the volume mount. | Yes | `plugins` | \ No newline at end of file diff --git a/content/docs/application-mobility/troubleshooting.md b/content/docs/application-mobility/troubleshooting.md index dd2c232733..b015781524 100644 --- a/content/docs/application-mobility/troubleshooting.md +++ b/content/docs/application-mobility/troubleshooting.md @@ -3,18 +3,18 @@ title: "Troubleshooting" linkTitle: "Troubleshooting" weight: 4 Description: > - Troubleshooting guide + Troubleshooting --- ## Frequently Asked Questions -1. [How can I diagnose an issue with Container Storage Modules (CSM) for Application Mobility?](#how-can-i-diagnose-an-issue-with-csm-for-observability) +1. [How can I diagnose an issue with Application Mobility?](#how-can-i-diagnose-an-issue-with-application-mobility) 2. [How can I view logs?](#how-can-i-view-logs) 3. [How can I debug and troubleshoot issues with Kubernetes?](#how-can-i-debug-and-troubleshoot-issues-with-kubernetes) 4. [Why are there error logs about a license?](#why-are-there-error-logs-about-a-license) -### How can I diagnose an issue with CSM for Application Mobility? +### How can I diagnose an issue with Application Mobility? -Once you have attempted to install CSM for Application Mobility to your Kubernetes or OpenShift cluster, the first step in troubleshooting is locating the problem. +Once you have attempted to install Application Mobility to your Kubernetes or OpenShift cluster, the first step in troubleshooting is locating the problem. Get information on the state of your Pods. ```console diff --git a/content/docs/application-mobility/uninstallation.md b/content/docs/application-mobility/uninstallation.md index e9729cd071..3e98fb7040 100644 --- a/content/docs/application-mobility/uninstallation.md +++ b/content/docs/application-mobility/uninstallation.md @@ -3,12 +3,12 @@ title: Uninstallation linktitle: Uninstallation weight: 2 description: > - Uninstallation for Dell Container Storage Modules (CSM) for Application Mobility + Uninstallation --- -This section outlines the uninstallation steps for Container Storage Modules (CSM) for Application Mobility. +This section outlines the uninstallation steps for Application Mobility. -## Uninstall the CSM for Application Mobility Helm Chart +## Uninstall the Application Mobility Helm Chart This command removes all the Kubernetes components associated with the chart. diff --git a/content/docs/application-mobility/use_cases.md b/content/docs/application-mobility/use_cases.md index ad36c45dfa..4d86edb4e9 100644 --- a/content/docs/application-mobility/use_cases.md +++ b/content/docs/application-mobility/use_cases.md @@ -3,7 +3,7 @@ title: "Use Cases" linkTitle: "Use Cases" weight: 3 Description: > - Use cases for Dell Container Storage Modules (CSM) for Application Mobility + Use Cases --- After Application Mobility is installed, the [dellctl CLI](../../cli/) can be used to register clusters and manage backups and restores of applications. From d3116b05b105345d4d8dbf68fe71b65bcf09d5da Mon Sep 17 00:00:00 2001 From: Trevor Dawe Date: Fri, 19 Aug 2022 08:25:13 -0400 Subject: [PATCH 13/13] Updated clone application example --- content/docs/application-mobility/use_cases.md | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/content/docs/application-mobility/use_cases.md b/content/docs/application-mobility/use_cases.md index 4d86edb4e9..96dc9b880a 100644 --- a/content/docs/application-mobility/use_cases.md +++ b/content/docs/application-mobility/use_cases.md @@ -41,20 +41,19 @@ This example details the steps when an application in namespace `demo1` is clone ``` export VELERO_NAMESPACE=application-mobility ``` -1. Register both the source and target clusters +1. Register the target cluster ``` - dellctl cluster add -n cluster1 -f ~/kubeconfigs/cluster1-kubeconfig - dellctl cluster add -n cluster2 -f ~/kubeconfigs/cluster2-kubeconfig + dellctl cluster add -n targetcluster -f ~/kubeconfigs/target-cluster-kubeconfig ``` 1. If the Storage Class name on the target cluster is different than the Storage Class name on the source cluster where the backup was created, a mapping between source and target Storage Class names must be defined. See [Changing PV/PVC Storage Classes](#changing-pvpvc-storage-classes). -1. Create a Backup by providing a name, the included namespace where the application is installed, the source cluster, and the target cluster and namespace mapping where the application will be restored. +1. Create a Backup by providing a name, the included namespace where the application is installed, and the target cluster and namespace mapping where the application will be restored. ``` - dellctl backup create backup1 --include-namespaces demo1 --cluster-id cluster1 \ - --clones "cluster2/demo1:restore-ns2" --namespace application-mobility + dellctl backup create backup1 --include-namespaces demo1 --clones "targetcluster/demo1:restore-ns2" \ + --namespace application-mobility ``` -1. Monitor the backup status until it is marked as Completed. +1. Monitor the restore status on the target cluster until it is marked as Completed. ``` - dellctl backup get --namespace application-mobility + dellctl restore get --cluster-id targetcluster --namespace application-mobility ``` ## Changing PV/PVC Storage Classes