Configurando o Nexus como repositório do Helm: um guia passo a passo
Hoje, no blog da 4Linux, vamos falar sobre como podemos configurar o Nexus para ser o repositório do Helm.
O que é Helm
É uma ferramenta de empacotamento de software semelhante aos pacotes Linux, como APT e YUM. O Helm é usado para gerenciar pacotes de aplicações voltada ao Kubernetes.
Mais detalhes nesse outro post do blog https://blog.4linux.com.br/o-gerenciador-de-pacotes-helm/
O que é o Nexus
O Nexus é uma ferramenta confiável para armezamento de artefatos e repositórios. Além de ser Open Source, o Nexus possui uma boa documentação, apresenta um bom nível de segurança e controle de acesso, e armazena os artefatos no sistema de arquivos, o que elimina muitas dores de cabeça.
Mais detalhes nesse outro post do blog https://blog.4linux.com.br/repositorios-locais-com-nexus-sonatype/
Pré-requisitos
Para facilitar a criação do nosso ambiente, vou disponibilizar para vocês um repositório com a criação do ambiente de forma automatizada com o Vagrant. Para poder executar esse ambiente, vocês vão precisar ter instalado:
- Vagrant (https://developer.hashicorp.com/vagrant/docs/installation)
- VirutalBox 6.1 (https://www.virtualbox.org/wiki/Download_Old_Builds_6_1)
- Git (https://git-scm.com/downloads)
Inicializando infraestrutura
git clone https://github.com/silvemerson/nexus-helm-repository.git cd nexus-helm-repository vagrant up
Nexus, primeiros passos
Após concluído a criação da infraestrutura, vá no seu navegador http://192.168.56.10:8081/ para fazer o primeiro acesso ao Nexus. Pode ser que demore um pouco até inicializar totalmente a aplicação. Ela está rodando em container, portanto você pode acessar a VM com comando vagrant ssh nexus-server e consultar os logs do container.
Após acessar no navegador, vá em Sign In:
Vai receber a seguinte instrução para realizar o login:
Então na VM do Nexus, vamos executar o seguinte comando para obter a senha de Administrador:
$ docker exec -it nexus cat /nexus-data/admin.password
Coletado a senha de admin e feito o login inicial, o Nexus vai pedir alterar a senha:
Vamos deixar as seguintes credencias:
Usuário: admin Senha: admin
Mantenha a opção abaixo assinalada:
Criando Blob e Repositório
Blob Stores
Agora que estamos acessando o Painel do Nexus, vamos no ícone de engrenagem -> Blob Stores > Create Blob Store:
Selecione o Type como File e preencha conforme informações abaixo:
Agora salve.
Repository
Vá novamente no ícone de engrenagem -> Create repository
Selecione o tipo de repositório como helm(hosted).
Após selecionado a opção do passo anterior, preencha com informações abaixo. Observe que em Blob Store, vamos selecionar o Blob que criamos.
Preenchido, só salvar.
Criando usuário e permissões
Role
Antes de criar nosso usuário, vamos criar uma Role de acesso ao repositório que criamos para o Helm. Para isso, bora lá em ícone de engrenagem -> Security -> Roles:
Selecione o Type como Nexus Role e as demais informações conforme abaixo:
Selecione o seguinte privilegio: nx-repository-view-helm-*-*

Salve e vamos para o próximo passo.
Usuário
Agora que temos nossa Role devidamente criada, vamos criar nosso usuário de acesso ao repositório. Vá em ícone de engrenagem -> Security ->Users -> Create local user:
Preencha os campos conforme abaixo, onde o nosso usuário será o helm_user e a nossa senha helmpass.
Feito isso, associe nosso usuário com a Role que criamos:
Pronto, usuário criado, agora vamos enviar nosso chart.
Enviando Chart
Concluímos as configurações no Nexus, agora vamos na nossa VM do K3s e criar nosso chart, enviar para o repositório e depois fazer o deploy da nossa aplicação.
Acesse VM, dentro da pasta do repositório:
vagrant ssh k3s sudo su && cd
Agora que estamos que estamos na VM como root, vamos inicializar o Kubeconfig do K3s:
export KUBECONFIG=/etc/rancher/k3s/k3s.yaml
Dentro da pasta do usuário root, teremos um diretório chamado de super-mario. Ele que iremos “empacotar”, transformando ele em um chart da seguinte forma:
helm package super-mario
Depois, vamos enviar para o repositório que criamos no Nexus:
curl -u helm_user:helmpass http://192.168.56.10:8081/repository/helm-repository --upload-file super-mario-0.0.1.tgz -v
Conseguimos fazer o envio com sucesso, vamos adicionar esse repositório no nosso ambiente do K3s:
helm repo add super-mario http://192.168.56.10:8081/repository/helm-repository/ --username helm_user --password helmpassAtualizar os repositórios e realizar o deploy da nossa aplicação:
helm repo update
helm install --repo http://192.168.56.10:8081/repository/helm-repository/ super-mario super-mario
Inicializando aplicação no K3s
Nossa aplicação está em execução conforme abaixo:
Vamos criar um port-forward e validar a aplicação:
kubectl port-forward --address 0.0.0.0 pod/<PODNAME> 8080:8080
Ambiente pronto!
E por hoje é só pessoal, esse é o nosso ambiente usando o Nexus para ser o nosso repositório do Helm. Espero que tenham gostado!
Não se esqueçam de compartilhar em suas redes sociais.
Até a próxima.
Líder em Treinamento e serviços de Consultoria, Suporte e Implantação para o mundo open source. Conheça nossas soluções:
About author
Você pode gostar também
Por que você deve investir tempo estudando Python
Por que você deve investir tempo estudando Python No mundo cada vez maior das linguagens de programação, uma delas se destaca como uma ferramenta versátil e poderosa que conquistou os
Entenda o Git: O que é, como funciona e como começar a usar
GIT? O que é? Git é um sistema de controle de versões distribuído, ou seja, ele não precisa de um servidor central para funcionar. É uma ferramenta open source, criada
Guia prático: Acelere o Time To Market com DevOps e Vagrant
Conheça como criar máquinas virtuais com o Vagrant e crie ambientes padronizados iniciando pelo de Desenvolvimento. DevOps tem como objetivo diminuir o Time To Market de um serviço, ou seja,



























