Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/phenixblue/volrec
Kubernetes Volume Reclaim Controller
https://github.com/phenixblue/volrec
controller core k8s kubebuilder kubernetes pv pvc reclaim volrec volume
Last synced: about 1 month ago
JSON representation
Kubernetes Volume Reclaim Controller
- Host: GitHub
- URL: https://github.com/phenixblue/volrec
- Owner: phenixblue
- License: apache-2.0
- Created: 2021-01-30T04:05:58.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2021-07-11T20:13:51.000Z (over 3 years ago)
- Last Synced: 2024-06-20T19:23:28.727Z (5 months ago)
- Topics: controller, core, k8s, kubebuilder, kubernetes, pv, pvc, reclaim, volrec, volume
- Language: Go
- Homepage:
- Size: 26.6 MB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# volrec
`Vol`ume `Re`claim `C`ontroller, or `volrec` for short, is a Kubernetes Controller that allows for empowering Developers with the ability to control the Reclaim Policy on their persistent volumes without providing them with cluster scoped permissions.
**NOTE: While this project does work, this was a quick experiment, it's not polished, and you probably shouldn't run this in production!**
## Overview
`volrec` contains a set of controllers operating under a single Controller Manager.
- PersistentVolume Controller
- PersistentVolumeClaim Controller
- Namespace ControllerEach is responsible for handling reconciliation actions for a given target resource.
The mapping relationship between a namespace scoped PVC bound to a cluster scoped PV provides the relationship to enable end-users to control the Reclaim Policy for their volumes through the application of labels on the PVC resource the user has access to.
Add the `storage.k8s.twr.dev/reclaim-policy` label with a valid Reclaim Policy for the value (ie. `Retain`, `Recycle`, or `Delete`) to a PVC within your namespace and `volrec` will follow the mapping to the appropriate PV and set the Reclaim Policy according to the value of the label. ~~A validating Admission Controller is setup to make sure only supported values for the Volume Reclaim policy can be set within the label.~~
## Configuration
`volrec` can be configured via flags/arguments passed at startup.
|Flag | Type | Default Value | Description |
|--- |--- |--- |--- |
| --metrics-addr | string | ":8081" | The address the metric endpoint binds to.|
| --enable-leader-election | bool | false | Enable leader election for controller manager to ensure there is only one active controller manager. |
| --reclaim-label | string | "storage.k8s.twr.dev/reclaim-policy" | The label to use for tracking Persistent Volume reclaim policy.|
| --set-owner | bool | false | Toggle whether or not owner information from a given namespace is transferred to the Persistent Volume.|
| --owner-label | string | "k8s.twr.dev/owner" | The Label to use to set owner information on a Persistent Volume.|
| --set-ns | bool | false | Toggle whether or not to add a label mapping Persistent Volumes back to a namespace.|
| --ns-label | string | "k8s.twr.dev/owning-namespace" | The label to use for identifying an owning namespace on a Persistent Volume.|## Installation
```shell
$ make deploy
```## Troubleshooting
## Contributing