kubes 0.7.8 → 0.8.1
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 +4 -4
- data/CHANGELOG.md +17 -0
- data/docs/.gitignore +1 -0
- data/docs/Gemfile +2 -0
- data/docs/_config.yml +8 -0
- data/docs/_docs/config/app-overrides.md +7 -0
- data/docs/_docs/config/boot.md +46 -0
- data/docs/_docs/config/env.md +29 -2
- data/docs/_docs/config/hooks/docker.md +2 -0
- data/docs/_docs/config/hooks/generator.md +16 -0
- data/docs/_docs/config/hooks/kubectl.md +2 -0
- data/docs/_docs/config/hooks/kubes.md +2 -0
- data/docs/_docs/config/reference.md +2 -2
- data/docs/_docs/config/skip.md +22 -0
- data/docs/_docs/helpers/aws/iam-role.md +1 -0
- data/docs/_docs/helpers/google/gke.md +1 -1
- data/docs/_docs/install/dependencies.md +18 -0
- data/docs/_docs/install/gem.md +6 -0
- data/docs/_docs/install/standalone/centos.md +70 -0
- data/docs/_docs/install/standalone/details/permissions.md +44 -0
- data/docs/_docs/install/standalone/details/uninstall.md +16 -0
- data/docs/_docs/install/standalone/details.md +20 -0
- data/docs/_docs/install/standalone/macosx.md +45 -0
- data/docs/_docs/install/standalone/ubuntu.md +48 -0
- data/docs/_docs/install/standalone.md +43 -0
- data/docs/_docs/install.md +8 -0
- data/docs/_docs/learn/dsl/install.md +1 -1
- data/docs/_docs/learn/yaml/install.md +1 -1
- data/docs/_docs/patterns/central-deployer.md +38 -0
- data/docs/_docs/variables/advanced.md +32 -1
- data/docs/_docs/variables/basic.md +1 -0
- data/docs/_docs/vs/custom.md +2 -0
- data/docs/_docs/vs/helm.md +2 -0
- data/docs/_docs/vs/kustomize.md +3 -1
- data/docs/_docs/vs.md +2 -0
- data/docs/_docs/yaml/erb-comment.md +89 -0
- data/docs/_includes/banner/foot.html +2 -0
- data/docs/_includes/banner/head.html +5 -0
- data/docs/_includes/config/app-overrides-cheatsheet.md +44 -0
- data/docs/_includes/config/hooks/generator.md +6 -0
- data/docs/_includes/content.html +1 -1
- data/docs/_includes/install/gem.md +7 -0
- data/docs/_includes/install/wrapper.md +9 -0
- data/docs/_includes/layering/layers.md +3 -0
- data/docs/_includes/learn/next-steps.md +11 -0
- data/docs/_includes/sidebar.html +28 -3
- data/docs/_includes/videos/learn/vs.md +4 -0
- data/docs/_includes/videos/learn.md +12 -0
- data/docs/_includes/videos/youtube.md +1 -0
- data/docs/_layouts/default.html +3 -0
- data/docs/_reference/kubes-new-hook.md +30 -0
- data/docs/_reference/kubes-new-variable.md +7 -0
- data/docs/_reference/kubes-new.md +1 -0
- data/docs/_sass/theme.scss +11 -0
- data/docs/bin/web +1 -1
- data/docs/js/scripts.js +7 -0
- data/kubes.gemspec +1 -0
- data/lib/kubes/booter.rb +26 -0
- data/lib/kubes/cli/help/new/hook.md +9 -0
- data/lib/kubes/cli/help/new/variable.md +6 -0
- data/lib/kubes/cli/init.rb +0 -1
- data/lib/kubes/cli/new/hook.rb +18 -0
- data/lib/kubes/cli/new.rb +4 -0
- data/lib/kubes/command.rb +1 -1
- data/lib/kubes/compiler/decorator/hashable.rb +1 -1
- data/lib/kubes/compiler/layering.rb +9 -0
- data/lib/kubes/compiler/shared/runtime_helpers.rb +8 -1
- data/lib/kubes/compiler/strategy/erb/comment.rb +46 -0
- data/lib/kubes/compiler/strategy/erb.rb +4 -0
- data/lib/kubes/compiler/strategy/result.rb +13 -1
- data/lib/kubes/compiler.rb +2 -0
- data/lib/kubes/config.rb +6 -2
- data/lib/kubes/core.rb +4 -0
- data/lib/kubes/kubectl/ordering.rb +9 -6
- data/lib/kubes/version.rb +1 -1
- data/lib/kubes.rb +3 -0
- data/lib/templates/new/hooks/docker.rb +9 -0
- data/lib/templates/new/hooks/kubectl.rb +11 -0
- data/lib/templates/new/hooks/kubes.rb +9 -0
- data/lib/templates/yaml/.kubes/resources/base/deployment.yaml.tt +2 -0
- data/spec/kubes/compiler/decorator/post/deployment_spec.rb +1 -1
- metadata +51 -5
- data/docs/_docs/intro/install.md +0 -6
- data/docs/_includes/intro/install.md +0 -19
@@ -2,6 +2,7 @@
|
|
2
2
|
title: Advanced Variables
|
3
3
|
nav_text: Advanced
|
4
4
|
categories: variables
|
5
|
+
order: 2
|
5
6
|
---
|
6
7
|
|
7
8
|
Basic variables layering should provides enough flexibility and is generally recommended. This page covers more advanced variables layering.
|
@@ -44,12 +45,26 @@ And when `KUBES_ENV=prod`:
|
|
44
45
|
|
45
46
|
With advanced layering you can target a specific role and kind. So variables are only scoped to the resources you want.
|
46
47
|
|
48
|
+
## App-Level Overrides
|
49
|
+
|
50
|
+
If KUBES_APP is set, then app level layer overrides will also be processed. Example:
|
51
|
+
|
52
|
+
KUBES_APP=app1 kubes deploy
|
53
|
+
|
54
|
+
Here's an example with some of the additional files that get layered:
|
55
|
+
|
56
|
+
.kubes/variables/app1.rb
|
57
|
+
.kubes/variables/app1/base.rb
|
58
|
+
.kubes/variables/app1/dev.rb
|
59
|
+
|
60
|
+
This is useful if you're using kubes as part of a central deployer pattern. For the full list of layers refer to the table below:
|
61
|
+
|
47
62
|
## Full Layering Table
|
48
63
|
|
49
64
|
Here's a table showing the the full layering.
|
50
65
|
|
51
66
|
Folder/Pattern | Example
|
52
|
-
|
67
|
+
------------------|----------------------------
|
53
68
|
base.rb | base.rb
|
54
69
|
ENV.rb | dev.rb
|
55
70
|
base/all.rb | base/all.rb
|
@@ -61,4 +76,20 @@ ROLE/KIND.rb | web/deployment.rb
|
|
61
76
|
ROLE/KIND/base.rb | web/deployment/base.rb
|
62
77
|
ROLE/KIND/ENV.rb | web/deployment/dev.rb
|
63
78
|
|
79
|
+
If KUBES_APP is set then these additional layers are also processed:
|
80
|
+
|
81
|
+
Folder/Pattern | Example
|
82
|
+
------------------|----------------------------
|
83
|
+
APP.rb | app1.rb
|
84
|
+
APP/base.rb | app1/base.rb
|
85
|
+
APP/ENV.rb | app1/dev.rb
|
86
|
+
APP/base/all.rb | app1/base/all.rb
|
87
|
+
APP/base/all/ENV.rb | app1/base/all/dev.rb
|
88
|
+
APP/base/KIND.rb | app1/base/deployment.rb
|
89
|
+
APP/base/KIND/base.rb | app1/base/deployment/base.rb
|
90
|
+
APP/base/KIND/ENV.rb | app1/base/deployment/dev.rb
|
91
|
+
APP/ROLE/KIND.rb | app1/web/deployment.rb
|
92
|
+
APP/ROLE/KIND/base.rb | app1/web/deployment/base.rb
|
93
|
+
APP/ROLE/KIND/ENV.rb | app1/web/deployment/dev.rb
|
94
|
+
|
64
95
|
{% include variables/generator.md %}
|
data/docs/_docs/vs/custom.md
CHANGED
@@ -4,6 +4,8 @@ nav_text: Custom Solutions
|
|
4
4
|
categories: vs
|
5
5
|
---
|
6
6
|
|
7
|
+
{% include videos/learn/vs.md %}
|
8
|
+
|
7
9
|
Kubernetes provides a great platform to run and manage Docker containers. The `kubectl` command is usually how you interact with a Kubernetes cluster. It does its job well and is quite a powerful tool.
|
8
10
|
|
9
11
|
{% include vs/article.md %}
|
data/docs/_docs/vs/helm.md
CHANGED
@@ -4,6 +4,8 @@ nav_text: Helm
|
|
4
4
|
categories: vs
|
5
5
|
---
|
6
6
|
|
7
|
+
{% include videos/learn/vs.md %}
|
8
|
+
|
7
9
|
Kubes and Helm are quite different. Helm is a package manager tool. In contrast, Kubernetes is focused on deploying your application. While you can use package manager tools like Helm to deploy your application, application-focused deploy tools are better for the job. For example, apt-get and yum are also package manager tools. But few companies use `apt-get install` or `yum install` to deploy their application code. Instead, people usually use application-specific tools to deploy their web app.
|
8
10
|
|
9
11
|
{% include vs/article.md %}
|
data/docs/_docs/vs/kustomize.md
CHANGED
@@ -4,6 +4,8 @@ nav_text: Kustomize
|
|
4
4
|
categories: vs
|
5
5
|
---
|
6
6
|
|
7
|
+
{% include videos/learn/vs.md %}
|
8
|
+
|
7
9
|
Though both Kubes and Kustomize build YAML files, they are quite different beasts. Kustomize is more like a `kubectl` feature that decorates YAML. Kubes is more like a tool. Kubes also builds YAML, but it also provides additional features.
|
8
10
|
|
9
11
|
Kustomize lets you customize your Kubernetes YAML files with additional `kustomization.yaml` files. The kustomization.yaml files contain configs that tell `kubectl` how to decorate existing Kubernetes YAML files in a template-free way.
|
@@ -135,7 +137,7 @@ You can even define your own custom helpers for even more control. See: [Helpers
|
|
135
137
|
|
136
138
|
## Kubes Features
|
137
139
|
|
138
|
-
Kubes does a lot more than
|
140
|
+
Kubes does a lot more than building YAML files. Here's a list of features:
|
139
141
|
|
140
142
|
{% include intro/features.md %}
|
141
143
|
|
data/docs/_docs/vs.md
CHANGED
@@ -0,0 +1,89 @@
|
|
1
|
+
---
|
2
|
+
title: ERB Comment Syntax PreProcessor
|
3
|
+
---
|
4
|
+
|
5
|
+
Kubes allows you build kubernetes resources by compiling down `.kubes/resources` files with ERB. This is a powerful ability, but it can get in the way of IDE kubernetes autocompletion tools.
|
6
|
+
|
7
|
+
## Pre-Processing Before ERB
|
8
|
+
|
9
|
+
To work with IDE kubernetes autocompletion tools, kubes supports a lighter ERB comment-based syntax. It looks like this:
|
10
|
+
|
11
|
+
.kubes/resources/web/service.yaml
|
12
|
+
|
13
|
+
```yaml
|
14
|
+
apiVersion: v1
|
15
|
+
kind: Service
|
16
|
+
metadata:
|
17
|
+
name: web
|
18
|
+
labels:
|
19
|
+
name: web
|
20
|
+
#ERB if @role_label
|
21
|
+
role: #ERB= @role_label
|
22
|
+
#ERB end
|
23
|
+
spec:
|
24
|
+
ports:
|
25
|
+
- port: 80
|
26
|
+
protocol: TCP
|
27
|
+
targetPort: <%= dockerfile_port %>
|
28
|
+
selector:
|
29
|
+
role: web
|
30
|
+
type: ClusterIP
|
31
|
+
```
|
32
|
+
|
33
|
+
This allows IDB kubernetes autocompletion plugins and tools to work because the `.kubes/resources/web/service.yaml` source code itself is perfectly valid YAML.
|
34
|
+
|
35
|
+
The `#ERB` comments are essentially replaced by `<% ... %>` tags before ERB processing happens. Example:
|
36
|
+
|
37
|
+
.kubes/resources/web/service.yaml.erb
|
38
|
+
|
39
|
+
```yaml
|
40
|
+
apiVersion: v1
|
41
|
+
kind: Service
|
42
|
+
metadata:
|
43
|
+
name: web
|
44
|
+
labels:
|
45
|
+
name: web
|
46
|
+
<% if @role_label %>
|
47
|
+
role: <%= @role_label %>
|
48
|
+
<% end %>
|
49
|
+
spec:
|
50
|
+
ports:
|
51
|
+
- port: 80
|
52
|
+
protocol: TCP
|
53
|
+
targetPort: <%= dockerfile_port %>
|
54
|
+
selector:
|
55
|
+
role: web
|
56
|
+
type: ClusterIP
|
57
|
+
```
|
58
|
+
|
59
|
+
If you need to keep around the generated `.erb` file for debugging, use the `KUBES_KEEP_ERB` env var. Example:
|
60
|
+
|
61
|
+
$ KUBES_KEEP_ERB=1 kubes compile
|
62
|
+
.kubes/resources/web/service.yaml.erb # kept around
|
63
|
+
|
64
|
+
## Multiple Line ERB Comment Syntax
|
65
|
+
|
66
|
+
The ERB Comment syntax works because kubes simply replaces each line with actual ERB. For multiple line ERB syntax:
|
67
|
+
|
68
|
+
.kubes/resources/web/service.yaml
|
69
|
+
|
70
|
+
```yaml
|
71
|
+
#ERB if Kubes.env == "dev"
|
72
|
+
#ERB env_label = "development"
|
73
|
+
#ERB end
|
74
|
+
apiVersion: v1
|
75
|
+
kind: Service
|
76
|
+
metadata:
|
77
|
+
name: web
|
78
|
+
labels:
|
79
|
+
name: web
|
80
|
+
env: #ERB= env_label
|
81
|
+
spec:
|
82
|
+
ports:
|
83
|
+
- port: 80
|
84
|
+
protocol: TCP
|
85
|
+
targetPort: <%= dockerfile_port %>
|
86
|
+
selector:
|
87
|
+
role: web
|
88
|
+
type: ClusterIP
|
89
|
+
```
|
@@ -0,0 +1,5 @@
|
|
1
|
+
{% assign buildtime = "now" | date: "%Y%m%d%H%M%S" %}
|
2
|
+
<link rel="preload" href="{{ site.ads_url }}/ads/{{ site.time | date: '%s' }}.js" as="script" />
|
3
|
+
<script data-cfasync="false" async src="{{ site.ads_url }}/ads/{{ site.time | date: '%s' }}.js"></script>
|
4
|
+
|
5
|
+
<div id="head-banner" class="head-banner"></div>
|
@@ -0,0 +1,44 @@
|
|
1
|
+
## App-Level Specific Settings
|
2
|
+
|
3
|
+
You can override all the different settings at the app-level when KUBES_APP is set.
|
4
|
+
|
5
|
+
For app1:
|
6
|
+
|
7
|
+
cd app1
|
8
|
+
KUBES_APP=app1 kubes deploy
|
9
|
+
|
10
|
+
And for app2:
|
11
|
+
|
12
|
+
cd app2
|
13
|
+
KUBES_APP=app2 kubes deploy
|
14
|
+
|
15
|
+
## Config Env
|
16
|
+
|
17
|
+
Override `config/app.rb` with app-level settings like so:
|
18
|
+
|
19
|
+
.kubes/config/env/app1/base.rb
|
20
|
+
.kubes/config/env/app1/dev.rb
|
21
|
+
.kubes/config/env/app1/prod.rb
|
22
|
+
.kubes/config/env/app2/base.rb
|
23
|
+
.kubes/config/env/app2/dev.rb
|
24
|
+
.kubes/config/env/app2/prod.rb
|
25
|
+
|
26
|
+
## Variables
|
27
|
+
|
28
|
+
Override `.kubes/variables/base.rb`, `.kubes/variables/dev.rb` etc like so:
|
29
|
+
|
30
|
+
.kubes/variables/app1/base.rb
|
31
|
+
.kubes/variables/app1/dev.rb
|
32
|
+
.kubes/variables/app1/prod.rb
|
33
|
+
.kubes/variables/app2/base.rb
|
34
|
+
.kubes/variables/app2/dev.rb
|
35
|
+
.kubes/variables/app2/prod.rb
|
36
|
+
|
37
|
+
## Resources
|
38
|
+
|
39
|
+
Override resources like so:
|
40
|
+
|
41
|
+
.kubes/resources/shared/config_map/app1.yaml
|
42
|
+
.kubes/resources/shared/config_map/app2.yaml
|
43
|
+
.kubes/resources/shared/secret/app1.yaml
|
44
|
+
.kubes/resources/shared/secret/app2.yaml
|
data/docs/_includes/content.html
CHANGED
@@ -0,0 +1,9 @@
|
|
1
|
+
## Generated Wrapper
|
2
|
+
|
3
|
+
The standalone installer creates a wrapper script in `/usr/local/bin`.
|
4
|
+
|
5
|
+
/usr/local/bin/kubes
|
6
|
+
|
7
|
+
Most users have `/usr/local/bin` configured in their PATH. So this wrapper should work immediately.
|
8
|
+
|
9
|
+
Important: If you have a wrapper in `/usr/local/bin` already, the installer will overwrite it.
|
@@ -46,6 +46,9 @@ pre | ROLE/all.{{ include.ext }} | web/all.{{ include.ext }}
|
|
46
46
|
main | ROLE/KIND.{{ include.ext }} | web/deployment.{{ include.ext }}
|
47
47
|
post | ROLE/KIND/base.{{ include.ext }} | web/deployment/base.{{ include.ext }}
|
48
48
|
post | ROLE/KIND/ENV.{{ include.ext }} | web/deployment/dev.{{ include.ext }}
|
49
|
+
post | ROLE/KIND/APP.{{ include.ext }} | web/deployment/app1.{{ include.ext }}
|
50
|
+
post | ROLE/KIND/APP/base.{{ include.ext }} | web/deployment/app1/base.{{ include.ext }}
|
51
|
+
post | ROLE/KIND/APP/ENV.{{ include.ext }} | web/deployment/app1/dev.{{ include.ext }}
|
49
52
|
|
50
53
|
## Real-World Uses
|
51
54
|
|
@@ -4,3 +4,14 @@ You've seen how to get started with Kubes. From here, you can check out the Docs
|
|
4
4
|
* [Layering]({% link _docs/layering.md %}): Use the same Kubernetes YAML to build multiple environments like dev and prod with [layering]({% link _docs/layering.md %}).
|
5
5
|
* [CLI Customizations]({% link _docs/config.md %}): You can customize the [cli args]({% link _docs/config/kubectl.md %}). You can also run hooks before and after kubectl commands.
|
6
6
|
* [Extra Env]({% link _docs/extra-env.md %}): Create additional envs with little effort.
|
7
|
+
|
8
|
+
## Learn Videos
|
9
|
+
|
10
|
+
Watch BoltOps Learn Kubes videos:
|
11
|
+
|
12
|
+
* [BoltOps Learn Kubes Videos](https://learn.boltops.com/tagged/kubes)
|
13
|
+
|
14
|
+
|
15
|
+
## Kubes Features
|
16
|
+
|
17
|
+
{% include intro/features.md %}
|
data/docs/_includes/sidebar.html
CHANGED
@@ -49,10 +49,32 @@
|
|
49
49
|
<li><a href="{% link _docs/intro/ordering/custom.md %}">Custom Order</a></li>
|
50
50
|
</ul>
|
51
51
|
</li>
|
52
|
-
<li><a href="{% link _docs/intro/install.md %}">Install</a></li>
|
53
52
|
<li><a href="{% link _docs/intro/docker-image.md %}">Docker Image</a></li>
|
54
53
|
</ul>
|
55
54
|
</li>
|
55
|
+
<li><a href="{% link _docs/install.md %}">Install</a>
|
56
|
+
<ul>
|
57
|
+
<li><a href="{% link _docs/install/gem.md %}">Gem</a></li>
|
58
|
+
<li><a href="{% link _docs/install/standalone.md %}">Standalone</a>
|
59
|
+
<ul>
|
60
|
+
{% assign docs = site.docs | where: "categories","standalone" | sort:"order" %}
|
61
|
+
{% for doc in docs -%}
|
62
|
+
{% if doc.nav_text == "Details" %}
|
63
|
+
<li><a href="{{ doc.url }}">{{ doc.nav_text }}</a>
|
64
|
+
<ul>
|
65
|
+
<li><a href="{% link _docs/install/standalone/details/permissions.md %}">Permissions</a></li>
|
66
|
+
<li><a href="{% link _docs/install/standalone/details/uninstall.md %}">Uninstall</a></li>
|
67
|
+
</ul>
|
68
|
+
</li>
|
69
|
+
{% else %}
|
70
|
+
<li><a href="{{ doc.url }}">{{ doc.nav_text }}</a></li>
|
71
|
+
{% endif %}
|
72
|
+
{% endfor %}
|
73
|
+
</ul>
|
74
|
+
</li>
|
75
|
+
<li><a href="{% link _docs/install/dependencies.md %}">Dependencies</a>
|
76
|
+
</ul>
|
77
|
+
</li>
|
56
78
|
<li><a href="{% link _docs/resources.md %}">Resources</a>
|
57
79
|
<ul>
|
58
80
|
<li><a href="{% link _docs/resources/role.md %}">Role</a></li>
|
@@ -72,16 +94,18 @@
|
|
72
94
|
</li>
|
73
95
|
<li><a href="{% link _docs/config/hooks.md %}">Hooks</a>
|
74
96
|
<ul>
|
75
|
-
{% assign docs = site.docs | where: "categories","hooks" %}
|
97
|
+
{% assign docs = site.docs | where: "categories","hooks" | sort: "order" %}
|
76
98
|
{% for doc in docs -%}
|
77
99
|
<li><a href="{{ doc.url }}">{{ doc.nav_text }}</a></li>
|
78
100
|
{% endfor %}
|
79
101
|
</ul>
|
80
102
|
</li>
|
103
|
+
<li><a href="{% link _docs/config/boot.md %}">Boot Hooks</a></li>
|
81
104
|
<li><a href="{% link _docs/config/docker.md %}">Docker</a></li>
|
82
105
|
<li><a href="{% link _docs/config/env.md %}">Env</a></li>
|
83
106
|
<li><a href="{% link _docs/config/builder.md %}">Builder</a></li>
|
84
107
|
<li><a href="{% link _docs/config/skip.md %}">Skip Option</a></li>
|
108
|
+
<li><a href="{% link _docs/config/app-overrides.md %}">App Overrides</a></li>
|
85
109
|
<li><a href="{% link _docs/config/reference.md %}">Reference</a></li>
|
86
110
|
</ul>
|
87
111
|
</li>
|
@@ -90,6 +114,7 @@
|
|
90
114
|
<ul>
|
91
115
|
<li><a href="{% link _docs/yaml/multiple-resources.md %}">Multiple Resources</a></li>
|
92
116
|
<li><a href="{% link _docs/yaml/multiple-files.md %}">Multiple Files</a></li>
|
117
|
+
<li><a href="{% link _docs/yaml/erb-comment.md %}">ERB Comment Syntax</a></li>
|
93
118
|
</ul>
|
94
119
|
</li>
|
95
120
|
<li><a href="{% link _docs/layering.md %}">Layering</a>
|
@@ -116,7 +141,7 @@
|
|
116
141
|
</li>
|
117
142
|
<li><a href="{% link _docs/variables.md %}">Variables</a>
|
118
143
|
<ul>
|
119
|
-
{% assign docs = site.docs | where: "categories","variables" %}
|
144
|
+
{% assign docs = site.docs | where: "categories","variables" | sort:"order" %}
|
120
145
|
{% for doc in docs -%}
|
121
146
|
<li><a href="{{ doc.url }}">{{ doc.nav_text }}</a></li>
|
122
147
|
{% endfor %}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<div class="learn">
|
2
|
+
<a href="https://learn.boltops.com/courses/{{ include.url }}">
|
3
|
+
{% if include.img %}
|
4
|
+
<img src="{{ include.img }}" />
|
5
|
+
{% else %}
|
6
|
+
<img src="https://learn.boltops.com/courses/{{ include.url }}/thumbnail.png" />
|
7
|
+
{% endif %}
|
8
|
+
</a>
|
9
|
+
{% unless include.premium == false %}
|
10
|
+
<div class="note">Note: Premium video content requires a subscription.</div>
|
11
|
+
{% endunless %}
|
12
|
+
</div>
|
@@ -0,0 +1 @@
|
|
1
|
+
<div class="video-box"><div class="video-container"><iframe src="https://www.youtube.com/embed/{{ include.video_id }}" frameborder="0" allowfullscreen=""></iframe></div></div>
|
data/docs/_layouts/default.html
CHANGED
@@ -24,12 +24,15 @@
|
|
24
24
|
<script src="/vendor/jquery/jquery.min.js"></script>
|
25
25
|
<script src="/vendor/bootstrap/js/bootstrap.bundle.min.js"></script>
|
26
26
|
<script src="/js/app.js"></script>
|
27
|
+
<script src="/js/scripts.js"></script>
|
27
28
|
</head>
|
28
29
|
|
29
30
|
<body>
|
31
|
+
{% include banner/head.html %}
|
30
32
|
{% include header.html %}
|
31
33
|
{% include content.html %}
|
32
34
|
{% include footer.html %}
|
35
|
+
{% include banner/foot.html %}
|
33
36
|
{% include js.html %}
|
34
37
|
</body>
|
35
38
|
</html>
|
@@ -0,0 +1,30 @@
|
|
1
|
+
---
|
2
|
+
title: kubes new hook
|
3
|
+
reference: true
|
4
|
+
---
|
5
|
+
|
6
|
+
## Usage
|
7
|
+
|
8
|
+
kubes new hook
|
9
|
+
|
10
|
+
## Description
|
11
|
+
|
12
|
+
Generates kubes hook file.
|
13
|
+
|
14
|
+
## Examples
|
15
|
+
|
16
|
+
$ kubes new hook docker
|
17
|
+
create .kubes/config/hooks/docker.rb
|
18
|
+
$ kubes new hook kubectl
|
19
|
+
create .kubes/config/hooks/kubectl.rb
|
20
|
+
$ kubes new hook kubes
|
21
|
+
create .kubes/config/hooks/kubes.rb
|
22
|
+
$
|
23
|
+
|
24
|
+
|
25
|
+
## Options
|
26
|
+
|
27
|
+
```
|
28
|
+
y, [--force] # Bypass overwrite are you sure prompt for existing files
|
29
|
+
```
|
30
|
+
|
@@ -14,6 +14,7 @@ Generates new resource.
|
|
14
14
|
## Subcommands
|
15
15
|
|
16
16
|
* [kubes new helper]({% link _reference/kubes-new-helper.md %}) - Generates kubes helper file.
|
17
|
+
* [kubes new hook]({% link _reference/kubes-new-hook.md %}) - Generates kubes hook file.
|
17
18
|
* [kubes new resource]({% link _reference/kubes-new-resource.md %}) - Generates Kubes Kubernetes resource definition.
|
18
19
|
* [kubes new variable]({% link _reference/kubes-new-variable.md %}) - Generates kubes variable file.
|
19
20
|
|
data/docs/_sass/theme.scss
CHANGED
data/docs/bin/web
CHANGED
data/docs/js/scripts.js
ADDED
data/kubes.gemspec
CHANGED
@@ -23,6 +23,7 @@ Gem::Specification.new do |spec|
|
|
23
23
|
spec.add_dependency "dsl_evaluator"
|
24
24
|
spec.add_dependency "hash_squeezer"
|
25
25
|
spec.add_dependency "memoist"
|
26
|
+
spec.add_dependency "nokogiri"
|
26
27
|
spec.add_dependency "rainbow"
|
27
28
|
spec.add_dependency "render_me_pretty"
|
28
29
|
spec.add_dependency "thor"
|
data/lib/kubes/booter.rb
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
module Kubes
|
2
|
+
module Booter
|
3
|
+
def boot
|
4
|
+
run_hooks
|
5
|
+
end
|
6
|
+
|
7
|
+
# Special boot hooks run super early, even before plugins are loaded.
|
8
|
+
# Useful for setting env vars and other early things.
|
9
|
+
#
|
10
|
+
# config/boot.rb
|
11
|
+
# config/boot/dev.rb
|
12
|
+
#
|
13
|
+
def run_hooks
|
14
|
+
run_hook
|
15
|
+
run_hook(Kubes.env)
|
16
|
+
end
|
17
|
+
|
18
|
+
def run_hook(env=nil)
|
19
|
+
name = env ? "boot/#{env}" : "boot"
|
20
|
+
path = "#{Kubes.root}/.kubes/#{name}.rb"
|
21
|
+
require path if File.exist?(path)
|
22
|
+
end
|
23
|
+
|
24
|
+
extend self
|
25
|
+
end
|
26
|
+
end
|
data/lib/kubes/cli/init.rb
CHANGED
@@ -0,0 +1,18 @@
|
|
1
|
+
class Kubes::CLI::New
|
2
|
+
class Hook < Kubes::CLI::Sequence
|
3
|
+
argument :type, default: "kubes", description: "IE: docker, kubectl, kubes" # description doesnt really show up
|
4
|
+
|
5
|
+
def self.options
|
6
|
+
[
|
7
|
+
[:force, aliases: ["y"], type: :boolean, desc: "Bypass overwrite are you sure prompt for existing files"],
|
8
|
+
]
|
9
|
+
end
|
10
|
+
options.each { |args| class_option(*args) }
|
11
|
+
|
12
|
+
public
|
13
|
+
def create_hook
|
14
|
+
set_source("new/hooks")
|
15
|
+
template "#{type}.rb", ".kubes/config/hooks/#{type}.rb"
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
data/lib/kubes/cli/new.rb
CHANGED
@@ -11,5 +11,9 @@ class Kubes::CLI
|
|
11
11
|
long_desc Help.text("new/variable")
|
12
12
|
Variable.options.each { |args| option(*args) }
|
13
13
|
register(Variable, "variable", "variable", "Generates kubes variable file.")
|
14
|
+
|
15
|
+
long_desc Help.text("new/hook")
|
16
|
+
Hook.options.each { |args| option(*args) }
|
17
|
+
register(Hook, "hook", "hook", "Generates kubes hook file.")
|
14
18
|
end
|
15
19
|
end
|
data/lib/kubes/command.rb
CHANGED
@@ -58,7 +58,7 @@ module Kubes
|
|
58
58
|
|
59
59
|
def check_project!(command_name)
|
60
60
|
return if command_name.nil?
|
61
|
-
return if %w[-h -v completion completion_script help init new version].include?(command_name)
|
61
|
+
return if %w[-h -v --version completion completion_script help init new version].include?(command_name)
|
62
62
|
Kubes.check_project!
|
63
63
|
end
|
64
64
|
|
@@ -9,7 +9,7 @@ module Kubes::Compiler::Decorator
|
|
9
9
|
name = @data.dig('metadata','name')
|
10
10
|
return @data unless name
|
11
11
|
|
12
|
-
#
|
12
|
+
# scope Kind so Secret and ConfigMap can have same name
|
13
13
|
md5 = md5(@data)
|
14
14
|
@data['metadata']['name'] = "#{name}-#{md5}"
|
15
15
|
Storage.store(@data['kind'], name, md5)
|
@@ -31,6 +31,15 @@ class Kubes::Compiler
|
|
31
31
|
"base",
|
32
32
|
Kubes.env.to_s
|
33
33
|
]
|
34
|
+
|
35
|
+
if Kubes.app
|
36
|
+
layers += [
|
37
|
+
Kubes.app,
|
38
|
+
"#{Kubes.app}/base",
|
39
|
+
"#{Kubes.app}/#{Kubes.env}",
|
40
|
+
]
|
41
|
+
end
|
42
|
+
|
34
43
|
layers = add_exts(layers)
|
35
44
|
layers.map! do |layer|
|
36
45
|
"#{kind_path}/#{layer}"
|