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

Built for Speed: ~10ms Latency, Even Under Load
Blazingly fast way to build, track and deploy your models!
- Handles 350+ RPS on just 1 vCPU — no tuning needed
- Production-ready with full enterprise support
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
chartsque conterá o seu helm chart chartsdiretório está no nível raiz do seu repositório- Envie seus charts para a branch
mainbranch
$ 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

- 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

- Na seção de permissões, só precisamos usar as permissões de Repositório.
- Nesta seleção, precisamos de
Leitura e escritaparaConteú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-pagese certifique-se de nomear a branch comogh-pagesapenas. - Nesta branch, remova tudo e crie apenas um arquivo simples
index.htmlpara 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-pagese aguarde algum tempo para o GitHub processá-lo. Assim que estiver pronto, você receberá um URL na mesma janela. Clicar nele mostrará oindex.htmlque 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/workflowsno nível raiz do seu repositório namainbranch. - 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.yamldentro 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.
nome— nome do pipelineon— condição para executar o pipeline, aqui especificamos que ele deve ser executado a cada push paramainbranch.jobs— o trabalho real que contém o código do pipeline. Ele verifica as permissões dewriteno conteúdo que já concedemosstepsdefinem as etapas do pipeline. Na qual a primeira etapa é usaractions/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 umaaçãoque pode ser usada diretamente em vez de escrever o código.- Na segunda etapa, executamos os comandos para configurar o git. Da mesma forma, na terceira etapa, usamos
azure/setup-helmação que configurará o helm para nós. - Na última etapa, usamos
helm/chart-releaser-actionpara 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 tokenHELM_RELEASE_TOKEN. Esta ação também criará umindex.yamlemgh-pagesramo 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-pagesramo e verificar seindex.yamlfoi 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áginasque é criado automaticamente pelo GitHub para hospedar as alterações que fazemos nabranch gh-pagestornandoindex.yamldisponí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
minikubecluster - 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.yamlhospedado 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.ymlnogh-pagesbranch 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.
TrueFoundry AI Gateway delivers ~3–4 ms latency, handles 350+ RPS on 1 vCPU, scales horizontally with ease, and is production-ready, while LiteLLM suffers from high latency, struggles beyond moderate RPS, lacks built-in scaling, and is best for light or prototype workloads.
The fastest way to build, govern and scale your AI

















.webp)






.webp)

.webp)
.webp)





.png)



