kubes 0.4.7 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +9 -0
- data/docs/_docs/config/reference.md +1 -0
- data/docs/_docs/config/skip.md +1 -1
- data/docs/_docs/dsl/multiple-resources.md +3 -3
- data/docs/_docs/dsl/resources/job.md +62 -0
- data/docs/_docs/extra-env/dsl.md +2 -2
- data/docs/_docs/extra-env/yaml.md +1 -1
- data/docs/_docs/generators.md +41 -0
- data/docs/_docs/helpers.md +2 -2
- data/docs/_docs/helpers/google/service-account.md +8 -0
- data/docs/_docs/intro.md +3 -1
- data/docs/_docs/intro/docker-image.md +66 -0
- data/docs/_docs/layering/merge.md +1 -1
- data/docs/_docs/learn/dsl/delete.md +10 -2
- data/docs/_docs/learn/dsl/review-project.md +2 -2
- data/docs/_docs/learn/yaml/delete.md +10 -2
- data/docs/_docs/learn/yaml/review-project.md +2 -2
- data/docs/_docs/patterns/clock-web-worker.md +3 -3
- data/docs/_docs/patterns/migrations.md +1 -1
- data/docs/_docs/yaml.md +2 -2
- data/docs/_includes/commands.html +2 -2
- data/docs/_includes/sidebar.html +2 -0
- data/docs/_reference/kubes-delete.md +1 -1
- data/docs/_reference/kubes-exec.md +17 -1
- data/docs/_reference/kubes-init.md +2 -2
- data/docs/_reference/kubes-logs.md +2 -1
- data/docs/_reference/kubes-new.md +58 -0
- data/docs/_reference/kubes-prune.md +22 -0
- data/docs/reference.md +2 -0
- data/lib/kubes.rb +1 -0
- data/lib/kubes/cli.rb +9 -1
- data/lib/kubes/cli/build.rb +6 -0
- data/lib/kubes/cli/compile.rb +7 -0
- data/lib/kubes/cli/deploy.rb +1 -6
- data/lib/kubes/cli/exec.rb +5 -1
- data/lib/kubes/cli/help/exec.md +15 -0
- data/lib/kubes/cli/help/new.md +30 -0
- data/lib/kubes/cli/init.rb +1 -1
- data/lib/kubes/cli/new.rb +97 -0
- data/lib/kubes/cli/sequence.rb +1 -0
- data/lib/kubes/command.rb +7 -0
- data/lib/kubes/compiler.rb +19 -21
- data/lib/kubes/compiler/dsl/syntax/job.rb +217 -0
- data/lib/kubes/compiler/shared/helpers.rb +11 -2
- data/lib/kubes/compiler/shared/helpers/deprecated.rb +37 -0
- data/lib/kubes/config.rb +1 -1
- data/lib/kubes/core.rb +6 -0
- data/lib/kubes/docker/strategy/image_name.rb +1 -1
- data/lib/kubes/kubectl/batch.rb +0 -33
- data/lib/kubes/kubectl/ordering.rb +42 -0
- data/lib/kubes/version.rb +1 -1
- data/lib/templates/base/.kubes/config.rb.tt +1 -1
- data/lib/templates/base/.kubes/config/env/dev.rb +1 -1
- data/lib/templates/base/.kubes/config/env/prod.rb +1 -1
- data/lib/templates/dsl/.kubes/resources/web/deployment.rb +1 -1
- data/lib/templates/new/dsl/backend_config.rb +10 -0
- data/lib/templates/new/dsl/config_map.rb +5 -0
- data/lib/templates/new/dsl/daemon_set.rb +11 -0
- data/lib/templates/new/dsl/deployment.rb +4 -0
- data/lib/templates/new/dsl/ingress.rb +3 -0
- data/lib/templates/new/dsl/job.rb +2 -0
- data/lib/templates/new/dsl/managed_certificate.rb +2 -0
- data/lib/templates/new/dsl/namespace.rb +2 -0
- data/lib/templates/new/dsl/network_policy.rb +7 -0
- data/lib/templates/new/dsl/pod.rb +6 -0
- data/lib/templates/new/dsl/role.rb +4 -0
- data/lib/templates/new/dsl/role_binding.rb +7 -0
- data/lib/templates/new/dsl/secret.rb +5 -0
- data/lib/templates/new/dsl/service.rb +2 -0
- data/lib/templates/new/dsl/service_account.rb +1 -0
- data/lib/templates/new/yaml/backend_config.yaml +10 -0
- data/lib/templates/new/yaml/config_map.yaml +9 -0
- data/lib/templates/new/yaml/daemon_set.yaml +11 -0
- data/lib/templates/new/yaml/deployment.yaml +20 -0
- data/lib/templates/new/yaml/ingress.yaml +12 -0
- data/lib/templates/new/yaml/job.yaml +19 -0
- data/lib/templates/new/yaml/managed_certificate.yaml +7 -0
- data/lib/templates/new/yaml/namespace.yaml +6 -0
- data/lib/templates/new/yaml/network_policy.yaml +20 -0
- data/lib/templates/new/yaml/pod.yaml +11 -0
- data/lib/templates/new/yaml/role.yaml +13 -0
- data/lib/templates/new/yaml/role_binding.yaml +11 -0
- data/lib/templates/new/yaml/secret.yaml +9 -0
- data/lib/templates/new/yaml/service.yaml +14 -0
- data/lib/templates/new/yaml/service_account.yaml +4 -0
- data/lib/templates/yaml/.kubes/resources/base/all.yaml.tt +2 -0
- data/lib/templates/yaml/.kubes/resources/web/deployment.yaml.tt +1 -1
- data/spec/kubes/cli/prune_spec.rb +1 -0
- data/spec/kubes/compiler_spec.rb +5 -1
- metadata +41 -2
@@ -35,5 +35,47 @@ class Kubes::Kubectl
|
|
35
35
|
i = index.to_s.rjust(3, "0") # pad with 0
|
36
36
|
"#{i}-#{value}" # append name so that terms with same index get order alphabetically
|
37
37
|
end
|
38
|
+
|
39
|
+
# kubes apply # {role: nil, resource: nil}
|
40
|
+
# kubes apply clock # {role: "clock", resource: nil}
|
41
|
+
# kubes apply clock deployment # {role: "clock", resource: "deployment"}
|
42
|
+
def search_expr
|
43
|
+
role, resource = @options[:role], @options[:resource]
|
44
|
+
if role && resource
|
45
|
+
"#{Kubes.root}/.kubes/output/#{role}/#{resource}.yaml"
|
46
|
+
elsif role
|
47
|
+
"#{Kubes.root}/.kubes/output/#{role}/*.yaml"
|
48
|
+
else
|
49
|
+
"#{Kubes.root}/.kubes/output/**/*.yaml"
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
def files
|
54
|
+
files = []
|
55
|
+
Dir.glob(search_expr).each do |path|
|
56
|
+
next unless process?(path)
|
57
|
+
file = path.sub("#{Kubes.root}/", '')
|
58
|
+
files << file
|
59
|
+
end
|
60
|
+
files
|
61
|
+
end
|
62
|
+
|
63
|
+
# Only considering files 2 layers deep. So:
|
64
|
+
#
|
65
|
+
# Yes = web/deployment.yaml
|
66
|
+
# No = web/deployment/dev.yaml
|
67
|
+
#
|
68
|
+
def process?(path)
|
69
|
+
if Kubes.kustomize?
|
70
|
+
File.file?(path)
|
71
|
+
else
|
72
|
+
consider?(path) && two_levels_deep?(path)
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
def two_levels_deep?(path)
|
77
|
+
rel_path = path.sub(%r{.*\.kubes/(resources|output)/},'')
|
78
|
+
rel_path.split('/').size == 2
|
79
|
+
end
|
38
80
|
end
|
39
81
|
end
|
data/lib/kubes/version.rb
CHANGED
@@ -2,7 +2,7 @@ Kubes.configure do |config|
|
|
2
2
|
config.repo = "<%= @options[:repo] %>"
|
3
3
|
config.logger.level = "info"
|
4
4
|
# auto-switching
|
5
|
-
# config.kubectl.context = "dev-
|
5
|
+
# config.kubectl.context = "dev-cluster"
|
6
6
|
# config.kubectl.context_keep = true # keep context after switching
|
7
7
|
# config.kubectl.exit_on_fail_for_apply = true # whether or not continue if the kubectl command fails
|
8
8
|
# config.kubectl.exit_on_fail_for_delete = false # whether or not continue if the kubectl command fails
|
@@ -2,7 +2,7 @@ name "web"
|
|
2
2
|
labels(role: "web")
|
3
3
|
|
4
4
|
replicas 1 # overridden on a env basis
|
5
|
-
image
|
5
|
+
image docker_image # IE: user/<%= app %>:kubes-2020-06-13T19-55-16-43afc6e
|
6
6
|
|
7
7
|
# revisionHistoryLimit 1 # uncomment to reduce old ReplicaSets, default is 10 https://bit.ly/3hqrzyP
|
8
8
|
# maxUnavailable 25
|
@@ -0,0 +1 @@
|
|
1
|
+
name "<%= app %>"
|
@@ -0,0 +1,20 @@
|
|
1
|
+
test: 1
|
2
|
+
apiVersion: apps/v1
|
3
|
+
kind: Deployment
|
4
|
+
metadata:
|
5
|
+
name: <%= role %>
|
6
|
+
labels:
|
7
|
+
role: <%= role %>
|
8
|
+
spec:
|
9
|
+
replicas: 1 # overridden on a env basis
|
10
|
+
selector:
|
11
|
+
matchLabels:
|
12
|
+
role: <%= role %>
|
13
|
+
template:
|
14
|
+
metadata:
|
15
|
+
labels:
|
16
|
+
role: <%= role %>
|
17
|
+
spec:
|
18
|
+
containers:
|
19
|
+
- name: <%= role %>
|
20
|
+
image: <%%= docker_image %>
|
@@ -0,0 +1,19 @@
|
|
1
|
+
apiVersion: batch/v1
|
2
|
+
kind: Job
|
3
|
+
metadata:
|
4
|
+
name: <%= app %>
|
5
|
+
spec:
|
6
|
+
template:
|
7
|
+
spec:
|
8
|
+
restartPolicy: Never
|
9
|
+
serviceAccountName: <%= app %>
|
10
|
+
containers:
|
11
|
+
- name: <%= app %>
|
12
|
+
image: <%%= docker_image %>
|
13
|
+
command: ["uptime"] # IE: ["bin/job/migrate.sh"]
|
14
|
+
# envFrom:
|
15
|
+
# - secretRef:
|
16
|
+
# name: <%= app %>
|
17
|
+
# - configMapRef:
|
18
|
+
# name: <%= app %>
|
19
|
+
backoffLimit: 1
|
@@ -0,0 +1,20 @@
|
|
1
|
+
apiVersion: networking.k8s.io/v1
|
2
|
+
kind: NetworkPolicy
|
3
|
+
metadata:
|
4
|
+
name: <%= role %>
|
5
|
+
labels:
|
6
|
+
app: <%= app %> # IE: backend
|
7
|
+
namespace: <%= app %> # IE: backend
|
8
|
+
spec:
|
9
|
+
podSelector:
|
10
|
+
matchLabels:
|
11
|
+
app: <%= app %> # IE: backend
|
12
|
+
role: <%= role %>
|
13
|
+
ingress:
|
14
|
+
- from:
|
15
|
+
- namespaceSelector:
|
16
|
+
matchLabels:
|
17
|
+
app: <%= app %> # IE: frontend
|
18
|
+
- podSelector:
|
19
|
+
matchLabels:
|
20
|
+
app: <%= app %> # IE: backend
|
@@ -4,6 +4,7 @@ describe Kubes::CLI::Prune do
|
|
4
4
|
allow(prune).to receive(:sure?)
|
5
5
|
allow(prune).to receive(:capture_items).and_return(capture)
|
6
6
|
allow(prune).to receive(:logger).and_return(null)
|
7
|
+
allow(prune).to receive(:compile).and_return(null) # to avoid building Docker image
|
7
8
|
prune
|
8
9
|
end
|
9
10
|
let(:null) { double(:null).as_null_object }
|
data/spec/kubes/compiler_spec.rb
CHANGED
@@ -1,5 +1,9 @@
|
|
1
1
|
describe Kubes::Compiler do
|
2
|
-
let(:compiler)
|
2
|
+
let(:compiler) do
|
3
|
+
compiler = described_class.new(options)
|
4
|
+
allow(compiler).to receive(:write_full)
|
5
|
+
compiler
|
6
|
+
end
|
3
7
|
let(:options) { {path: "spec/fixtures/project/.kubes/deployment.rb" } }
|
4
8
|
|
5
9
|
describe "compiler" do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kubes
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tung Nguyen
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-11-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -286,6 +286,7 @@ files:
|
|
286
286
|
- docs/_docs/dsl/resources/deployment.md
|
287
287
|
- docs/_docs/dsl/resources/generic.md
|
288
288
|
- docs/_docs/dsl/resources/ingress.md
|
289
|
+
- docs/_docs/dsl/resources/job.md
|
289
290
|
- docs/_docs/dsl/resources/managed_certificate.md
|
290
291
|
- docs/_docs/dsl/resources/namespace.md
|
291
292
|
- docs/_docs/dsl/resources/network_policy.md
|
@@ -298,6 +299,7 @@ files:
|
|
298
299
|
- docs/_docs/extra-env.md
|
299
300
|
- docs/_docs/extra-env/dsl.md
|
300
301
|
- docs/_docs/extra-env/yaml.md
|
302
|
+
- docs/_docs/generators.md
|
301
303
|
- docs/_docs/helpers.md
|
302
304
|
- docs/_docs/helpers/aws.md
|
303
305
|
- docs/_docs/helpers/aws/iam-role.md
|
@@ -309,6 +311,7 @@ files:
|
|
309
311
|
- docs/_docs/helpers/google/service-account.md
|
310
312
|
- docs/_docs/intro.md
|
311
313
|
- docs/_docs/intro/concepts.md
|
314
|
+
- docs/_docs/intro/docker-image.md
|
312
315
|
- docs/_docs/intro/how-kubes-works.md
|
313
316
|
- docs/_docs/intro/install.md
|
314
317
|
- docs/_docs/intro/ordering.md
|
@@ -391,6 +394,8 @@ files:
|
|
391
394
|
- docs/_reference/kubes-get.md
|
392
395
|
- docs/_reference/kubes-init.md
|
393
396
|
- docs/_reference/kubes-logs.md
|
397
|
+
- docs/_reference/kubes-new.md
|
398
|
+
- docs/_reference/kubes-prune.md
|
394
399
|
- docs/_reference/kubes-version.md
|
395
400
|
- docs/_sass/bootstrap-overrides.scss
|
396
401
|
- docs/_sass/buttons.scss
|
@@ -522,8 +527,10 @@ files:
|
|
522
527
|
- lib/kubes/cli/help/completion_script.md
|
523
528
|
- lib/kubes/cli/help/deploy.md
|
524
529
|
- lib/kubes/cli/help/exec.md
|
530
|
+
- lib/kubes/cli/help/new.md
|
525
531
|
- lib/kubes/cli/init.rb
|
526
532
|
- lib/kubes/cli/logs.rb
|
533
|
+
- lib/kubes/cli/new.rb
|
527
534
|
- lib/kubes/cli/prune.rb
|
528
535
|
- lib/kubes/cli/sequence.rb
|
529
536
|
- lib/kubes/command.rb
|
@@ -547,6 +554,7 @@ files:
|
|
547
554
|
- lib/kubes/compiler/dsl/syntax/daemon_set.rb
|
548
555
|
- lib/kubes/compiler/dsl/syntax/deployment.rb
|
549
556
|
- lib/kubes/compiler/dsl/syntax/ingress.rb
|
557
|
+
- lib/kubes/compiler/dsl/syntax/job.rb
|
550
558
|
- lib/kubes/compiler/dsl/syntax/managed_certificate.rb
|
551
559
|
- lib/kubes/compiler/dsl/syntax/namespace.rb
|
552
560
|
- lib/kubes/compiler/dsl/syntax/network_policy.rb
|
@@ -560,6 +568,7 @@ files:
|
|
560
568
|
- lib/kubes/compiler/layering.rb
|
561
569
|
- lib/kubes/compiler/shared/custom_helpers.rb
|
562
570
|
- lib/kubes/compiler/shared/helpers.rb
|
571
|
+
- lib/kubes/compiler/shared/helpers/deprecated.rb
|
563
572
|
- lib/kubes/compiler/strategy.rb
|
564
573
|
- lib/kubes/compiler/strategy/base.rb
|
565
574
|
- lib/kubes/compiler/strategy/dsl.rb
|
@@ -617,6 +626,36 @@ files:
|
|
617
626
|
- lib/templates/dsl/.kubes/resources/web/deployment/dev.rb
|
618
627
|
- lib/templates/dsl/.kubes/resources/web/deployment/prod.rb
|
619
628
|
- lib/templates/dsl/.kubes/resources/web/service.rb
|
629
|
+
- lib/templates/new/dsl/backend_config.rb
|
630
|
+
- lib/templates/new/dsl/config_map.rb
|
631
|
+
- lib/templates/new/dsl/daemon_set.rb
|
632
|
+
- lib/templates/new/dsl/deployment.rb
|
633
|
+
- lib/templates/new/dsl/ingress.rb
|
634
|
+
- lib/templates/new/dsl/job.rb
|
635
|
+
- lib/templates/new/dsl/managed_certificate.rb
|
636
|
+
- lib/templates/new/dsl/namespace.rb
|
637
|
+
- lib/templates/new/dsl/network_policy.rb
|
638
|
+
- lib/templates/new/dsl/pod.rb
|
639
|
+
- lib/templates/new/dsl/role.rb
|
640
|
+
- lib/templates/new/dsl/role_binding.rb
|
641
|
+
- lib/templates/new/dsl/secret.rb
|
642
|
+
- lib/templates/new/dsl/service.rb
|
643
|
+
- lib/templates/new/dsl/service_account.rb
|
644
|
+
- lib/templates/new/yaml/backend_config.yaml
|
645
|
+
- lib/templates/new/yaml/config_map.yaml
|
646
|
+
- lib/templates/new/yaml/daemon_set.yaml
|
647
|
+
- lib/templates/new/yaml/deployment.yaml
|
648
|
+
- lib/templates/new/yaml/ingress.yaml
|
649
|
+
- lib/templates/new/yaml/job.yaml
|
650
|
+
- lib/templates/new/yaml/managed_certificate.yaml
|
651
|
+
- lib/templates/new/yaml/namespace.yaml
|
652
|
+
- lib/templates/new/yaml/network_policy.yaml
|
653
|
+
- lib/templates/new/yaml/pod.yaml
|
654
|
+
- lib/templates/new/yaml/role.yaml
|
655
|
+
- lib/templates/new/yaml/role_binding.yaml
|
656
|
+
- lib/templates/new/yaml/secret.yaml
|
657
|
+
- lib/templates/new/yaml/service.yaml
|
658
|
+
- lib/templates/new/yaml/service_account.yaml
|
620
659
|
- lib/templates/yaml/.kubes/resources/base/all.yaml.tt
|
621
660
|
- lib/templates/yaml/.kubes/resources/base/deployment.yaml.tt
|
622
661
|
- lib/templates/yaml/.kubes/resources/shared/namespace.yaml.tt
|