kubes 0.3.3 → 0.4.2

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.
Files changed (105) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +29 -0
  3. data/README.md +6 -5
  4. data/docs/_docs/ci/cloudbuild.md +2 -0
  5. data/docs/_docs/config/args.md +10 -0
  6. data/docs/_docs/config/args/docker.md +19 -0
  7. data/docs/_docs/config/args/kubectl.md +19 -0
  8. data/docs/_docs/config/docker.md +4 -40
  9. data/docs/_docs/config/env.md +1 -1
  10. data/docs/_docs/config/hooks.md +10 -0
  11. data/docs/_docs/config/hooks/docker.md +70 -0
  12. data/docs/_docs/config/hooks/kubectl.md +83 -0
  13. data/docs/_docs/config/hooks/kubes.md +67 -0
  14. data/docs/_docs/config/hooks/ruby.md +76 -0
  15. data/docs/_docs/config/kubectl.md +3 -54
  16. data/docs/_docs/config/reference.md +20 -0
  17. data/docs/_docs/config/skip.md +58 -0
  18. data/docs/_docs/dsl/resources.md +1 -1
  19. data/docs/_docs/dsl/resources/backend_config.md +1 -1
  20. data/docs/_docs/helpers.md +3 -2
  21. data/docs/_docs/intro.md +6 -3
  22. data/docs/_docs/learn/dsl/review-project.md +4 -2
  23. data/docs/_docs/learn/yaml/review-project.md +4 -2
  24. data/docs/_docs/{auto-context.md → misc/auto-context.md} +0 -0
  25. data/docs/_docs/{kustomize.md → misc/kustomize.md} +0 -0
  26. data/docs/_docs/misc/separate-steps.md +21 -0
  27. data/docs/_docs/patterns.md +4 -1
  28. data/docs/_docs/patterns/clock-web-worker.md +2 -0
  29. data/docs/_docs/patterns/migrations.md +123 -0
  30. data/docs/_docs/patterns/secrets.md +82 -0
  31. data/docs/_includes/config/hooks/options.md +20 -0
  32. data/docs/_includes/sidebar.html +35 -11
  33. data/docs/_reference/kubes-exec.md +14 -6
  34. data/docs/_reference/kubes-init.md +1 -0
  35. data/docs/_reference/kubes-logs.md +1 -0
  36. data/docs/_sass/theme.scss +25 -1
  37. data/kubes.gemspec +3 -0
  38. data/lib/kubes.rb +3 -0
  39. data/lib/kubes/cli.rb +20 -5
  40. data/lib/kubes/cli/apply.rb +2 -1
  41. data/lib/kubes/cli/base.rb +11 -0
  42. data/lib/kubes/cli/compile.rb +8 -0
  43. data/lib/kubes/cli/delete.rb +1 -1
  44. data/lib/kubes/cli/exec.rb +37 -6
  45. data/lib/kubes/cli/get.rb +3 -2
  46. data/lib/kubes/cli/init.rb +39 -2
  47. data/lib/kubes/cli/logs.rb +29 -4
  48. data/lib/kubes/cli/prune.rb +95 -0
  49. data/lib/kubes/compiler.rb +11 -7
  50. data/lib/kubes/compiler/decorator/base.rb +7 -1
  51. data/lib/kubes/compiler/decorator/{resources/secret.rb → hashable.rb} +5 -4
  52. data/lib/kubes/compiler/decorator/hashable/field.rb +53 -0
  53. data/lib/kubes/compiler/decorator/hashable/storage.rb +19 -0
  54. data/lib/kubes/compiler/decorator/post.rb +77 -0
  55. data/lib/kubes/compiler/decorator/pre.rb +12 -0
  56. data/lib/kubes/compiler/shared/helpers.rb +7 -2
  57. data/lib/kubes/compiler/strategy.rb +2 -2
  58. data/lib/kubes/compiler/strategy/base.rb +1 -1
  59. data/lib/kubes/compiler/strategy/result.rb +4 -6
  60. data/lib/kubes/config.rb +16 -11
  61. data/lib/kubes/docker/strategy/build/docker.rb +1 -1
  62. data/lib/kubes/docker/strategy/build/gcloud.rb +1 -1
  63. data/lib/kubes/docker/strategy/image_name.rb +1 -1
  64. data/lib/kubes/docker/strategy/push/docker.rb +1 -1
  65. data/lib/kubes/docker/strategy/push/gcloud.rb +1 -1
  66. data/lib/kubes/docker/strategy/utils.rb +1 -1
  67. data/lib/kubes/hooks/builder.rb +29 -15
  68. data/lib/kubes/hooks/concern.rb +10 -0
  69. data/lib/kubes/hooks/dsl.rb +2 -1
  70. data/lib/kubes/hooks/runner.rb +22 -0
  71. data/lib/kubes/kubectl.rb +21 -18
  72. data/lib/kubes/kubectl/batch.rb +8 -5
  73. data/lib/kubes/kubectl/{decider.rb → dispatcher.rb} +1 -1
  74. data/lib/kubes/kubectl/fetch/base.rb +13 -10
  75. data/lib/kubes/kubectl/fetch/deployment.rb +12 -13
  76. data/lib/kubes/kubectl/fetch/pods.rb +4 -15
  77. data/lib/kubes/kubectl/kustomize.rb +1 -1
  78. data/lib/kubes/kubectl/ordering.rb +12 -0
  79. data/lib/kubes/util/consider.rb +2 -1
  80. data/lib/kubes/util/sh.rb +1 -1
  81. data/lib/kubes/version.rb +1 -1
  82. data/lib/templates/dsl/.kubes/resources/base/all.rb.tt +6 -1
  83. data/lib/templates/dsl/.kubes/resources/shared/namespace.rb.tt +1 -1
  84. data/lib/templates/dsl/.kubes/resources/web/deployment.rb +1 -1
  85. data/lib/templates/yaml/.kubes/resources/base/all.yaml.tt +1 -1
  86. data/lib/templates/yaml/.kubes/resources/shared/namespace.yaml.tt +1 -1
  87. data/lib/templates/yaml/.kubes/resources/web/deployment.yaml.tt +1 -1
  88. data/spec/fixtures/decorators/deployment/both/envFrom.yaml +31 -0
  89. data/spec/fixtures/decorators/deployment/both/valueFrom.yaml +33 -0
  90. data/spec/fixtures/decorators/deployment/both/volumes.yaml +40 -0
  91. data/spec/fixtures/prune/capture.yaml +57 -0
  92. data/spec/fixtures/prune/fetch_items.yaml +268 -0
  93. data/spec/kubes/cli/prune_spec.rb +38 -0
  94. data/spec/kubes/compiler/decorator/{resources → post}/deployment_spec.rb +52 -6
  95. data/spec/kubes/compiler/decorator/{resources → post}/pod_spec.rb +2 -11
  96. metadata +57 -19
  97. data/lib/kubes/compiler/decorator.rb +0 -17
  98. data/lib/kubes/compiler/decorator/compile.rb +0 -12
  99. data/lib/kubes/compiler/decorator/resources/base.rb +0 -13
  100. data/lib/kubes/compiler/decorator/resources/container.rb +0 -76
  101. data/lib/kubes/compiler/decorator/resources/container/mapping.rb +0 -28
  102. data/lib/kubes/compiler/decorator/resources/deployment.rb +0 -10
  103. data/lib/kubes/compiler/decorator/resources/pod.rb +0 -10
  104. data/lib/kubes/compiler/decorator/write.rb +0 -14
  105. data/lib/kubes/docker/strategy/hooks.rb +0 -9
@@ -0,0 +1,38 @@
1
+ describe Kubes::CLI::Prune do
2
+ let(:prune) do
3
+ prune = described_class.new
4
+ allow(prune).to receive(:sure?)
5
+ allow(prune).to receive(:capture_items).and_return(capture)
6
+ allow(prune).to receive(:logger).and_return(null)
7
+ prune
8
+ end
9
+ let(:null) { double(:null).as_null_object }
10
+
11
+ let(:fetcher) do
12
+ fetcher = double(:fetcher).as_null_object
13
+ allow(fetcher).to receive(:fetch_items).and_return(fetch_items)
14
+ fetcher
15
+ end
16
+ before(:each) do
17
+ allow(Kubes::Kubectl::Fetch::Base).to receive(:new).and_return(fetcher)
18
+ allow(Kubes::Compiler::Decorator::Hashable::Storage).to receive(:md5s).and_return(built_kinds)
19
+ end
20
+
21
+ context("old resources") do
22
+ let(:fetch_items) { fixture("fetch_items.yaml") }
23
+ let(:capture) { fixture("capture.yaml") }
24
+ let(:built_kinds) do
25
+ {"Secret"=>{"demo-secret"=>"CURRENT111"}}
26
+ end
27
+
28
+ it "run" do
29
+ allow(Kubes::Kubectl).to receive(:execute)
30
+ prune.run
31
+ expect(Kubes::Kubectl).to have_received(:execute).at_least(:once)
32
+ end
33
+ end
34
+
35
+ def fixture(file)
36
+ YAML.load_file("spec/fixtures/prune/#{file}")
37
+ end
38
+ end
@@ -1,11 +1,14 @@
1
- describe Kubes::Compiler::Decorator::Resources::Deployment do
1
+ describe Kubes::Compiler::Decorator::Post do
2
2
  let(:decorator) { described_class.new(data) }
3
3
 
4
4
  def fixture(name)
5
5
  YAML.load_file("spec/fixtures/decorators/deployment/#{name}.yaml")
6
6
  end
7
7
  before(:each) do
8
- allow(Kubes::Compiler::Decorator).to receive(:fetch).and_return("fakehash")
8
+ allow(Kubes::Compiler::Decorator::Hashable::Storage).to receive(:fetch).and_return("fakehash")
9
+ allow(Kubes::Compiler::Decorator::Hashable::Storage).to receive(:fetch).with("Secret", "demo-secret").and_return("fakehash")
10
+ allow(Kubes::Compiler::Decorator::Hashable::Storage).to receive(:fetch).with("ConfigMap", "demo-config-map").and_return("fakehash-config")
11
+ allow(Kubes::Compiler::Decorator::Hashable::Storage).to receive(:fetch).with("ConfigMap", "demo-config-map-2").and_return("fakehash-config2")
9
12
  end
10
13
 
11
14
  context "secret" do
@@ -56,7 +59,7 @@ describe Kubes::Compiler::Decorator::Resources::Deployment do
56
59
  decorator.run
57
60
  data = decorator.data
58
61
  name = data['spec']['template']['spec']['containers'][0]['envFrom'][0]['configMapRef']['name']
59
- expect(name).to eq("demo-config-map-fakehash")
62
+ expect(name).to eq("demo-config-map-fakehash-config")
60
63
  end
61
64
  end
62
65
 
@@ -66,7 +69,7 @@ describe Kubes::Compiler::Decorator::Resources::Deployment do
66
69
  decorator.run
67
70
  data = decorator.data
68
71
  name = data['spec']['template']['spec']['containers'][0]['env'][0]['valueFrom']['configMapKeyRef']['name']
69
- expect(name).to eq("demo-config-map-fakehash")
72
+ expect(name).to eq("demo-config-map-fakehash-config")
70
73
  end
71
74
  end
72
75
 
@@ -76,7 +79,7 @@ describe Kubes::Compiler::Decorator::Resources::Deployment do
76
79
  decorator.run
77
80
  data = decorator.data
78
81
  name = data['spec']['template']['spec']['volumes'][0]['configMap']['name']
79
- expect(name).to eq("demo-config-map-fakehash")
82
+ expect(name).to eq("demo-config-map-fakehash-config")
80
83
  end
81
84
  end
82
85
 
@@ -85,7 +88,50 @@ describe Kubes::Compiler::Decorator::Resources::Deployment do
85
88
  it "data" do
86
89
  decorator.run
87
90
  name = data['spec']['template']['spec']['containers'][0]['envFrom'][0]['configMapRef']['name']
88
- expect(name).to eq("demo-config-map-fakehash")
91
+ expect(name).to eq("demo-config-map-fakehash-config")
92
+ end
93
+ end
94
+ end
95
+
96
+ context "both" do
97
+ describe "envFrom" do
98
+ let(:data) { fixture("both/envFrom") }
99
+ it "run" do
100
+ decorator.run
101
+ data = decorator.data
102
+ envFrom = data['spec']['template']['spec']['containers'][0]['envFrom']
103
+ name = envFrom[0]['secretRef']['name']
104
+ expect(name).to eq("demo-secret-fakehash")
105
+ name = envFrom[1]['configMapRef']['name']
106
+ expect(name).to eq("demo-config-map-fakehash-config")
107
+ name = envFrom[2]['configMapRef']['name']
108
+ expect(name).to eq("demo-config-map-2-fakehash-config2")
109
+ end
110
+ end
111
+
112
+ describe "valueFrom" do
113
+ let(:data) { fixture("both/valueFrom") }
114
+ it "run" do
115
+ decorator.run
116
+ data = decorator.data
117
+ valueFrom = data['spec']['template']['spec']['containers'][0]['env'][0]['valueFrom']
118
+ name = valueFrom['configMapKeyRef']['name']
119
+ expect(name).to eq("demo-config-map-fakehash-config")
120
+ name = valueFrom['secretKeyRef']['name']
121
+ expect(name).to eq("demo-secret-fakehash")
122
+ end
123
+ end
124
+
125
+ describe "volumes" do
126
+ let(:data) { fixture("both/volumes") }
127
+ it "run" do
128
+ decorator.run
129
+ data = decorator.data
130
+ volumes = data['spec']['template']['spec']['volumes']
131
+ name = volumes[0]['configMap']['name']
132
+ expect(name).to eq("demo-config-map-fakehash-config")
133
+ name = volumes[1]['secret']['secretName']
134
+ expect(name).to eq("demo-secret-fakehash")
89
135
  end
90
136
  end
91
137
  end
@@ -1,11 +1,11 @@
1
- describe Kubes::Compiler::Decorator::Resources::Pod do
1
+ describe Kubes::Compiler::Decorator::Post do
2
2
  let(:decorator) { described_class.new(data) }
3
3
 
4
4
  def fixture(name)
5
5
  YAML.load_file("spec/fixtures/decorators/pod/#{name}.yaml")
6
6
  end
7
7
  before(:each) do
8
- allow(Kubes::Compiler::Decorator).to receive(:fetch).and_return("fakehash")
8
+ allow(Kubes::Compiler::Decorator::Hashable::Storage).to receive(:fetch).and_return("fakehash")
9
9
  end
10
10
 
11
11
  context("secret") do
@@ -38,15 +38,6 @@ describe Kubes::Compiler::Decorator::Resources::Pod do
38
38
  expect(name).to eq("demo-secret-fakehash")
39
39
  end
40
40
  end
41
-
42
- describe "run" do
43
- let(:data) { fixture("secret/envFrom") }
44
- it "data" do
45
- decorator.run
46
- name = data['spec']['containers'][0]['envFrom'][0]['secretRef']['name']
47
- expect(name).to eq("demo-secret-fakehash")
48
- end
49
- end
50
41
  end
51
42
 
52
43
  context "configMap" 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.3.3
4
+ version: 0.4.2
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-08-11 00:00:00.000000000 Z
11
+ date: 2020-10-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -136,6 +136,20 @@ dependencies:
136
136
  - - ">="
137
137
  - !ruby/object:Gem::Version
138
138
  version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: kubes_google
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :runtime
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
139
153
  - !ruby/object:Gem::Dependency
140
154
  name: bundler
141
155
  requirement: !ruby/object:Gem::Requirement
@@ -232,13 +246,22 @@ files:
232
246
  - docs/README.md
233
247
  - docs/Rakefile
234
248
  - docs/_config.yml
235
- - docs/_docs/auto-context.md
236
249
  - docs/_docs/ci/cloudbuild.md
237
250
  - docs/_docs/config.md
251
+ - docs/_docs/config/args.md
252
+ - docs/_docs/config/args/docker.md
253
+ - docs/_docs/config/args/kubectl.md
238
254
  - docs/_docs/config/builder.md
239
255
  - docs/_docs/config/docker.md
240
256
  - docs/_docs/config/env.md
257
+ - docs/_docs/config/hooks.md
258
+ - docs/_docs/config/hooks/docker.md
259
+ - docs/_docs/config/hooks/kubectl.md
260
+ - docs/_docs/config/hooks/kubes.md
261
+ - docs/_docs/config/hooks/ruby.md
241
262
  - docs/_docs/config/kubectl.md
263
+ - docs/_docs/config/reference.md
264
+ - docs/_docs/config/skip.md
242
265
  - docs/_docs/contributing.md
243
266
  - docs/_docs/dsl.md
244
267
  - docs/_docs/dsl/multiple-resources.md
@@ -269,7 +292,6 @@ files:
269
292
  - docs/_docs/intro/ordering.md
270
293
  - docs/_docs/intro/ordering/custom.md
271
294
  - docs/_docs/intro/structure.md
272
- - docs/_docs/kustomize.md
273
295
  - docs/_docs/layering.md
274
296
  - docs/_docs/layering/dsl.md
275
297
  - docs/_docs/layering/merge.md
@@ -294,15 +316,21 @@ files:
294
316
  - docs/_docs/learn/yaml/next-steps.md
295
317
  - docs/_docs/learn/yaml/review-project.md
296
318
  - docs/_docs/learn/yaml/update.md
319
+ - docs/_docs/misc/auto-context.md
320
+ - docs/_docs/misc/kustomize.md
321
+ - docs/_docs/misc/separate-steps.md
297
322
  - docs/_docs/next-steps.md
298
323
  - docs/_docs/patterns.md
299
324
  - docs/_docs/patterns/clock-web-worker.md
325
+ - docs/_docs/patterns/migrations.md
326
+ - docs/_docs/patterns/secrets.md
300
327
  - docs/_docs/resources.md
301
328
  - docs/_docs/resources/base.md
302
329
  - docs/_docs/resources/role.md
303
330
  - docs/_docs/resources/shared.md
304
331
  - docs/_docs/yaml.md
305
332
  - docs/_includes/commands.html
333
+ - docs/_includes/config/hooks/options.md
306
334
  - docs/_includes/content.html
307
335
  - docs/_includes/dsl/methods.md
308
336
  - docs/_includes/dsl/rolling_deployment.md
@@ -473,19 +501,16 @@ files:
473
501
  - lib/kubes/cli/help/exec.md
474
502
  - lib/kubes/cli/init.rb
475
503
  - lib/kubes/cli/logs.rb
504
+ - lib/kubes/cli/prune.rb
476
505
  - lib/kubes/cli/sequence.rb
477
506
  - lib/kubes/command.rb
478
507
  - lib/kubes/compiler.rb
479
- - lib/kubes/compiler/decorator.rb
480
508
  - lib/kubes/compiler/decorator/base.rb
481
- - lib/kubes/compiler/decorator/compile.rb
482
- - lib/kubes/compiler/decorator/resources/base.rb
483
- - lib/kubes/compiler/decorator/resources/container.rb
484
- - lib/kubes/compiler/decorator/resources/container/mapping.rb
485
- - lib/kubes/compiler/decorator/resources/deployment.rb
486
- - lib/kubes/compiler/decorator/resources/pod.rb
487
- - lib/kubes/compiler/decorator/resources/secret.rb
488
- - lib/kubes/compiler/decorator/write.rb
509
+ - lib/kubes/compiler/decorator/hashable.rb
510
+ - lib/kubes/compiler/decorator/hashable/field.rb
511
+ - lib/kubes/compiler/decorator/hashable/storage.rb
512
+ - lib/kubes/compiler/decorator/post.rb
513
+ - lib/kubes/compiler/decorator/pre.rb
489
514
  - lib/kubes/compiler/dsl/core/base.rb
490
515
  - lib/kubes/compiler/dsl/core/blocks.rb
491
516
  - lib/kubes/compiler/dsl/core/fields.rb
@@ -529,20 +554,21 @@ files:
529
554
  - lib/kubes/docker/strategy/build/base.rb
530
555
  - lib/kubes/docker/strategy/build/docker.rb
531
556
  - lib/kubes/docker/strategy/build/gcloud.rb
532
- - lib/kubes/docker/strategy/hooks.rb
533
557
  - lib/kubes/docker/strategy/image_name.rb
534
558
  - lib/kubes/docker/strategy/push/base.rb
535
559
  - lib/kubes/docker/strategy/push/docker.rb
536
560
  - lib/kubes/docker/strategy/push/gcloud.rb
537
561
  - lib/kubes/docker/strategy/utils.rb
538
562
  - lib/kubes/hooks/builder.rb
563
+ - lib/kubes/hooks/concern.rb
539
564
  - lib/kubes/hooks/dsl.rb
565
+ - lib/kubes/hooks/runner.rb
540
566
  - lib/kubes/kubectl.rb
541
567
  - lib/kubes/kubectl/args/base.rb
542
568
  - lib/kubes/kubectl/args/kustomize.rb
543
569
  - lib/kubes/kubectl/args/standard.rb
544
570
  - lib/kubes/kubectl/batch.rb
545
- - lib/kubes/kubectl/decider.rb
571
+ - lib/kubes/kubectl/dispatcher.rb
546
572
  - lib/kubes/kubectl/fetch/base.rb
547
573
  - lib/kubes/kubectl/fetch/deployment.rb
548
574
  - lib/kubes/kubectl/fetch/pods.rb
@@ -576,6 +602,9 @@ files:
576
602
  - spec/fixtures/artifacts/demo-web/deployment.yaml
577
603
  - spec/fixtures/artifacts/demo-web/service.yaml
578
604
  - spec/fixtures/blocks/deployments.rb
605
+ - spec/fixtures/decorators/deployment/both/envFrom.yaml
606
+ - spec/fixtures/decorators/deployment/both/valueFrom.yaml
607
+ - spec/fixtures/decorators/deployment/both/volumes.yaml
579
608
  - spec/fixtures/decorators/deployment/configMap/envFrom.yaml
580
609
  - spec/fixtures/decorators/deployment/configMap/valueFrom.yaml
581
610
  - spec/fixtures/decorators/deployment/configMap/volumes.yaml
@@ -601,11 +630,14 @@ files:
601
630
  - spec/fixtures/project/.kubes/resources/deployment.rb
602
631
  - spec/fixtures/project/.kubes/resources/foobar.rb
603
632
  - spec/fixtures/project/.kubes/resources/service.rb
633
+ - spec/fixtures/prune/capture.yaml
634
+ - spec/fixtures/prune/fetch_items.yaml
604
635
  - spec/fixtures/services/minimum.rb
605
636
  - spec/fixtures/syntax/network_policy.rb
606
637
  - spec/fixtures/syntax/pod.rb
607
- - spec/kubes/compiler/decorator/resources/deployment_spec.rb
608
- - spec/kubes/compiler/decorator/resources/pod_spec.rb
638
+ - spec/kubes/cli/prune_spec.rb
639
+ - spec/kubes/compiler/decorator/post/deployment_spec.rb
640
+ - spec/kubes/compiler/decorator/post/pod_spec.rb
609
641
  - spec/kubes/compiler/strategy/dsl_spec.rb
610
642
  - spec/kubes/compiler_spec.rb
611
643
  - spec/kubes/dsl/daemon_set.rb
@@ -645,6 +677,9 @@ test_files:
645
677
  - spec/fixtures/artifacts/demo-web/deployment.yaml
646
678
  - spec/fixtures/artifacts/demo-web/service.yaml
647
679
  - spec/fixtures/blocks/deployments.rb
680
+ - spec/fixtures/decorators/deployment/both/envFrom.yaml
681
+ - spec/fixtures/decorators/deployment/both/valueFrom.yaml
682
+ - spec/fixtures/decorators/deployment/both/volumes.yaml
648
683
  - spec/fixtures/decorators/deployment/configMap/envFrom.yaml
649
684
  - spec/fixtures/decorators/deployment/configMap/valueFrom.yaml
650
685
  - spec/fixtures/decorators/deployment/configMap/volumes.yaml
@@ -670,11 +705,14 @@ test_files:
670
705
  - spec/fixtures/project/.kubes/resources/deployment.rb
671
706
  - spec/fixtures/project/.kubes/resources/foobar.rb
672
707
  - spec/fixtures/project/.kubes/resources/service.rb
708
+ - spec/fixtures/prune/capture.yaml
709
+ - spec/fixtures/prune/fetch_items.yaml
673
710
  - spec/fixtures/services/minimum.rb
674
711
  - spec/fixtures/syntax/network_policy.rb
675
712
  - spec/fixtures/syntax/pod.rb
676
- - spec/kubes/compiler/decorator/resources/deployment_spec.rb
677
- - spec/kubes/compiler/decorator/resources/pod_spec.rb
713
+ - spec/kubes/cli/prune_spec.rb
714
+ - spec/kubes/compiler/decorator/post/deployment_spec.rb
715
+ - spec/kubes/compiler/decorator/post/pod_spec.rb
678
716
  - spec/kubes/compiler/strategy/dsl_spec.rb
679
717
  - spec/kubes/compiler_spec.rb
680
718
  - spec/kubes/dsl/daemon_set.rb
@@ -1,17 +0,0 @@
1
- class Kubes::Compiler
2
- module Decorator
3
- @@md5s = {}
4
- def store(name, md5)
5
- @@md5s[name] = md5
6
- end
7
-
8
- def fetch(name)
9
- @@md5s[name]
10
- end
11
-
12
- def md5s
13
- @@md5s
14
- end
15
- extend self
16
- end
17
- end
@@ -1,12 +0,0 @@
1
- module Kubes::Compiler::Decorator
2
- class Compile < Base
3
- def process(item)
4
- case item['kind']
5
- when "ConfigMap", "Secret"
6
- Resources::Secret.new(item).run
7
- else
8
- item # pass through
9
- end
10
- end
11
- end
12
- end
@@ -1,13 +0,0 @@
1
- module Kubes::Compiler::Decorator::Resources
2
- class Base
3
- attr_reader :data
4
- def initialize(data)
5
- @data = data
6
- end
7
-
8
- def run
9
- return @data unless Kubes.config.suffix_hash
10
- perform
11
- end
12
- end
13
- end
@@ -1,76 +0,0 @@
1
- module Kubes::Compiler::Decorator::Resources
2
- class Container
3
- include Mapping
4
-
5
- def initialize(data, kind:, fields_for:)
6
- @data = data
7
- # These methods are defined in Mapping
8
- kind == "Deployment" ? deployment_keys : pod_keys
9
- fields_for == "Secret" ? secrets_fields : configMaps_fields
10
- end
11
-
12
- def run
13
- envFrom!
14
- valueFrom!
15
- volumes!
16
- @data
17
- end
18
-
19
- # spec.envFrom.configMapRef
20
- # spec.envFrom.secretRef
21
- def envFrom!
22
- return @data unless containers
23
-
24
- containers.each do |container|
25
- next unless envFrom_list = container.dig('envFrom') # intentional assignment
26
-
27
- envFrom_list.each do |envFrom|
28
- next unless name = envFrom.dig(@envFrom_field, 'name') # intentional assignment
29
-
30
- md5 = Kubes::Compiler::Decorator.fetch(name)
31
- envFrom[@envFrom_field]['name'] = [name, md5].compact.join('-')
32
- end
33
- end
34
- end
35
-
36
- # spec.valueFrom.configMapKeyRef
37
- # spec.valueFrom.secretKeyRef
38
- def valueFrom!
39
- return @data unless containers
40
-
41
- containers.each do |container|
42
- next unless env_list = container.dig('env') # intentional assignment
43
-
44
- env_list.each do |env|
45
- next unless name = env.dig('valueFrom',@valueFrom_field,'name') # intentional assignment
46
-
47
- md5 = Kubes::Compiler::Decorator.fetch(name)
48
- env['valueFrom'][@valueFrom_field]['name'] = [name, md5].compact.join('-')
49
- end
50
- end
51
- end
52
-
53
- # spec.volumes.configMap.name
54
- # spec.volumes.secret.secretName
55
- def volumes!
56
- volumes = @data.dig(*@volumes_key.split('.'))
57
- return @data unless volumes
58
-
59
- volumes.each do |volume|
60
- # Example:
61
- # next unless field = volume.dig('secret') # intentional assignment
62
- # next unless name = field['secretName'] # intentional assignment
63
- next unless field = volume.dig(@volume_field) # intentional assignment
64
- next unless name = field[@volume_field_name] # intentional assignment
65
-
66
- md5 = Kubes::Compiler::Decorator.fetch(name)
67
- field[@volume_field_name] = [name, md5].compact.join('-')
68
- end
69
- end
70
-
71
- private
72
- def containers
73
- @data.dig(*@containers_key.split('.'))
74
- end
75
- end
76
- end