kuber_kit 0.1.7 → 0.2.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +4 -2
- data/README.md +16 -3
- data/TODO.md +4 -3
- data/example/configurations/review.rb +2 -1
- data/example/images/app_sources/Dockerfile +1 -1
- data/example/images/ruby_app/image.rb +4 -4
- data/example/infrastructure/build_servers.rb +8 -0
- data/example/services/env_file.rb +5 -1
- data/example/services/ruby_app.rb +2 -1
- data/kuber_kit.gemspec +1 -0
- data/lib/kuber_kit.rb +37 -19
- data/lib/kuber_kit/actions/configuration_loader.rb +11 -2
- data/lib/kuber_kit/actions/env_file_reader.rb +5 -0
- data/lib/kuber_kit/actions/image_compiler.rb +16 -10
- data/lib/kuber_kit/actions/kubectl_applier.rb +9 -3
- data/lib/kuber_kit/actions/kubectl_attacher.rb +26 -0
- data/lib/kuber_kit/actions/service_deployer.rb +34 -0
- data/lib/kuber_kit/actions/service_reader.rb +6 -0
- data/lib/kuber_kit/actions/template_reader.rb +5 -0
- data/lib/kuber_kit/cli.rb +54 -20
- data/lib/kuber_kit/configs.rb +24 -22
- data/lib/kuber_kit/container.rb +21 -13
- data/lib/kuber_kit/core/artifacts/artifact_store.rb +12 -23
- data/lib/kuber_kit/core/build_servers/abstract_build_server.rb +21 -0
- data/lib/kuber_kit/core/build_servers/build_server.rb +24 -0
- data/lib/kuber_kit/core/build_servers/build_server_store.rb +18 -0
- data/lib/kuber_kit/core/configuration.rb +10 -4
- data/lib/kuber_kit/core/configuration_definition.rb +18 -1
- data/lib/kuber_kit/core/configuration_factory.rb +11 -1
- data/lib/kuber_kit/core/configuration_store.rb +14 -24
- data/lib/kuber_kit/core/context_helper/service_helper.rb +2 -2
- data/lib/kuber_kit/core/env_files/env_file_store.rb +8 -23
- data/lib/kuber_kit/core/image_store.rb +8 -18
- data/lib/kuber_kit/core/registries/registry_store.rb +8 -23
- data/lib/kuber_kit/core/service.rb +6 -2
- data/lib/kuber_kit/core/service_store.rb +13 -23
- data/lib/kuber_kit/core/store.rb +48 -0
- data/lib/kuber_kit/core/templates/template_store.rb +12 -23
- data/lib/kuber_kit/image_compiler/build_server_pool.rb +31 -0
- data/lib/kuber_kit/image_compiler/build_server_pool_factory.rb +13 -0
- data/lib/kuber_kit/image_compiler/image_build_dir_creator.rb +13 -7
- data/lib/kuber_kit/image_compiler/image_dependency_resolver.rb +25 -5
- data/lib/kuber_kit/preprocessing/file_preprocessor.rb +5 -4
- data/lib/kuber_kit/service_deployer/strategies/kubernetes.rb +10 -3
- data/lib/kuber_kit/shell/abstract_shell.rb +4 -0
- data/lib/kuber_kit/shell/{bash_commands.rb → commands/bash_commands.rb} +1 -1
- data/lib/kuber_kit/shell/{docker_commands.rb → commands/docker_commands.rb} +1 -1
- data/lib/kuber_kit/shell/{git_commands.rb → commands/git_commands.rb} +1 -1
- data/lib/kuber_kit/shell/commands/kubectl_commands.rb +65 -0
- data/lib/kuber_kit/shell/commands/rsync_commands.rb +32 -0
- data/lib/kuber_kit/shell/local_shell.rb +24 -5
- data/lib/kuber_kit/shell/ssh_session.rb +62 -0
- data/lib/kuber_kit/shell/ssh_shell.rb +77 -0
- data/lib/kuber_kit/tools/file_presence_checker.rb +6 -2
- data/lib/kuber_kit/ui/interactive.rb +8 -0
- data/lib/kuber_kit/ui/simple.rb +6 -0
- data/lib/kuber_kit/version.rb +2 -2
- metadata +34 -12
- data/lib/kuber_kit/preprocessing/dir_preprocessor.rb +0 -19
- data/lib/kuber_kit/shell/kubectl_commands.rb +0 -42
- data/lib/kuber_kit/shell/rsync_commands.rb +0 -20
- data/lib/kuber_kit/tools/files_sync.rb +0 -10
data/lib/kuber_kit/cli.rb
CHANGED
@@ -14,56 +14,90 @@ class KuberKit::CLI < Thor
|
|
14
14
|
|
15
15
|
image_names = image_names_str.split(",").map(&:strip).map(&:to_sym)
|
16
16
|
|
17
|
-
KuberKit::Container['actions.configuration_loader'].call(options)
|
18
|
-
|
17
|
+
if KuberKit::Container['actions.configuration_loader'].call(options)
|
18
|
+
result = KuberKit::Container['actions.image_compiler'].call(image_names, options)
|
19
|
+
end
|
19
20
|
|
20
21
|
logger = KuberKit::Container['tools.logger']
|
21
|
-
|
22
|
-
|
23
|
-
|
22
|
+
if result
|
23
|
+
logger.info("---------------------------")
|
24
|
+
logger.info("Image compilation finished!")
|
25
|
+
logger.info("---------------------------")
|
26
|
+
else
|
27
|
+
logger.info("-------------------------".red)
|
28
|
+
logger.info("Image compilation failed!".red)
|
29
|
+
logger.info("-------------------------".red)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
desc "deploy CONTEXT_NAME", "Deploy CONTEXT_NAME with kubectl"
|
34
|
+
method_option :services, :type => :array, aliases: ["-s"]
|
35
|
+
method_option :tags, :type => :array, aliases: ["-t"]
|
36
|
+
def deploy
|
37
|
+
KuberKit.set_debug_mode(options[:debug])
|
38
|
+
|
39
|
+
if KuberKit::Container['actions.configuration_loader'].call(options)
|
40
|
+
result = KuberKit::Container['actions.service_deployer'].call(
|
41
|
+
services: options[:services] || [],
|
42
|
+
tags: options[:tags] || []
|
43
|
+
)
|
44
|
+
end
|
45
|
+
|
46
|
+
logger = KuberKit::Container['tools.logger']
|
47
|
+
if result
|
48
|
+
logger.info("---------------------------")
|
49
|
+
logger.info("Service deployment finished!")
|
50
|
+
logger.info("---------------------------")
|
51
|
+
else
|
52
|
+
logger.info("-------------------------".red)
|
53
|
+
logger.info("Service deployment failed!".red)
|
54
|
+
logger.info("-------------------------".red)
|
55
|
+
end
|
24
56
|
end
|
25
57
|
|
26
58
|
desc "env ENV_FILE_NAME", "Return content of Env File ENV_FILE_NAME"
|
27
59
|
def env(env_file_name)
|
28
60
|
KuberKit.set_debug_mode(options[:debug])
|
29
61
|
|
30
|
-
KuberKit::Container['actions.configuration_loader'].call(options)
|
31
|
-
|
62
|
+
if KuberKit::Container['actions.configuration_loader'].call(options)
|
63
|
+
KuberKit::Container['actions.env_file_reader'].call(env_file_name.to_sym, options)
|
64
|
+
end
|
32
65
|
end
|
33
66
|
|
34
67
|
desc "template TEMPLATE_NAME", "Return content of Template TEMPLATE_NAME"
|
35
68
|
def template(template_name)
|
36
69
|
KuberKit.set_debug_mode(options[:debug])
|
37
70
|
|
38
|
-
KuberKit::Container['actions.configuration_loader'].call(options)
|
39
|
-
|
71
|
+
if KuberKit::Container['actions.configuration_loader'].call(options)
|
72
|
+
KuberKit::Container['actions.template_reader'].call(template_name.to_sym, options)
|
73
|
+
end
|
40
74
|
end
|
41
75
|
|
42
76
|
desc "service SERVICE_NAME", "Return content of Service SERVICE_NAME"
|
43
77
|
def service(service_name)
|
44
78
|
KuberKit.set_debug_mode(options[:debug])
|
45
79
|
|
46
|
-
KuberKit::Container['actions.configuration_loader'].call(options)
|
47
|
-
|
80
|
+
if KuberKit::Container['actions.configuration_loader'].call(options)
|
81
|
+
KuberKit::Container['actions.service_reader'].call(service_name.to_sym, options)
|
82
|
+
end
|
48
83
|
end
|
49
84
|
|
50
85
|
desc "apply FILE_PATH", "Apply FILE_PATH with kubectl"
|
51
86
|
def apply(file_path)
|
52
87
|
KuberKit.set_debug_mode(options[:debug])
|
53
88
|
|
54
|
-
KuberKit::Container['actions.configuration_loader'].call(options)
|
55
|
-
|
89
|
+
if KuberKit::Container['actions.configuration_loader'].call(options)
|
90
|
+
KuberKit::Container['actions.kubectl_applier'].call(File.expand_path(file_path), options)
|
91
|
+
end
|
56
92
|
end
|
57
93
|
|
58
|
-
desc "
|
59
|
-
|
60
|
-
method_option :tags, :type => :array, aliases: ["-t"]
|
61
|
-
def deploy
|
94
|
+
desc "attach POD_NAME", "Attach to POD_NAME with kubectl"
|
95
|
+
def attach(pod_name)
|
62
96
|
KuberKit.set_debug_mode(options[:debug])
|
63
97
|
|
64
|
-
KuberKit::Container['actions.configuration_loader'].call(options)
|
65
|
-
|
66
|
-
|
98
|
+
if KuberKit::Container['actions.configuration_loader'].call(options)
|
99
|
+
KuberKit::Container['actions.kubectl_attacher'].call(pod_name, options)
|
100
|
+
end
|
67
101
|
end
|
68
102
|
|
69
103
|
def self.exit_on_failure?
|
data/lib/kuber_kit/configs.rb
CHANGED
@@ -14,33 +14,35 @@ class KuberKit::Configs
|
|
14
14
|
'tmp',
|
15
15
|
'logs'
|
16
16
|
]
|
17
|
-
KUBER_KIT_DIRNAME
|
18
|
-
IMAGES_DIRNAME
|
19
|
-
SERVICES_DIRNAME
|
20
|
-
INFRA_DIRNAME
|
21
|
-
CONFIGURATIONS_DIRNAME
|
22
|
-
ARTIFACT_CLONE_DIR
|
23
|
-
SERVICE_CONFIG_DIR
|
24
|
-
DEPLOY_STRATEGY
|
17
|
+
KUBER_KIT_DIRNAME = "kuber_kit".freeze
|
18
|
+
IMAGES_DIRNAME = "images".freeze
|
19
|
+
SERVICES_DIRNAME = "services".freeze
|
20
|
+
INFRA_DIRNAME = "infrastructure".freeze
|
21
|
+
CONFIGURATIONS_DIRNAME = "configurations".freeze
|
22
|
+
ARTIFACT_CLONE_DIR = "/tmp/kuber_kit/artifacts"
|
23
|
+
SERVICE_CONFIG_DIR = "/tmp/kuber_kit/services"
|
24
|
+
DEPLOY_STRATEGY = :kubernetes
|
25
|
+
COMPILE_SIMULTANEOUS_LIMIT = 5
|
25
26
|
|
26
27
|
attr_accessor :image_dockerfile_name, :image_build_context_dir, :image_tag,
|
27
28
|
:docker_ignore_list, :image_compile_dir,
|
28
29
|
:kuber_kit_dirname, :images_dirname, :services_dirname, :infra_dirname, :configurations_dirname,
|
29
|
-
:artifact_clone_dir, :service_config_dir, :deploy_strategy
|
30
|
+
:artifact_clone_dir, :service_config_dir, :deploy_strategy, :compile_simultaneous_limit
|
30
31
|
|
31
32
|
def initialize
|
32
|
-
@image_dockerfile_name
|
33
|
-
@image_build_context_dir
|
34
|
-
@image_tag
|
35
|
-
@image_compile_dir
|
36
|
-
@docker_ignore_list
|
37
|
-
@kuber_kit_dirname
|
38
|
-
@images_dirname
|
39
|
-
@services_dirname
|
40
|
-
@infra_dirname
|
41
|
-
@configurations_dirname
|
42
|
-
@artifact_clone_dir
|
43
|
-
@service_config_dir
|
44
|
-
@deploy_strategy
|
33
|
+
@image_dockerfile_name = IMAGE_DOCKERFILE_NAME
|
34
|
+
@image_build_context_dir = IMAGE_BUILD_CONTEXT_DIR
|
35
|
+
@image_tag = IMAGE_TAG
|
36
|
+
@image_compile_dir = IMAGE_COMPILE_DIR
|
37
|
+
@docker_ignore_list = DOCKER_IGNORE_LIST
|
38
|
+
@kuber_kit_dirname = KUBER_KIT_DIRNAME
|
39
|
+
@images_dirname = IMAGES_DIRNAME
|
40
|
+
@services_dirname = SERVICES_DIRNAME
|
41
|
+
@infra_dirname = INFRA_DIRNAME
|
42
|
+
@configurations_dirname = CONFIGURATIONS_DIRNAME
|
43
|
+
@artifact_clone_dir = ARTIFACT_CLONE_DIR
|
44
|
+
@service_config_dir = SERVICE_CONFIG_DIR
|
45
|
+
@deploy_strategy = DEPLOY_STRATEGY
|
46
|
+
@compile_simultaneous_limit = COMPILE_SIMULTANEOUS_LIMIT
|
45
47
|
end
|
46
48
|
end
|
data/lib/kuber_kit/container.rb
CHANGED
@@ -29,6 +29,10 @@ class KuberKit::Container
|
|
29
29
|
KuberKit::Actions::KubectlApplier.new
|
30
30
|
end
|
31
31
|
|
32
|
+
register "actions.kubectl_attacher" do
|
33
|
+
KuberKit::Actions::KubectlAttacher.new
|
34
|
+
end
|
35
|
+
|
32
36
|
register "configs" do
|
33
37
|
KuberKit::Configs.new
|
34
38
|
end
|
@@ -69,18 +73,22 @@ class KuberKit::Container
|
|
69
73
|
KuberKit::Core::ConfigurationStore.new
|
70
74
|
end
|
71
75
|
|
72
|
-
register "core.registry_store" do
|
73
|
-
KuberKit::Core::Registries::RegistryStore.new
|
74
|
-
end
|
75
|
-
|
76
76
|
register "core.artifact_store" do
|
77
77
|
KuberKit::Core::Artifacts::ArtifactStore.new
|
78
78
|
end
|
79
79
|
|
80
|
+
register "core.build_server_store" do
|
81
|
+
KuberKit::Core::BuildServers::BuildServerStore.new
|
82
|
+
end
|
83
|
+
|
80
84
|
register "core.env_file_store" do
|
81
85
|
KuberKit::Core::EnvFiles::EnvFileStore.new
|
82
86
|
end
|
83
87
|
|
88
|
+
register "core.registry_store" do
|
89
|
+
KuberKit::Core::Registries::RegistryStore.new
|
90
|
+
end
|
91
|
+
|
84
92
|
register "core.template_store" do
|
85
93
|
KuberKit::Core::Templates::TemplateStore.new
|
86
94
|
end
|
@@ -102,23 +110,23 @@ class KuberKit::Container
|
|
102
110
|
end
|
103
111
|
|
104
112
|
register "shell.bash_commands" do
|
105
|
-
KuberKit::Shell::BashCommands.new
|
113
|
+
KuberKit::Shell::Commands::BashCommands.new
|
106
114
|
end
|
107
115
|
|
108
116
|
register "shell.docker_commands" do
|
109
|
-
KuberKit::Shell::DockerCommands.new
|
117
|
+
KuberKit::Shell::Commands::DockerCommands.new
|
110
118
|
end
|
111
119
|
|
112
120
|
register "shell.git_commands" do
|
113
|
-
KuberKit::Shell::GitCommands.new
|
121
|
+
KuberKit::Shell::Commands::GitCommands.new
|
114
122
|
end
|
115
123
|
|
116
124
|
register "shell.rsync_commands" do
|
117
|
-
KuberKit::Shell::RsyncCommands.new
|
125
|
+
KuberKit::Shell::Commands::RsyncCommands.new
|
118
126
|
end
|
119
127
|
|
120
128
|
register "shell.kubectl_commands" do
|
121
|
-
KuberKit::Shell::KubectlCommands.new
|
129
|
+
KuberKit::Shell::Commands::KubectlCommands.new
|
122
130
|
end
|
123
131
|
|
124
132
|
register "shell.local_shell" do
|
@@ -137,14 +145,14 @@ class KuberKit::Container
|
|
137
145
|
KuberKit::Preprocessing::FilePreprocessor.new
|
138
146
|
end
|
139
147
|
|
140
|
-
register "preprocessing.dir_preprocessor" do
|
141
|
-
KuberKit::Preprocessing::DirPreprocessor.new
|
142
|
-
end
|
143
|
-
|
144
148
|
register "image_compiler.action_handler" do
|
145
149
|
KuberKit::ImageCompiler::ActionHandler.new
|
146
150
|
end
|
147
151
|
|
152
|
+
register "image_compiler.build_server_pool_factory" do
|
153
|
+
KuberKit::ImageCompiler::BuildServerPoolFactory.new
|
154
|
+
end
|
155
|
+
|
148
156
|
register "image_compiler.compiler" do
|
149
157
|
KuberKit::ImageCompiler::Compiler.new
|
150
158
|
end
|
@@ -1,19 +1,6 @@
|
|
1
1
|
class KuberKit::Core::Artifacts::ArtifactStore
|
2
|
-
NotFoundError = Class.new(KuberKit::NotFoundError)
|
3
|
-
AlreadyAddedError = Class.new(KuberKit::Error)
|
4
|
-
|
5
2
|
def add(artifact)
|
6
|
-
|
7
|
-
|
8
|
-
if !artifact.is_a?(KuberKit::Core::Artifacts::AbstractArtifact)
|
9
|
-
raise ArgumentError.new("should be an instance of KuberKit::Core::Artifacts::AbstractArtifact, got: #{artifact.inspect}")
|
10
|
-
end
|
11
|
-
|
12
|
-
unless @@artifacts[artifact.name].nil?
|
13
|
-
raise AlreadyAddedError, "artifact #{artifact.name} was already added"
|
14
|
-
end
|
15
|
-
|
16
|
-
@@artifacts[artifact.name] = artifact
|
3
|
+
store.add(artifact.name, artifact)
|
17
4
|
end
|
18
5
|
|
19
6
|
def get(artifact_name)
|
@@ -24,14 +11,7 @@ class KuberKit::Core::Artifacts::ArtifactStore
|
|
24
11
|
end
|
25
12
|
|
26
13
|
def get_global(artifact_name)
|
27
|
-
|
28
|
-
artifact = @@artifacts[artifact_name]
|
29
|
-
|
30
|
-
if artifact.nil?
|
31
|
-
raise NotFoundError, "artifact '#{artifact_name}' not found"
|
32
|
-
end
|
33
|
-
|
34
|
-
artifact
|
14
|
+
store.get(artifact_name)
|
35
15
|
end
|
36
16
|
|
37
17
|
def get_from_configuration(artifact_name)
|
@@ -40,6 +20,15 @@ class KuberKit::Core::Artifacts::ArtifactStore
|
|
40
20
|
end
|
41
21
|
|
42
22
|
def reset!
|
43
|
-
|
23
|
+
store.reset!
|
24
|
+
end
|
25
|
+
|
26
|
+
def exists?(artifact_name)
|
27
|
+
store.exists?(artifact_name)
|
44
28
|
end
|
29
|
+
|
30
|
+
private
|
31
|
+
def store
|
32
|
+
@@store ||= KuberKit::Core::Store.new(KuberKit::Core::Artifacts::AbstractArtifact)
|
33
|
+
end
|
45
34
|
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
class KuberKit::Core::BuildServers::AbstractBuildServer
|
2
|
+
include KuberKit::Extensions::Inspectable
|
3
|
+
|
4
|
+
attr_reader :name
|
5
|
+
|
6
|
+
def initialize(build_server_name)
|
7
|
+
@name = build_server_name
|
8
|
+
end
|
9
|
+
|
10
|
+
def host
|
11
|
+
raise KuberKit::NotImplementedError, "must be implemented"
|
12
|
+
end
|
13
|
+
|
14
|
+
def user
|
15
|
+
raise KuberKit::NotImplementedError, "must be implemented"
|
16
|
+
end
|
17
|
+
|
18
|
+
def port
|
19
|
+
raise KuberKit::NotImplementedError, "must be implemented"
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
class KuberKit::Core::BuildServers::BuildServer < KuberKit::Core::BuildServers::AbstractBuildServer
|
2
|
+
def setup(host:, user:, port:)
|
3
|
+
@host = host
|
4
|
+
@user = user
|
5
|
+
@port = port
|
6
|
+
|
7
|
+
self
|
8
|
+
end
|
9
|
+
|
10
|
+
def host
|
11
|
+
raise ArgumentError, "host is not set, please use #setup method" if @host.nil?
|
12
|
+
@host
|
13
|
+
end
|
14
|
+
|
15
|
+
def user
|
16
|
+
raise ArgumentError, "user is not set, please use #setup method" if @user.nil?
|
17
|
+
@user
|
18
|
+
end
|
19
|
+
|
20
|
+
def port
|
21
|
+
raise ArgumentError, "port is not set, please use #setup method" if @port.nil?
|
22
|
+
@port
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
class KuberKit::Core::BuildServers::BuildServerStore
|
2
|
+
def add(build_server)
|
3
|
+
store.add(build_server.name, build_server)
|
4
|
+
end
|
5
|
+
|
6
|
+
def get(build_server_name)
|
7
|
+
store.get(build_server_name)
|
8
|
+
end
|
9
|
+
|
10
|
+
def reset!
|
11
|
+
store.reset!
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
def store
|
16
|
+
@@store ||= KuberKit::Core::Store.new(KuberKit::Core::BuildServers::AbstractBuildServer)
|
17
|
+
end
|
18
|
+
end
|
@@ -1,5 +1,6 @@
|
|
1
1
|
class KuberKit::Core::Configuration
|
2
|
-
attr_reader :name, :artifacts, :registries, :env_files, :templates, :kubeconfig_path,
|
2
|
+
attr_reader :name, :artifacts, :registries, :env_files, :templates, :kubeconfig_path,
|
3
|
+
:deploy_strategy, :deploy_namespace, :services_attributes, :build_servers
|
3
4
|
|
4
5
|
Contract KeywordArgs[
|
5
6
|
name: Symbol,
|
@@ -8,10 +9,13 @@ class KuberKit::Core::Configuration
|
|
8
9
|
env_files: Hash,
|
9
10
|
templates: Hash,
|
10
11
|
kubeconfig_path: Maybe[String],
|
11
|
-
deploy_strategy:
|
12
|
-
|
12
|
+
deploy_strategy: Symbol,
|
13
|
+
deploy_namespace: Maybe[Symbol],
|
14
|
+
services_attributes: HashOf[Symbol => Hash],
|
15
|
+
build_servers: ArrayOf[KuberKit::Core::BuildServers::AbstractBuildServer]
|
13
16
|
] => Any
|
14
|
-
def initialize(name:, artifacts:, registries:, env_files:, templates:, kubeconfig_path:,
|
17
|
+
def initialize(name:, artifacts:, registries:, env_files:, templates:, kubeconfig_path:,
|
18
|
+
deploy_strategy:, deploy_namespace:, services_attributes:, build_servers:)
|
15
19
|
@name = name
|
16
20
|
@artifacts = artifacts
|
17
21
|
@registries = registries
|
@@ -19,7 +23,9 @@ class KuberKit::Core::Configuration
|
|
19
23
|
@templates = templates
|
20
24
|
@kubeconfig_path = kubeconfig_path
|
21
25
|
@deploy_strategy = deploy_strategy
|
26
|
+
@deploy_namespace = deploy_namespace
|
22
27
|
@services_attributes = services_attributes
|
28
|
+
@build_servers = build_servers
|
23
29
|
end
|
24
30
|
|
25
31
|
def service_attributes(service_name)
|
@@ -10,6 +10,7 @@ class KuberKit::Core::ConfigurationDefinition
|
|
10
10
|
@registries = {}
|
11
11
|
@env_files = {}
|
12
12
|
@templates = {}
|
13
|
+
@build_servers = []
|
13
14
|
@enabled_services = []
|
14
15
|
@services_attributes = {}
|
15
16
|
end
|
@@ -23,8 +24,10 @@ class KuberKit::Core::ConfigurationDefinition
|
|
23
24
|
templates: @templates,
|
24
25
|
kubeconfig_path: @kubeconfig_path,
|
25
26
|
deploy_strategy: @deploy_strategy,
|
27
|
+
deploy_namespace: @deploy_namespace,
|
26
28
|
enabled_services: @enabled_services,
|
27
|
-
|
29
|
+
build_servers: @build_servers,
|
30
|
+
services_attributes: @services_attributes,
|
28
31
|
)
|
29
32
|
end
|
30
33
|
|
@@ -64,12 +67,26 @@ class KuberKit::Core::ConfigurationDefinition
|
|
64
67
|
self
|
65
68
|
end
|
66
69
|
|
70
|
+
def use_build_server(build_server_name)
|
71
|
+
unless @build_servers.include?(build_server_name)
|
72
|
+
@build_servers.push(build_server_name)
|
73
|
+
end
|
74
|
+
|
75
|
+
self
|
76
|
+
end
|
77
|
+
|
67
78
|
def kubeconfig_path(path)
|
68
79
|
@kubeconfig_path = path
|
69
80
|
|
70
81
|
self
|
71
82
|
end
|
72
83
|
|
84
|
+
def deploy_namespace(namespace)
|
85
|
+
@deploy_namespace = namespace
|
86
|
+
|
87
|
+
self
|
88
|
+
end
|
89
|
+
|
73
90
|
def deploy_strategy(path)
|
74
91
|
@deploy_strategy = path
|
75
92
|
|