{"id":15055423,"url":"https://github.com/vickyphang/helm-charts-on-gitlab","last_synced_at":"2026-02-02T08:41:42.525Z","repository":{"id":251144313,"uuid":"836128013","full_name":"vickyphang/helm-charts-on-gitlab","owner":"vickyphang","description":"Package any application using Helm and access it via Gitlab Package Registry","archived":false,"fork":false,"pushed_at":"2024-08-01T06:20:23.000Z","size":477,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-07T01:34:37.432Z","etag":null,"topics":["gitlab","helm","helm-charts","kubernetes","package-registry"],"latest_commit_sha":null,"homepage":"","language":"Smarty","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vickyphang.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-31T07:55:33.000Z","updated_at":"2024-08-01T06:23:45.000Z","dependencies_parsed_at":"2024-10-12T18:03:25.583Z","dependency_job_id":null,"html_url":"https://github.com/vickyphang/helm-charts-on-gitlab","commit_stats":null,"previous_names":["vickyphang/helm-charts-on-gitlab"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/vickyphang/helm-charts-on-gitlab","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vickyphang%2Fhelm-charts-on-gitlab","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vickyphang%2Fhelm-charts-on-gitlab/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vickyphang%2Fhelm-charts-on-gitlab/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vickyphang%2Fhelm-charts-on-gitlab/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vickyphang","download_url":"https://codeload.github.com/vickyphang/helm-charts-on-gitlab/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vickyphang%2Fhelm-charts-on-gitlab/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263573335,"owners_count":23482631,"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":["gitlab","helm","helm-charts","kubernetes","package-registry"],"created_at":"2024-09-24T21:42:01.694Z","updated_at":"2026-02-02T08:41:37.479Z","avatar_url":"https://github.com/vickyphang.png","language":"Smarty","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Helm Chart Repository on Gitlab Package Registry 🐺\n\n[![GitHub license](https://img.shields.io/github/license/vickyphang/helm-charts-on-gitlab)](https://github.com/vickyphang/helm-charts-on-gitlab/blob/main/LICENSE)\n![GitHub stars](https://img.shields.io/github/stars/vickyphang/helm-charts-on-gitlab)\n\n\u003cp align=\"center\"\u003e \u003cimg src=\"images/logo.png\"\u003e \u003c/p\u003e\n\n### Why Helm?\nApplying YAML configuration files can get overwhelming, especially when needing to deploy into several environments or wanting to version the manifests. It is also cumbersome to maintain plain YAML files for more complex deployments which can easily extend to more than 1000 lines per file.\n\n### Prerequisites\n- Ubuntu VM\n- Helm 3\n- Helm plugin: [cm-push](https://github.com/chartmuseum/helm-push#install)\n- Git\n\n## 1. Setup Gitlab\n- Create new project / repository\n    \u003cp align=\"center\"\u003e \u003cimg src=\"images/create-repo.png\"\u003e \u003c/p\u003e\n- Generate Access Token\n    - Click on your profile picture on the upper left, then click **Edit profile**\n    - On the left side, click **Access Token** then **Add new token**\n        \u003cp align=\"center\"\u003e \u003cimg src=\"images/gen-token.png\"\u003e \u003c/p\u003e\n    - Give appropriate permission for this token. What must be enabled are: `read_repository`, `write_repository`, `read_registry`, and `write_registry`\n    - Copy and store your newly created Access Token on a safe place\n\n## 2. Create Helm Chart\n- Clone gitlab repository\n    ```bash\n    # clone repository\n    git clone https://gitlab.com/phangvicky/helm-charts.git\n\n    # change directory into repo\n    cd helm-charts\n    ```\n- Manually create helm chart structure\n    ```bash\n    mkdir Charts\n    mkdir Charts/app-1\n    touch Charts/app-1/Chart.yaml\n    touch Charts/app-1/values.yaml\n    mkdir Charts/app-1/templates\n    touch Charts/app-1/templates/_helpers.tpl\n    touch Charts/app-1/templates/serviceaccount.yaml\n    touch Charts/app-1/templates/deployment.yaml\n    touch Charts/app-1/templates/service.yaml\n    mkdir packages\n    ```\n-  Package the Helm Chart\n    ```bash\n    # package app-1\n    helm package Charts/app-1 --destination packages\n    ```\n- Generate helm repo index\n    \n    A valid chart repository must have an **index file**. The index file contains information about each chart in the chart repository. The `helm repo index` command will generate an index file based on a given local directory that contains packaged charts.\n    ```bash\n    # generate index.yaml for packaged charts inside folder 'packages'\n    # for the url, you just need to copy the project id of your helm-charts repository\n    helm repo index . --url https://gitlab.com/api/v4/projects/\u003cgitlab-project-id\u003e/packages/helm/stable\n    ```\n- Commit and push all changes to Gitlab repository\n- Publish helm-chart package\n    - Add your helm repostiory\n        ```bash\n        helm repo add --username \u003cusername\u003e --password \u003caccess-token\u003e \u003crepo-name\u003e https://gitlab.example.com/api/v4/projects/\u003cproject-id\u003e/packages/helm/stable\n\n        # example\n        helm repo add --username userv --password glpat-userv-token vicky https://gitlab.com/api/v4/projects/12345678/packages/helm/stable\n        ```\n    - Push the package\n        ```bash\n        helm cm-push packages/\u003cpackage-name\u003e.tgz \u003crepo-name\u003e\n\n        # example\n        helm cm-push packages/app-1-1.0.0.tgz vicky\n        ```\n- Verify your helm repo\n    - Update helm repo\n        ```bash\n        helm repo update\n        ```\n    - List helm repo, and you should get your repo name listed\n        ```bash\n        # list helm repo\n        helm repo ls\n\n        # output\n        NAME        URL\n        vicky       https://gitlab.com/api/v4/projects/12345678/packages/helm/stable\n        ```\n    - Search for published charts inside your repo\n        ```bash\n        helm search repo vicky\n\n        # output\n        NAME            CHART VERSION       APP VERSION     DESCRIPTION\n        vicky/app-1     1.0.0               1.0.0           A Helm chart for Kubernetes\n        ```\n\n## References\n- [Helm Chart Repository with GitHub Pages](https://intverse.medium.com/helm-chart-repository-with-github-pages-225b0b01195c)\n- [The Chart Repository Guide](https://helm.sh/docs/topics/chart_repository/)\n- [Helm charts in the package registry](https://docs.gitlab.com/ee/user/packages/helm_repository/)\n- [Get started with GitLab's Helm Package Registry](https://about.gitlab.com/blog/2021/10/18/improve-cd-workflows-helm-chart-registry/)\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvickyphang%2Fhelm-charts-on-gitlab","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvickyphang%2Fhelm-charts-on-gitlab","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvickyphang%2Fhelm-charts-on-gitlab/lists"}