takelage 0.15.1 → 0.18.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: 72cbf26d7b57b33123a727534237f65a643c07a27745d2fbbf6abf7cc70ff514
4
- data.tar.gz: e048f6df6d545f37af99fefab09f9264e594505d1d9ea01878fa5807ed7832a3
3
+ metadata.gz: dcb68cec0dee7158fd9430364abf37d0812091cbbabdb260da39cd297f895f49
4
+ data.tar.gz: b878992c6e960353b53fdb47fc1ed8ad91887b027190a4c17ebafe5d3263563c
5
5
  SHA512:
6
- metadata.gz: 42b72dcb1db949491b3677e7c183e930c368cc9f7de2a07140ac18e90992a5dbcc0a5448367233ea7bde5b3c0d8f4327658139c01681bb0c5863d263518fe593
7
- data.tar.gz: 0212d7505f0e6cc02e214e3a20360ba4a4e5951ea40e0fbb7fa9523b02ec7c2168d34edfce159d4bc2b35d37a32a8f3c148c1bcb64569995753a412fff48bb15
6
+ metadata.gz: f9f6663cc8336b1bb3a23c5ffe292cae4b387f11f5660ef1476bce85cc84358faebbfa95efa099c1a59e39ead98b549fd3c7bbe1a6eadd59fec1ea04d3ef9e1f
7
+ data.tar.gz: 6cdc9904b8c94050f26b8d2ecfa638f9804eb69fef26f6d384b11a92f33bcf8180ffe4e0e308bc3b8fbde7547600617bcee2597cb48fb6e3c3b1317adfa338e9
@@ -28,7 +28,7 @@ cmd_docker_check_running_docker_info: 'docker info'
28
28
  cmd_docker_container_check_existing_docker_ps: 'docker ps --filter name=^%{container}$ --quiet'
29
29
  cmd_docker_container_check_network_docker_network: 'docker network ls --quiet --filter name=^%{network}$'
30
30
  cmd_docker_container_check_orphaned_docker_exec: 'docker exec --interactive %{container} ps a'
31
- cmd_docker_container_create: 'docker run --detach --env TAKELAGE_PROJECT_BASE_DIR=%{workdir} --env TZ=%{timezone} --hostname %{container} --name %{container} --network %{container} --privileged --rm --shm-size %{shmsize} --tty --volume %{dockersock}:/var/run/docker.sock --volume %{homedir}:/hostdir --volume %{workdir}:/project %{volume_dev} --workdir /project %{addhost} %{dockerrun_options} %{image} %{entrypoint} --gid %{gid} --home %{homedir} --uid %{uid} --username %{username} --gpg_agent_port %{gpg_agent_port} --gpg_ssh_agent_port %{gpg_ssh_agent_port} --extra=%{extra} %{entrypoint_options}'
31
+ cmd_docker_container_create: 'docker run --detach --env TAKELAGE_PROJECT_BASE_DIR=%{workdir} --env TZ=%{timezone} --hostname %{container} --name %{container} --network %{container} --privileged --rm --shm-size %{shmsize} --tty --volume %{homedir}:/hostdir --volume %{workdir}:/project %{volume_dev} --workdir /project %{addhost} %{docker_run_options} %{image} %{entrypoint} --gid %{gid} --home %{homedir} --uid %{uid} --username %{username} --docker_daemon_port %{docker_daemon_port} --gpg_agent_port %{gpg_agent_port} --gpg_ssh_agent_port %{gpg_ssh_agent_port} --extra=%{extra} %{entrypoint_options}'
32
32
  cmd_docker_container_create_network: 'docker network create %{network}'
33
33
  cmd_docker_container_enter_container: 'docker exec --interactive --tty %{container} %{loginpoint} --username %{username}'
34
34
  cmd_docker_container_get_container_name: 'docker ps --filter id=%{container} --format "{{.Names}}"'
@@ -44,7 +44,7 @@ cmd_docker_socket_config_agent_socket_path: 'gpgconf --list-dirs agent-socket'
44
44
  cmd_docker_socket_config_agent_ssh_socket_path: 'gpgconf --list-dirs agent-ssh-socket'
45
45
  cmd_docker_socket_get_start: 'sudo socat TCP-LISTEN:%{port},bind=%{host},reuseaddr,fork UNIX-CLIENT:%{path}'
46
46
  cmd_docker_socket_start_sudo_true: 'sudo true'
47
- cmd_docker_socket_stop_docker_socket_ps: 'sudo ps a -o pid,command'
47
+ cmd_docker_socket_stop_docker_socket_ps: 'sudo ps ax -o pid,command'
48
48
  cmd_docker_socket_stop_docker_socket_kill: 'sudo kill -SIGTERM %{pid}'
49
49
  cmd_git_check_clean_git_unstaged: 'git diff --exit-code'
50
50
  cmd_git_check_clean_git_uncommitted: 'git diff --cached --exit-code'
@@ -59,6 +59,7 @@ docker_registry: 'https://registry.hub.docker.com'
59
59
  docker_repo: 'takelage'
60
60
  docker_run_options: '--env GOOGLE_APPLICATION_CREDENTIALS=/hostdir/.google/default.json'
61
61
  docker_shm_size: '512M'
62
+ docker_socket_docker_daemon_port: 17873
62
63
  docker_socket_gpg_agent_port: 17874
63
64
  docker_socket_gpg_ssh_agent_port: 17875
64
65
  docker_tag: 'latest'
@@ -46,6 +46,18 @@ module Takelage
46
46
  desc 'check [COMMAND]', 'Check docker container'
47
47
  subcommand 'check', DockerContainerCheck
48
48
 
49
+ #
50
+ # docker container clean
51
+ #
52
+ desc 'clean', 'Remove all docker containers'
53
+ long_desc <<-LONGDESC.gsub("\n", "\x5")
54
+ Remove all docker containers
55
+ LONGDESC
56
+ # Remove all docker containers.
57
+ def clean
58
+ docker_container_clean
59
+ end
60
+
49
61
  #
50
62
  # docker container command
51
63
  #
@@ -73,7 +85,7 @@ module Takelage
73
85
  #
74
86
  # docker container login
75
87
  #
76
- option :development,
88
+ option :debug,
77
89
  aliases: 'd',
78
90
  type: :boolean,
79
91
  default: false,
@@ -87,18 +99,6 @@ module Takelage
87
99
  docker_container_login
88
100
  end
89
101
 
90
- #
91
- # docker container clean
92
- #
93
- desc 'clean', 'Remove all docker containers'
94
- long_desc <<-LONGDESC.gsub("\n", "\x5")
95
- Remove all docker containers
96
- LONGDESC
97
- # Remove all docker containers.
98
- def clean
99
- docker_container_clean
100
- end
101
-
102
102
  #
103
103
  # docker container prune
104
104
  #
@@ -6,6 +6,7 @@ module DockerContainerLib
6
6
  private
7
7
 
8
8
  # Create docker container and network.
9
+ # rubocop:disable Style/IfUnlessModifier
9
10
  def _docker_container_lib_create_net_and_ctr(name)
10
11
  unless docker_container_check_network name
11
12
  _docker_container_lib_create_network name
@@ -15,8 +16,10 @@ module DockerContainerLib
15
16
 
16
17
  _docker_container_lib_create_container name
17
18
  end
19
+ # rubocop:enable Style/IfUnlessModifier
18
20
 
19
21
  # Remove docker networks.
22
+ # rubocop:disable Style/IfUnlessModifier
20
23
  def _docker_container_lib_remove_networks(networks)
21
24
  networks.each do |network|
22
25
  if docker_container_check_network network
@@ -24,6 +27,7 @@ module DockerContainerLib
24
27
  end
25
28
  end
26
29
  end
30
+ # rubocop:enable Style/IfUnlessModifier
27
31
 
28
32
  # Create docker network.
29
33
  def _docker_container_lib_create_network(network)
@@ -52,6 +56,7 @@ module DockerContainerLib
52
56
  # Create docker container.
53
57
  # rubocop:disable Metrics/MethodLength
54
58
  # rubocop:disable Metrics/AbcSize
59
+ # rubocop:disable Style/IfUnlessModifier
55
60
  def _docker_container_lib_create_container(container)
56
61
  log.debug "Creating container \"#{container}\""
57
62
 
@@ -68,8 +73,8 @@ module DockerContainerLib
68
73
  docker_debug = config.active['docker_debug']
69
74
  entrypoint = '/entrypoint.py '
70
75
  volume_dev = ''
71
- if options[:development]
72
- entrypoint += ' --debug '
76
+ if options[:debug]
77
+ entrypoint = '/debug/entrypoint.py --debug '
73
78
  volume_dev = "--volume #{@workdir}/#{docker_debug}:/debug "
74
79
  end
75
80
 
@@ -77,8 +82,8 @@ module DockerContainerLib
77
82
  config.active['cmd_docker_container_create'],
78
83
  addhost: addhost,
79
84
  container: container,
80
- dockerrun_options: config.active['docker_run_options'],
81
- dockersock: '/var/run/docker.sock',
85
+ docker_run_options: config.active['docker_run_options'],
86
+ docker_daemon_port: config.active['docker_socket_docker_daemon_port'],
82
87
  entrypoint: entrypoint,
83
88
  entrypoint_options: config.active['docker_entrypoint_options'],
84
89
  extra: config.active['docker_entrypoint_extra'],
@@ -97,6 +102,7 @@ module DockerContainerLib
97
102
 
98
103
  try cmd_docker_create
99
104
  end
105
+ # rubocop:enable Style/IfUnlessModifier
100
106
  # rubocop:enable Metrics/AbcSize
101
107
  # rubocop:enable Metrics/MethodLength
102
108
 
@@ -34,7 +34,7 @@ module DockerContainerLogin
34
34
  log.debug "Entering container \"#{container}\""
35
35
 
36
36
  loginpoint = '/loginpoint.py'
37
- loginpoint += ' --debug ' if options[:development]
37
+ loginpoint = '/debug/loginpoint.py --debug ' if options[:debug]
38
38
 
39
39
  format(
40
40
  config.active['cmd_docker_container_enter_container'],
@@ -6,20 +6,34 @@ module DockerSocketScheme
6
6
  def docker_socket_scheme
7
7
  log.debug 'Getting docker socket scheme'
8
8
 
9
- gpg_path = _socket_get_agent_socket_path
10
- gpg_port = config.active['docker_socket_gpg_agent_port']
11
- ssh_path = _socket_get_agent_ssh_socket_path
12
- ssh_port = config.active['docker_socket_gpg_ssh_agent_port']
9
+ socket_scheme = _socket_get_scheme _socket_get_config
13
10
 
14
- socket_scheme = _socket_get_scheme gpg_path, gpg_port, ssh_path, ssh_port
15
- log.debug 'Docker socket scheme is ' \
16
- "\n\"\"\"\n#{hash_to_yaml socket_scheme}\"\"\""
11
+ log.debug "Docker socket scheme is \n\"\"\"\n#{hash_to_yaml socket_scheme}\"\"\""
17
12
 
18
13
  socket_scheme
19
14
  end
20
15
 
21
16
  private
22
17
 
18
+ # Get docker socket config.
19
+ def _socket_get_config
20
+ socket_config = {
21
+ 'docker_path' => _socket_get_docker_daemon_path,
22
+ 'docker_port' => config.active['docker_socket_docker_daemon_port'],
23
+ 'gpg_path' => _socket_get_agent_socket_path,
24
+ 'gpg_port' => config.active['docker_socket_gpg_agent_port'],
25
+ 'ssh_path' => _socket_get_agent_ssh_socket_path,
26
+ 'ssh_port' => config.active['docker_socket_gpg_ssh_agent_port']
27
+ }
28
+
29
+ socket_config
30
+ end
31
+
32
+ # Get docker socket path.
33
+ def _socket_get_docker_daemon_path
34
+ '/var/run/docker.sock'
35
+ end
36
+
23
37
  # Get gpg agent socket path.
24
38
  def _socket_get_agent_socket_path
25
39
  cmd_agent_socket_path =
@@ -35,12 +49,15 @@ module DockerSocketScheme
35
49
  end
36
50
 
37
51
  # Create socket scheme.
38
- def _socket_get_scheme(gpg_path, gpg_port, ssh_path, ssh_port)
39
- { 'agent-socket' => { 'path' => gpg_path,
40
- 'host' => @socket_host,
41
- 'port' => gpg_port },
42
- 'agent-ssh-socket' => { 'path' => ssh_path,
43
- 'host' => @socket_host,
44
- 'port' => ssh_port } }
52
+ def _socket_get_scheme(socket_config)
53
+ { 'docker-daemon' => { 'path' => socket_config['docker_path'],
54
+ 'host' => @socket_host,
55
+ 'port' => socket_config['docker_port'] },
56
+ 'gpg-agent' => { 'path' => socket_config['gpg_path'],
57
+ 'host' => @socket_host,
58
+ 'port' => socket_config['gpg_port'] },
59
+ 'gpg-ssh-agent' => { 'path' => socket_config['ssh_path'],
60
+ 'host' => @socket_host,
61
+ 'port' => socket_config['ssh_port'] } }
45
62
  end
46
63
  end
@@ -38,16 +38,33 @@ module ConfigModule
38
38
  def configured?(config_keys)
39
39
  @configured = true
40
40
  config_keys.each do |config_key|
41
- unless TakelageConfig.instance.active.key? config_key
42
- log.error "Please configure \"#{config_key}\""
43
- @configured = false
44
- end
41
+ next unless _check_key_defined? config_key
42
+ next unless _check_key_set? config_key
45
43
  end
46
44
  @configured
47
45
  end
48
46
 
49
47
  private
50
48
 
49
+ # Check if config key is defined.
50
+ def _check_key_defined?(config_key)
51
+ return true if TakelageConfig.instance.active.key? config_key
52
+
53
+ log.error "Undefined config key. Please configure \"#{config_key}\""
54
+ @configured = false
55
+ false
56
+ end
57
+
58
+ # Check if config key is nil or empty
59
+ def _check_key_set?(config_key)
60
+ takel_config_key = TakelageConfig.instance.active[config_key]
61
+ return true unless takel_config_key.nil? || takel_config_key.empty?
62
+
63
+ log.error "Unset config key. Please configure \"#{config_key}\""
64
+ @configured = false
65
+ false
66
+ end
67
+
51
68
  # Read default config file in lib.
52
69
  def _config_read_default
53
70
  default_file = File.expand_path("#{File.dirname(__FILE__)}/../default.yml")
@@ -1 +1 @@
1
- 0.15.1
1
+ 0.18.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.15.1
4
+ version: 0.18.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Geospin