Cloud Shell personalizado


Como muchos sabrán, Google Cloud Shell es un shell interactivo para Google Cloud Platform, que se puede acceder a través de la Cloud Console. Para los que no lo han visto nunca, una CLI de toda la vida pero en lugar de estar en tu pc, es ejecutada en una VM en GCP. Sin embargo, como casi todo en este nuevo mundo «celestial», lo hace como un contenedor Docker y donde hay uno de esos detrás hay una imágen generada a partir de, probablemente, un Dockerfile.

Aprovecho una colaboración de un colega de trabajo para dejarles una imagen «custom» para el Cloud Shell con kubemci, helm (completamiento para bash incluído) y terraform (con completamiento también).

Recuerden copiar esto en un archivo con el nombre Dockerfile. A disfrutarlo:

FROM gcr.io/cloudshell-images/cloudshell:latest

RUN apt-get update && apt-get install \
pwgen netcat python-yaml mtr tcpdump ipcalc sshfs hping3 winrm pry nmap shellcheck -y \
&& rm -rf /var/lib/apt/lists/*

# terraform
COPY --from=hashicorp/terraform /bin/terraform /usr/bin/
RUN echo 'complete -C /usr/bin/terraform terraform' > /etc/profile.d/terraform_bash_completion.sh

# helm
RUN curl https://raw.githubusercontent.com/helm/helm/master/scripts/get | bash
RUN helm completion bash > /etc/bash_completion.d/helm

# kubemci: Command line tool to configure L7 load balancers using multiple kubernetes clusters
ADD https://storage.googleapis.com/kubemci-release/release/latest/bin/linux/amd64/kubemci /usr/local/bin/
RUN chmod +x /usr/local/bin/kubemci

# For some reason, 'ENV CLOUDSDK_COMPUTE_REGION=europe-west1' is ignored in
# in Cloud Shell, using /etc/profile.d/ instead

RUN echo '\n\
export EDITOR=nano \n\
export CLOUDSDK_COMPUTE_ZONE=europe-west1-b \n\
export CLOUDSDK_COMPUTE_REGION=europe-west '\
>> /etc/profile.d/custom_environment_variables.sh

 

 

Deja un comentario