viernes, 29 de diciembre de 2017

Usando registros de "Containers" entre distintos proyectos


Comparta el mismo "Container Registry" en diferentes entornos GKE.

En la mayoría de las organizaciones, es una práctica común administrar las imágenes de Docker en un solo espacio de nombres, como Google Cloud Project o AWS.

Este proyecto dedicado de CI / CD en la nube crea, pushes, prueba imágenes de Docker e implementa continuamente nuevas versiones de imágenes en cada entorno de Google Kubernetes Engine.

Esos entornos se aprovisionan en proyectos separados, como desarrollo, puesta en escena y producción.

Con Container Builder o cualquier otro elemento de configuración como Gitlab CI / CD o Circle CI, por nombrar algunos, se puede utilizar para fines de CI / CD.

Una pregunta interesante es cómo un clúster GKE de cada entorno puede hacer un pull docker imágenes  desde un mismo proyecto de CI / CD.

El consejo: otorgar objectView en  Cloud Storage que alberga las imágenes del contenedor Docker.

Otorgar acceso a otro proyecto

Digamos que el clúster GKE del proyecto coolgig-dev necesita obtener una imagen Docker de ElasticSearch, como por ejemplo: http://gcr.io/coolgig-cicd/elasticsearch:6.1.1

De acuerdo con la documentación sobre el control de acceso para Container Registry, GKE, de forma predeterminada, utiliza la cuenta de servicio de cálculo de recursos, es decir <project-number> -compute@developer.gserviceaccount.com, donde <project-number> se puede encontrar a través de:

gcloud projects describe coolgig-dev --format='value(projectNumber)'
A continuación, podemos otorgar la siguiente función objectView del siguiente depósito GCS a la cuenta de del entorno de "compute-engine" para  coolgig-dev.

gsutil iam ch \
serviceAccount:<project-number>-compute@developer.gserviceaccount.com:objectViewer \
gs://artifacts.coolgig-cicd.appspot.com
Y ahora puede extraer una imagen del CI / CD GCR en su proyecto de entorno de desarrollo, aunque proviene de un proyecto de GCP diferente:

gcloud config set project coolgig-dev
gcloud docker -a
docker pull gcr.io/coolgig-cicd/elasticsearch:6.1.1
________