MCPcopy Index your code
hub / github.com/AcalephStorage/rudder

github.com/AcalephStorage/rudder @v0.1.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.1.0 ↗ · + Follow
394 symbols 1,630 edges 39 files 73 documented · 19% updated 7y ago★ 609 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

rudder

RESTful API for Helm Repositories and the Tiller service.

Requirements

  • Tiller v2.0.0

Installation

Binary

Binaries can be downloaded here.

Docker

Docker images are also available:

$ docker pull quay.io/acaleph/rudder

Running

$ rudder {{flags}}

or

$ docker run quay.io/acaleph/rudder

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 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

Extension points exported contracts — how you extend this code

Auth (Interface)
Auth defines an interface for a supported auth [2 implementers]
internal/filter/auth-filter.go

Core symbols most depended-on inside this repo

Debug
called by 22
internal/filter/debug-filter.go
errorResponse
called by 16
internal/resource/common.go
t
called by 16
third-party/swagger/lib/underscore-min.js
execute
called by 15
internal/client/tiller-client.go
e
called by 14
third-party/swagger/lib/handlebars-2.0.0.js
c
called by 13
third-party/swagger/lib/backbone-min.js
escape
called by 12
third-party/swagger/lib/marked.js
replace
called by 12
third-party/swagger/lib/marked.js

Shape

Function 336
Method 42
Struct 13
TypeAlias 2
Interface 1

Languages

TypeScript78%
Go22%

Modules by API surface

third-party/swagger/swagger-ui.min.js160 symbols
third-party/swagger/lib/jquery-1.8.0.min.js60 symbols
third-party/swagger/lib/highlight.7.3.pack.js23 symbols
internal/resource/release.go14 symbols
third-party/swagger/lib/handlebars-2.0.0.js13 symbols
third-party/swagger/lib/underscore-min.js12 symbols
internal/filter/oidc-auth.go12 symbols
third-party/swagger/lib/marked.js11 symbols
third-party/swagger/lib/jquery.ba-bbq.min.js10 symbols
internal/controller/repo.go10 symbols
cmd/rudder.go9 symbols
internal/client/tiller-client.go8 symbols

For agents

$ claude mcp add rudder \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact