Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/acalephstorage/rudder
RESTful API Proxy for Helm
https://github.com/acalephstorage/rudder
api-server helm kubernetes proxy restful
Last synced: 2 months ago
JSON representation
RESTful API Proxy for Helm
- Host: GitHub
- URL: https://github.com/acalephstorage/rudder
- Owner: AcalephStorage
- License: apache-2.0
- Created: 2016-10-26T13:48:36.000Z (about 8 years ago)
- Default Branch: develop
- Last Pushed: 2019-04-30T14:28:01.000Z (over 5 years ago)
- Last Synced: 2024-06-18T21:51:03.810Z (7 months ago)
- Topics: api-server, helm, kubernetes, proxy, restful
- Language: Go
- Homepage:
- Size: 808 KB
- Stars: 59
- Watchers: 11
- Forks: 25
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Rudder
------RESTful API for Helm Repositories and the Tiller service.
Requirements
------------- Tiller v2.0.0
Installation
------------### Binary
Binaries can be downloaded [here](https://github.com/AcalephStorage/rudder/releases).
Running
-------Launch in Kubernetes:
```
$ kubectl create -f kube/manifest.yaml
```This will create a Service for Tiller in the `kube-system` namespace, along with the Deployment and Configmap to run Rudder (in the `default` namespace). Customize as needed with Services, Secrets, etc (until the Rudder helm chart is ready)
Alternatively:
```
$ docker run quay.io/acaleph/rudder
```or
```
$ rudder {{flags}}
```Configuration
-------------Configuration can be provided via cli flags or through environment variables:
| Configuration | Flag | Environment Variable | Default |
|-----------------------|--------------------------------|---------------------------------|--------------------------------------|
| Rudder address | --address | RUDDER_ADDRESS | 0.0.0.0:5000 |
| Tiller address | --tiller-address | RUDDER_TILLER_ADDRESS | localhost:44134 |
| Repo File | --helm-repo-file | RUDDER_HELM_REPO_FILE | ~/.helm/repository/repositories.yaml |
| Cache Directory | --helm-cache-dir | RUDDER_HELM_CACHE_DIR | /opt/rudder/cache |
| Cache Lifetime | --helm-repo-cache-lifetime | RUDDER_HELM_REPO_CACHE_LIFETIME | 10m |
| Swagger UI Path | --swagger-ui-path | RUDDER_SWAGGER_UI_PATH | /opt/rudder/swagger |
| Basic Auth Username | --basic-auth-username | RUDDER_BASIC_AUTH_USERNAME | |
| Basic Auth Password | --basic-auth-password | RUDDER_BASIC_AUTH_PASSWORD | |
| OIDC Issuer URL | --oidc-issuer-url | RUDDER_OIDC_ISSUER_URL | |
| Client ID | --client-id | RUDDER_CLIENT_ID | |
| Client Secret | --client-secret | RUDDER_CLIENT_SECRET | |
| Client Secret Encoded | --client-secret-base64-encoded | RUDDER_CLIENT_BASE64_ENCODED | |
| Debug Mode | --debug | | |API
---API docs is provided via swagger. This is available at: `http://{rudder-url}/swagger`.
Using the docker image already has this enabled by default. When using the binary, copy the [swagger files](https://github.com/AcalephStorage/rudder/tree/develop/third-party/swagger) to `/opt/rudder/swagger` or a different directory and set `--swagger-ui-path`.
Currently there are read-only Helm Repository endpoints for fetching charts from repositories and Basic Release endpoints (tiller), `install` and `uninstall`. The rest is still WIP.
Notes
-----### Helm Repositories
At the moment, repositories are provided via a repo file. The format should be the same as what helm uses (`~/.helm/repository/repositories.yaml`). This may change in the future when a repo manager is implemented.
### Charts cache
Charts are downloaded from the helm repository and are cached at the location defined by `--helm-cache-dir` (default: ./opt/rudder/cache). This directory should exist and be writable.
### Authentication
Authentication can be enabled by providing authentication details.
#### Basic Auth
Providing `--basic-auth-username` and `--basic-auth-password` will enable Basic Authentication.
#### OIDC
Providing `--oidc-issuer-url` or `--client-secret` will enable OIDC.
TODO
----This is still WIP. Some immediate TODOs are:
- [ ] implement a repo manager
- [ ] implement missing tiller functions