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.

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

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

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



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

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.