Pular para o conteúdo principal

Projeto

Um projeto no Harbor contém todos os repositórios de um aplicativo.

Imagens não podem ser enviadas para o Harbor sem que um projeto exista.

O Role-Based Access Control (RBAC) é aplicado aos projetos, para que somente usuários com as funções apropriadas possam executar determinadas operações.

Logo na criação de um projeto podemos definir suas cotas e se o projeto será privado ou público. Se não quiser definir cotas utilize -1 que já vem setado.

  • Público: Qualquer usuário pode fazer um pull das imagens deste projeto.
  • Privado: Somente usuários que são membros do projeto podem fazer o pull de imagens e o push caso tenham permissão.

alt text

Se necessário o administrador do Harbor consegue ajustar as cotas mais tarde.

alt text

Como usamos o administrador do Harbor para criar um projeto vamos adicionar um membro como administrador do projeto.

alt text

O usuário david já existe e foi criado anteriormente, mas ainda não esta em nenhum projeto.

alt text

alt text

alt text

E a partir de agora vamos logar como o usuário david e ver o que temos de acesso.

alt text

As imagens são feitas em camadas. Dentro de um mesmo projeto existe o reaproveitamento de camadas para diminuir o espaço em disco, mas não é reaproveitado de forma global. Por exemplo, se vamos utilizar de base uma imagem Alpine no projetoX e no projetoY, esta imagem existirá duas vezes, pois estão em projetos diferentes.

Repositórios

Um projeto possui repositórios. Os repositórios serão criado automaticamente de acordo com o path durante o push das imagens.

Por exemplo se fizermos o push das imagens abaixo teremos 2 repositórios reponamex e reponamey.

  • reponamex/grupox/imagemx:tagx
  • reponamey/grupoy/imagemy:tagy

Se fizermos agora um push da imagem reponamex/grupoz/imagemx:tagx, estará no mesmo repositório, mas em outro caminho. Se fizermos o push de outra imagem reponamex/grupoz/imagemz:tagz fará parte do reponamex/grupoz.

Usamos os caminhos para criar uma árvore, sendo que o primeiro nome é o do repositório dentro do projeto.

Faremos uma demonstração quanto a isso mais pra frente.