kubes 0.3.4 → 0.3.5
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 +3 -0
- data/docs/_docs/ci/cloudbuild.md +2 -0
- data/docs/_docs/config/env.md +1 -1
- data/docs/_docs/config/kubectl.md +3 -54
- data/docs/_docs/config/kubectl/args.md +17 -0
- data/docs/_docs/config/kubectl/hooks.md +39 -0
- data/docs/_docs/dsl/resources/backend_config.md +1 -1
- data/docs/_docs/intro.md +4 -3
- data/docs/_docs/{auto-context.md → misc/auto-context.md} +0 -0
- data/docs/_docs/{kustomize.md → misc/kustomize.md} +0 -0
- data/docs/_docs/misc/separate-steps.md +21 -0
- data/docs/_includes/sidebar.html +12 -3
- data/docs/_reference/kubes-exec.md +14 -6
- data/docs/_reference/kubes-init.md +1 -0
- data/docs/_reference/kubes-logs.md +1 -0
- data/lib/kubes/cli/get.rb +2 -1
- data/lib/kubes/kubectl/fetch/base.rb +1 -1
- data/lib/kubes/version.rb +1 -1
- data/lib/templates/dsl/.kubes/resources/web/deployment.rb +1 -1
- data/lib/templates/yaml/.kubes/resources/web/deployment.yaml.tt +1 -1
- metadata +7 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d239ce306b5a9eea427cab3ec5ca5f753f0eae3d1822fce65017c23172779562
|
4
|
+
data.tar.gz: 3d97c8d85e6f5bfd02babaf14140f186ebd22c3981fa8eed76ddcdbe7f24958d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 74b0ad9bc27e15f1b8742d26f6b2c09e11e990a69623a7e0b54d12565dc08e3dec5d0c640bfd4f5457aa09f0069c0010a78d39dedc18bd9a2223ebdb34be9c31
|
7
|
+
data.tar.gz: 7f3508f0d3650677a48f1f0069f71b1801ddd0a760f052f725a81f564fd144b6eecbd8c08e79fd2e9ec571a0ada2308d4f84bdfbc6971f66a80a20eec8ffbaae
|
data/CHANGELOG.md
CHANGED
@@ -3,6 +3,9 @@
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
4
4
|
This project *loosely tries* to adhere to [Semantic Versioning](http://semver.org/), even before v1.0.
|
5
5
|
|
6
|
+
## [0.3.5]
|
7
|
+
- #25 small fixes: show pod and fetch items nil
|
8
|
+
|
6
9
|
## [0.3.4]
|
7
10
|
- #24 fix namespace newline and logs for single container
|
8
11
|
- #23 init namespace option
|
data/docs/_docs/ci/cloudbuild.md
CHANGED
data/docs/_docs/config/env.md
CHANGED
@@ -1,61 +1,10 @@
|
|
1
1
|
---
|
2
|
-
title: Kubectl
|
2
|
+
title: Kubectl Customizations
|
3
3
|
---
|
4
4
|
|
5
5
|
## General
|
6
6
|
|
7
7
|
Kubes calls out the `kubectl` command. You can customize the command.
|
8
8
|
|
9
|
-
|
10
|
-
|
11
|
-
Here are some examples of customizing the kubectl args.
|
12
|
-
|
13
|
-
.kubes/config/kubectl/args.rb
|
14
|
-
|
15
|
-
```ruby
|
16
|
-
command("apply",
|
17
|
-
args: ["--validate=true"],
|
18
|
-
)
|
19
|
-
|
20
|
-
command("delete",
|
21
|
-
args: ["--grace-period=-1"],
|
22
|
-
)
|
23
|
-
```
|
24
|
-
|
25
|
-
## Hooks
|
26
|
-
|
27
|
-
Here are some examples of running custom hooks before and after the kubectl commands.
|
28
|
-
|
29
|
-
.kubes/config/kubectl/hooks.rb
|
30
|
-
|
31
|
-
```ruby
|
32
|
-
before("apply",
|
33
|
-
execute: "kubectl apply -f .kubes/shared/namespace.yaml",
|
34
|
-
)
|
35
|
-
|
36
|
-
after("delete",
|
37
|
-
execute: "echo 'delete hook',
|
38
|
-
)
|
39
|
-
```
|
40
|
-
|
41
|
-
You can use hooks to do things that may not make sense to do in the `.kubes/resources` definition. Here's an example of automatically creating the namespace.
|
42
|
-
|
43
|
-
.kubes/shared/namespace.yaml
|
44
|
-
|
45
|
-
```yaml
|
46
|
-
apiVersion: v1
|
47
|
-
kind: Namespace
|
48
|
-
metadata:
|
49
|
-
name: demo
|
50
|
-
```
|
51
|
-
|
52
|
-
### exit on fail
|
53
|
-
|
54
|
-
By default, if the hook commands fail, then terraspace will exit with the original hook error code. You can change this behavior with the `exit_on_fail` option.
|
55
|
-
|
56
|
-
```ruby
|
57
|
-
before("apply"
|
58
|
-
execute: "/command/will/fail/but/will/continue",
|
59
|
-
exit_on_fail: false,
|
60
|
-
)
|
61
|
-
```
|
9
|
+
* [Args]({% link _docs/config/kubectl/args.md %}): Customize the CLI args.
|
10
|
+
* [Hooks]({% link _docs/config/kubectl/hooks.md %}): Run hooks before and after the kubectl commands.
|
@@ -0,0 +1,17 @@
|
|
1
|
+
---
|
2
|
+
title: Kubectl Args
|
3
|
+
---
|
4
|
+
|
5
|
+
Here are some examples of customizing the kubectl args.
|
6
|
+
|
7
|
+
.kubes/config/kubectl/args.rb
|
8
|
+
|
9
|
+
```ruby
|
10
|
+
command("apply",
|
11
|
+
args: ["--validate=true"],
|
12
|
+
)
|
13
|
+
|
14
|
+
command("delete",
|
15
|
+
args: ["--grace-period=-1"],
|
16
|
+
)
|
17
|
+
```
|
@@ -0,0 +1,39 @@
|
|
1
|
+
---
|
2
|
+
title: Kubectl Hooks
|
3
|
+
---
|
4
|
+
|
5
|
+
Here are some examples of running custom hooks before and after the kubectl commands.
|
6
|
+
|
7
|
+
.kubes/config/kubectl/hooks.rb
|
8
|
+
|
9
|
+
```ruby
|
10
|
+
before("apply",
|
11
|
+
execute: "kubectl apply -f .kubes/shared/namespace.yaml",
|
12
|
+
)
|
13
|
+
|
14
|
+
after("delete",
|
15
|
+
execute: "echo 'delete hook',
|
16
|
+
)
|
17
|
+
```
|
18
|
+
|
19
|
+
You can use hooks to do things that may not make sense to do in the `.kubes/resources` definition. Here's an example of automatically creating the namespace.
|
20
|
+
|
21
|
+
.kubes/shared/namespace.yaml
|
22
|
+
|
23
|
+
```yaml
|
24
|
+
apiVersion: v1
|
25
|
+
kind: Namespace
|
26
|
+
metadata:
|
27
|
+
name: demo
|
28
|
+
```
|
29
|
+
|
30
|
+
### exit on fail
|
31
|
+
|
32
|
+
By default, if the hook commands fail, then terraspace will exit with the original hook error code. You can change this behavior with the `exit_on_fail` option.
|
33
|
+
|
34
|
+
```ruby
|
35
|
+
before("apply"
|
36
|
+
execute: "/command/will/fail/but/will/continue",
|
37
|
+
exit_on_fail: false,
|
38
|
+
)
|
39
|
+
```
|
@@ -3,7 +3,7 @@ title: BackendConfig
|
|
3
3
|
categories: dsl
|
4
4
|
---
|
5
5
|
|
6
|
-
A BackendConfig is [custom resource definitions (CRDs)](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/) that allow you to further customize the load balancer.
|
6
|
+
A [BackendConfig](https://cloud.google.com/kubernetes-engine/docs/how-to/ingress-features#create_backendconfig) is [custom resource definitions (CRDs)](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/) that allow you to further customize the load balancer.
|
7
7
|
|
8
8
|
Here's an example of a BackendConfig.
|
9
9
|
|
data/docs/_docs/intro.md
CHANGED
@@ -9,7 +9,8 @@ title: What is Kubes?
|
|
9
9
|
* Automation: [Builds the Docker image]({% link _docs/config/docker.md %}) and updates the compiled YAML files
|
10
10
|
* 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.
|
11
11
|
* Layering: Use the same Kubernetes YAML to build multiple environments like dev and prod with [layering]({% link _docs/layering.md %}).
|
12
|
-
* CLI Customizations: You can customize the [cli args]({% link _docs/config/kubectl.md %}). You can also run hooks before and after kubectl commands.
|
12
|
+
* CLI Customizations: You can customize the [cli args]({% link _docs/config/kubectl/args.md %}). You can also run [hooks]({% link _docs/config/kubectl/hooks.md %}) before and after kubectl commands.
|
13
13
|
* 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.
|
14
|
-
* Kustomize Support: If you’re a kustomization user, you can use it with Kubes. More details in [Kustomize Support Docs]({% link _docs/kustomize.md %}).
|
15
|
-
* 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/auto-context.md %}).
|
14
|
+
* 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 %}).
|
15
|
+
* 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 %}).
|
16
|
+
* Ordering: Kubes run kubectl apply to create resources in the [correct order]({% link _docs/intro/ordering.md %}). For deleting, it kubes will run `kubectl delete` in the correct reverse order. The order is also [customizable]({% link _docs/intro/ordering/custom.md %}).
|
File without changes
|
File without changes
|
@@ -0,0 +1,21 @@
|
|
1
|
+
---
|
2
|
+
title: Separate Steps
|
3
|
+
---
|
4
|
+
|
5
|
+
Sometimes you may want to run the 3 separate kubes steps directly. This may be useful if you are setting up CI/CD and need more control over the build process. Here are the 3 main steps:
|
6
|
+
|
7
|
+
To build and push the docker image:
|
8
|
+
|
9
|
+
kubes docker build
|
10
|
+
kubes docker push
|
11
|
+
|
12
|
+
Note, you must run a `kubes docker build` at least once. As the build step will store the image name in a `.kubes/state/docker_image.txt ` file for later use.
|
13
|
+
|
14
|
+
To compile the Kubernetes YAML files.
|
15
|
+
|
16
|
+
kubes compile
|
17
|
+
|
18
|
+
To apply the Kubernetes YAML files in the correct order and create resources on the cluster:
|
19
|
+
|
20
|
+
kubes apply
|
21
|
+
|
data/docs/_includes/sidebar.html
CHANGED
@@ -55,7 +55,12 @@
|
|
55
55
|
<ul>
|
56
56
|
<li><a href="{% link _docs/config/docker.md %}">Docker</a></li>
|
57
57
|
<li><a href="{% link _docs/config/env.md %}">Env</a></li>
|
58
|
-
<li><a href="{% link _docs/config/kubectl.md %}">Kubectl</a
|
58
|
+
<li><a href="{% link _docs/config/kubectl.md %}">Kubectl</a>
|
59
|
+
<ul>
|
60
|
+
<li><a href="{% link _docs/config/kubectl/args.md %}">Args</a></li>
|
61
|
+
<li><a href="{% link _docs/config/kubectl/hooks.md %}">Hooks</a></li>
|
62
|
+
</ul>
|
63
|
+
</li>
|
59
64
|
<li><a href="{% link _docs/config/builder.md %}">Builder</a></li>
|
60
65
|
</ul>
|
61
66
|
</li>
|
@@ -92,8 +97,12 @@
|
|
92
97
|
<li><a href="{% link _docs/extra-env/dsl.md %}">DSL</a></li>
|
93
98
|
</ul>
|
94
99
|
</li>
|
95
|
-
<li
|
96
|
-
|
100
|
+
<li>Misc
|
101
|
+
<ul>
|
102
|
+
<li><a href="{% link _docs/misc/kustomize.md %}">Kustomize Support</a></li>
|
103
|
+
<li><a href="{% link _docs/misc/separate-steps.md %}">Separate Steps</a></li>
|
104
|
+
<li><a href="{% link _docs/misc/auto-context.md %}">Auto Context</a></li>
|
105
|
+
</ul>
|
97
106
|
<li>CI/CD
|
98
107
|
<ul>
|
99
108
|
<li><a href="{% link _docs/ci/cloudbuild.md %}">CloudBuild</a></li>
|
@@ -21,13 +21,20 @@ The exec command finds the latest pod from the deployment and runs `kubectl exec
|
|
21
21
|
|
22
22
|
## Multiple Deployments
|
23
23
|
|
24
|
-
If you have have multiple deployments in your `.kubes/resources` then the command will use the first deployment by default. You can specify the specfic deployment with the `--name` option. Examples:
|
24
|
+
If you have have multiple deployments in your `.kubes/resources` then the command will use the first deployment by default. You can specify the specfic deployment with the `--name` or `-n` option. Examples:
|
25
25
|
|
26
|
-
kubes exec --name
|
27
|
-
kubes exec
|
28
|
-
kubes exec
|
29
|
-
kubes exec
|
30
|
-
kubes exec
|
26
|
+
kubes exec --name web
|
27
|
+
kubes exec -n web
|
28
|
+
kubes exec -n clock
|
29
|
+
kubes exec -n worker
|
30
|
+
kubes exec -n web sh
|
31
|
+
kubes exec -n web ls -l
|
32
|
+
|
33
|
+
## Multiple Pod Containers
|
34
|
+
|
35
|
+
If you have have multiple containers in your pod. You can specify the specfic container with the `--container` or `-c` option. Examples:
|
36
|
+
|
37
|
+
kubes exec --name web
|
31
38
|
|
32
39
|
|
33
40
|
## Options
|
@@ -36,6 +43,7 @@ If you have have multiple deployments in your `.kubes/resources` then the comman
|
|
36
43
|
[--compile], [--no-compile] # whether or not to compile the .kube/resources
|
37
44
|
# Default: true
|
38
45
|
n, [--name=NAME] # deployment name to use. IE: demo-web
|
46
|
+
c, [--container=CONTAINER] # Container name. If omitted, the first container in the pod will be chosen
|
39
47
|
[--verbose], [--no-verbose]
|
40
48
|
[--noop], [--no-noop]
|
41
49
|
```
|
@@ -20,6 +20,7 @@ a, --app=APP # Docker repo name. Example: web. Generates .ku
|
|
20
20
|
t, [--type=TYPE] # Type: dsl or yaml
|
21
21
|
# Default: yaml
|
22
22
|
--repo=REPO # Docker repo name. Example: user/repo. Configures .kubes/config.rb
|
23
|
+
n, [--namespace=NAMESPACE] # Namespace to use, defaults to the app option
|
23
24
|
[--verbose], [--no-verbose]
|
24
25
|
[--noop], [--no-noop]
|
25
26
|
```
|
@@ -18,6 +18,7 @@ logs from all deployment pods
|
|
18
18
|
[--compile], [--no-compile] # whether or not to compile the .kube/resources
|
19
19
|
# Default: true
|
20
20
|
n, [--name=NAME] # deployment name to use. IE: demo-web
|
21
|
+
c, [--container=CONTAINER] # Container name. If omitted, the first container in the pod will be chosen
|
21
22
|
f, [--follow], [--no-follow] # Follow logs
|
22
23
|
# Default: true
|
23
24
|
[--verbose], [--no-verbose]
|
data/lib/kubes/cli/get.rb
CHANGED
@@ -18,7 +18,7 @@ module Kubes::Kubectl::Fetch
|
|
18
18
|
kubectl = Kubes::Kubectl.new(:get, @options.merge(o)) # kubes get -f .kubes/output
|
19
19
|
resp = kubectl.run
|
20
20
|
data = JSON.load(resp)
|
21
|
-
data['items']
|
21
|
+
data['items'] || [] # Note: When fetching only 1 resource, items is not part of structure
|
22
22
|
end
|
23
23
|
end
|
24
24
|
end
|
data/lib/kubes/version.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
name "web"
|
2
2
|
labels(role: "web")
|
3
3
|
|
4
|
-
replicas 1
|
4
|
+
replicas 1 # overridden on a env basis
|
5
5
|
image built_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
|
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.
|
4
|
+
version: 0.3.5
|
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
|
+
date: 2020-08-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -232,13 +232,14 @@ files:
|
|
232
232
|
- docs/README.md
|
233
233
|
- docs/Rakefile
|
234
234
|
- docs/_config.yml
|
235
|
-
- docs/_docs/auto-context.md
|
236
235
|
- docs/_docs/ci/cloudbuild.md
|
237
236
|
- docs/_docs/config.md
|
238
237
|
- docs/_docs/config/builder.md
|
239
238
|
- docs/_docs/config/docker.md
|
240
239
|
- docs/_docs/config/env.md
|
241
240
|
- docs/_docs/config/kubectl.md
|
241
|
+
- docs/_docs/config/kubectl/args.md
|
242
|
+
- docs/_docs/config/kubectl/hooks.md
|
242
243
|
- docs/_docs/contributing.md
|
243
244
|
- docs/_docs/dsl.md
|
244
245
|
- docs/_docs/dsl/multiple-resources.md
|
@@ -269,7 +270,6 @@ files:
|
|
269
270
|
- docs/_docs/intro/ordering.md
|
270
271
|
- docs/_docs/intro/ordering/custom.md
|
271
272
|
- docs/_docs/intro/structure.md
|
272
|
-
- docs/_docs/kustomize.md
|
273
273
|
- docs/_docs/layering.md
|
274
274
|
- docs/_docs/layering/dsl.md
|
275
275
|
- docs/_docs/layering/merge.md
|
@@ -294,6 +294,9 @@ files:
|
|
294
294
|
- docs/_docs/learn/yaml/next-steps.md
|
295
295
|
- docs/_docs/learn/yaml/review-project.md
|
296
296
|
- docs/_docs/learn/yaml/update.md
|
297
|
+
- docs/_docs/misc/auto-context.md
|
298
|
+
- docs/_docs/misc/kustomize.md
|
299
|
+
- docs/_docs/misc/separate-steps.md
|
297
300
|
- docs/_docs/next-steps.md
|
298
301
|
- docs/_docs/patterns.md
|
299
302
|
- docs/_docs/patterns/clock-web-worker.md
|