Nesta página, descrevemos o processo de upload de uma imagem de contêiner para o Harbor e a implantação dessa imagem na sua instância da Sandbox do GDC.
Preparação
Siga as instruções em Conectar-se à instância para se conectar à instância com acesso à linha de comando do Linux. Você pode se conectar ao gateway por área de trabalho remota ou executar
sshuttle
na sua máquina Linux.Defina as variáveis de ambiente que serão usadas nas instruções a seguir:
export TENANT_PROJECT=TENANT_PROJECT # Intended deployment project for the container workflow. export HARBOR_INSTANCE_NAME=HARBOR_INSTANCE_NAME # Harbor Container Registry instance name. export HARBOR_PROJECT=HARBOR_PROJECT # Container registry project name for your images. export AO_USER=AO_USER # Your user name in the instance, e.g.: fop-my-user@example.com. export INSTANCE_URL=${HARBOR_INSTANCE_NAME}-${TENANT_PROJECT}.org-1.zone1.google.gdch.test. export DOCKER_CONFIG_PATH=DOCKER_CONFIG_PATH # Path to docker config file e.g.: /root/.docker/config.json.
Para criar uma instância do registro do Harbor, siga Criar uma instância do registro do Harbor. Também é possível usar a instância do Harbor do sandbox pré-criada: o
user-project
padrão no sandbox do GDC vem com uma instância do Harbor já implantada,user-haas-instance
, que pode ser usada para desenvolvimento.export HARBOR_INSTANCE_NAME=user-haas-instance export TENANT_PROJECT=user-project export INSTANCE_URL=${HARBOR_INSTANCE_NAME}-${TENANT_PROJECT}.org-1.zone1.google.gdch.test
Fazer upload da imagem para o Harbor
Crie um projeto do Harbor seguindo Criar um projeto do Harbor.
Exemplo:
gdcloud harbor harbor-projects create HARBOR_PROJECT \ --project=TENANT_PROJECT \ --instance=HARBOR_INSTANCE_NAME
Faça login no Docker. Comece em Fazer login no Docker ou no Helm com secrets da CLI.
Faça o download ou crie a imagem do contêiner e siga as instruções de isolamento físico do Google Distributed Cloud para enviar uma imagem ao Harbor.
Por exemplo, este é um fluxo de trabalho para extrair do GitLab e enviar para o Harbor:
Faça login e extraia do registro de contêineres do GitLab.
export GITLAB_ID=GITLAB_ID export GITLAB_PROJECT_NAME=GITLAB_PROJECT_NAME export GITLAB_IMAGE_PATH=registry.gitlab.com/GITLAB_ID/GITLAB_PROJECT_NAME docker login registry.gitlab.com docker pull ${GITLAB_IMAGE_PATH}
Envie a imagem do GitLab para o Harbor:
export TAG=demo-image docker tag ${TAG} ${GITLAB_IMAGE_PATH} docker push ${INSTANCE_URL}/${HARBOR_PROJECT}/${TAG}
Conceder papéis
Permita que o usuário crie secrets e implantações.
Conceda ao usuário permissão para criar secrets adicionando o papel
secret-admin
.gdcloud projects add-iam-policy-binding PROJECT \ --member="user:${AO_USER}" \ --role=secret-admin
Conceda ao usuário permissão para implantar cargas de trabalho de contêineres adicionando a função
namespace-admin
.gdcloud projects add-iam-policy-binding PROJECT \ --member="user:${AO_USER}" \ --role=namespace-admin
Implantar app contêiner
Continue em Criar um secret de extração de imagem do Kubernetes para criar um secret e implantar o app.