All Projects → caicloud → Helm Registry

caicloud / Helm Registry

The helm registry to store and deliver charts (Deprecated since compass v2.9)

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Helm Registry

Go Api Boilerplate
Go Server/API boilerplate using best practices DDD CQRS ES gRPC
Stars: ✭ 373 (+936.11%)
Mutual labels:  api, helm
Node Gitbook Api
Node client library for the GitBook API
Stars: ✭ 35 (-2.78%)
Mutual labels:  api
Node Quick Mock
🌞 基于Express的mock接口平台
Stars: ✭ 33 (-8.33%)
Mutual labels:  api
Server
The core infrastructure backend (API, database, Docker, etc).
Stars: ✭ 8,797 (+24336.11%)
Mutual labels:  api
Sarama Cluster
Cluster extensions for Sarama, the Go client library for Apache Kafka 0.9 [DEPRECATED]
Stars: ✭ 969 (+2591.67%)
Mutual labels:  deprecated
Kspigot
Extended Spigot and Bukkit API for Kotlin
Stars: ✭ 35 (-2.78%)
Mutual labels:  api
Graphql Music
🎸A workshop in building a GraphQL API
Stars: ✭ 33 (-8.33%)
Mutual labels:  api
Camera calibration api
A simple Python API for single camera calibration using opencv
Stars: ✭ 36 (+0%)
Mutual labels:  api
Postgraduation
University management platform dedicated for post-graduation in computer science field using django rest framework.
Stars: ✭ 35 (-2.78%)
Mutual labels:  api
Discord4j
Discord4J is a fast, powerful, unopinionated, reactive library to enable quick and easy development of Discord bots for Java, Kotlin, and other JVM languages using the official Discord Bot API.
Stars: ✭ 973 (+2602.78%)
Mutual labels:  api
Gushici
一言·古诗词 API (Hitokoto API),随机返回一条古诗词名句。采用 Vert.x + Redis 全异步开发,毫秒级稳定响应。
Stars: ✭ 975 (+2608.33%)
Mutual labels:  api
Altair
Lightweight and Robust API Gateway written in Go
Stars: ✭ 34 (-5.56%)
Mutual labels:  api
Gotenberg Go Client
Go client for the Gotenberg API
Stars: ✭ 35 (-2.78%)
Mutual labels:  api
Ng2 Typeahead
Autocomplete component for Angular 2
Stars: ✭ 33 (-8.33%)
Mutual labels:  deprecated
Cve Api
Unofficial api for cve.mitre.org
Stars: ✭ 36 (+0%)
Mutual labels:  api
Amoapi
AmoCRM PHP API/oAuth Client
Stars: ✭ 33 (-8.33%)
Mutual labels:  api
Libvirt
DEPRECATED Vanilla dockerized libvirt image, used as a base for kubevirt
Stars: ✭ 34 (-5.56%)
Mutual labels:  deprecated
Awesome apis
A collection of APIs
Stars: ✭ 7,733 (+21380.56%)
Mutual labels:  api
Es6 Express Mongoose Passport Rest Api
Lightweight boilerplate for Node RESTful API, ES6, Express, Mongoose and Passport 🎁
Stars: ✭ 36 (+0%)
Mutual labels:  api
Drive
☁️ A distributed cloud based lazy drive to files integrated with Dropbox, Google Drive.
Stars: ✭ 36 (+0%)
Mutual labels:  api

Helm Registry

Helm Registry stores helm charts in a hierarchy storage structure and provides a function to orchestrate charts form existed charts. The structure is:

|- space
  |- chart
    |- version

Every space is independent with others. It means the registry can stores same charts (same name with same version) in two spaces.

Build

Build with make:

$ cd $ROOT_OF_PROJECT
$ make registry

Then you can get binary at ./bin/registry

Configuration

Before you start ./bin/registry, you need to wirte a config file which named config.yaml in ./bin. Config file is explained below:

# The port which the server listen to. Change to any port you like.
listen: ":8099"
# A manager is a charts manager. Now we only support `simple` manager.
manager:
  # The name of charts manager.
  name: "simple"
  # The config of current manager.
  parameters:
    # A manager manages all operations of charts. So it is responsible for sync read and write operationgs.
    # The option indicates which locker the manager will use. Currently we provide a `memory` locker.
    resourcelocker: memory
    # A manager can use many storage backends.
    storagedriver: filesystem
    # The option is a parameter of storage driver `filesystem`. See below `Storage Backends`
    rootdirectory: ./data

Storage Backends

We simply use docker backends as manager storage backends. But now we only have build-in support of filesystem. For more infomation of backends, please refer to Docker Backends

Usage

After registry running, you can manage the registry by a registy client (in pkg/rest/v1) or simply use http APIs. In pkg/api/v1/descriptor, you can find all descriptors of these APIs.

Orchestration

The registry can orchestrate charts by a json config like:

{
    "save":{
        "chart":"chart name",           // new chart name
        "version":"1.0.0",              // new chart version
        "description":"description"     // new chart description
    },
    "configs":{                         // configs is the orchestration configuration of new chart
        "package":{                     // package indicates an original chart which new chart created from
            "independent":true,         // if the original chart is an independent chart, the option is true
            "space":"space name",       // space/chart/version indicate where original chart is stored
            "chart":"chart name",
            "version":"version number"
        },
        "_config": {
            // root chart config, these configs will store in values.yaml of new chart.
        },
        "chartB": {                     // rename original chart as `chartB`
            "package":{
                "independent":true,     // for explaining, we call this original chart as `XChart`
                "space":"space name",
                "chart":"chart name",
                "version":"version number"
            },
            "_config": {
                // chartB config
            },
            "chartD":{
                "package":{
                    "independent":false,  // if independent is false, it means the original chart is a subchart of `XChart`
                    "space":"space name",
                    "chart":"chart name",
                    "version":"version number"
                },
                "_config": {
                    // chartD config
                }
            }
        },
        "chartC": {
            "package":{
                "independent":false,
                "space":"space name",
                "chart":"chart name",
                "version":"version number"
            },
            "_config": {
                // chartC config
            }
        }
    }
}

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].