{"id":20670477,"url":"https://github.com/caicloud/helm-registry","last_synced_at":"2025-04-19T18:23:57.868Z","repository":{"id":57508113,"uuid":"78806509","full_name":"caicloud/helm-registry","owner":"caicloud","description":"The helm registry to store and deliver charts (Deprecated since compass v2.9)","archived":false,"fork":false,"pushed_at":"2020-09-25T09:58:30.000Z","size":1488,"stargazers_count":35,"open_issues_count":1,"forks_count":18,"subscribers_count":16,"default_branch":"master","last_synced_at":"2025-03-29T11:34:41.880Z","etag":null,"topics":["api","compass","compass-apps","deprecated","helm","helm-registry","kubernetes"],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/caicloud.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null}},"created_at":"2017-01-13T02:16:48.000Z","updated_at":"2025-02-25T11:18:18.000Z","dependencies_parsed_at":"2022-09-26T17:51:13.933Z","dependency_job_id":null,"html_url":"https://github.com/caicloud/helm-registry","commit_stats":null,"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caicloud%2Fhelm-registry","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caicloud%2Fhelm-registry/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caicloud%2Fhelm-registry/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caicloud%2Fhelm-registry/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/caicloud","download_url":"https://codeload.github.com/caicloud/helm-registry/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249762275,"owners_count":21321905,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","compass","compass-apps","deprecated","helm","helm-registry","kubernetes"],"created_at":"2024-11-16T20:20:46.144Z","updated_at":"2025-04-19T18:23:57.853Z","avatar_url":"https://github.com/caicloud.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Helm Registry\n\nHelm Registry stores helm charts in a hierarchy storage structure and provides a function to orchestrate charts form existed charts. The structure is:\n```\n|- space\n  |- chart\n    |- version\n```\nEvery space is independent with others. It means the registry can stores same charts (same name with same version) in two spaces.\n\n### Build\nBuild with `make`:\n```\n$ cd $ROOT_OF_PROJECT\n$ make registry\n```\nThen you can get binary at `./bin/registry`\n\n\n### Configuration\nBefore you start `./bin/registry`, you need to wirte a config file which named `config.yaml` in `./bin`.\nConfig file is explained below:\n```yaml\n# The port which the server listen to. Change to any port you like.\nlisten: \":8099\"\n# A manager is a charts manager. Now we only support `simple` manager.\nmanager:\n  # The name of charts manager.\n  name: \"simple\"\n  # The config of current manager.\n  parameters:\n    # A manager manages all operations of charts. So it is responsible for sync read and write operationgs.\n    # The option indicates which locker the manager will use. Currently we provide a `memory` locker.\n    resourcelocker: memory\n    # A manager can use many storage backends.\n    storagedriver: filesystem\n    # The option is a parameter of storage driver `filesystem`. See below `Storage Backends`\n    rootdirectory: ./data\n```\n\n### Storage Backends\nWe simply use docker backends as manager storage backends. But now we only have build-in support of `filesystem`.\nFor more infomation of backends, please refer to [Docker Backends](https://docs.docker.com/registry/storage-drivers/)\n\n\n### Usage\nAfter registry running, you can manage the registry by a registy client (in `pkg/rest/v1`) or simply use http APIs.\nIn `pkg/api/v1/descriptor`, you can find all descriptors of these APIs.\n\n### Orchestration\nThe registry can orchestrate charts by a json config like:\n```\n{\n    \"save\":{\n        \"chart\":\"chart name\",           // new chart name\n        \"version\":\"1.0.0\",              // new chart version\n        \"description\":\"description\"     // new chart description\n    },\n    \"configs\":{                         // configs is the orchestration configuration of new chart\n        \"package\":{                     // package indicates an original chart which new chart created from\n            \"independent\":true,         // if the original chart is an independent chart, the option is true\n            \"space\":\"space name\",       // space/chart/version indicate where original chart is stored\n            \"chart\":\"chart name\",\n            \"version\":\"version number\"\n        },\n        \"_config\": {\n            // root chart config, these configs will store in values.yaml of new chart.\n        },\n        \"chartB\": {                     // rename original chart as `chartB`\n            \"package\":{\n                \"independent\":true,     // for explaining, we call this original chart as `XChart`\n                \"space\":\"space name\",\n                \"chart\":\"chart name\",\n                \"version\":\"version number\"\n            },\n            \"_config\": {\n                // chartB config\n            },\n            \"chartD\":{\n                \"package\":{\n                    \"independent\":false,  // if independent is false, it means the original chart is a subchart of `XChart`\n                    \"space\":\"space name\",\n                    \"chart\":\"chart name\",\n                    \"version\":\"version number\"\n                },\n                \"_config\": {\n                    // chartD config\n                }\n            }\n        },\n        \"chartC\": {\n            \"package\":{\n                \"independent\":false,\n                \"space\":\"space name\",\n                \"chart\":\"chart name\",\n                \"version\":\"version number\"\n            },\n            \"_config\": {\n                // chartC config\n            }\n        }\n    }\n}\n\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcaicloud%2Fhelm-registry","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcaicloud%2Fhelm-registry","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcaicloud%2Fhelm-registry/lists"}