- Desplegar Jenkins en K8s
- Conectar Jenkins con K8s
- Instalar los plugins de docker y K8s
- Crear un Pod Template con el container Docker
- Crear un Pipeline (a partir de un Jenkinsfile) que compile el dockerfile del siguiente proyecto https://github.com/nelsonyaccuzzi/web-go-public
- Crear un container que tenga solo el binario de kubectl, pushearlo a dockerhub
- Agregar el container al pod template que anteriormente creamos
- Crear un pipeline que haga un
kubectl get pod
del cluster actual (es necesario pasar los parametros-s
--token
--insecure-skip-tls-verify
con sus respectivos valores) - Crear un pipeline que cuando se ejecute en la rama develop haga el build de una imagen de docker anterior, y cuando este en la rama master haga un
kubectl get pod
del cluster - Crear un pipeline que cuando se ejecute en la rama develop haga el build de la imagen docker y lo pushee a dockerhub
- Crear un pipeline que aplique los manifiestos (con
kubectl
) creados para la aplicacion web-go vista anteriormente - Crear un pipeline que en la rama develop construya la imagen y la publique y que en la rama master aplique el manifiesto
- Crear un pipeline que actualice la imagen del deployment con la nueva imagen construida (esto se logra utilizando el
BUILD_NUMBER
del job de jenkins). - Crear un pipeline que en la rama develop contruya la imagen, la publique y luega tambien que despliegue el manifiesto en una namespace de desarrollo, y que en la rama master solo despliegue el manifiesto en el namespace de produccion (es posible que se necesite dos manifiestos)
- Usar un Jenkinsfile https://www.jenkins.io/doc/book/pipeline/jenkinsfile/
- Sintaxis https://www.jenkins.io/doc/book/pipeline/syntax/
- Docker Pipeline plugin https://docs.cloudbees.com/docs/admin-resources/latest/plugins/docker-workflow
- K8s Plugin https://plugins.jenkins.io/kubernetes/
- Variables de ambiente ${YOUR_JENKINS_HOST}/env-vars.html