Blank white background with no objects or features visible.

NOVA PESQUISA: 80% dos custos de IA são invisíveis na fatura. Mais de 200 líderes revelam para onde o dinheiro vai. Leia→

Charts Helm no ArtifactHub via hospedagem em páginas do Github

By TrueFoundry

Updated: August 17, 2023

Vamos discutir como podemos hospedar nossos helm charts no GitHub Pages e permitir que outras pessoas usem nossos charts no ArtifactHub. Antes de entender o processo, tentaremos entender esses termos da forma mais simples.

O que é um Helm Chart

Helm charts é a forma como você templatiza seus recursos Kubernetes que deseja implantar. Se você deseja criar recursos Kubernetes em vários clusters (ou mesmo no mesmo cluster) com valores diferentes, você cria um modelo para os recursos e os empacota. Este pacote é conhecido como helm chart.

GitHub Pages

GitHub Pages é um recurso do GitHub que permite criar um site ou uma página web hospedada nos servidores do GitHub. Se você tiver um simples index.html arquivo, então você pode hospedar este arquivo HTML usando o nome de domínio fornecido pelo GitHub, que geralmente segue o formato username.github.io . É uma forma de você compartilhar seu trabalho ou exibir seus projetos online sem a necessidade de um serviço de hospedagem web separado. No nosso caso, iremos hospedar nossos helm charts no GitHub Pages.

ArtifactHub

ArtifactHub é uma plataforma baseada na web que atua como um repositório central para várias distribuições de software, como helm charts, OPA, etc. Depois de criarmos nosso helm chart e o hospedarmos no GitHub Pages, o tornaremos detectável pela comunidade, exibindo-o no ArtifactHub.

O ArtifactHub não hospeda os Helm charts em si, mas serve como um registro para repositórios de Helm charts. Os desenvolvedores podem publicar seus Helm charts em seu repositório preferido, como GitHub, GitLab ou Bitbucket, e então registrar seu repositório no ArtifactHub.

Hospedando Helm Charts via GitHub Pages

Agora veremos como podemos aproveitar os recursos de Pages do GitHub para hospedar os helm charts de nossa aplicação. Neste exemplo, estou usando um helm chart de amostra, mas você também pode usar seus próprios helm charts personalizados da mesma forma.

Passo 1:  Criando um helm chart de amostra

Começaremos criando um helm chart de amostra

helm create sample-nginx

Passo 2: Crie um repositório GitHub

Vamos criar um repositório GitHub público onde iremos hospedar os charts.

  • Crie um repositório GitHub
  • Certifique-se de que seja público
  • Crie um diretório com o nome de charts que conterá o seu helm chart
  • charts diretório está no nível raiz do seu repositório
  • Envie seus charts para a branch main branch

$ tree .
.
├── README.md
└── charts
   └── sample-nginx
       ├── Chart.yaml
       ├── charts
       ├── templates
       │   ├── NOTES.txt
       │   ├── _helpers.tpl
       │   ├── deployment.yaml
       │   ├── hpa.yaml
       │   ├── ingress.yaml
       │   ├── service.yaml
       │   ├── serviceaccount.yaml
       │   └── tests
       │       └── test-connection.yaml
       └── values.yaml

Criamos um repositório e ele está hospedado aqui:

Passo 3: Criar Token de Acesso do Github

Assim que nossos charts estiverem na main branch, precisamos criar um pipeline que possa criar um release do GitHub. Este release do GitHub, por sua vez, publicará nossos charts. Para isso, precisamos de um token a ser criado com um conjunto específico de permissões que serão então utilizados em nosso pipeline para lançar gráficos.

  • Clique no seu perfil do GitHub no canto superior direito
  • Vá para Configurações.
  • Vá para Configurações de Desenvolvedor na última opção no painel esquerdo.
  • Vá para Tokens de Acesso Pessoal e selecione Tokens de granularidade fina.
  • Clique em Gerar novo token
Accessing Github Page for Helm Chart
  • Dê um nome ao token e selecione a data de expiração. Por enquanto, estou usando 7 dias, após os quais o token se tornará inútil.
  • Em Acesso ao Repositório, selecione Apenas repositórios selecionados e escolha nosso repositório do GitHub onde estamos trabalhando
Access token for Hem Chart
  • Na seção de permissões, só precisamos usar as permissões de Repositório.
  • Nesta seleção, precisamos de Leitura e escrita para Conteúdo
  • No geral, precisamos apenas destas permissões
  • Assim que o token for gerado, guarde-o em segurança para o próximo passo.

Passo 4: Configurando o GitHub Pages

Podemos usar o GitHub Pages para hospedar nosso site diretamente no GitHub (estaticamente).

  • Vamos criar outra branch no repositório com o nome gh-pages e certifique-se de nomear a branch como gh-pages apenas.
  • Nesta branch, remova tudo e crie apenas um arquivo simples index.html para testar a hospedagem. Envie suas alterações para o GitHub.

<!DOCTYPE html>
<html>
<head>
<title>Gráficos de exemplo</title>
<style>
 .chart {
  width: 400px;
  height: 300px;
  margin: 20px;
  border: 1px solid #ccc;
  box-shadow: 2px 2px 5px #ccc;
  display: inline-block;
  vertical-align: top;
  padding: 10px;
  box-sizing: border-box;
  font-size: 14px;
  line-height: 1.5;
 }
 
 .chart h3 {
  margin-top: 0;
  font-size: 18px;
  font-weight: bold;
 }
 
 .chart p {
  margin: 0;
 }
</style>
</head>
<body>
<h1>Gráficos de exemplo</h1>
<div class="chart">
 <h3>Gráfico 1</h3>
 <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer euismod diam et purus hendrerit mollis.</p>
 <!-- adicione seu código de gráfico aqui -->
</div>
<div class="chart">
 <h3>Gráfico 2</h3>
 <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer euismod diam et purus hendrerit mollis.</p>
 <!-- adicione seu código de gráfico aqui -->
</div>
<div class="chart">
 <h3>Gráfico 3</h3>
 <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer euismod diam et purus hendrerit mollis.</p>
 <!-- adicione seu código de gráfico aqui -->
</div>
</body>
</html>

  • Vá para Configurações sob o nome do seu repositório e clique em Páginas no painel esquerdo.
  • Na seção de Compilação e implantação, escolha o Branch gh-pages e aguarde algum tempo para o GitHub processá-lo. Assim que estiver pronto, você receberá um URL na mesma janela. Clicar nele mostrará o index.html que criamos.
  • Clique aqui para verificar nosso index.html — https://dunefro.github.io/sample-charts/
  • Agora, em vez de hospedar este arquivo HTML, hospedaremos nossos gráficos Helm.

Passo 5: Criando pipeline no GitHub Actions

Nas etapas anteriores, discutimos sobre o pipeline que usará o token de acesso para criar um GitHub Release. Você pode escolher qualquer ferramenta preferida para realizar esta tarefa, mas eu escolherei o GitHub Actions para isso. O GitHub Actions é mais uma ferramenta nativamente suportada no GitHub para realizar tarefas de CI/CD.

Antes de criar o pipeline, criaremos uma variável secreta para passar o token que criamos na tarefa anterior.

  • Vá para o seu repositório e clique em Configurações sob o nome do seu repositório
  • Vá para Segredos e Variáveis no painel esquerdo e clique em Ações
  • Clique em Novo Segredo do Repositório e cole o token

Este token agora pode ser usado no pipeline para enviar os releases.

Agora criaremos o pipeline do GitHub Action

  • Crie um diretório .github/workflows no nível raiz do seu repositório na main branch.
  • Este diretório é o diretório padrão onde mantemos todos os pipelines de CI/CD para o GitHub Actions executar.
  • Crie um arquivo chamado release.yaml dentro do diretório acima.
  • Cole o seguinte conteúdo

name: Release Charts

on:
 push:
   branches:
     - main

jobs:
 release:
   permissions:
     contents: write # para enviar o lançamento do gráfico e criar um lançamento (helm/chart-releaser-action)

   runs-on: ubuntu-latest
   steps:
     - nome: Obter Código
       usa: actions/checkout@v3
       com:
         fetch-depth: 0      

     - nome: Configurar Git
       run: |
         git config user.name "$GITHUB_ACTOR"
         git config user.email "$GITHUB_ACTOR@users.noreply.github.com"  
     - nome: Configurar Helm
       usa: azure/setup-helm@v3.5
       com:
         versão: v3.9.2

     - nome: Executar chart-releaser
       usa: helm/chart-releaser-action@v1.5.0
       env:
         CR_TOKEN: "${{ secrets.HELM_RELEASE_TOKEN }}"

Este pipeline é muito simples. Vamos entendê-lo rapidamente.

  1. nome — nome do pipeline
  2. on — condição para executar o pipeline, aqui especificamos que ele deve ser executado a cada push para main branch.
  3. jobs — o trabalho real que contém o código do pipeline. Ele verifica as permissões de write no conteúdo que já concedemos
  4. steps definem as etapas do pipeline. Na qual a primeira etapa é usar actions/checkout@v3 . Idealmente, se você estiver criando o pipeline, você faria primeiro o checkout do código. Em vez de escrever o código para fazer o checkout, o GitHub oferece uma ação que pode ser usada diretamente em vez de escrever o código.
  5. Na segunda etapa, executamos os comandos para configurar o git. Da mesma forma, na terceira etapa, usamos azure/setup-helm ação que configurará o helm para nós.
  6. Na última etapa, usamos helm/chart-releaser-action para lançar o chart do helm. Para o lançamento, exigimos o token secreto que já criamos e passamos no pipeline através do nome do token HELM_RELEASE_TOKEN . Esta ação também criará um index.yaml em gh-pages ramo que fará com que a página do GitHub atue como um registro estático para os gráficos Helm.

Passo 6: Execute o pipeline e verifique se os lançamentos foram criados.

Agora faremos uma pequena alteração no README.md arquivo do repositório na main ramo para que o pipeline seja acionado. Quando enviei as alterações, consegui ver um pequeno ponto laranja que indica que um pipeline está em execução.

  • Vá para Ações, abaixo do nome do repositório, e verifique os pipelines em execução.
  • Assim que o pipeline terminar, podemos ir para gh-pages ramo e verificar se index.yaml foi criado ou não.
  • index.yaml é uma forma pela qual o Helm consegue identificar qualquer site hospedado estaticamente como um registro Helm.
  • Assim que o pipeline terminar, outro pipeline será acionado automaticamente com o nome de construção e implantação de páginas que é criado automaticamente pelo GitHub para hospedar as alterações que fazemos na branch gh-pages tornando index.yaml disponível publicamente. — https://dunefro.github.io/sample-charts/index.yaml
  • Podemos verificar as releases no GitHub para observar que nosso gráfico Helm foi lançado na página de Releases. — https://github.com/dunefro/sample-charts/releases

Passo 7: Confirmar o lançamento implantando-o em um cluster minikube

Para testar se nosso registro Helm foi criado com sucesso ou não

  • Crie um minikube cluster
  • Execute o comando abaixo

# adicionar o repositório
helm repo add sample-charts https://dunefro.github.io/sample-charts/
helm repo update

# instalar os gráficos
helm upgrade --install test-nginx sample-charts/sample-nginx

# verificar pods
$ kubectl get pods
NOME                                      PRONTO   STATUS    REINÍCIOS   IDADE
test-nginx-sample-nginx-b95bb4f46-tbppn   1/1     Em execução   0          30s

Nossos charts estão funcionando bem.

Configurando o ArtifactHub

Agora veremos como podemos configurar uma conta no ArtifactHub para que possamos mostrar nossos helm charts à comunidade. Você também poderá encontrar outros charts da comunidade, como

Passo 1: Crie uma conta no ArtifactHub e crie um repositório

Agora nossos charts estão hospedados. Precisamos garantir que eles possam ser usados por outros desenvolvedores via ArtifactHub.

  • Acesse https://artifcathub.io e cadastre-se.
  • Depois disso, clique no seu perfil no ícone do canto superior esquerdo e depois clique em Painel de Controle.
  • Clique em + Adicionar Repositório e adicione os detalhes do repositório. Certifique-se de usar o URL onde seus charts estão hospedados nas páginas do GitHub.
  • Agora espere e relaxe. O ArtifactHub buscará automaticamente os detalhes usando o index.yaml hospedado em nossas páginas

Passo 2: Verifique seu repositório

Podemos ver nosso repositório sendo criado e, assim que o ArtifactHub conseguir extrair os dados, ele também começará a aparecer nas pesquisas. Agora queremos aplicar a tag de editor verificado, algo assim

Para isso, precisamos adicionar um arquivo artifacthub-repo.yml no gh-pages branch como um arquivo de metadados que será lido pelo ArtifactHub, verificando assim que somos os proprietários do registro.

  • Copie o ID do repositório que criamos.
  • Crie um arquivo chamado artifacthub-repo.yml no gh-pages branch com o seguinte conteúdo

repositoryID: 67d52f16-b102-4661-bfa5-9e6694587e24
owners: # (opcional, usado para reivindicar a propriedade do repositório)
 - name: Vedant Pareek
   email: dunefro@gmail.com

  • Atualize a versão do seu chart para que o ArtifactHub e o GitHub Actions possam detectá-lo.
  • Aguarde um pouco para que o ArtifactHub realize a verificação no registro.

É assim que costumávamos hospedar nossos charts Helm públicos em Truefoundry. A TrueFoundry é uma plataforma de MLOps, LLMOps que simplifica toda a jornada do ciclo de vida de levar os modelos de machine learning do desenvolvimento à produção. Ela leva em consideração todos os pontos problemáticos ao longo da jornada do ciclo de vida do Machine Learning para proporcionar facilidade e conforto na construção de modelos.

The fastest way to build, govern and scale your AI

Sign Up
Table of Contents

Govern, Deploy and Trace AI in Your Own Infrastructure

Book a 30-min with our AI expert

Book a Demo

The fastest way to build, govern and scale your AI

Book Demo

Discover More

October 5, 2023
|
5 min read

<Webinar> Vitrine de GenAI para Empresas

Best Fine Tuning Tools for Model Training
May 3, 2024
|
5 min read

As 6 Melhores Ferramentas de Fine Tuning Para Treinamento de Modelos em 2026

May 25, 2023
|
5 min read

LLMs de Código Aberto: Abrace ou Pereça

August 24, 2023
|
5 min read

Implantações de Machine Learning em 2023

May 21, 2026
|
5 min read

Adicionando OAuth2 a Jupyter Notebooks no Kubernetes

Engenharia e Produto
May 21, 2026
|
5 min read

Uma equipe de 2 pessoas atendendo um modelo para 1,5 milhão de pessoas com TrueFoundry

Engenharia e Produto
May 21, 2026
|
5 min read

Acelere o Processamento de Dados em 30–40x com NVIDIA RAPIDS no TrueFoundry

GPU
Engenharia e Produto
May 21, 2026
|
5 min read

Uma Parceria para IA Responsável: Truefoundry e Enkrypt AI

No items found.
No items found.

Recent Blogs

Black left pointing arrow symbol on white background, directional indicator.
Black left pointing arrow symbol on white background, directional indicator.
Take a quick product tour
Start Product Tour
Product Tour