Monday, March 18, 2019

Secrets y mucho más

Quería hacer un secret para un pod de mysql-ephemeral.

Lo primero, era que no encontraba la definicion en formato yaml de mysql. Pero si estan en fomato json, encontre un script que lo pasa.


 for i in $(find . -name '*.json');do  python -c 'import sys,json,yaml;print(yaml.safe_dump(json.loads(sys.stdin.read()), default_flow_style=False))' < $i > ${i/json/yaml};done


Esto me dio una mano gigante!. Con esto corriendo, puedo pasar los json hacia yaml!.

El paso siguiente, es que en la definicion original, vemos que esta definido algo como secret. Mas precisamente en....


32 kind: Secret
33 metadata:
34 annotations:
35 template.openshift.io/expose-database_name: '{.data[''database-name'']}'
36 template.openshift.io/expose-password: '{.data[''database-password'']}'
37 template.openshift.io/expose-root_password: '{.data[''database-root-password'']}'
38 template.openshift.io/expose-username: '{.data[''database-user'']}'
39 name: ${DATABASE_SERVICE_NAME}
40 stringData:
41 database-name: ${MYSQL_DATABASE}
42 database-password: ${MYSQL_PASSWORD}
43 database-root-password: ${MYSQL_ROOT_PASSWORD}
44 database-user: ${MYSQL_USER}



Entonces, los borramos, por que sino cuando hago la importación me da un error.

Antes de la importación , debo crear mi secret,que el nombre será mysql.


oc create secret generic mysql --from-literal='database-user'='mysql' --from-literal='database-password'='centos' --from-literal='database-root-password'='centos' --from-literal='database-name'='prueba'



Y luego si podemos correr el comando, una vez que tenemos el secret.

oc new-app -f mysql-ephemeral.yaml


Luego vemos algo asi ( De paso lo escalé)

[root@qqmelo1c ~]# oc get pods -o=wide
NAME            READY     STATUS    RESTARTS   AGE       IP             NODE                       NOMINATED NODE
mysql-1-4x2rb   1/1       Running   0          3m        10.128.0.164   qqmelo1c.mylabserver.com   
mysql-1-747nw   1/1       Running   0          3m        10.129.0.51    qqmelo2c.mylabserver.com   
mysql-1-cc452   1/1       Running   0          4m        10.129.0.49    qqmelo2c.mylabserver.com   
mysql-1-mj9wt   1/1       Running   0          3m        10.129.0.52    qqmelo2c.mylabserver.com   
mysql-1-wf4hn   1/1       Running   0          4m        10.129.0.50    qqmelo2c.mylabserver.com   
mysql-1-zgjkn   1/1       Running   0          3m        10.128.0.165   qqmelo1c.mylabserver.com   
[root@qqmelo1c ~]# mysql -u mysql -pcentos -h 10.129.0.51
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 43
Server version: 5.7.24 MySQL Community Server (GPL)

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| prueba             |
+--------------------+
2 rows in set (0.00 sec)

MySQL [(none)]>


No comments: