Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Operator yaml to helm chart #292

Merged
merged 9 commits into from
Apr 11, 2024
6 changes: 3 additions & 3 deletions .github/ISSUE_TEMPLATE/bug-report.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@ labels: Bug
**The output of the following commands will help us better understand what's going on**:
(Pasting long output into a [GitHub gist](https://gist.github.com) or other [Pastebin](https://pastebin.com/) is fine.)

* `kubectl logs -f openebs-lvm-controller-0 -n kube-system -c openebs-lvm-plugin`
* `kubectl logs -f openebs-lvm-node-[xxxx] -n kube-system -c openebs-lvm-plugin`
* `kubectl get pods -n kube-system`
* `kubectl logs -f openebs-lvm-localpv-controller-7b6d6b4665-fk78q -n openebs -c openebs-lvm-plugin`
* `kubectl logs -f openebs-lvm-localpv-node-[xxxx] -n openebs -c openebs-lvm-plugin`
* `kubectl get pods -n openebs`
* `kubectl get lvmvol -A -o yaml`

**Anything else you would like to add:**
Expand Down
4 changes: 2 additions & 2 deletions Adopters.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# OpenEBS LVM-LocalPV Adopters
# OpenEBS LocalPV-LVM Adopters

Abhinandan-Purkait marked this conversation as resolved.
Show resolved Hide resolved
This is the list of organizations and users that publicly shared details of how they are using OpenEBS LVM-LocalPV CSI driver for running their Stateful workloads.
This is the list of organizations and users that publicly shared details of how they are using OpenEBS LocalPV-LVM CSI driver for running their Stateful workloads.

[click here](https://github.com/openebs/openebs/issues/2719) to see the list of organizations/users who have publicly shared the usage of OpenEBS.
4 changes: 2 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Contributing to LVM-LocalPV
# Contributing to LocalPV-LVM

LVM LocalPV uses the standard GitHub pull requests process to review and accept contributions. There are several areas that could use your help. For starters, you could help in improving the sections in this document by either creating a new issue describing the improvement or submitting a pull request to this repository. The issues are maintained at [lvm-localpv/issues](https://github.com/openebs/lvm-localpv/issues) repository.

Expand All @@ -9,7 +9,7 @@ LVM LocalPV uses the standard GitHub pull requests process to review and accept

## Steps to Contribute

LVM-LocalPV is an Apache 2.0 Licensed project and all your commits should be signed with Developer Certificate of Origin. See [Sign your work](#sign-your-work).
LocalPV-LVM is an Apache 2.0 Licensed project and all your commits should be signed with Developer Certificate of Origin. See [Sign your work](#sign-your-work).

* Find an issue to work on or create a new issue. The issues are maintained at [lvm-localpv/issues](https://github.com/openebs/lvm-localpv/issues). You can pick up from a list of [good-first-issues](https://github.com/openebs/lvm-localpv/labels/good%20first%20issue).
* Claim your issue by commenting your intent to work on it to avoid duplication of efforts.
Expand Down
88 changes: 38 additions & 50 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
## OpenEBS - LVM-LocalPV CSI Driver
## OpenEBS - LocalPV-LVM CSI Driver
[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fopenebs%2Flvm-localpv.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fopenebs%2Flvm-localpv?ref=badge_shield)
[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/3523/badge)](https://bestpractices.coreinfrastructure.org/en/projects/4548)
[![Slack](https://img.shields.io/badge/chat!!!-slack-ff1493.svg?style=flat-square)](https://kubernetes.slack.com/messages/openebs)
Expand All @@ -7,26 +7,26 @@
[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fopenebs%2Flvm-localpv.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2Fopenebs%2Flvm-localpv?ref=badge_shield)


| [![Linux LVM2](https://github.com/openebs/website/blob/main/website/public/images/png/LVM_logo_1.png "Linux LVM2")](https://github.com/openebs/website/blob/main/website/public/images/png/LVM_logo_1.png) | The OpenEBS LVM-LocalPV Data-Engine is a mature and well deployed production grade CSI driver for dynamically provisioning Node Local Volumes into a K8s cluster utilizing the LINUX LVM2 Data / storage Mgmt stack as the storage backend. It integrates LVM2 into the OpenEBS platform and exposes many LVM2 services and capabilities. |
| [![Linux LVM2](https://github.com/openebs/website/blob/main/website/public/images/png/LVM_logo_1.png "Linux LVM2")](https://github.com/openebs/website/blob/main/website/public/images/png/LVM_logo_1.png) | The OpenEBS LocalPV-LVM Data-Engine is a mature and well deployed production grade CSI driver for dynamically provisioning Node Local Volumes into a K8s cluster utilizing the LINUX LVM2 Data / storage Mgmt stack as the storage backend. It integrates LVM2 into the OpenEBS platform and exposes many LVM2 services and capabilities. |
| :--- | :--- |
<BR>

## Overview
LVM-LocalPV CSI Driver becasme GA in August 2021 (with the release v0.8.0). It is now a a very mature product and a core component of the OpenEBS storage platform.
Due to the major adoption of LVM-LocalPV (+50,000 users), this Data-Engine is now being unified and integrated into the core OpenEBS Storage platform; instead of being maintained as an external Data-Engine within our project.
LocalPV-LVM CSI Driver becasme GA in August 2021 (with the release v0.8.0). It is now a a very mature product and a core component of the OpenEBS storage platform.
Due to the major adoption of LocalPV-LVM (+50,000 users), this Data-Engine is now being unified and integrated into the core OpenEBS Storage platform; instead of being maintained as an external Data-Engine within our project.

Our [2024 Roadmap is here](https://github.com/openebs/openebs/blob/main/ROADMAP.md). It defines a rich set of new featrues, which covers the integration of LVM-LocalPV into the core OpenEBS platform.<br>
Please review this roadmp and feel free to pass back any feedback on it, as well as recommend and suggest new ideas regarding LVM-LocalPV. We welcome all your feedback.
Our [2024 Roadmap is here](https://github.com/openebs/openebs/blob/main/ROADMAP.md). It defines a rich set of new featrues, which covers the integration of LocalPV-LVM into the core OpenEBS platform.<br>
Please review this roadmp and feel free to pass back any feedback on it, as well as recommend and suggest new ideas regarding LocalPV-LVM. We welcome all your feedback.
<br>
<BR>

> **LVM-LocalPV is very popular** : Live OpenEBS systems actively report back product metrics every day, to our Global Anaytics metrics engine (unless disabled by the user).
> **LocalPV-LVM is very popular** : Live OpenEBS systems actively report back product metrics every day, to our Global Anaytics metrics engine (unless disabled by the user).
> Here are our key project popularity metrics as of: 01 Mar 2024 <BR>
>
> :rocket: &nbsp; OpenEBS is the #1 deployed Storage Platform for Kubernetes <BR>
> :zap: &nbsp; LVM-LocalPV is the 3rd most deployed Data-Engine within the platform <BR>
> :sunglasses: &nbsp; LVM-LocalPV has +50,000 Daily Acive Users <BR>
> :sunglasses: &nbsp; LVM-LocalPV has +120,000 Global instllations <BR>
> :zap: &nbsp; LocalPV-LVM is the 3rd most deployed Data-Engine within the platform <BR>
> :sunglasses: &nbsp; LocalPV-LVM has +50,000 Daily Acive Users <BR>
> :sunglasses: &nbsp; LocalPV-LVM has +120,000 Global instllations <BR>
> :floppy_disk: &nbsp; +49 Million OpenEBS Volumes have been deployed globally <BR>
> :tv: &nbsp; We have +8 Million Global OpenEBS installations <BR>
> :star: &nbsp; We are the [#1 GitHub Star ranked](https://github.com/openebs/website/blob/main/website/public/images/png/github_star-history-2024_Feb_1.png) K8s Data Storage platform <BR>
Expand All @@ -38,7 +38,7 @@ Please review this roadmp and feel free to pass back any feedback on it, as well


## Project info
The orignal v1.0 dev roadmap [is here ](https://github.com/orgs/openebs/projects/30). This tracks our base historical engineering development work and is now somewhat out of date. We will be publish an updated 2024 Unified Roadmp soon, as ZFS-LoalPV is now being integrated and unified into the core OpenEBS storage platform.<BR>
The orignal v1.0 dev roadmap [is here ](https://github.com/orgs/openebs/projects/30). This tracks our base historical engineering development work and is now somewhat out of date. We will be publish an updated 2024 Unified Roadmp soon, as LocalPV-LVM is now being integrated and unified into the core OpenEBS storage platform.<BR>

<BR>

Expand All @@ -48,23 +48,23 @@ The orignal v1.0 dev roadmap [is here ](https://github.com/orgs/openebs/projects


> [!IMPORTANT]
> Before installing the LVM-LocalPV driver please make sure your Kubernetes Cluster meets the following prerequisites:
> Before installing the LocalPV-LVM driver please make sure your Kubernetes Cluster meets the following prerequisites:
> 1. All the nodes must have LVM2 utils package installed
> 2. All the nodes must have dm-snapshot Kernel Module loaded - (Device Mapper Snapshot)
> 4. You have access to install RBAC components into kube-system namespace. The OpenEBS LVM driver components are installed in kube-system namespace to allow them to be flagged as system critical components.
> 4. You have access to install RBAC components into `<OPENEBS>` namespace.
<BR>

> [!NOTE]
<!-- > [!NOTE]
> - Full LVM2 dynamic provisioning is now supported <BR>
> - All Volume Groups (VG), Physical Volumes (PV) and Logical Volumes (LV) willbe dynamically provisionsed for you by OpenEBS <BR>
> - There is need to manually provison any PV, VG or LV's <BR>
> - Dynamic RAID provisioning is still in development. RAID LV's must be deployed via the manual pre configuiration method <BR>
> - Dynamic RAID provisioning is still in development. RAID LV's must be deployed via the manual pre configuiration method <BR> -->

### Supported System

> | Name | Version |
> | :--- | :--- |
> | K8S | 1.20+ |
> | K8S | 1.23+ |
> | Distro | Alpine, Arch, CentOS, Debian, Fedora, NixOS, SUSE, Talos, RHEL, Ubuntu |
> | Kernel | oldest supported kernel is 2.6 |
> | LVM2 | 2.03.21 |
Expand All @@ -75,7 +75,7 @@ The orignal v1.0 dev roadmap [is here ](https://github.com/orgs/openebs/projects

## Setup

Find the disk which you want to use for the LVM-LocalPV. Note: For testing you can use the loopback device.
Find the disk which you want to use for the LocalPV-LVM. Note: For testing you can use the loopback device.

```
truncate -s 1024G /tmp/disk.img
Expand All @@ -84,8 +84,8 @@ sudo losetup -f /tmp/disk.img --show

> [!NOTE]
> - This is the old maual config process <BR>
> - LVM-LocalPV will num dynamically provision the VG fro you <BR>
> - The PV, VG and LV names will be dynamically provisioned by OpenEBS LVM-LocalPV as K8s unique entities (for safety, you cannot provide your own PV, VG or LV names)
> - LocalPV-LVM will num dynamically provision the VG fro you <BR>
> - The PV, VG and LV names will be dynamically provisioned by OpenEBS LocalPV-LVM as K8s unique entities (for safety, you cannot provide your own PV, VG or LV names)

Create the Volume group on all the nodes, which will be used by the LVM2 Driver for provisioning the volumes

Expand All @@ -98,45 +98,33 @@ sudo vgcreate lvmvg /dev/loop0 ## here lvmvg is the volume group name to b

## Installation

Install the latest release of OpenEBS LVM2 LVM-LocalPV driver by running the following command. Note: All nodes must be running the same verison of LVM-LocalPV, LMV2, device-mapper & dm-snapshot.
Install the latest release of OpenEBS LVM2 LocalPV-LVM driver by running the following command. Note: All nodes must be running the same verison of LocalPV-LVM, LMV2, device-mapper & dm-snapshot.

**NOTE:** Installation using operator YAMLs is not the supported way any longer.
We can install the latest release of OpenEBS LVM driver by running the following command:
```bash
helm repo add openebs https://openebs.github.io/openebs
helm repo update
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

helm install openebs --namespace openebs openebs/openebs --create-namespace
```
$ kubectl apply -f https://openebs.github.io/charts/lvm-operator.yaml
```

If you want to fetch a versioned manifest, you can use the manifests for a
specific OpenEBS release version, for example:

```
$ kubectl apply -f https://raw.githubusercontent.com/openebs/charts/gh-pages/versioned/3.0.0/lvm-operator.yaml
```

**NOTE:** For some Kubernetes distributions, the `kubelet` directory must be changed at all relevant places in the YAML powering the operator (both the `openebs-lvm-controller` and `openebs-lvm-node`).

- For `microk8s`, we need to change the kubelet directory to `/var/snap/microk8s/common/var/lib/kubelet/`, we need to replace `/var/lib/kubelet/` with `/var/snap/microk8s/common/var/lib/kubelet/` at all the places in the operator yaml and then we can apply it on microk8s.
**NOTE:** If you are running a custom Kubelet location, or a Kubernetes distribution that uses a custom Kubelet location, the `kubelet` directory must be changed on the helm values at install-time using the flag option `--set lvm-localpv.lvmNode.kubeletDir=<your-directory-path>` in the `helm install` command.

- For `microk8s`, we need to change the kubelet directory to `/var/snap/microk8s/common/var/lib/kubelet/`, we need to replace `/var/lib/kubelet/` with `/var/snap/microk8s/common/var/lib/kubelet/`.
- For `k0s`, the default directory (`/var/lib/kubelet`) should be changed to `/var/lib/k0s/kubelet`.

- For `RancherOS`, the default directory (`/var/lib/kubelet`) should be changed to `/opt/rke/var/lib/kubelet`.

Verify that the LVM driver Components are installed and running using below command :

Verify that the LVM driver Components are installed and running using below command. Depending on number of nodes, you will see one lvm-controller pod and lvm-node daemonset running on the nodes :
```bash
$ kubectl get pods -n openebs -l role=openebs-lvm
NAME READY STATUS RESTARTS AGE
openebs-lvm-localpv-controller-7b6d6b4665-fk78q 5/5 Running 0 11m
openebs-lvm-localpv-node-mcch4 2/2 Running 0 11m
openebs-lvm-localpv-node-pdt88 2/2 Running 0 11m
openebs-lvm-localpv-node-r9jn2 2/2 Running 0 11m
```
$ kubectl get pods -n kube-system -l role=openebs-lvm
```

Depending on number of nodes, you will see one lvm-controller pod and lvm-node daemonset running
on the nodes.

```
NAME READY STATUS RESTARTS AGE
openebs-lvm-controller-0 5/5 Running 0 35s
openebs-lvm-node-54slv 2/2 Running 0 35s
openebs-lvm-node-9vg28 2/2 Running 0 35s
openebs-lvm-node-qbv57 2/2 Running 0 35s

```
Once LVM driver is successfully installed, we can provision volumes.
Once LVM driver is installed and running we can provision a volume.

### Deployment

Expand All @@ -156,7 +144,7 @@ parameters:
provisioner: local.csi.openebs.io
```

Check the doc on [storageclasses](docs/storageclasses.md) to know all the supported parameters for LVM-LocalPV
Check the doc on [storageclasses](docs/storageclasses.md) to know all the supported parameters for LocalPV-LVM

##### VolumeGroup Availability

Expand Down
2 changes: 1 addition & 1 deletion ci/ci-test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -197,4 +197,4 @@ fi
printf "\n\n######### All test cases passed #########\n\n"

# last statement formatted to always return true
[ -z "${CLEANUP}" ] || cleanup 2>/dev/null
[ -z "${CLEANUP}" ] || cleanup 2>/dev/null
2 changes: 1 addition & 1 deletion deploy/yamls/lvm-driver.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -1191,7 +1191,7 @@ spec:
labels:
app: openebs-lvm-node
role: openebs-lvm
openebs.io/component-name: openebs-lvm-node
openebs.io/component-name: openebs-lvm-localpv-node
openebs.io/version: ci
spec:
priorityClassName: openebs-lvm-localpv-csi-node-critical
Expand Down
2 changes: 1 addition & 1 deletion design/lvm/persistent-volume-claim/access_mode.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ spec:

### Test Plan

- Provision an application with LVM-LocalPV supported access mode and verify accessibility of volume from application.
- Provision an application with LocalPV-LVM supported access mode and verify accessibility of volume from application.
- Provision an application with unsupported access modes and verify that volume should not get provisioned.
- Provision multiple applications on the same volume and verify that only one application instance should be in running state.

Expand Down
10 changes: 5 additions & 5 deletions design/lvm/resize_workflow.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: LVM-LocalPV Volume Expansion
title: LocalPV-LVM Volume Expansion
authors:
- "@pawanpraka1"
owners:
Expand All @@ -9,11 +9,11 @@ last-updated: 2021-05-28
status: Implemented
---

# LVM-LocalPV Volume Expansion
# LocalPV-LVM Volume Expansion

## Table of Contents

- [LVM-LocalPV Volume Expansion](#lvm-localpv-volume-expansion)
- [LocalPV-LVM Volume Expansion](#lvm-localpv-volume-expansion)
- [Table of Contents](#table-of-contents)
- [Summary](#summary)
- [Motivation](#motivation)
Expand All @@ -33,13 +33,13 @@ status: Implemented

## Summary

This proposal charts out the design details to implement expansion workflow on LVM-LocalPV Volumes.
This proposal charts out the design details to implement expansion workflow on LocalPV-LVM Volumes.

## Motivation

### Goals

- As a user, I should be able to resize the volumes provisioned via LVM-LocalPV by updating the size
- As a user, I should be able to resize the volumes provisioned via LocalPV-LVM by updating the size
on PersistentVolumeClaim(PVC).

### Non-Goals
Expand Down
4 changes: 2 additions & 2 deletions design/lvm/snapshot.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: Snapshot Support for LVM-LocalPV
title: Snapshot Support for LocalPV-LVM
authors:
- "@pawanpraka1"
owners:
Expand All @@ -9,7 +9,7 @@ last-updated: 2021-06-21
status: In Progress
---

# Snapshot Support for LVM-LocalPV
# Snapshot Support for LocalPV-LVM

## Table of Contents

Expand Down
2 changes: 1 addition & 1 deletion design/lvm/storageclass-parameters/allowed_topologies.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ This proposal points out workflow details to support allowed topologies.

### Implementation Details

This feature is natively driven by Kubernetes(for more information about workflow click [here](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/storage/volume-topology-scheduling.md#volume-topology-aware-scheduling)) and LVM-LocalPV CSI-Driver is a consumer of topology
This feature is natively driven by Kubernetes(for more information about workflow click [here](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/storage/volume-topology-scheduling.md#volume-topology-aware-scheduling)) and LocalPV-LVM CSI-Driver is a consumer of topology
feature.

- During volume provisioning time external-provisioner will read topology information specified
Expand Down
8 changes: 4 additions & 4 deletions design/lvm/storageclass-parameters/fs_type.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: LVM-LocalPV fsType
title: LocalPV-LVM fsType
authors:
- "@pawanpraka1"
owners:
Expand All @@ -9,10 +9,10 @@ last-updated: 2021-06-17
status: Implemented
---

# LVM-LocalPV fsType Parameter
# LocalPV-LVM fsType Parameter

## Table of Contents
- [LVM-LocalPV fsType Parameter](#lvm-localpv-fstype-parameter)
- [LocalPV-LVM fsType Parameter](#lvm-localpv-fstype-parameter)
- [Table of Contents](#table-of-contents)
- [Summary](#summary)
- [Motivation](#motivation)
Expand Down Expand Up @@ -50,7 +50,7 @@ Kubernetes provides a placeholder in StorageClasss to specify driver & Storage P
supported key-value pairs under the parameters section. K8s registered a key called `fsType`
to specify filesystem.

- Filesystem information is propagated to LVM-LocalPV CSI Driver during as payload during
- Filesystem information is propagated to LocalPV-LVM CSI Driver during as payload during
`NodePublishVolume` gRPC request.
- During `NodePublishVolume` gRPC request CSI driver reads required information(fsType,
volume mode, mount options, and so on) if volume mode is filesystem then driver will
Expand Down
6 changes: 3 additions & 3 deletions design/lvm/storageclass-parameters/mount_options.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: LVM-LocalPV Mount Options
title: LocalPV-LVM Mount Options
authors:
- "@pawanpraka1"
owners:
Expand All @@ -9,10 +9,10 @@ last-updated: 2021-06-16
status: Implemented
---

# LVM-LocalPV Mount Options
# LocalPV-LVM Mount Options

## Table of Contents
- [LVM-LocalPV Mount Options](#lvm-localpv-mount-options)
- [LocalPV-LVM Mount Options](#lvm-localpv-mount-options)
- [Table of Contents](#table-of-contents)
- [Summary](#summary)
- [Motivation](#motivation)
Expand Down
Loading
Loading