takelage 0.9.0 → 0.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8c4557b8751329204617243e1549062dce48e11853d1d395f60df6699125cc9b
4
- data.tar.gz: c997a19ee1a62f314116f8afc8ae81f0547336ecb8e96fd523d41509777aeb44
3
+ metadata.gz: 0d4e9f1786e7e4c7d21e9cada3ed8f29b332aba1e9a4c9d6ad9883aad14aa643
4
+ data.tar.gz: 73028ac09504b53a127cc8c02d9b7d912e1e24962513955f08fe401f2ab2931f
5
5
  SHA512:
6
- metadata.gz: ed0c0f46b791f03bb63d97f6e447a9e012dec93f940827ddbf6acb661c8e8a51494ebc3a27f8452bcd2746aa82db25af2d0d927af431939010cff468d4732a7e
7
- data.tar.gz: '0848f94cea6016d8ae9020564fe56805927600c7b7778310b10ab824a68b69141769de52e89c83d1d16087bb4907116b3e1db7c281403093eb4b83c3ea692f63'
6
+ metadata.gz: ff27f4263162d199b3aa7f9f54ee01b8eb537e3dc6f9a260689fa499f9fdc6e700483657d5d2b72198d431a3ca454c8a4cbc07e256c354bc538fe7bb5395bf86
7
+ data.tar.gz: 49dd92f06b1ad60f87f1af59ac96b6ad3fbc17005de3eaf29c748e396fd88d2232a1db4e0b7bd2e3400e6fb6fae8acba82c49b15ae15aa450a0c823f8840f386
data/README.md CHANGED
@@ -16,6 +16,7 @@ The takelage devops framework consists of these projects:
16
16
 
17
17
  | App | Description |
18
18
  | --- | ----------- |
19
+ | *[takelage-doc](https://github.com/geospin-takelage/takelage-doc)* | takelage documentation |
19
20
  | *[takelage-dev](https://github.com/geospin-takelage/takelage-dev)* | takelage development environment |
20
21
  | *[takelage-var](https://github.com/geospin-takelage/takelage-var)* | takelage test plugin |
21
22
  | *[takelage-cli](https://github.com/geospin-takelage/takelage-cli)* | takelage command line interface |
@@ -30,7 +31,7 @@ through the [gem](https://github.com/rubygems/rubygems)
30
31
  command line tool:
31
32
 
32
33
  ```bash
33
- gem install takelage fylla json version_sorter thor
34
+ gem install takelage
34
35
  ```
35
36
 
36
37
  ## Commands
@@ -140,7 +141,7 @@ to overwrite defaults like:
140
141
 
141
142
  ```yaml
142
143
  ---
143
- docker_image: takelage-mock
144
+ docker_repo: takelage-mock
144
145
  ```
145
146
 
146
147
  ### Project Files
@@ -5,22 +5,34 @@ bit_dev: 'takelage'
5
5
  bit_export_to_scope: 'bit export --skip-update %{scope}'
6
6
  bit_export_all: 'bit export --skip-update --all'
7
7
  bit_import_all: 'bit import --ignore-package-json --ignore-dist --skip-update'
8
- bit_import_cid: 'bit import --ignore-package-json --ignore-dist -p %{dir} %{cid}'
8
+ bit_import_cid: 'bit import --ignore-package-json --ignore-dist --skip-update --path %{dir} %{cid}'
9
9
  bit_list_remotes: 'bit remote --skip-update'
10
10
  bit_list_scope: 'bit list --skip-update --json %{scope}'
11
11
  bit_remote: ''
12
12
  bit_repo: 'bit list'
13
13
  bit_scope_root: '/bit'
14
14
  bit_scope_list: 'find -L %{root} -name scope.json'
15
- bit_scope_new: 'mkdir -p %{root}/%{scope} && cd %{root}/%{scope} && bit init -b'
16
- bit_scope_remove: 'rm -fr %{root}/%{scope}'
15
+ bit_scope_new: 'mkdir -p %{root}/%{scope} && cd %{root}/%{scope} && bit init --bare'
16
+ bit_scope_remove: 'rm --force --recursive %{root}/%{scope}'
17
17
  bit_ssh: ''
18
18
  bit_tag_id: 'bit tag --skip-update --skip-tests %{id}'
19
19
  bit_tag_all: 'bit tag --skip-update --skip-tests --all'
20
+ docker_create: 'docker run --detach --env GEOSPIN_PROJECT_BASE_DIR=%{workdir} --env GOOGLE_APPLICATION_CREDENTIALS=/srv/google/default.json --env TAKELAGE_PROJECT_BASE_DIR=%{workdir} --env TZ=%{timezone} --hostname %{container} --name %{container} --network %{container} --privileged --rm --tty --volume %{dockersock}:/var/run/docker.sock --volume %{homedir}/.config/gcloud:/srv/gcloud --volume %{homedir}/.google:/srv/google --volume %{homedir}:/homedir --volume %{workdir}:/project %{volume_dev} --workdir /project %{image} %{entrypoint} --gid %{gid} --home %{homedir} --uid %{uid} --username %{username}'
21
+ docker_create_network: 'docker network create %{network}'
20
22
  docker_debug: 'ansible/roles/takel-takelage/files/pyscripts'
21
- docker_image: 'takelage'
22
- docker_info: 'docker info'
23
+ docker_enter: 'docker exec --interactive --tty %{container} %{loginpoint} --username %{username}'
24
+ docker_existing: 'docker ps --filter name=^%{container}$ --quiet'
25
+ docker_get: 'docker ps --all --filter name=^%{docker_repo}_ --quiet'
26
+ docker_get_container_name_by_id: 'docker ps --filter id=%{container} --format "{{.Names}}"'
23
27
  docker_repo: 'takelage'
28
+ docker_images: 'docker images --quiet %{image}'
29
+ docker_info: 'docker info'
30
+ docker_network: 'docker network ls --quiet --filter name=^%{network}$'
31
+ docker_orphaned: 'docker exec --interactive %{container} ps a'
32
+ docker_pull_latest: 'docker pull %{docker_user}/%{docker_repo}:%{tag_latest_remote}'
33
+ docker_remove_network: 'docker network rm %{network}'
34
+ docker_user: 'takelage'
35
+ docker_run_command: 'docker exec %{container} su %{username} -c "LANG=en_US.UTF-8 %{command}"'
24
36
  docker_socket_agent_port: 20000
25
37
  docker_socket_agent_ssh_port: 20001
26
38
  docker_socket_agent_extra_port: 20002
@@ -29,7 +41,9 @@ docker_socket_ps: 'sudo ps a -o pid,command'
29
41
  docker_socket_gpgconf: 'gpgconf --list-dirs'
30
42
  docker_socket_kill: 'sudo kill -SIGTERM %{pid}'
31
43
  docker_socket_start: 'sudo socat TCP-LISTEN:%{port},bind=%{host},reuseaddr,fork UNIX-CLIENT:%{path}'
44
+ docker_stop: 'docker stop %{container}'
32
45
  docker_tag: 'latest'
46
+ docker_tags: 'docker images %{docker_user}\/%{docker_repo} --format "{{.Tag}}"'
33
47
  docker_tagsurl: 'https://hub.docker.com/v2/repositories/takelage/takelage/tags'
34
48
  git_branch: 'git symbolic-ref HEAD'
35
49
  git_repo: 'git -C . rev-parse'
@@ -8,9 +8,8 @@ module DockerContainerCheckModule
8
8
 
9
9
  return false unless docker_check_running
10
10
 
11
- cmd_docker_existing = 'docker ps ' +
12
- "--filter name=^#{container}$ " +
13
- '--quiet'
11
+ cmd_docker_existing =
12
+ config.active['docker_existing'] % {container: container}
14
13
 
15
14
  stdout_str = run cmd_docker_existing
16
15
 
@@ -30,9 +29,8 @@ module DockerContainerCheckModule
30
29
 
31
30
  return false unless docker_check_running
32
31
 
33
- cmd_docker_network = 'docker network ls ' +
34
- '--quiet ' +
35
- "--filter name=^#{network}$"
32
+ cmd_docker_network =
33
+ config.active['docker_network'] % {network: network}
36
34
 
37
35
  stdout_str = run cmd_docker_network
38
36
 
@@ -52,10 +50,8 @@ module DockerContainerCheckModule
52
50
 
53
51
  return false unless docker_check_running
54
52
 
55
- cmd_docker_orphaned = 'docker exec ' +
56
- '--interactive ' +
57
- "#{container} " +
58
- 'ps a'
53
+ cmd_docker_orphaned =
54
+ config.active['docker_orphaned'] % {container: container}
59
55
 
60
56
  stdout_str = run cmd_docker_orphaned
61
57
 
@@ -22,8 +22,8 @@ module Takelage
22
22
 
23
23
  @docker_debug = config.active['docker_debug']
24
24
 
25
+ @docker_user = config.active['docker_user']
25
26
  @docker_repo = config.active['docker_repo']
26
- @docker_image = config.active['docker_image']
27
27
  @docker_tag = config.active['docker_tag']
28
28
 
29
29
  @dockersock = '/var/run/docker.sock'
@@ -34,7 +34,7 @@ module Takelage
34
34
 
35
35
  @homedir = ENV['HOME'] ? ENV['HOME'] : '/tmp'
36
36
  @workdir = Dir.getwd
37
- @hostname = "#{@docker_image}_#{File.basename(@workdir)}"
37
+ @hostname = "#{@docker_repo}_#{File.basename(@workdir)}"
38
38
 
39
39
  @timezone = 'Europe/Berlin'
40
40
 
@@ -7,7 +7,7 @@ module DockerContainerModule
7
7
 
8
8
  return false unless docker_check_running
9
9
 
10
- return false unless configured? %w(docker_repo docker_image docker_tag)
10
+ return false unless configured? %w(docker_user docker_repo docker_tag)
11
11
 
12
12
  docker_socket_start
13
13
 
@@ -22,7 +22,7 @@ module DockerContainerModule
22
22
 
23
23
  return false unless docker_check_running
24
24
 
25
- return false unless configured? %w(docker_repo docker_image docker_tag)
25
+ return false unless configured? %w(docker_user docker_repo docker_tag)
26
26
 
27
27
  _create_network @hostname unless docker_container_check_network @hostname
28
28
  _create_container @hostname unless docker_container_check_existing @hostname
@@ -34,7 +34,7 @@ module DockerContainerModule
34
34
 
35
35
  return false unless docker_check_running
36
36
 
37
- return false unless configured? %w(docker_repo docker_image docker_tag)
37
+ return false unless configured? %w(docker_user docker_repo docker_tag)
38
38
 
39
39
  docker_socket_start
40
40
 
@@ -49,7 +49,7 @@ module DockerContainerModule
49
49
 
50
50
  return false unless docker_check_running
51
51
 
52
- return false unless configured? %w(docker_image)
52
+ return false unless configured? %w(docker_repo)
53
53
 
54
54
  networks = []
55
55
 
@@ -70,7 +70,7 @@ module DockerContainerModule
70
70
 
71
71
  return false unless docker_check_running
72
72
 
73
- return false unless configured? %w(docker_image)
73
+ return false unless configured? %w(docker_repo)
74
74
 
75
75
  networks = []
76
76
 
@@ -97,7 +97,7 @@ module DockerContainerModule
97
97
  tag = docker_image_tag_latest_local
98
98
  end
99
99
 
100
- image = "#{@docker_repo}/#{@docker_image}:#{tag}"
100
+ image = "#{@docker_user}/#{@docker_repo}:#{tag}"
101
101
 
102
102
  log.debug "Using docker image \"#{image}\""
103
103
 
@@ -113,31 +113,20 @@ module DockerContainerModule
113
113
  volume_dev = "--volume #{@workdir}/#{@docker_debug}:/debug "
114
114
  end
115
115
 
116
- cmd_docker_create = 'docker run ' +
117
- '--detach ' +
118
- "--env GEOSPIN_PROJECT_BASE_DIR=#{@workdir} " +
119
- '--env GOOGLE_APPLICATION_CREDENTIALS=/srv/google/default.json ' +
120
- "--env TAKELAGE_PROJECT_BASE_DIR=#{@workdir} " +
121
- "--env TZ=#{@timezone} " +
122
- "--hostname #{container} " +
123
- "--name #{container} " +
124
- "--network #{container} " +
125
- '--privileged ' +
126
- '--rm ' +
127
- '--tty ' +
128
- "--volume #{@dockersock}:/var/run/docker.sock " +
129
- "--volume #{@homedir}/.config/gcloud:/srv/gcloud " +
130
- "--volume #{@homedir}/.google:/srv/google " +
131
- "--volume #{@homedir}:/homedir " +
132
- "--volume #{@workdir}:/project " +
133
- volume_dev +
134
- '--workdir /project ' +
135
- "#{image} " +
136
- entrypoint +
137
- "--gid #{@gid} " +
138
- "--home #{@homedir} " +
139
- "--uid #{@uid} " +
140
- "--username #{@username}"
116
+ cmd_docker_create =
117
+ config.active['docker_create'] % {
118
+ workdir: @workdir,
119
+ timezone: @timezone,
120
+ container: container,
121
+ dockersock: @dockersock,
122
+ homedir: @homedir,
123
+ volume_dev: volume_dev,
124
+ image: image,
125
+ entrypoint: entrypoint,
126
+ gid: @gid,
127
+ uid: @uid,
128
+ username: @username
129
+ }
141
130
 
142
131
  run cmd_docker_create
143
132
  end
@@ -146,8 +135,10 @@ module DockerContainerModule
146
135
  def _create_network(network)
147
136
  log.debug "Create network \"#{network}\""
148
137
 
149
- cmd_create_network = 'docker network create ' +
150
- "#{network}"
138
+ cmd_create_network =
139
+ config.active['docker_create_network'] % {
140
+ network: network
141
+ }
151
142
 
152
143
  run cmd_create_network
153
144
  end
@@ -161,12 +152,12 @@ module DockerContainerModule
161
152
  loginpoint = '/loginpoint.py --debug '
162
153
  end
163
154
 
164
- cmd_docker_enter = 'docker exec ' +
165
- '--interactive ' +
166
- '--tty ' +
167
- "#{container} " +
168
- loginpoint +
169
- "--username #{@username}"
155
+ cmd_docker_enter =
156
+ config.active['docker_enter'] % {
157
+ container: container,
158
+ loginpoint: loginpoint,
159
+ username: @username
160
+ }
170
161
 
171
162
  run_and_exit cmd_docker_enter
172
163
  end
@@ -175,9 +166,10 @@ module DockerContainerModule
175
166
  def _get_container_name_by_id container
176
167
  log.debug "Getting name of container \"#{container}\""
177
168
 
178
- cmd_get_container_name_by_id = 'docker ps ' +
179
- "--filter id=#{container} " +
180
- '--format "{{.Names}}"'
169
+ cmd_get_container_name_by_id =
170
+ config.active['docker_get_container_name_by_id'] % {
171
+ container: container
172
+ }
181
173
 
182
174
  stdout_str = run cmd_get_container_name_by_id
183
175
 
@@ -191,12 +183,12 @@ module DockerContainerModule
191
183
  # Get all docker containers.
192
184
  # @return [Array] list of docker containers
193
185
  def _get_containers
194
- log.debug "Getting all containers of image \"#{@docker_image}\""
186
+ log.debug "Getting all containers of image \"#{@docker_repo}\""
195
187
 
196
- cmd_docker_get = 'docker ps ' +
197
- '--all ' +
198
- "--filter name=^#{@docker_image}_ " +
199
- '--quiet'
188
+ cmd_docker_get =
189
+ config.active['docker_get'] % {
190
+ docker_repo: @docker_repo
191
+ }
200
192
 
201
193
  stdout_str = run cmd_docker_get
202
194
 
@@ -208,8 +200,10 @@ module DockerContainerModule
208
200
  def _remove_network network
209
201
  log.debug "Remove network \"#{network}\""
210
202
 
211
- cmd_remove_network = 'docker network rm ' +
212
- "#{network}"
203
+ cmd_remove_network =
204
+ config.active['docker_remove_network'] % {
205
+ network: network
206
+ }
213
207
 
214
208
  run cmd_remove_network
215
209
  end
@@ -218,10 +212,12 @@ module DockerContainerModule
218
212
  def _run_command_in_container(container, command)
219
213
  log.debug "Running command \"#{command}\" in container \"#{container}\""
220
214
 
221
- cmd_docker_run_command = 'docker exec ' +
222
- "#{container} " +
223
- "su #{@username} " +
224
- "-c 'LANG=en_US.UTF-8 #{command}'"
215
+ cmd_docker_run_command =
216
+ config.active['docker_run_command'] % {
217
+ container: container,
218
+ username: @username,
219
+ command: command
220
+ }
225
221
 
226
222
  run_and_exit cmd_docker_run_command
227
223
  end
@@ -230,8 +226,10 @@ module DockerContainerModule
230
226
  def _stop_container(container)
231
227
  log.debug "Stopping container \"#{container}\""
232
228
 
233
- cmd_docker_stop = 'docker stop ' +
234
- "#{container}"
229
+ cmd_docker_stop =
230
+ config.active['docker_stop'] % {
231
+ container: container
232
+ }
235
233
 
236
234
  run cmd_docker_stop
237
235
  end
@@ -17,8 +17,8 @@ module Takelage
17
17
  # initialize thor parent class
18
18
  super args, local_options, configuration
19
19
 
20
+ @docker_user = config.active['docker_user']
20
21
  @docker_repo = config.active['docker_repo']
21
- @docker_image = config.active['docker_image']
22
22
  @docker_tagsurl = config.active['docker_tagsurl']
23
23
  end
24
24
 
@@ -5,7 +5,7 @@ module DockerImageModule
5
5
  def docker_image_update
6
6
  return false unless docker_check_running
7
7
 
8
- return false unless configured? %w(docker_repo docker_image docker_tagsurl)
8
+ return false unless configured? %w(docker_user docker_repo docker_tagsurl)
9
9
 
10
10
  tag_latest_remote = docker_image_tag_latest_remote
11
11
 
@@ -23,9 +23,15 @@ module DockerImageModule
23
23
  end
24
24
  end
25
25
 
26
- log.info "Updating to docker image \"#{@docker_repo}/#{@docker_image}:#{tag_latest_remote}\""
26
+ log.info "Updating to docker image \"#{@docker_user}/#{@docker_repo}:#{tag_latest_remote}\""
27
+
28
+ cmd_docker_pull_latest =
29
+ config.active['docker_pull_latest'] % {
30
+ docker_user: @docker_user,
31
+ docker_repo: @docker_repo,
32
+ tag_latest_remote: tag_latest_remote
33
+ }
27
34
 
28
- cmd_docker_pull_latest = "docker pull #{@docker_repo}/#{@docker_image}:#{tag_latest_remote}"
29
35
  run_and_exit cmd_docker_pull_latest
30
36
  end
31
37
  end
@@ -16,8 +16,8 @@ module Takelage
16
16
  # initialize thor parent class
17
17
  super args, local_options, configuration
18
18
 
19
+ @docker_user = config.active['docker_user']
19
20
  @docker_repo = config.active['docker_repo']
20
- @docker_image = config.active['docker_image']
21
21
  @docker_tagsurl = config.active['docker_tagsurl']
22
22
  end
23
23
 
@@ -8,17 +8,19 @@ module DockerImageTagCheckModule
8
8
 
9
9
  return false unless docker_check_running
10
10
 
11
- return false unless configured? %w(docker_repo docker_image)
11
+ return false unless configured? %w(docker_user docker_repo)
12
12
 
13
13
  if tag.to_s.strip.empty?
14
14
  log.warn "No local docker image tag specified"
15
15
  return false
16
16
  end
17
17
 
18
- image = "#{@docker_repo}/#{@docker_image}:#{tag}"
18
+ image = "#{@docker_user}/#{@docker_repo}:#{tag}"
19
19
 
20
- cmd_docker_images = 'docker images --quiet ' +
21
- image
20
+ cmd_docker_images =
21
+ config.active['docker_images'] % {
22
+ image: image
23
+ }
22
24
 
23
25
  stdout_str = run cmd_docker_images
24
26
 
@@ -38,14 +40,14 @@ module DockerImageTagCheckModule
38
40
 
39
41
  return false unless docker_check_running
40
42
 
41
- return false unless configured? %w(docker_repo docker_image docker_tagsurl)
43
+ return false unless configured? %w(docker_user docker_repo docker_tagsurl)
42
44
 
43
45
  if tag .to_s.strip.empty?
44
46
  log.warn "No remote docker image tag specified"
45
47
  return false
46
48
  end
47
49
 
48
- image = "#{@docker_repo}/#{@docker_image}:#{tag}"
50
+ image = "#{@docker_user}/#{@docker_repo}:#{tag}"
49
51
 
50
52
  tags = docker_image_tag_list_remote
51
53
 
@@ -16,8 +16,8 @@ module Takelage
16
16
  # initialize thor parent class
17
17
  super args, local_options, configuration
18
18
 
19
+ @docker_user = config.active['docker_user']
19
20
  @docker_repo = config.active['docker_repo']
20
- @docker_image = config.active['docker_image']
21
21
  @docker_tagsurl = config.active['docker_tagsurl']
22
22
  end
23
23
 
@@ -15,8 +15,8 @@ module Takelage
15
15
  # initialize thor parent class
16
16
  super args, local_options, configuration
17
17
 
18
+ @docker_user = config.active['docker_user']
18
19
  @docker_repo = config.active['docker_repo']
19
- @docker_image = config.active['docker_image']
20
20
  @docker_tagsurl = config.active['docker_tagsurl']
21
21
  end
22
22
 
@@ -6,11 +6,13 @@ module DockerImageTagListModule
6
6
  def docker_image_tag_list_local
7
7
  tags = []
8
8
 
9
- cmd_docker_images = 'docker images ' +
10
- "#{@docker_repo}\/#{@docker_image} " +
11
- ' --format "{{.Tag}}"'
9
+ cmd_docker_tags =
10
+ config.active['docker_tags'] % {
11
+ docker_user: @docker_user,
12
+ docker_repo: @docker_repo
13
+ }
12
14
 
13
- stdout_str = run cmd_docker_images
15
+ stdout_str = run cmd_docker_tags
14
16
 
15
17
  tags = stdout_str.split("\n")
16
18
 
@@ -11,7 +11,7 @@ module SystemModule
11
11
  if hash == {}
12
12
  return nil.to_yaml
13
13
  end
14
- return hash.to_yaml
14
+ return hash.to_yaml(options = {:line_width => -1})
15
15
  end
16
16
 
17
17
  # @return [Hash] content of yaml file
data/lib/takelage/version CHANGED
@@ -1 +1 @@
1
- 0.9.0
1
+ 0.9.1
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: takelage
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.0
4
+ version: 0.9.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Geospin