From 51f24d81b1f117c0048d74315531020121096da9 Mon Sep 17 00:00:00 2001 From: Rida Zuber <88429350+ridaz@users.noreply.github.com> Date: Thu, 23 Dec 2021 21:26:23 +0530 Subject: [PATCH] Getting started from release Guide (#124) Update getting started from artifacts in release --- docs/getting-started.md | 2 +- .../getting-started-from-release.md | 150 ++++++++++++++++++ docs/images/vdo-user-flow.png | Bin 0 -> 28437 bytes 3 files changed, 151 insertions(+), 1 deletion(-) create mode 100644 docs/getting-started/getting-started-from-release.md create mode 100644 docs/images/vdo-user-flow.png diff --git a/docs/getting-started.md b/docs/getting-started.md index d82e448..6f337fe 100644 --- a/docs/getting-started.md +++ b/docs/getting-started.md @@ -13,5 +13,5 @@ Choose the desrired deployment scheme and follow the relevant guide to bring up | Deployment Method| Links | Remarks | | ----------- | ----------- | ---------| | Deployment via source code | [Guide](getting-started/getting-started-via-code.md) | | -| Deployment via Releases | TBD | | +| Deployment via Releases | [Guide](getting-started/getting-started-from-release.md) | | | Deployment via Operator Hub | [Guide](getting-started/getting-started-from-operator-hub.md) | Recommended| diff --git a/docs/getting-started/getting-started-from-release.md b/docs/getting-started/getting-started-from-release.md new file mode 100644 index 0000000..cfdffa9 --- /dev/null +++ b/docs/getting-started/getting-started-from-release.md @@ -0,0 +1,150 @@ +# Getting Started + +VDO(vSphere Kubernetes Driver Operator) is built out of operator-sdk. +The operator is configured to run on master node, with a single replica deployment. + +VDO operator is built to run on vanilla k8s cluster as well Openshift clusters + +With every new release of VDO, support for new features and various bug fixes are delivered + +## Assets + +Each release is launched with the following deliverables + +### VDO Docker Image + +Docker image for VDO can be found [here (vdo.tar.gz)](https://github.com/vmware-tanzu/vsphere-kubernetes-drivers-operator/releases/) + +### VDO Deployment file + +[Deployment file (vdo-spec-vanilla-k8s.yaml)](https://github.com/vmware-tanzu/vsphere-kubernetes-drivers-operator/releases/) containing the specs of VDO which includes the CRD, Service accounts, Roles and Role Binding details + +### Compatibility matrix + +To fetch the compatible CSI and CPI version according to the respective kubernetes/ vSphere versions, a new [Compatibility matrix (compatibility.yaml)](https://github.com/vmware-tanzu/vsphere-kubernetes-drivers-operator/releases/) yaml is released with every release + +### Source Code + +If you wish to Contribute or setup the Developer's environment, you can download our source code in [Source code (zip)](https://github.com/vmware-tanzu/vsphere-kubernetes-drivers-operator/releases/) or [Source code (tar.gz)](https://github.com/vmware-tanzu/vsphere-kubernetes-drivers-operator/releases/) format and for further steps, refer to the [Developer guide](../developer-guide.md) + +### VDOCTL + +In order to deploy VDO using the command-line interface VDOCTL, you can follow the below steps + +#### Download the Binary + +Download the VDOCTL binary and untar it as + +- for Linux env +```shell +wget https://github.com/vmware-tanzu/vsphere-kubernetes-drivers-operator/releases/download/0.1.1/vdoctl-linux-0.1.1.tar.gz +tar -xvf vdoctl-linux-0.1.1.tar.gz +``` + +- for Mac env +```shell +wget https://github.com/vmware-tanzu/vsphere-kubernetes-drivers-operator/releases/download/0.1.1/vdoctl-mac-0.1.1.tar.gz +tar -xvf vdoctl-mac-0.1.1.tar.gz +``` + +Move the vdoctl executable to location in the `$PATH` folder + +#### Pre-requisite + +Before deploying the operator, set the KUBECONFIG path by +```shell +# Set up environment variables by +export KUBECONFIG=~/.kube/config +or YOUR-KUBECONFIG_PATH +``` + +#### User flow + +![VDO user flow](../images/vdo-user-flow.png) + +#### Deploy VDO Operator + +Run the [vdoctl deploy](../vdoctl/vdoctl_deploy.md) command to deploy VDO + +```shell +vdoctl deploy --spec https://github.com/vmware-tanzu/vsphere-kubernetes-drivers-operator/releases/download/0.1.1/vdo-spec-vanilla-k8s.yaml +``` +Here, `spec` flag inputs the file containing details about the CRD, docker image, default compatibility matrix + +For more details, please refer [vdo-spec-vanilla-k8s.yaml](https://github.com/vmware-tanzu/vsphere-kubernetes-drivers-operator/releases/) + + +#### Configure Compatibility Matrix + +Once the VDO is deployed, you will see that the VDO manager pod is in `Running` state and configures the default compatibility matrix +```shell +vmware-system-vdo vdo-controller-manager-5bd4ffcc88-z5ltl 2/2 Running 0 40s +``` + +Configure custom compatibility matrix to fetch compatible CSI and CPI yamls using [vdoctl configure compatibility-matrix](../vdoctl/vdoctl_configure_compatibility-matrix.md) command + +```shell +vdoctl configure compatibility-matrix +✔ Web URL +Web URL https://github.com/vmware-tanzu/vsphere-kubernetes-drivers-operator/releases/download/0.1.1/compatibility.yaml +Tip: Compatibility matrix has been configured, you might want to try 'vdoctl configure drivers' to configure vsphere drivers. +``` +The Compatibility matrix used can be found [here (compatibility.yaml)](https://github.com/vmware-tanzu/vsphere-kubernetes-drivers-operator/releases/) + + +#### Configure Drivers + +To configure the CloudProvider and StorageProvider, run the [vdoctl configure drivers](../vdoctl/vdoctl_configure_drivers.md) command + +For more details, please refer [Configure Drivers](configure_drivers.md) + + +#### Status of Drivers + +Once the drivers are deployed, status of CloudProvider and StorageProvider can be fetched using [vdoctl status](../vdoctl/vdoctl_status.md) + +```shell +vdoctl status +CloudProvider : Configured + vCenter : + 10.10.10.10 (Credentials Verified) + Nodes : + master-vm : ready + worker-vm : ready +StorageProvider : Deployed + vCenter : + 10.10.10.10 (Credentials Verified) +``` + +#### Version of VDO and Drivers + +Version of VDO and drivers can be fetched using [vdoctl version](../vdoctl/vdoctl_version.md) + +```shell +vdoctl version +kubernetes Version : 1.21 +VDO Version : v0.1.0-beta +vSphere Versions : [7.0.3] +CSI Version : 2.2.1 +CPI Version : 1.20.0 +``` + +#### Update Drivers + +Drivers can be updated by updating the compatibility matrix using [vdoctl update compatibility-matrix](../vdoctl/vdoctl_update_compatibility-matrix.md) command + +```shell +vdoctl update compatibility-matrix +Compatibility matrix has been updated successfully. +``` +Existing pods of CloudProvider and StorageProvider are terminated and new pods are spawned according to the compatible versions of CSI and CPI + + +#### Delete VDO + +To delete the VDO deployment and associated artifacts from the cluster provided, run the [vdoctl delete vdo](../vdoctl/vdoctl_delete.md) command + +```shell +vdoctl delete vdo +This command deletes the VDO operator deployment eventually the operator pods will be deleted +``` diff --git a/docs/images/vdo-user-flow.png b/docs/images/vdo-user-flow.png new file mode 100644 index 0000000000000000000000000000000000000000..efd8f64780709f9c34335db710efded8dea53ffd GIT binary patch literal 28437 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 Me?_iH*5v;G0N4zd#Q*>R literal 0 HcmV?d00001