-
Notifications
You must be signed in to change notification settings - Fork 15
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
6d4d4e0
commit 6ba7f7a
Showing
289 changed files
with
7,558 additions
and
6,531 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,40 +1,91 @@ | ||
|
||
--- | ||
title: "Dell Technologies (Dell) Container Storage Modules (CSM)" | ||
linkTitle: "Dell Technologies (Dell) Container Storage Modules (CSM)" | ||
title: "Container Storage Modules" | ||
linkTitle: "Container Storage Modules" | ||
weight: 20 | ||
menu: | ||
main: | ||
weight: 20 | ||
no_list: true | ||
--- | ||
|
||
The Dell Technologies (Dell) Container Storage Modules (CSM) enables simple and consistent integration and automation experiences, extending enterprise storage capabilities to Kubernetes for cloud-native stateful applications. It reduces management complexity so developers can independently consume enterprise storage with ease and automate daily operations such as provisioning, snapshotting, replication, observability, authorization and, resiliency. | ||
The Dell Technologies (Dell) Container Storage Modules (CSM) enables simple and consistent integration and automation experiences, extending enterprise storage capabilities to Kubernetes for cloud-native stateful applications. It reduces management complexity so developers can independently consume enterprise storage with ease and automate daily operations such as provisioning, snapshotting, replication, observability, authorization, application mobility, encryption, and resiliency. | ||
|
||
<img src="csm_hexagon.png" alt="CSM Hex Diagram" width="500"/> | ||
|
||
CSM is made up of multiple components including modules (enterprise capabilities), CSI drivers (storage enablement) and, other related applications (deployment, feature controllers, etc). | ||
CSM is made up of multiple components including modules (enterprise capabilities), CSI drivers (storage enablement), and other related applications (deployment, feature controllers, etc). | ||
|
||
{{< cardpane >}} | ||
{{< card header="[**Authorization**](authorization/)" | ||
footer="Supports [PowerFlex](csidriver/features/powerflex/) [PowerScale](csidriver/features/powerscale/) [PowerMax](csidriver/features/powermax/)">}} | ||
CSM for Authorization provides storage and Kubernetes administrators the ability to apply RBAC for Dell CSI Drivers. It does this by deploying a proxy between the CSI driver and the storage system to enforce role-based access and usage rules.<br> | ||
[...Learn more](authorization/) | ||
|
||
{{< /card >}} | ||
{{< card header="[**Replication**](replication/)" | ||
footer="Supports [PowerStore](csidriver/features/powerstore/) [PowerScale](csidriver/features/powerscale/) [PowerMax](csidriver/features/powermax/)">}} | ||
CSM for Replication project aims to bring Replication & Disaster Recovery capabilities of Dell Storage Arrays to Kubernetes clusters. It helps you replicate groups of volumes and can provide you a way to restart applications in case of both planned and unplanned migration. | ||
[...Learn more](replication/) | ||
{{< /card >}} | ||
{{< /cardpane >}} | ||
{{< cardpane >}} | ||
{{< card header="[**Resiliency**](resiliency/)" | ||
footer="Supports [PowerFlex](csidriver/features/powerflex/) [PowerScale](csidriver/features/powerscale/) [Unity](csidriver/features/unity/)">}} | ||
CSM for Resiliency is designed to make Kubernetes Applications, including those that utilize persistent storage, more resilient to various failures. | ||
[...Learn more](resiliency/) | ||
{{< /card >}} | ||
{{< card header="[**Observability**](observability/)" | ||
footer="Supports [PowerFlex](csidriver/features/powerflex/) [PowerStore](csidriver/features/powerstore/)">}} | ||
CSM for Observability provides visibility on the capacity of the volumes/file shares that is being managed with Dell CSM CSI (Container Storage Interface) drivers along with their performance in terms of bandwidth, IOPS, and response time. | ||
[...Learn more](observability/) | ||
{{< /card >}} | ||
{{< /cardpane >}} | ||
{{< cardpane >}} | ||
{{< card header="[**Application Mobility**](applicationmobility/)" | ||
footer="Supports all platforms">}} | ||
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. | ||
[...Learn more](applicationmobility/) | ||
{{< /card >}} | ||
{{< card header="[**Encryption**](secure/encryption)" | ||
footer="Supports PowerScale">}} | ||
Encryption provides the capability to encrypt user data residing on volumes created by Dell CSI Drivers. | ||
[...Learn more](secure/encryption/) | ||
{{< /card >}} | ||
{{< /cardpane >}} | ||
{{< cardpane >}} | ||
{{< card header="[License](license/)" | ||
footer="Required for [Application Mobility](applicationmobility/) & [Encryption](secure/encryption/)">}} | ||
The tech-preview releases of Application Mobility and Encryption require a license. | ||
Request a license using the [Container Storage Modules License Request](https://app.smartsheet.com/b/form/5e46fad643874d56b1f9cf4c9f3071fb) by providing the requested details. | ||
[...Learn more](license/) | ||
{{< /card >}} | ||
{{< /cardpane >}} | ||
|
||
<img src="csm_diagram.jpg" alt="CSM Diagram" width="800"/> | ||
|
||
## CSM Supported Modules and Dell CSI Drivers | ||
|
||
| Modules/Drivers | CSM 1.3 | [CSM 1.2.1](../v1/) | [CSM 1.2](../v2/) | [CSM 1.1](../v3/) | | ||
| Modules/Drivers | CSM 1.4 | [CSM 1.3](../v1/) | [CSM 1.2.1](../v2/) | [CSM 1.2](../v3/) | | ||
| - | :-: | :-: | :-: | :-: | | ||
| [Authorization](https://hub.docker.com/r/dellemc/csm-authorization-sidecar) | v1.3.0 | v1.2.0 | v1.2.0 | v1.1.0 | | ||
| [Observability](https://hub.docker.com/r/dellemc/csm-topology) | v1.2.0 | v1.1.1 | v1.1.0 | v1.0.1 | | ||
| [Replication](https://hub.docker.com/r/dellemc/dell-csi-replicator) | v1.3.0 | v1.2.0 | v1.2.0 | v1.1.0 | | ||
| [Resiliency](https://hub.docker.com/r/dellemc/podmon) | v1.2.0 | v1.1.0 | v1.1.0 | v1.0.1 | | ||
| [CSI Driver for PowerScale](https://hub.docker.com/r/dellemc/csi-isilon/tags) | v2.3.0 | v2.2.0 | v2.2.0 | v2.1.0 | | ||
| [CSI Driver for Unity XT](https://hub.docker.com/r/dellemc/csi-unity/tags) | v2.3.0 | v2.2.0 | v2.2.0 | v2.1.0 | | ||
| [CSI Driver for PowerStore](https://hub.docker.com/r/dellemc/csi-powerstore/tags) | v2.3.0 | v2.2.0 | v2.2.0| v2.1.0 | | ||
| [CSI Driver for PowerFlex](https://hub.docker.com/r/dellemc/csi-vxflexos/tags) | v2.3.0 | v2.2.0 | v2.2.0 | v2.1.0 | | ||
| [CSI Driver for PowerMax](https://hub.docker.com/r/dellemc/csi-powermax/tags) | v2.3.0 | v2.2.0 | v2.2.0 | v2.1.0 | | ||
| [Authorization](https://hub.docker.com/r/dellemc/csm-authorization-sidecar) | v1.4.0 | v1.3.0 | v1.2.0 | v1.2.0 | | ||
| [Observability](https://hub.docker.com/r/dellemc/csm-topology) | v1.3.0 | v1.2.0 | v1.1.1 | v1.1.0 | | ||
| [Replication](https://hub.docker.com/r/dellemc/dell-csi-replicator) | v1.3.0 | v1.3.0 | v1.2.0 | v1.2.0 | | ||
| [Resiliency](https://hub.docker.com/r/dellemc/podmon) | v1.3.0 | v1.2.0 | v1.1.0 | v1.1.0 | | ||
| [Encryption](https://hub.docker.com/r/dellemc/csm-encryption) | v0.1.0 | NA | NA | NA | | ||
| [Application Mobility](https://hub.docker.com/r/dellemc/csm-application-mobility-controller) | v0.1.0 | NA | NA | NA | | ||
| [CSI Driver for PowerScale](https://hub.docker.com/r/dellemc/csi-isilon/tags) | v2.4.0 | v2.3.0 | v2.2.0 | v2.2.0 | | ||
| [CSI Driver for Unity XT](https://hub.docker.com/r/dellemc/csi-unity/tags) | v2.4.0 | v2.3.0 | v2.2.0 | v2.2.0 | | ||
| [CSI Driver for PowerStore](https://hub.docker.com/r/dellemc/csi-powerstore/tags) | v2.4.0 | v2.3.0 | v2.2.0| v2.2.0 | | ||
| [CSI Driver for PowerFlex](https://hub.docker.com/r/dellemc/csi-vxflexos/tags) | v2.4.0 | v2.3.0 | v2.2.0 | v2.2.0 | | ||
| [CSI Driver for PowerMax](https://hub.docker.com/r/dellemc/csi-powermax/tags) | v2.4.0 | v2.3.0 | v2.2.0 | v2.2.0 | | ||
|
||
## CSM Modules Support Matrix for Dell CSI Drivers | ||
|
||
| CSM Module | CSI PowerFlex v2.3.0 | CSI PowerScale v2.3.0 | CSI PowerStore v2.3.0 | CSI PowerMax v2.3.0 | CSI Unity XT v2.3.0 | | ||
| CSM Module | CSI PowerFlex v2.4.0 | CSI PowerScale v2.4.0 | CSI PowerStore v2.4.0 | CSI PowerMax v2.4.0 | CSI Unity XT v2.4.0 | | ||
| ----------------- | -------------- | --------------- | --------------- | ------------- | --------------- | | ||
| Authorization v1.3| ✔️ | ✔️ | ❌ | ✔️ | ❌ | | ||
| Observability v1.2| ✔️ | ❌ | ✔️ | ❌ | ❌ | | ||
| Authorization v1.4| ✔️ | ✔️ | ❌ | ✔️ | ❌ | | ||
| Observability v1.3| ✔️ | ✔️ | ✔️ | ❌ | ❌ | | ||
| Replication v1.3| ❌ | ✔️ | ✔️ | ✔️ | ❌ | | ||
| Resiliency v1.2| ✔️ | ✔️ | ❌ | ❌ | ✔️ | | ||
| Resiliency v1.3| ✔️ | ✔️ | ❌ | ❌ | ✔️ | | ||
| Encryption v0.1.0| ❌ | ✔️ | ❌ | ❌ | ❌ | | ||
| Application Mobility v0.1.0| ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
--- | ||
title: "Application Mobility" | ||
linkTitle: "Application Mobility" | ||
weight: 9 | ||
Description: > | ||
Application Mobility | ||
--- | ||
|
||
>> 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. | ||
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](../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 | ||
{{<table "table table-striped table-bordered table-sm">}} | ||
| Data Mover | Description | | ||
|-|-| | ||
| Restic | Persistent Volume data will be stored in the provided object store bucket | | ||
{{</table>}} | ||
|
||
## Supported Operating Systems/Container Orchestrator Platforms | ||
{{<table "table table-striped table-bordered table-sm">}} | ||
| COP/OS | Supported Versions | | ||
|-|-| | ||
| Kubernetes | 1.23, 1.24 | | ||
| Red Hat OpenShift | 4.10 | | ||
| RHEL | 7.x, 8.x | | ||
| CentOS | 7.8, 7.9 | | ||
{{</table>}} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,62 @@ | ||
--- | ||
title: "Deployment" | ||
linkTitle: "Deployment" | ||
weight: 1 | ||
Description: > | ||
Deployment | ||
--- | ||
|
||
## Pre-requisites | ||
- [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. | ||
``` | ||
kubectl create ns application-mobility | ||
``` | ||
2. Edit the license Secret file (see Pre-requisites above) and set the correct namespace (ex: `namespace: application-mobility`) | ||
3. Create the Secret containing a license file | ||
``` | ||
kubectl apply -f license.yml | ||
``` | ||
4. Add the Dell Helm Charts repository | ||
``` | ||
helm repo add dell https://dell.github.io/helm-charts | ||
``` | ||
5. Either create a values.yml file or provide the `--set` options to the `helm install` to override default values from the [Configuration](#configuration) section. | ||
6. Install the helm chart | ||
``` | ||
helm install application-mobility -n application-mobility dell/csm-application-mobility | ||
``` | ||
### Configuration | ||
This table lists the configurable parameters of the Application Mobility Helm chart and their default values. | ||
| 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` | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
--- | ||
title: "Release Notes" | ||
linkTitle: "Release Notes" | ||
weight: 5 | ||
Description: > | ||
Release Notes | ||
--- | ||
|
||
|
||
## Release Notes - CSM Application Mobility 0.1.0 | ||
### New Features/Changes | ||
|
||
- [Technical preview release](https://github.com/dell/csm/issues/449) | ||
- Clone stateful application workloads and application data to other clusters, either on-premise or in the cloud | ||
- Supports Restic as a data mover for application data | ||
|
||
### Fixed Issues | ||
|
||
There are no fixed issues in this release. | ||
|
||
### Known Issues | ||
|
||
There are no known issues in this release. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
--- | ||
title: "Troubleshooting" | ||
linkTitle: "Troubleshooting" | ||
weight: 4 | ||
Description: > | ||
Troubleshooting | ||
--- | ||
|
||
## Frequently Asked Questions | ||
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 Application Mobility? | ||
|
||
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 | ||
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/). | ||
|
||
### 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 these cases: | ||
- License does not exist | ||
- License is not valid for the current Kubernetes cluster | ||
- License has expired |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
--- | ||
title: Uninstallation | ||
linktitle: Uninstallation | ||
weight: 2 | ||
description: > | ||
Uninstallation | ||
--- | ||
|
||
This section outlines the uninstallation steps for Application Mobility. | ||
|
||
## Uninstall the Application Mobility Helm Chart | ||
|
||
This command removes all the Kubernetes components associated with the chart. | ||
|
||
``` | ||
$ helm delete [APPLICATION_MOBILITY_NAME] --namespace [APPLICATION_MOBILITY_NAMESPACE] | ||
``` |
Oops, something went wrong.