Skip to content

Commit 218983d

Browse files
author
unknown
committed
add README file
1 parent 72928e4 commit 218983d

File tree

1 file changed

+55
-1
lines changed

1 file changed

+55
-1
lines changed

Diff for: README.md

+55-1
Original file line numberDiff line numberDiff line change
@@ -1 +1,55 @@
1-
# gke_
1+
# Challenge DevOps
2+
3+
> ### Pre-requisitos:
4+
5+
> #### Cuenta GCP (Google Cloud Platform) - Utilizar cuenta free o crear una para evitar cobros a tu persona.
6+
> #### Crear un Service Account y bajar las credenciales en formato json.
7+
8+
9+
## TASK 1:
10+
11+
Crear un script bash o makefile, que acepte parámetros (CREATE, DESTROY y OUTPUT) con los siguientes pasos:
12+
13+
Exportar las variables necesarias para crear recursos en GCP (utilizar las credenciales previamente descargadas).
14+
15+
Utilizar terraform o pulumi para crear un Cluster de Kubernetes de un solo nodo (GKE).
16+
17+
Instalar ingress controller en el Cluster de k8s.
18+
19+
Crear una imagen docker para desplegar una aplicación tipo RESTFUL API, basada en python que responda a siguientes dos recursos:
20+
21+
/greetings: message —> “Hello World from $HOSTNAME”.
22+
23+
/square: message —> number: X, square: Y, donde Y es el cuadrado de X. Se espera un response con el cuadrado.
24+
25+
Subir la imagen el registry propio del proyecto gcp ej: gcr.io/$MYPROJECT/mypythonapp.
26+
27+
Desplegar la imagen con los objetos mínimos necesarios (no utilizar pods ni replicasets directamente).
28+
29+
El servicio debe poder ser consumido públicamente.
30+
31+
> #### NOTA: variabilizar todos los campos que lo ameritan, por ejemplo el PROJECT, para que el script pueda ser ejecutado por otra persona con otra cuenta GCP.
32+
33+
34+
35+
## TASK 2:
36+
37+
Crear un script bash o makefile, con los siguientes pasos:
38+
39+
Exportar las variables necesarias para crear recursos en GCP (utilizar las credenciales previamente descargadas).
40+
41+
Utilizar terraform o pulumi para crear un Cluster de Kubernetes de un solo nodo (GKE).
42+
43+
Crear una VM basada en Centos
44+
45+
Instalar Jenkins en la VM (Puede ser Instalado con Docker o como Servicio, pero es importante que la instalación se realice a través de un playbook de ansible)
46+
47+
Instalar plugins estándar de pipeline,
48+
49+
Crear un sharedlib que pueda compilar maven.
50+
51+
Crear un Job que haga uso del sharedlib para compilar exitosamente un proyecto java simple tipo “Hello World”
52+
53+
El repositorio para la aplicación de Java debe ser publico.
54+
55+
> #### Nota: Todo debe realizarse de manera automática y que sea idempotente, para que cualquier persona pueda alcanzar el mismo resultado con sus propia cuenta, project y credenciales. En el uso de ansible se penalizara para la evaluación la no utilización de los módulos especializados y por su sustitución de modelos genéricos como shell y command.

0 commit comments

Comments
 (0)