kubes 0.4.3 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (111) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +22 -0
  3. data/docs/_docs/config/reference.md +1 -0
  4. data/docs/_docs/config/skip.md +1 -1
  5. data/docs/_docs/dsl/multiple-resources.md +3 -3
  6. data/docs/_docs/dsl/resources/job.md +62 -0
  7. data/docs/_docs/extra-env/dsl.md +2 -2
  8. data/docs/_docs/extra-env/yaml.md +1 -1
  9. data/docs/_docs/generators.md +41 -0
  10. data/docs/_docs/helpers.md +10 -3
  11. data/docs/_docs/helpers/aws.md +15 -0
  12. data/docs/_docs/helpers/aws/iam-role.md +91 -0
  13. data/docs/_docs/helpers/aws/secrets.md +129 -0
  14. data/docs/_docs/helpers/aws/ssm.md +76 -0
  15. data/docs/_docs/helpers/custom.md +40 -0
  16. data/docs/_docs/helpers/google.md +17 -0
  17. data/docs/_docs/helpers/google/secrets.md +76 -0
  18. data/docs/_docs/helpers/google/service-account.md +60 -0
  19. data/docs/_docs/intro.md +3 -1
  20. data/docs/_docs/intro/docker-image.md +66 -0
  21. data/docs/_docs/layering/merge.md +1 -1
  22. data/docs/_docs/learn/dsl/delete.md +10 -2
  23. data/docs/_docs/learn/dsl/review-project.md +2 -2
  24. data/docs/_docs/learn/yaml/delete.md +10 -2
  25. data/docs/_docs/learn/yaml/review-project.md +2 -2
  26. data/docs/_docs/patterns/clock-web-worker.md +3 -3
  27. data/docs/_docs/patterns/migrations.md +1 -1
  28. data/docs/_docs/patterns/secrets.md +0 -2
  29. data/docs/_docs/yaml.md +2 -2
  30. data/docs/_includes/commands.html +2 -2
  31. data/docs/_includes/helpers/base64.md +1 -0
  32. data/docs/_includes/layering/layers.md +1 -1
  33. data/docs/_includes/sidebar.html +23 -1
  34. data/docs/_reference/kubes-delete.md +1 -1
  35. data/docs/_reference/kubes-exec.md +17 -1
  36. data/docs/_reference/kubes-init.md +2 -2
  37. data/docs/_reference/kubes-logs.md +2 -1
  38. data/docs/_reference/kubes-new.md +58 -0
  39. data/docs/_reference/kubes-prune.md +22 -0
  40. data/docs/reference.md +2 -0
  41. data/kubes.gemspec +1 -0
  42. data/lib/kubes.rb +3 -1
  43. data/lib/kubes/autoloader.rb +9 -0
  44. data/lib/kubes/cli.rb +9 -1
  45. data/lib/kubes/cli/build.rb +6 -0
  46. data/lib/kubes/cli/compile.rb +7 -0
  47. data/lib/kubes/cli/deploy.rb +1 -6
  48. data/lib/kubes/cli/exec.rb +5 -1
  49. data/lib/kubes/cli/help/exec.md +15 -0
  50. data/lib/kubes/cli/help/new.md +30 -0
  51. data/lib/kubes/cli/init.rb +1 -1
  52. data/lib/kubes/cli/new.rb +97 -0
  53. data/lib/kubes/cli/sequence.rb +1 -0
  54. data/lib/kubes/command.rb +7 -0
  55. data/lib/kubes/compiler.rb +19 -21
  56. data/lib/kubes/compiler/dsl/syntax/job.rb +217 -0
  57. data/lib/kubes/compiler/shared/custom_helpers.rb +17 -0
  58. data/lib/kubes/compiler/shared/helpers.rb +12 -3
  59. data/lib/kubes/compiler/shared/helpers/deprecated.rb +37 -0
  60. data/lib/kubes/compiler/strategy/base.rb +3 -3
  61. data/lib/kubes/compiler/strategy/dsl.rb +3 -2
  62. data/lib/kubes/compiler/strategy/erb.rb +10 -1
  63. data/lib/kubes/compiler/strategy/erb/yaml_error.rb +60 -0
  64. data/lib/kubes/compiler/util/normalize.rb +1 -1
  65. data/lib/kubes/compiler/util/save_file.rb +8 -0
  66. data/lib/kubes/config.rb +1 -1
  67. data/lib/kubes/core.rb +6 -0
  68. data/lib/kubes/docker/strategy/image_name.rb +1 -1
  69. data/lib/kubes/kubectl.rb +5 -23
  70. data/lib/kubes/kubectl/batch.rb +27 -33
  71. data/lib/kubes/kubectl/ordering.rb +42 -0
  72. data/lib/kubes/version.rb +1 -1
  73. data/lib/templates/base/.kubes/config.rb.tt +1 -1
  74. data/lib/templates/base/.kubes/config/env/dev.rb +1 -1
  75. data/lib/templates/base/.kubes/config/env/prod.rb +1 -1
  76. data/lib/templates/dsl/.kubes/resources/web/deployment.rb +1 -1
  77. data/lib/templates/new/dsl/backend_config.rb +10 -0
  78. data/lib/templates/new/dsl/config_map.rb +5 -0
  79. data/lib/templates/new/dsl/daemon_set.rb +11 -0
  80. data/lib/templates/new/dsl/deployment.rb +4 -0
  81. data/lib/templates/new/dsl/ingress.rb +3 -0
  82. data/lib/templates/new/dsl/job.rb +2 -0
  83. data/lib/templates/new/dsl/managed_certificate.rb +2 -0
  84. data/lib/templates/new/dsl/namespace.rb +2 -0
  85. data/lib/templates/new/dsl/network_policy.rb +7 -0
  86. data/lib/templates/new/dsl/pod.rb +6 -0
  87. data/lib/templates/new/dsl/role.rb +4 -0
  88. data/lib/templates/new/dsl/role_binding.rb +7 -0
  89. data/lib/templates/new/dsl/secret.rb +5 -0
  90. data/lib/templates/new/dsl/service.rb +2 -0
  91. data/lib/templates/new/dsl/service_account.rb +1 -0
  92. data/lib/templates/new/yaml/backend_config.yaml +10 -0
  93. data/lib/templates/new/yaml/config_map.yaml +9 -0
  94. data/lib/templates/new/yaml/daemon_set.yaml +11 -0
  95. data/lib/templates/new/yaml/deployment.yaml +20 -0
  96. data/lib/templates/new/yaml/ingress.yaml +12 -0
  97. data/lib/templates/new/yaml/job.yaml +19 -0
  98. data/lib/templates/new/yaml/managed_certificate.yaml +7 -0
  99. data/lib/templates/new/yaml/namespace.yaml +6 -0
  100. data/lib/templates/new/yaml/network_policy.yaml +20 -0
  101. data/lib/templates/new/yaml/pod.yaml +11 -0
  102. data/lib/templates/new/yaml/role.yaml +13 -0
  103. data/lib/templates/new/yaml/role_binding.yaml +11 -0
  104. data/lib/templates/new/yaml/secret.yaml +9 -0
  105. data/lib/templates/new/yaml/service.yaml +14 -0
  106. data/lib/templates/new/yaml/service_account.yaml +4 -0
  107. data/lib/templates/yaml/.kubes/resources/base/all.yaml.tt +2 -0
  108. data/lib/templates/yaml/.kubes/resources/web/deployment.yaml.tt +1 -1
  109. data/spec/kubes/cli/prune_spec.rb +1 -0
  110. data/spec/kubes/compiler_spec.rb +5 -1
  111. metadata +67 -2
@@ -0,0 +1,76 @@
1
+ ---
2
+ title: AWS SSM Parameters
3
+ nav_text: SSM
4
+ categories: helpers-aws
5
+ ---
6
+
7
+ For example if you have these secret values:
8
+
9
+ $ aws ssm get-parameter --name /demo/development/db_user --with-decryption | jq '.Parameter.Value'
10
+ user
11
+ $ aws ssm get-parameter --name /demo/development/db_pass --with-decryption | jq '.Parameter.Value'
12
+ pass
13
+
14
+ Set up a [Kubes hook](https://kubes.guru/docs/config/hooks/kubes/).
15
+
16
+ .kubes/config/hooks/kubes.rb
17
+
18
+ ```ruby
19
+ ssm = KubesAws::SSM.new(upcase: true, prefix: "/demo/development/")
20
+ before("compile",
21
+ label: "Get secrets from AWS SSM Manager",
22
+ execute: ssm,
23
+ )
24
+ ```
25
+
26
+ Then set the secrets in the YAML:
27
+
28
+ .kubes/resources/shared/secret.yaml
29
+
30
+ ```yaml
31
+ apiVersion: v1
32
+ kind: Secret
33
+ metadata:
34
+ name: demo
35
+ labels:
36
+ app: demo
37
+ data:
38
+ <% KubesAws::SSM.data.each do |k,v| -%>
39
+ <%= k %>: <%= base64(v) %>
40
+ <% end -%>
41
+ ```
42
+
43
+ This results in AWS secrets with the prefix the `demo/dev/` being added to the Kubernetes secret data. The values are automatically base64 encoded. Produces:
44
+
45
+ .kubes/output/shared/secret.yaml
46
+
47
+ ```yaml
48
+ metadata:
49
+ namespace: demo
50
+ name: demo-2a78a13682
51
+ labels:
52
+ app: demo
53
+ apiVersion: v1
54
+ kind: Secret
55
+ data:
56
+ db_pass: dGVzdDEK
57
+ db_user: dGVzdDIK
58
+ ```
59
+
60
+ ## Variables
61
+
62
+ These environment variables can be set:
63
+
64
+ Name | Description
65
+ ---|---
66
+ AWS_SSM_PREFIX | Prefixed used to list and filter AWS SSM Parameters. IE: `demo/dev/`.
67
+
68
+ Secrets#initialize options:
69
+
70
+ Variable | Description | Default
71
+ ---|---|---
72
+ base64 | Automatically base64 encode the values. | false
73
+ upcase | Automatically upcase the Kubernetes secret data keys. | false
74
+ prefix | Prefixed used to list and filter AWS secrets. IE: `demo/dev/`. Can also be set with the `AWS_SECRET_PREFIX` env variable. The env variable takes the highest precedence. | nil
75
+
76
+ {% include helpers/base64.md %}
@@ -0,0 +1,40 @@
1
+ ---
2
+ title: Custom Helpers
3
+ ---
4
+
5
+ Kubes ships with several built-in helpers. On top of this, you can define your own custom helpers. This allows you to define new methods and customize Kubes further.
6
+
7
+ ## Example
8
+
9
+ You define custom helpers in the `.kubes/helpers` folder.
10
+
11
+ .kubes/helpers/my_helpers.rb
12
+
13
+ ```ruby
14
+ module MyHelpers
15
+ def database_endpoint
16
+ case Kubes.env
17
+ when "dev"
18
+ "dev-db.cbuqdmc3nqvb.us-west-2.rds.amazonaws.com"
19
+ when "prod"
20
+ "prod-db.cbuqdmc3nqvb.us-west-2.rds.amazonaws.com"
21
+ end
22
+ end
23
+ end
24
+ ```
25
+
26
+ The `database_endpoint` will be available to use in the `.kubes/resources` YAML files. IE:
27
+
28
+ .kubes/helpers/resources/shared/config_map.yaml
29
+
30
+ ```yaml
31
+ apiVersion: v1
32
+ kind: ConfigMap
33
+ metadata:
34
+ name: demo
35
+ labels:
36
+ app: demo
37
+ data:
38
+ DATABASE_ENDPOINT: <%= database_endpoint %>
39
+ ```
40
+
@@ -0,0 +1,17 @@
1
+ ---
2
+ title: Google Helpers
3
+ ---
4
+
5
+ List of Google helpers:
6
+
7
+ {% assign docs = site.docs | where: "categories","helpers-aws" %}
8
+ {% for doc in docs -%}
9
+ * [{{ doc.nav_text }}]({{ doc.url }})
10
+ {% endfor %}
11
+
12
+ ## Notes
13
+
14
+ * By default, `KubeGoogle.logger = Kubes.logger`. This means, you can set `logger.level = "debug"` in `.kubes/config.rb` to see more details.
15
+ * The `gcloud` cli is used to create IAM roles. So `gcloud` is required.
16
+ * Note: Would like to use the google sdk, but it wasn't obvious how to do so. PRs are welcomed.
17
+ * The Google helpers are provided by the [boltops-tools/kubes_google](https://github.com/boltops-tools/kubes_google) library.
@@ -0,0 +1,76 @@
1
+ ---
2
+ title: Google Secrets
3
+ nav_text: Secrets
4
+ categories: helpers-google
5
+ ---
6
+
7
+ Set up a [Kubes hook](https://kubes.guru/docs/config/hooks/kubes/).
8
+
9
+ .kubes/config/hooks/kubes.rb
10
+
11
+ ```ruby
12
+ before("compile",
13
+ execute: KubesGoogle::Secrets.new(upcase: true, prefix: 'projects/686010496118/secrets/demo-dev-')
14
+ )
15
+ ```
16
+
17
+ Then set the secrets in the YAML:
18
+
19
+ .kubes/resources/shared/secret.yaml
20
+
21
+ ```yaml
22
+ apiVersion: v1
23
+ kind: Secret
24
+ metadata:
25
+ name: demo
26
+ labels:
27
+ app: demo
28
+ data:
29
+ <% KubesGoogle::Secrets.data.each do |k,v| -%>
30
+ <%= k %>: <%= base64(v) %>
31
+ <% end -%>
32
+ ```
33
+
34
+ This results in Google secrets with the prefix the `demo-dev-` being added to the Kubernetes secret data. The values are automatically base64 encoded.
35
+
36
+ For example if you have these secret values:
37
+
38
+ $ gcloud secrets versions access latest --secret demo-dev-db_user
39
+ test1
40
+ $ gcloud secrets versions access latest --secret demo-dev-db_pass
41
+ test2
42
+ $
43
+
44
+ .kubes/output/shared/secret.yaml
45
+
46
+ ```yaml
47
+ metadata:
48
+ namespace: demo
49
+ name: demo-2a78a13682
50
+ labels:
51
+ app: demo
52
+ apiVersion: v1
53
+ kind: Secret
54
+ data:
55
+ db_pass: dGVzdDEK
56
+ db_user: dGVzdDIK
57
+ ```
58
+
59
+ ## Variables
60
+
61
+ These environment variables can be set:
62
+
63
+ Name | Description
64
+ ---|---
65
+ GCP_SECRET_PREFIX | Prefixed used to list and filter Google secrets. IE: `projects/686010496118/secrets/demo-dev-`.
66
+ GOOGLE_PROJECT | Google project id.
67
+
68
+ Secrets#initialize options:
69
+
70
+ Variable | Description | Default
71
+ ---|---|---
72
+ base64 | Automatically base64 encode the values. | false
73
+ upcase | Automatically upcase the Kubernetes secret data keys. | false
74
+ prefix | Prefixed used to list and filter Google secrets. IE: `projects/686010496118/secrets/demo-dev-`. Can also be set with the `GCP_SECRET_PREFIX` env variable. The env variable takes the highest precedence. | nil
75
+
76
+ {% include helpers/base64.md %}
@@ -0,0 +1,60 @@
1
+ ---
2
+ title: Google Service Account
3
+ nav_text: Service Account
4
+ categories: helpers-google
5
+ ---
6
+
7
+ ## Service Accounts
8
+
9
+ You can automatically create the Google Service Account associated with the [GKE Workload Identity](https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity).
10
+
11
+ Here's a Kubes hook that creates a service account:
12
+
13
+ .kubes/config/hooks/kubes.rb
14
+
15
+ ```ruby
16
+ service_account = KubesGoogle::ServiceAccount.new(
17
+ app: "demo",
18
+ namespace: "demo-#{Kubes.env}", # defaults to APP-ENV when not set. IE: demo-dev
19
+ roles: ["cloudsql.client", "secretmanager.viewer"], # defaults to empty when not set
20
+ )
21
+ before("apply",
22
+ label: "create service account",
23
+ execute: service_account,
24
+ )
25
+ ```
26
+
27
+ The corresponding Kubernetes Service account looks like this:
28
+
29
+ .kubes/resources/shared/service_account.yaml
30
+
31
+ ```yaml
32
+ apiVersion: v1
33
+ kind: ServiceAccount
34
+ metadata:
35
+ annotations:
36
+ iam.gke.io/gcp-service-account: demo-<%= Kubes.env %>@<%= ENV['GOOGLE_PROJECT'] %>.iam.gserviceaccount.com
37
+ name: demo
38
+ labels:
39
+ app: demo
40
+ ```
41
+
42
+ The role permissions are currently always added to the existing permissions. So removing roles that were previously added does not remove them.
43
+
44
+ ## Variables
45
+
46
+ ServiceAccount#initialize options:
47
+
48
+ Variable | Description | Default
49
+ ---|---|---
50
+ app | The app name. It's used to set other variables conventionally. This is required. | nil
51
+ gsa | The Google Service Account name. The conventional name is APP-ENV. IE: demo-dev. | APP-ENV
52
+ ksa | The Kubernetes Service Account name. The conventional name is APP. IE: demo | APP
53
+ namespace | The Kubernetes namespace. Defaults to the APP-ENV. IE: demo-dev. | APP-ENV
54
+ roles | Google IAM roles to add. This adds permissions to the Google service account. | []
55
+
56
+ Relevant environment variables:
57
+
58
+ Name | Description
59
+ ---|---
60
+ GOOGLE_PROJECT | Google project id. This is required as it's used to build the full service account name.
@@ -11,7 +11,9 @@ title: What is Kubes?
11
11
  * Automation: [Builds the Docker image]({% link _docs/config/docker.md %}) and updates the compiled YAML files
12
12
  * Syntactic Sugar: Use an [ERB/YAML]({% link _docs/yaml.md %}) or a [DSL]({% link _docs/dsl.md %}) to write your Kubernetes YAML files. You can use a mix of DSL and YAML definitions in the `.kubes/resources` folder.
13
13
  * Layering: Use the same Kubernetes YAML to build multiple environments like dev and prod with [layering]({% link _docs/layering.md %}).
14
- * CLI Customizations: You can customize the [cli args]({% link _docs/config/args/kubectl.md %}). You can also run [hooks]({% link _docs/config/hooks/kubectl.md %}) before and after kubectl commands.
14
+ * Generators: Kubes ships with a few generators to help you get building with Kubernetes quickly. See: [Generator Docs]({% link _docs/generators.md %}).
15
+ * CLI Customizations: You can customize the [cli args]({% link _docs/config/args/kubectl.md %}).
16
+ * Hooks: You can also run [hooks]({% link _docs/config/hooks.md %}) before and after [kubes]({% link _docs/config/hooks/kubes.md %}) and [kubectl]({% link _docs/config/hooks/kubectl.md %}) commands.
15
17
  * Automated Suffix Hashes: Automatically appends a suffix hash to ConfigMap and Secret resources. More details in [ConfigMap]({% link _docs/dsl/resources/config_map.md %}) and [Secret]({% link _docs/dsl/resources/secret.md %}) docs.
16
18
  * Kustomize Support: If you’re a kustomization user, you can use it with Kubes. More details in [Kustomize Support Docs]({% link _docs/misc/kustomize.md %}).
17
19
  * Auto Context Switching: Map dev to a specific kubectl context and prod to another kubectl context and Kubes can switch them automatically so you won't have to remember. More details in [Auto Context Docs]({% link _docs/misc/auto-context.md %}).
@@ -0,0 +1,66 @@
1
+ ---
2
+ title: Docker Image
3
+ ---
4
+
5
+ With Kubes, you can use the `docker_image` helper method to select which image to use. It can use images from these sources:
6
+
7
+ 1. CLI Option: The `--image` option specified with the CLI command
8
+ 2. Kubes Config: Specified by `config.image` in the `.kubes/config.rb`
9
+ 3. Built Docker Image: The image built from Dockerfile
10
+
11
+ The CLI option has the highest precedence, and the Built Docker image has the lowest precedence.
12
+
13
+ ## 1. CLI Option
14
+
15
+ Kubes uses the image from the `--image` option if specified. It's a quick way to override the Docker image used by Kubes. Example:
16
+
17
+ kubes deploy --image repo/image:tag
18
+
19
+ When the `--image` option is set, Kubes skips the Docker build phase.
20
+
21
+ ## 2. Kubes Config
22
+
23
+ If you set the `config.image` in the Kubes config, Kubes will use this prebuilt Docker image instead. Example:
24
+
25
+ .kubes/config.rb:
26
+
27
+ ```ruby
28
+ Kubes.configure do |config|
29
+ config.image = "nginx"
30
+ end
31
+ ```
32
+
33
+ When `config.image` is set, Kubes skips the Docker build phase.
34
+
35
+ ## 3. Built Docker Image
36
+
37
+ Kubes can use a Docker image built from your Dockerfile. This is the default behavior of Kubes, as long as the CLI Option and the Kubes Config option is not set.
38
+
39
+ ## Template Example
40
+
41
+ Here's an example usage of the `docker_image` helper.
42
+
43
+ .kubes/resources/web/deployment.yaml
44
+
45
+ ```yaml
46
+ apiVersion: apps/v1
47
+ kind: Deployment
48
+ metadata:
49
+ name: web
50
+ labels:
51
+ role: web
52
+ spec:
53
+ selector:
54
+ matchLabels:
55
+ role: web
56
+ template:
57
+ metadata:
58
+ labels:
59
+ role: web
60
+ spec:
61
+ containers:
62
+ - name: web
63
+ image: <%= docker_image %>
64
+ ```
65
+
66
+ When running `kubes deploy`, Kubes will replace `<%= docker_image %>` with the Docker image from one of the sources described above.
@@ -67,7 +67,7 @@ The merging of simple String is a straightforward replacement.
67
67
  .kubes/resources/web/deployment.rb
68
68
 
69
69
  ```ruby
70
- image built_image # IE: user/demo:kubes-2020-06-13T19-55-16-43afc6e
70
+ image docker_image # IE: user/demo:kubes-2020-06-13T19-55-16-43afc6e
71
71
  # ...
72
72
  ```
73
73
 
@@ -6,11 +6,19 @@ Let's now delete the app and clean up:
6
6
 
7
7
  kubes delete
8
8
 
9
- You will be prompted to confirm before deletion. Here's out the output looks like:
9
+ You will be prompted to confirm before deletion.
10
10
 
11
11
  $ kubes delete
12
+ Compiled .kubes/resources files to .kubes/output
13
+ Will run:
14
+ kubectl delete -f .kubes/output/web/deployment.yaml
15
+ kubectl delete -f .kubes/output/web/service.yaml
16
+ kubectl delete -f .kubes/output/shared/namespace.yaml
17
+ This will delete resources. Are you sure? (y/N)
18
+
19
+ Confirm to delete the resources:
20
+
12
21
  This will delete resources. Are you sure? (y/N) y
13
- Compiled .kubes/resources files
14
22
  => kubectl delete -f .kubes/output/web/service.yaml
15
23
  service "demo-web" deleted
16
24
  => kubectl delete -f .kubes/output/web/deployment.yaml
@@ -29,10 +29,10 @@ labels(role: "web")
29
29
  namespace "default"
30
30
 
31
31
  replicas 1
32
- image built_image # IE: user/demo:kubes-2020-06-13T19-55-16-43afc6e
32
+ image docker_image # IE: user/demo:kubes-2020-06-13T19-55-16-43afc6e
33
33
  ```
34
34
 
35
- The DSL form is more concise than the YAML form. Also, notice the use of the `built_image` helper. The `built_image` is a kubes helper method that refers to the latest Docker image built. This spares you from updating the image manually.
35
+ The DSL form is more concise than the YAML form. Also, notice the use of the `docker_image` helper. The `docker_image` is a kubes helper method that refers to the latest Docker image built. This spares you from updating the image manually.
36
36
 
37
37
  ## Base Folder
38
38
 
@@ -6,11 +6,19 @@ Let's now delete the app and clean up:
6
6
 
7
7
  kubes delete
8
8
 
9
- You will be prompted to confirm before deletion. Here's out the output looks like:
9
+ You will be prompted to confirm before deletion.
10
10
 
11
11
  $ kubes delete
12
+ Compiled .kubes/resources files to .kubes/output
13
+ Will run:
14
+ kubectl delete -f .kubes/output/web/deployment.yaml
15
+ kubectl delete -f .kubes/output/web/service.yaml
16
+ kubectl delete -f .kubes/output/shared/namespace.yaml
17
+ This will delete resources. Are you sure? (y/N)
18
+
19
+ Confirm to delete the resources:
20
+
12
21
  This will delete resources. Are you sure? (y/N) y
13
- Compiled .kubes/resources files
14
22
  => kubectl delete -f .kubes/output/web/service.yaml
15
23
  service "demo-web" deleted
16
24
  => kubectl delete -f .kubes/output/web/deployment.yaml
@@ -46,10 +46,10 @@ spec:
46
46
  spec:
47
47
  containers:
48
48
  - name: web
49
- image: <%= built_image %>
49
+ image: <%= docker_image %>
50
50
  ```
51
51
 
52
- Notice the `<%= built_image %>`. Kubes processes the YAML files with ERB templating and replaces these tags. The `built_image` is a kubes helper method that refers to the latest Docker image built by Kubes. This spares you updating the image manually.
52
+ Notice the `<%= docker_image %>`. Kubes processes the YAML files with ERB templating and replaces these tags. The `docker_image` is a kubes helper method that refers to the latest Docker image built by Kubes. This spares you updating the image manually.
53
53
 
54
54
  ## Base Folder
55
55
 
@@ -31,7 +31,7 @@ namespace "default"
31
31
  labels(role: "web")
32
32
 
33
33
  replicas 1
34
- image built_image # IE: user/demo-clock:kubes-2020-06-13T19-55-16-43afc6e
34
+ image docker_image # IE: user/demo-clock:kubes-2020-06-13T19-55-16-43afc6e
35
35
  command "bin/clock"
36
36
  ```
37
37
 
@@ -43,7 +43,7 @@ namespace "default"
43
43
  labels(role: "web")
44
44
 
45
45
  replicas 1
46
- image built_image # IE: user/demo-clock:kubes-2020-06-13T19-55-16-43afc6e
46
+ image docker_image # IE: user/demo-clock:kubes-2020-06-13T19-55-16-43afc6e
47
47
  ```
48
48
 
49
49
  .kubes/resources/demo-worker/deployment.rb
@@ -54,7 +54,7 @@ namespace "default"
54
54
  labels(role: "web")
55
55
 
56
56
  replicas 2
57
- image built_image # IE: user/demo-clock:kubes-2020-06-13T19-55-16-43afc6e
57
+ image docker_image # IE: user/demo-clock:kubes-2020-06-13T19-55-16-43afc6e
58
58
  command "bin/worker"
59
59
  ```
60
60