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
103
104
105
106
|
# File 'lib/ktools/tools/spy.rb', line 16
def start
case @action
when 'drop registry'
puts "Deleting Docker Registry for #{@subject}..."
puts ""
registry_name = "#{@subject}-registry"
Sh.ell("kubectl delete secret #{registry_name}")
when 'create registry'
puts "Creating Docker Registry for #{@subject}..."
puts ""
registry_name = "#{@subject}-registry"
env_path = "#{@cfg["secrets"]}/#{@env}/#{@subject}"
env_file = "#{env_path}/registry.json"
envd = Oj.load(File.read(env_file))
kube_cmd = " kubectl create secret docker-registry \#{registry_name} \\\n --docker-server=\#{envd[\"KSPY_DOCKER_SERVER\"]} \\\n --docker-username=\#{envd[\"KSPY_DOCKER_USER\"]} \\\n --docker-password=\#{envd[\"KSPY_DOCKER_PASSWORD\"]}\n HEREDOC\n\n puts Sh.ellb!(kube_cmd)\n when 'drop config'\n puts \"Deleting configMap for \#{@subject}...\"\n puts \"\"\n\n config_name = \"\#{@subject}-config-map\"\n\n Sh.ell(\"kubectl delete configMap \#{config_name}\")\n when 'apply config'\n puts \"Updating/Creating configMap for \#{@subject}...\"\n\n unless @env\n puts \"\"\n puts \"Please, express the environment.\"\n puts \"It can be 'production' or 'staging', like:\"\n puts \"$ kt spy apply config appslug staging\"\n exit 1\n end\n\n env_path = \"\#{@cfg[\"secrets\"]}/\#{@env}/\#{@subject}\"\n config_map_file = \"\#{env_path}/config_map.yml\"\n\n Sh.ell(\"kubectl apply -f \#{config_map_file}\")\n when 'drop ingress'\n puts \"Deleting ingress for \#{@subject}...\"\n puts \"\"\n\n ingress_name = \"\#{@subject}-ingress\"\n\n Sh.ell(\"kubectl delete ingress \#{ingress_name}\")\n when 'apply ingress'\n puts \"Updating/Creating ingress for \#{@subject}...\"\n\n unless @env\n puts \"\"\n puts \"Please, express the environment.\"\n puts \"It can be 'production' or 'staging', like:\"\n puts \"$ kt spy apply ingress appslug staging\"\n exit 1\n end\n\n env_path = \"\#{@cfg[\"secrets\"]}/\#{@env}/\#{@subject}\"\n ingress_file = \"\#{env_path}/ingress.yml\"\n\n Sh.ell(\"kubectl apply -f \#{ingress_file}\")\n when 'drop all'\n puts \"Deleting ALL Kubernetes resources of \#{@subject}...\"\n\n puts \"\"\n puts \"Ctrl-C to cancel in 5 seconds...\"\n sleep 5\n puts \"Starting...\"\n\n drop_cmd = <<~HEREDOC\n kubectl delete deployment \#{@subject}-deployment &&\n kubectl delete configMap \#{@subject}-config-map &&\n kubectl delete ingress \#{@subject}-ingress &&\n kubectl delete service \#{@subject}-service &&\n kubectl delete secret \#{@subject}-registry\n HEREDOC\n\n Sh.ellb!(drop_cmd)\n else\n Help.display\n end\nend\n"
|