-
Notifications
You must be signed in to change notification settings - Fork 2
/
kube-admin-2.py
102 lines (94 loc) · 3.94 KB
/
kube-admin-2.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
#!/usr/bin/python
# -*- coding: utf-8 -*-
# Juan Manuel Torres - https://github.com/Tedezed
import os
import sys
import yaml
import operator
import pykube
from tools import *
from creates import *
ruta_exec = os.path.dirname(os.path.realpath(__file__)) + "/"
api = pykube.HTTPClient(pykube.KubeConfig.from_file(ruta_exec + "credentials/config"))
# Arguments
list_argv=[]
sys.argv.remove(sys.argv[0])
for elements in sys.argv:
variable_entrada = elements.split("=:")
print variable_entrada
if len(variable_entrada) == 1 or variable_entrada[1] == '':
raise NameError('Error: Parametros de entrada no validos \
[python ejemplo.py variable=:contenido]> =:')
list_argv.append(variable_entrada)
error=True
for argv in list_argv:
if argv[0] == 'metodo':
error=False
metodo=argv[1]
list_argv.remove(argv)
dic_argv = arguments_to_dic(list_argv)
try:
print "MODO DEBUG: %s" % (dic_argv["debug"])
dic_argv["debug"] = True
except:
dic_argv["debug"] = False
# Random
cod_referencia = "%s-%s" % (string_pass_random(4, "lower"), \
key_id(ruta_exec + "id_number"))
nombre_db = "db-%s" % (cod_referencia)
pass_db = string_pass_random(45, "upper")
master_pass = string_pass_random(67, "lower")
nombre_odoo = "odoo-%s" % (cod_referencia)
nombre_ps = "ps-%s" % (cod_referencia)
nombre_mysql = "mysql-%s" % (cod_referencia)
pass_mysql = string_pass_random(45, "upper")
key_api_ps = string_pass_random(32, "upper")
if metodo == "odoo-test":
image_odoo = "odoo"
image_db = "postgres"
init_verify(metodo, dic_argv)
create_volumes_gcloud(nombre_odoo, dic_argv["storage"], dic_argv,api)
create_service_odoo_ps(nombre_odoo, nombre_db, dic_argv, api, metodo)
create_rc_odoo(nombre_odoo, master_pass, image_odoo, nombre_db, pass_db, \
image_db, dic_argv, api, metodo, nombre_mysql, pass_mysql, key_api_ps, \
kminion_ip)
create_ingress(nombre_odoo, dic_argv, api, "odoo")
elif metodo == "odoo-simple":
image_odoo = "gcr.io/gcloud-project/odoo-10-xxx:latest"
image_db = "gcr.io/gcloud-project/postgresql-xxx:latest"
init_verify(metodo, dic_argv)
create_volumes_gcloud(nombre_odoo, dic_argv["storage"], dic_argv,api)
create_service_odoo_ps(nombre_odoo, nombre_db, dic_argv, api, metodo)
create_rc_odoo(nombre_odoo, master_pass, image_odoo, nombre_db, pass_db, \
image_db, dic_argv, api, metodo, nombre_mysql, pass_mysql, key_api_ps, \
kminion_ip)
create_ingress(nombre_odoo, dic_argv, api, "odoo")
elif metodo == "odoo-prestashop":
image_odoo = "gcr.io/gcloud-project/odoo-10-xxx:latest"
image_db = "gcr.io/gcloud-project/postgresql-xxx:latest"
image_ps = "gcr.io/gcloud-project/ps-xxx:latest"
image_mysql = "gcr.io/gcloud-project/mysql-xxx:latest"
nom_dom_ps = dic_argv["ps_dominio"]
init_verify(metodo, dic_argv)
create_gcloudDisks(nombre_odoo, dic_argv["storage"], dic_argv, \
ruta_exec + 'credentials/application_default_credentials.json', \
'plasma-weft-162417', 'us-central1-a')
create_volumes_gcloud(nombre_odoo, dic_argv["storage"], dic_argv,api)
create_service_odoo_ps(nombre_odoo, nombre_db, dic_argv, api, metodo)
create_rc_odoo(nombre_odoo, master_pass, image_odoo, nombre_db, pass_db, \
image_db, dic_argv, api, metodo, nombre_mysql, pass_mysql, key_api_ps, \
kminion_ip)
create_service(nombre_ps, dic_argv, api, "prestashop", "ps-svc.yaml", metodo)
create_service(nombre_mysql, dic_argv, api, "prestashop",\
"mysql-svc-vol.yaml", metodo)
create_rc_mysql(nombre_mysql, image_mysql, nombre_odoo,\
pass_mysql, nom_dom_ps, dic_argv, api)
create_rc_ps(key_api_ps, nombre_ps, image_ps,\
nombre_odoo, nombre_mysql, pass_mysql, nom_dom_ps, dic_argv, api)
create_ingress(nombre_odoo, dic_argv, api, "odoo")
create_ingress(nombre_ps, dic_argv, api, "ps")
if error:
raise NameError('[ERROR 1001] No encontro metodo valido.')
else:
print_summary (nombre_odoo, master_pass, nombre_db, pass_db,\
nombre_ps, nombre_mysql, pass_mysql, key_api_ps, dic_argv, metodo)