Skip to content

Commit 28987f3

Browse files
[feat] add helm plugin config (#182)
This pull request introduces significant updates to the `helmper` project, including the addition of a Helm plugin, installation scripts, and enhancements to the documentation. The changes focus on improving usability, providing installation guidance, and ensuring compatibility with OCI-compliant registries. Below is a breakdown of the most important changes: ### Helm Plugin Addition * Added `plugin.yaml` to define the Helm plugin, including features like vulnerability scanning, image patching, and artifact signing. It also specifies installation, update, and uninstallation hooks. ### Installation and Uninstallation Scripts * Added `scripts/install.sh` to automate the installation of the Helm plugin, including checks for prerequisites (`cosign`, `trivy`, and `copa`) and downloading the appropriate binary based on the OS and architecture. * Added `scripts/uninstall.sh` to cleanly remove the plugin binary and its directory. ### Documentation Enhancements * Updated `README.md` to include detailed installation and usage instructions for the Helm plugin, along with prerequisites for specific functionalities. [[1]](diffhunk://#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5R173-R201) [[2]](diffhunk://#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5L185-R210) [[3]](diffhunk://#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5L194-R240) * Reformatted sections in `README.md` for better readability and consistency, such as changing headings for installation instructions. [[1]](diffhunk://#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5L185-R210) [[2]](diffhunk://#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5L194-R240) ### Minor Updates * Added a disclaimer in `README.md` to indicate that `helmper` is in beta and subject to changes.
1 parent 92751ad commit 28987f3

File tree

10 files changed

+1787
-244
lines changed

10 files changed

+1787
-244
lines changed

README.md

Lines changed: 41 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<a href="https://github.com/ChristofferNissen/helmper/releases/latest">Latest release</a>
1616
</p>
1717

18-
[![Go Report Card](https://goreportcard.com/badge/github.com/ChristofferNissen/helmper)](https://goreportcard.com/report/github.com/ChristofferNissen/helmper)
18+
[![Go Report Card](https://goreportcard.com/badge/github.com/ChristofferNissen/helmper)](https://goreportcard.com/report/github.com/ChristofferNissen/helmper)
1919
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://github.com/ChristofferNissen/helmper/blob/main/LICENSE)
2020

2121
</p>
@@ -30,8 +30,7 @@ _DISCLAIMER: helmper is in beta, so stuff may change._
3030

3131
`helmper` is built with [Helm](<https://github.com/helm/helm>), [Oras](<https://github.com/oras-project/oras-go>), [Trivy](https://github.com/aquasecurity/trivy), [Copacetic](https://github.com/project-copacetic/copacetic) ([Buildkit](https://github.com/moby/buildkitd)) and [Cosign](https://github.com/sigstore/cosign).
3232

33-
34-
Helmper connects via gRPC to Trivy and Buildkit so you can run `helmper` without root privileges wherever you want.
33+
Helmper connects via gRPC to Trivy and Buildkit so you can run `helmper` without root privileges wherever you want.
3534

3635
`helmper` demonstrates exceptional proficiency in operating within controlled environments that might require Change Management and/or air-gapped networks. This expertise is particularly beneficial in industries subject to stringent regulations, such as Medical and Banking. `helmper` aims to ensure binary reproducibility of Helm Charts by storing all necessary artifacts in your registries.
3736

@@ -74,7 +73,7 @@ Helmper will import the charts, the charts listed as dependencies including all
7473

7574
**Note** Authentication
7675

77-
Helmper utilizes well known configuration options to interact with registries.
76+
Helmper utilizes well known configuration options to interact with registries.
7877

7978
When using the Helm SDK, Helmper will utilize the file defined by `HELM_REGISTRY_CONFIG` for picking up authentication credentials for registries
8079

@@ -148,7 +147,7 @@ The full documentation for Helmper can be found at [christoffernissen.github.io/
148147
149148
Helmper utilizes the Helm SDK to maintain full compatibility with both Helm Repositories and OCI registries for storing Helm Charts.
150149
151-
In practice, Helmper currently pushes charts and images to the same destination registry, so it must be OCI compliant.
150+
In practice, Helmper currently pushes charts and images to the same destination registry, so it must be OCI compliant.
152151
153152
Helmper utilizes `oras-go` to push OCI artifacts. Helmper utilizes the Helm SDK to push Helm Charts, as the Helm SDK sets the correct metadata attributes.
154153

@@ -171,9 +170,35 @@ For testing, Helmper is using the [CNCF Distribution]() registry.
171170

172171
## Install
173172

173+
### Helm plugin
174+
175+
#### Prerequisites
176+
177+
- Helm v3.x
178+
179+
#### Prerequisites for specific functionalities
180+
181+
- Copa - For image patching
182+
- Trivy - For image scanning and patching
183+
- Cosign - For image signing
184+
185+
#### Installation
186+
187+
```bash
188+
helm plugin install https://github.com/ChristofferNissen/helmper
189+
```
190+
191+
#### Usage
192+
193+
```bash
194+
helm helmper -f <config>
195+
```
196+
197+
### Binary
198+
174199
Simply pick the binary for your platform from the Release section on GitHub.
175200

176-
### Linux
201+
#### Linux
177202

178203
```bash
179204
VERSION=$(curl -Lso /dev/null -w %{url_effective} https://github.com/christoffernissen/helmper/releases/latest | grep -o '[^/]*$')
@@ -182,7 +207,7 @@ chmod +x helmper-linux-amd64
182207
sudo mv helmper-linux-amd64 /usr/local/bin/helmper
183208
```
184209

185-
### Mac OS
210+
#### Mac OS
186211

187212
```bash
188213
VERSION=$(curl -Lso /dev/null -w %{url_effective} https://github.com/christoffernissen/helmper/releases/latest | grep -o '[^/]*$')
@@ -191,28 +216,28 @@ chmod +x helmper-darwin-amd64
191216
sudo mv helmper-darwin-amd64 /usr/local/bin/helmper
192217
```
193218

194-
### Windows
219+
#### Windows
195220

196221
Extract the tar and launch the exe file.
197222

198223
## Scope
199224

200225
### In scope
201226

202-
* Helmper operates with OCI compliant artifacts and OCI compliant registries.
203-
* Helmper must remain without dependency on a container runtime daemon to work in containers without root privileges.
227+
- Helmper operates with OCI compliant artifacts and OCI compliant registries.
228+
- Helmper must remain without dependency on a container runtime daemon to work in containers without root privileges.
204229

205230
### Out of scope
206231

207-
* Helmper does not work with other Kubernetes package formats
208-
* Helmper authenticates with registries with the docker config. Therefore, Helmper will not have any proprietary libraries to facilitate authentication for any cloud providers. Simply use `docker login` or equivalent before running Helmper, and you should be authenticated for 3 hours for each registry.
232+
- Helmper does not work with other Kubernetes package formats
233+
- Helmper authenticates with registries with the docker config. Therefore, Helmper will not have any proprietary libraries to facilitate authentication for any cloud providers. Simply use `docker login` or equivalent before running Helmper, and you should be authenticated for 3 hours for each registry.
209234

210235
## Roadmap
211236

212-
* Operator Framework to enable using Helmper with GitOps in management clusters
213-
* Add option to import to registries via pipeline for compliance audit trail retention
214-
* SBOM
215-
* OpenTelemetry
237+
- Operator Framework to enable using Helmper with GitOps in management clusters
238+
- Add option to import to registries via pipeline for compliance audit trail retention
239+
- SBOM
240+
- OpenTelemetry
216241

217242
## Code of Conduct
218243

0 commit comments

Comments
 (0)