kube-platform 3.3.1.gk.0
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 +7 -0
- data/Gemfile +31 -0
- data/README.md +192 -0
- data/bin/kube-platform +37 -0
- data/lib/kube-platform/application.rb +203 -0
- data/lib/kube-platform/cli.rb +114 -0
- data/lib/kube-platform/client.rb +217 -0
- data/lib/kube-platform/cluster.rb +224 -0
- data/lib/kube-platform/cluster_definition.rb +115 -0
- data/lib/kube-platform/configuration.rb +145 -0
- data/lib/kube-platform/exceptions.rb +9 -0
- data/lib/kube-platform/handlers/dockerhub_secret_copy.rb +52 -0
- data/lib/kube-platform/handlers/ebs_from_snapshot.rb +108 -0
- data/lib/kube-platform/handlers/handler.rb +36 -0
- data/lib/kube-platform/handlers/recreate_resource.rb +11 -0
- data/lib/kube-platform/handlers/secret_copy.rb +43 -0
- data/lib/kube-platform/handlers/wait_for_job_completion.rb +69 -0
- data/lib/kube-platform/handlers/wait_for_termination.rb +47 -0
- data/lib/kube-platform/health_check.rb +19 -0
- data/lib/kube-platform/health_checks/pods_ready.rb +188 -0
- data/lib/kube-platform/health_checks/r53_records.rb +82 -0
- data/lib/kube-platform/helpers/retry.rb +20 -0
- data/lib/kube-platform/images/descriptor.rb +49 -0
- data/lib/kube-platform/images/docker_hub_image.rb +49 -0
- data/lib/kube-platform/images/dockerhub_image_factory.rb +64 -0
- data/lib/kube-platform/images/kubernetes_docker_hub_secret_provider.rb +44 -0
- data/lib/kube-platform/images/repository.rb +77 -0
- data/lib/kube-platform/images/tag_associator.rb +80 -0
- data/lib/kube-platform/images/tagged_dockerhub_image.rb +36 -0
- data/lib/kube-platform/logger.rb +32 -0
- data/lib/kube-platform/manifest.rb +61 -0
- data/lib/kube-platform/pre_checks/r53_records.rb +66 -0
- data/lib/kube-platform/pre_checks/valid_platform_dependencies.rb +52 -0
- data/lib/kube-platform/pre_checks.rb +19 -0
- data/lib/kube-platform/resource.rb +152 -0
- data/lib/kube-platform/resource_repository.rb +73 -0
- data/lib/kube-platform/thor/descriptor_to_option_adapter.rb +33 -0
- data/lib/kube-platform/update_checker.rb +39 -0
- data/lib/kube-platform/version.rb +5 -0
- data/lib/kube-platform.rb +40 -0
- metadata +179 -0
@@ -0,0 +1,152 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "invocaops_docker-render"
|
4
|
+
|
5
|
+
module KubePlatform
|
6
|
+
class Resource
|
7
|
+
attr_reader :handlers
|
8
|
+
|
9
|
+
MalformedResourceException = Class.new(KubePlatformException)
|
10
|
+
ResourceNotFoundException = Class.new(KubePlatformException)
|
11
|
+
|
12
|
+
REQUIRED_ATTRIBUTES = [:kind, :apiVersion, :metadata].freeze
|
13
|
+
FILENAME_ANNOTATION = "invoca.com/resource_filename"
|
14
|
+
|
15
|
+
def initialize(spec, handlers)
|
16
|
+
validate_spec(spec)
|
17
|
+
@handlers = handlers
|
18
|
+
@resource = Kubeclient::Resource.new(spec)
|
19
|
+
@handlers.each { |handler| handler.resource = self }
|
20
|
+
end
|
21
|
+
|
22
|
+
def ==(other)
|
23
|
+
self.class == other.class && unwrap.to_h == other.unwrap.to_h
|
24
|
+
end
|
25
|
+
|
26
|
+
def pre_create(client)
|
27
|
+
handlers.each { |handler| handler.pre_create(client) }
|
28
|
+
end
|
29
|
+
|
30
|
+
def post_create(client)
|
31
|
+
handlers.each { |handler| handler.post_create(client) }
|
32
|
+
end
|
33
|
+
|
34
|
+
def pre_update(client)
|
35
|
+
handlers.each { |handler| handler.pre_update(client) }
|
36
|
+
end
|
37
|
+
|
38
|
+
def post_update(client)
|
39
|
+
handlers.each { |handler| handler.post_update(client) }
|
40
|
+
end
|
41
|
+
|
42
|
+
def pre_delete(client)
|
43
|
+
handlers.each { |handler| handler.pre_delete(client) }
|
44
|
+
end
|
45
|
+
|
46
|
+
def post_delete(client)
|
47
|
+
handlers.each { |handler| handler.post_delete(client) }
|
48
|
+
end
|
49
|
+
|
50
|
+
def name
|
51
|
+
metadata.name
|
52
|
+
end
|
53
|
+
|
54
|
+
def namespace
|
55
|
+
metadata.namespace
|
56
|
+
end
|
57
|
+
|
58
|
+
def namespace=(namespace)
|
59
|
+
metadata.namespace = namespace
|
60
|
+
end
|
61
|
+
|
62
|
+
def api_version
|
63
|
+
unwrap.apiVersion
|
64
|
+
end
|
65
|
+
|
66
|
+
def kind
|
67
|
+
unwrap.kind
|
68
|
+
end
|
69
|
+
|
70
|
+
def unwrap
|
71
|
+
@resource
|
72
|
+
end
|
73
|
+
|
74
|
+
def namespaced?
|
75
|
+
metadata.respond_to?(:namespace)
|
76
|
+
end
|
77
|
+
|
78
|
+
def annotations
|
79
|
+
metadata&.annotations&.to_h
|
80
|
+
end
|
81
|
+
|
82
|
+
def annotation(name)
|
83
|
+
metadata&.annotations&.[](name)
|
84
|
+
end
|
85
|
+
|
86
|
+
def pod_annotation(name)
|
87
|
+
unwrap&.spec&.template&.metadata&.annotations&.[](name)
|
88
|
+
end
|
89
|
+
|
90
|
+
def annotate(key, value)
|
91
|
+
metadata.annotations ||= {}
|
92
|
+
metadata.annotations[key] = value
|
93
|
+
end
|
94
|
+
|
95
|
+
def annotate_pod(key, value)
|
96
|
+
unwrap.spec.template.metadata ||= {}
|
97
|
+
unwrap.spec.template.metadata.annotations ||= {}
|
98
|
+
unwrap.spec.template.metadata.annotations[key] = value
|
99
|
+
end
|
100
|
+
|
101
|
+
def pod_template?
|
102
|
+
unwrap&.spec&.template != nil
|
103
|
+
end
|
104
|
+
|
105
|
+
private
|
106
|
+
|
107
|
+
def metadata
|
108
|
+
unwrap.metadata
|
109
|
+
end
|
110
|
+
|
111
|
+
def validate_spec(spec)
|
112
|
+
REQUIRED_ATTRIBUTES.each do |attr|
|
113
|
+
spec[attr] || spec[attr.to_s] or raise MalformedResourceException, "Resource is missing '#{attr}' attribute: #{spec}"
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
class << self
|
118
|
+
def from_yaml(filename, handlers: [], config: nil, jsonnet_library_path: nil)
|
119
|
+
template = case filename
|
120
|
+
when /\.erb|.yaml\z/
|
121
|
+
InvocaopsDocker::Render::ErbTemplate.render(filename, config, erb_binding: config.nil? ? nil : config.binding)
|
122
|
+
when /\.jsonnet\z/
|
123
|
+
InvocaopsDocker::Render::JsonnetTemplate.render(filename, config, jsonnet_library_path: jsonnet_library_path)
|
124
|
+
end
|
125
|
+
spec = YAML.safe_load(template)
|
126
|
+
resource = from_spec(handlers: handlers, **spec.symbolize_keys)
|
127
|
+
annotate_pod_with_filename(resource, filename)
|
128
|
+
rescue Errno::ENOENT
|
129
|
+
raise ResourceNotFoundException, "#{filename} was not found"
|
130
|
+
end
|
131
|
+
|
132
|
+
def from_spec(handlers: [], **spec)
|
133
|
+
new(spec, handlers)
|
134
|
+
end
|
135
|
+
|
136
|
+
private
|
137
|
+
|
138
|
+
def render_erb(template, config)
|
139
|
+
renderer = ERB.new(template)
|
140
|
+
config.nil? ? renderer.result : renderer.result(config.binding)
|
141
|
+
end
|
142
|
+
|
143
|
+
def annotate_pod_with_filename(resource, filename)
|
144
|
+
if resource.pod_template?
|
145
|
+
resource.annotate_pod(FILENAME_ANNOTATION, File.basename(filename))
|
146
|
+
end
|
147
|
+
|
148
|
+
resource
|
149
|
+
end
|
150
|
+
end
|
151
|
+
end
|
152
|
+
end
|
@@ -0,0 +1,73 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "open3"
|
4
|
+
require_relative "logger"
|
5
|
+
|
6
|
+
module KubePlatform
|
7
|
+
class ResourceRepository
|
8
|
+
include Logger
|
9
|
+
|
10
|
+
attr_reader :url, :branch
|
11
|
+
|
12
|
+
TARGET_DIR = "repo"
|
13
|
+
|
14
|
+
def initialize(url:, branch:)
|
15
|
+
@url = url
|
16
|
+
@branch = branch
|
17
|
+
end
|
18
|
+
|
19
|
+
def retrieve
|
20
|
+
Dir.mktmpdir do |path|
|
21
|
+
Dir.chdir(path) do
|
22
|
+
repository_dir = File.join(path, TARGET_DIR)
|
23
|
+
clone(repository_dir)
|
24
|
+
Dir.chdir(repository_dir) do
|
25
|
+
jb_install
|
26
|
+
yield repository_dir
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
private
|
33
|
+
|
34
|
+
def clone(repository_dir)
|
35
|
+
logger.info("Cloning #{url}")
|
36
|
+
execute_command("git clone --depth 1 --single-branch --branch #{branch} #{url} #{TARGET_DIR}", "Error cloning #{url}", tries: 2)
|
37
|
+
logger.debug("Cloned #{url} into #{repository_dir}")
|
38
|
+
end
|
39
|
+
|
40
|
+
def jb_install
|
41
|
+
logger.info("Running jb install")
|
42
|
+
execute_command("jb install --jsonnetpkg-home=vendor-jb", "Error running jb install", tries: 2)
|
43
|
+
end
|
44
|
+
|
45
|
+
def execute_command(command, error_prefix, tries: 1)
|
46
|
+
executor = nil # so it stays in scope since we need access for raise
|
47
|
+
tries.times do
|
48
|
+
executor = CommandExecutor.new(command)
|
49
|
+
executor.execute
|
50
|
+
executor.success? and return
|
51
|
+
end
|
52
|
+
raise KubePlatformException, "#{error_prefix}: #{executor.stderr}"
|
53
|
+
end
|
54
|
+
|
55
|
+
class CommandExecutor
|
56
|
+
attr_reader :success, :command, :stderr
|
57
|
+
|
58
|
+
alias success? success
|
59
|
+
|
60
|
+
def initialize(command)
|
61
|
+
@command = command
|
62
|
+
@success = false
|
63
|
+
end
|
64
|
+
|
65
|
+
def execute
|
66
|
+
Open3.popen3(command) do |_stdin, _stdout, stderr, wait_thr|
|
67
|
+
@success = wait_thr.value.exitstatus.zero?
|
68
|
+
@stderr = stderr.read
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module KubePlatform
|
4
|
+
module Thor
|
5
|
+
class DescriptorToOptionAdapter
|
6
|
+
attr_reader :descriptor
|
7
|
+
|
8
|
+
def initialize(descriptor:)
|
9
|
+
@descriptor = descriptor
|
10
|
+
end
|
11
|
+
|
12
|
+
def key
|
13
|
+
descriptor.key
|
14
|
+
end
|
15
|
+
|
16
|
+
def aliases
|
17
|
+
key_alias = descriptor.key_alias
|
18
|
+
case key_alias&.length
|
19
|
+
when nil, 0
|
20
|
+
[]
|
21
|
+
when 1
|
22
|
+
["-#{key_alias}"]
|
23
|
+
else
|
24
|
+
["--#{key_alias}"]
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def desc
|
29
|
+
descriptor.description
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "logger"
|
4
|
+
|
5
|
+
module KubePlatform
|
6
|
+
class UpdateChecker
|
7
|
+
include Logger
|
8
|
+
|
9
|
+
attr_reader :manifest
|
10
|
+
|
11
|
+
def initialize(manifest:)
|
12
|
+
@manifest = manifest
|
13
|
+
end
|
14
|
+
|
15
|
+
def update_required? # TODO: Move this logging into the caller. The error can just be part of the exception.
|
16
|
+
if up_to_date?
|
17
|
+
logger.debug("Version is up-to-date")
|
18
|
+
false
|
19
|
+
else
|
20
|
+
logger.error("This version of kube-platform is out-of-date: #{available_version} is required, but running #{running_version}. Please update kube-platform: brew update && brew upgrade kube-platform")
|
21
|
+
true
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
private
|
26
|
+
|
27
|
+
def up_to_date?
|
28
|
+
Gem::Version.new(running_version) >= Gem::Version.new(available_version)
|
29
|
+
end
|
30
|
+
|
31
|
+
def running_version
|
32
|
+
KubePlatform::VERSION
|
33
|
+
end
|
34
|
+
|
35
|
+
def available_version
|
36
|
+
manifest.version
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "kubeclient"
|
4
|
+
require "active_support/deprecation"
|
5
|
+
require_relative "kube-platform/version"
|
6
|
+
require_relative "kube-platform/logger"
|
7
|
+
require_relative "kube-platform/exceptions"
|
8
|
+
require_relative "kube-platform/application"
|
9
|
+
require_relative "kube-platform/cli"
|
10
|
+
require_relative "kube-platform/configuration"
|
11
|
+
require_relative "kube-platform/client"
|
12
|
+
require_relative "kube-platform/manifest"
|
13
|
+
require_relative "kube-platform/cluster"
|
14
|
+
require_relative "kube-platform/cluster_definition"
|
15
|
+
require_relative "kube-platform/resource"
|
16
|
+
require_relative "kube-platform/helpers/retry"
|
17
|
+
require_relative "kube-platform/thor/descriptor_to_option_adapter"
|
18
|
+
require_relative "kube-platform/images/docker_hub_image"
|
19
|
+
require_relative "kube-platform/images/tagged_dockerhub_image"
|
20
|
+
require_relative "kube-platform/images/dockerhub_image_factory"
|
21
|
+
require_relative "kube-platform/images/kubernetes_docker_hub_secret_provider"
|
22
|
+
require_relative "kube-platform/images/descriptor"
|
23
|
+
require_relative "kube-platform/images/repository"
|
24
|
+
require_relative "kube-platform/images/tag_associator"
|
25
|
+
require_relative "kube-platform/resource_repository"
|
26
|
+
require_relative "kube-platform/update_checker"
|
27
|
+
require_relative "kube-platform/handlers/handler"
|
28
|
+
require_relative "kube-platform/handlers/dockerhub_secret_copy"
|
29
|
+
require_relative "kube-platform/handlers/ebs_from_snapshot"
|
30
|
+
require_relative "kube-platform/handlers/handler"
|
31
|
+
require_relative "kube-platform/handlers/recreate_resource"
|
32
|
+
require_relative "kube-platform/handlers/secret_copy"
|
33
|
+
require_relative "kube-platform/handlers/wait_for_termination"
|
34
|
+
require_relative "kube-platform/handlers/wait_for_job_completion"
|
35
|
+
require_relative "kube-platform/health_check"
|
36
|
+
require_relative "kube-platform/health_checks/pods_ready"
|
37
|
+
require_relative "kube-platform/health_checks/r53_records"
|
38
|
+
require_relative "kube-platform/pre_checks"
|
39
|
+
require_relative "kube-platform/pre_checks/r53_records"
|
40
|
+
require_relative "kube-platform/pre_checks/valid_platform_dependencies"
|
metadata
ADDED
@@ -0,0 +1,179 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: kube-platform
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 3.3.1.gk.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Invoca Operations
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2018-04-04 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: activesupport
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: aws-sdk-ec2
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.2'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.2'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: aws-sdk-route53
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '1.9'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '1.9'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: hashie
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '3.5'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '3.5'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: invoca-jsonnet
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: kubeclient
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '4.5'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '4.5'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: thor
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - '='
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 0.20.0
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - '='
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 0.20.0
|
111
|
+
description: Library to manage Invoca development clusters in Kubernetes. See the
|
112
|
+
README for more details.
|
113
|
+
email: operations@invoca.com
|
114
|
+
executables: []
|
115
|
+
extensions: []
|
116
|
+
extra_rdoc_files: []
|
117
|
+
files:
|
118
|
+
- Gemfile
|
119
|
+
- README.md
|
120
|
+
- bin/kube-platform
|
121
|
+
- lib/kube-platform.rb
|
122
|
+
- lib/kube-platform/application.rb
|
123
|
+
- lib/kube-platform/cli.rb
|
124
|
+
- lib/kube-platform/client.rb
|
125
|
+
- lib/kube-platform/cluster.rb
|
126
|
+
- lib/kube-platform/cluster_definition.rb
|
127
|
+
- lib/kube-platform/configuration.rb
|
128
|
+
- lib/kube-platform/exceptions.rb
|
129
|
+
- lib/kube-platform/handlers/dockerhub_secret_copy.rb
|
130
|
+
- lib/kube-platform/handlers/ebs_from_snapshot.rb
|
131
|
+
- lib/kube-platform/handlers/handler.rb
|
132
|
+
- lib/kube-platform/handlers/recreate_resource.rb
|
133
|
+
- lib/kube-platform/handlers/secret_copy.rb
|
134
|
+
- lib/kube-platform/handlers/wait_for_job_completion.rb
|
135
|
+
- lib/kube-platform/handlers/wait_for_termination.rb
|
136
|
+
- lib/kube-platform/health_check.rb
|
137
|
+
- lib/kube-platform/health_checks/pods_ready.rb
|
138
|
+
- lib/kube-platform/health_checks/r53_records.rb
|
139
|
+
- lib/kube-platform/helpers/retry.rb
|
140
|
+
- lib/kube-platform/images/descriptor.rb
|
141
|
+
- lib/kube-platform/images/docker_hub_image.rb
|
142
|
+
- lib/kube-platform/images/dockerhub_image_factory.rb
|
143
|
+
- lib/kube-platform/images/kubernetes_docker_hub_secret_provider.rb
|
144
|
+
- lib/kube-platform/images/repository.rb
|
145
|
+
- lib/kube-platform/images/tag_associator.rb
|
146
|
+
- lib/kube-platform/images/tagged_dockerhub_image.rb
|
147
|
+
- lib/kube-platform/logger.rb
|
148
|
+
- lib/kube-platform/manifest.rb
|
149
|
+
- lib/kube-platform/pre_checks.rb
|
150
|
+
- lib/kube-platform/pre_checks/r53_records.rb
|
151
|
+
- lib/kube-platform/pre_checks/valid_platform_dependencies.rb
|
152
|
+
- lib/kube-platform/resource.rb
|
153
|
+
- lib/kube-platform/resource_repository.rb
|
154
|
+
- lib/kube-platform/thor/descriptor_to_option_adapter.rb
|
155
|
+
- lib/kube-platform/update_checker.rb
|
156
|
+
- lib/kube-platform/version.rb
|
157
|
+
homepage: https://github.com/Invoca/kube-platform
|
158
|
+
licenses: []
|
159
|
+
metadata: {}
|
160
|
+
post_install_message:
|
161
|
+
rdoc_options: []
|
162
|
+
require_paths:
|
163
|
+
- lib
|
164
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
165
|
+
requirements:
|
166
|
+
- - ">="
|
167
|
+
- !ruby/object:Gem::Version
|
168
|
+
version: '0'
|
169
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - ">"
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: 1.3.1
|
174
|
+
requirements: []
|
175
|
+
rubygems_version: 3.1.6
|
176
|
+
signing_key:
|
177
|
+
specification_version: 4
|
178
|
+
summary: Library to manage development Kubernetes clusters
|
179
|
+
test_files: []
|