kubes 0.6.3 → 0.6.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +3 -0
- data/docs/_docs/helpers.md +1 -13
- data/docs/_docs/helpers/aws/secrets.md +14 -2
- data/docs/_docs/helpers/aws/ssm.md +2 -2
- data/docs/_docs/helpers/custom.md +1 -0
- data/docs/_docs/helpers/google/gke.md +10 -7
- data/docs/_docs/helpers/google/secrets.md +13 -1
- data/docs/_docs/plugins.md +12 -0
- data/docs/_docs/plugins/aws.md +17 -0
- data/docs/_docs/plugins/google.md +18 -0
- data/docs/_docs/variables.md +1 -12
- data/docs/_docs/variables/advanced.md +2 -0
- data/docs/_docs/variables/basic.md +2 -0
- data/docs/_includes/helpers/generator.md +13 -0
- data/docs/_includes/layering/layers.md +9 -11
- data/docs/_includes/plugins/gke-config.md +6 -0
- data/docs/_includes/sidebar.html +6 -0
- data/docs/_includes/variables/generator.md +12 -0
- data/kubes.gemspec +2 -2
- data/lib/kubes/auth.rb +1 -1
- data/lib/kubes/version.rb +1 -1
- metadata +11 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ce0d27f928a17e1013e97242990213cd4b375aee110dc14d3effc9aa8df2d490
|
4
|
+
data.tar.gz: 983312b9f64da2641ec8286dc76b9e7582dac9a575f77222ab4e9f9a145d26dd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 36dc2af17c87d9c58eca05f8f63848f57d95cccdfcd51894ddb467c7424c7eefade4aed9133c871f400f05997143d1f537aeb38c1d8288815ab05558f25ae31c
|
7
|
+
data.tar.gz: 3ed8687d0f1af629a7645a002536e7a187057ea2da504e52fb3227da933b4a0c98db8ad0f1170a2a720248cbe517f7206ad8941299467695772d5fca289c1160
|
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.6.4] - 2020-11-11
|
7
|
+
- [#38](https://github.com/boltops-tools/kubes/pull/38) fix auto auth for docker login to registry, docs for secret base64, update dependencies
|
8
|
+
|
6
9
|
## [0.6.3] - 2020-11-11
|
7
10
|
- [#37](https://github.com/boltops-tools/kubes/pull/37) Dockerfile for ci and hook updates
|
8
11
|
|
data/docs/_docs/helpers.md
CHANGED
@@ -26,16 +26,4 @@ There are also provider-specific helpers:
|
|
26
26
|
* [AWS Helpers]({% link _docs/helpers/aws.md %})
|
27
27
|
* [Google Helpers]({% link _docs/helpers/google.md %})
|
28
28
|
|
29
|
-
|
30
|
-
|
31
|
-
To help you get started quickly, you can generate starter helper code.
|
32
|
-
|
33
|
-
$ kubes new helper custom
|
34
|
-
create .kubes/helpers/custom_helper.rb
|
35
|
-
|
36
|
-
.kubes/helpers/custom_helper.rb
|
37
|
-
|
38
|
-
```ruby
|
39
|
-
module CustomHelper
|
40
|
-
end
|
41
|
-
```
|
29
|
+
{% include helpers/generator.md %}
|
@@ -45,11 +45,23 @@ data:
|
|
45
45
|
USER: dGVzdDIK
|
46
46
|
```
|
47
47
|
|
48
|
-
|
48
|
+
By default, the values are automatically base64 encoded.
|
49
49
|
|
50
50
|
## Base64 Option
|
51
51
|
|
52
|
-
|
52
|
+
By default, the values are automatically base64 encoded. You can change the default behavior with a config option.
|
53
|
+
|
54
|
+
.kubes/config.rb
|
55
|
+
|
56
|
+
```ruby
|
57
|
+
KubesAws.configure do |config|
|
58
|
+
config.base64_secrets = false
|
59
|
+
end
|
60
|
+
```
|
61
|
+
|
62
|
+
Note: The use of `KubesAws.configure` instead of `Kubes.configure` here.
|
63
|
+
|
64
|
+
You can also set the `base64` option to turn on and off the automated base64 encoding on a per secret basis.
|
53
65
|
|
54
66
|
```ruby
|
55
67
|
aws_secret("demo-#{Kubes.env}-USER", base64: true) # default is base64=true
|
@@ -44,11 +44,11 @@ data:
|
|
44
44
|
USER: dGVzdDIK
|
45
45
|
```
|
46
46
|
|
47
|
-
The values are
|
47
|
+
The values are base64 encoded based on the SSM parameter type. When the type is a `SecureString`, Kubes base64 encodes it. Other types are not base64 encoded. You can override this behavior with the base64 option, described next.
|
48
48
|
|
49
49
|
## Base64 Option
|
50
50
|
|
51
|
-
The value is automatically base64 encoded
|
51
|
+
The value is automatically base64 encoded based on whether or not the SSM parameter type is a `SecureString`. You can explicitly the `base64` option if needed though. Example:
|
52
52
|
|
53
53
|
```ruby
|
54
54
|
aws_ssm("/demo/#{Kubes.env}/USER", base64: true) # default is base64=true
|
@@ -23,6 +23,8 @@ KubesGoogle.configure do |config|
|
|
23
23
|
end
|
24
24
|
```
|
25
25
|
|
26
|
+
Note: The use of `KubesGoogle.configure` instead of `Kubes.configure` here.
|
27
|
+
|
26
28
|
This enables `kubes apply` before and after hooks to add and remove the current machine IP.
|
27
29
|
|
28
30
|
## Options
|
@@ -31,12 +33,7 @@ Here are the `config.gke` settings:
|
|
31
33
|
|
32
34
|
Name | Description | Default
|
33
35
|
---|---|---
|
34
|
-
|
35
|
-
enable_get_credentials | Whether or not to run the hook that calls `gcloud container clusters get-credentials`. This spares you from having to call it manually. | false
|
36
|
-
enable_hooks | This will be true when the cluster_name is set. So there's no need to set it. The option provides a quick way to override and disable running the hooks. | true
|
37
|
-
google_project | Google project. Can also be set with the env var `GOOGLE_PROJECT`. `GOOGLE_PROJECT` takes precedence. | nil
|
38
|
-
google_region | Google region cluster is in. Can also be set with the env var `GOOGLE_REGION`. `GOOGLE_REGION` takes precedence. | nil
|
39
|
-
whitelist_ip | Explicit IP to whitelist. By default the IP address of the current machine is automatically detected and used. | nil
|
36
|
+
{% include plugins/gke-config.md %}
|
40
37
|
|
41
38
|
## Build Docker Image
|
42
39
|
|
@@ -84,6 +81,12 @@ Important: The "Kubernetes Engine Developer" that is available in the Cloud Buil
|
|
84
81
|
|
85
82
|
## Run CloudBuild
|
86
83
|
|
87
|
-
Run cloudbuild
|
84
|
+
Run cloudbuild to deploy the dev env:
|
88
85
|
|
89
86
|
gcloud builds submit --config cloudbuild.yaml
|
87
|
+
|
88
|
+
To deploy the prod env:
|
89
|
+
|
90
|
+
gcloud builds submit --config cloudbuild.yaml --substitutions _KUBES_ENV=prod
|
91
|
+
|
92
|
+
See [gcloud builds submit](https://cloud.google.com/sdk/gcloud/reference/builds/submit) reference docs for more options.
|
@@ -57,7 +57,19 @@ GOOGLE_PROJECT | Google project id. This is required.
|
|
57
57
|
|
58
58
|
## Base64 Option
|
59
59
|
|
60
|
-
|
60
|
+
By default, the values are automatically base64 encoded. You can change the default behavior with a config option.
|
61
|
+
|
62
|
+
.kubes/config.rb
|
63
|
+
|
64
|
+
```ruby
|
65
|
+
KubesGoogle.configure do |config|
|
66
|
+
config.base64_secrets = true
|
67
|
+
end
|
68
|
+
```
|
69
|
+
|
70
|
+
Note: The use of `KubesGoogle.configure` instead of `Kubes.configure` here.
|
71
|
+
|
72
|
+
You can also set the `base64` option to turn on and off the automated base64 encoding on a per secret basis.
|
61
73
|
|
62
74
|
```ruby
|
63
75
|
google_secret("demo-#{Kubes.env}-USER", base64: true) # default is base64=true
|
@@ -0,0 +1,12 @@
|
|
1
|
+
---
|
2
|
+
title: Kubes Plugins
|
3
|
+
---
|
4
|
+
|
5
|
+
Kubes makes it easier to work with Kubernetes by automating the deployment workflow. Many of the conveniences it adds is done with plugins. For example, `aws_secret`, `aws_ssm`, `google_secret` are implemented with Cloud Provider specific Kubes plugins.
|
6
|
+
|
7
|
+
## Baseline Plugins
|
8
|
+
|
9
|
+
The baseline plugins that currently ship with Kubes are:
|
10
|
+
|
11
|
+
* [kubes_aws]({% link _docs/plugins/aws.md %})
|
12
|
+
* [kubes_google]({% link _docs/plugins/google.md %})
|
@@ -0,0 +1,17 @@
|
|
1
|
+
---
|
2
|
+
title: AWS Kubes Plugin
|
3
|
+
---
|
4
|
+
|
5
|
+
The AWS Kubes Plugin adds support helpers like `aws_secret`. You can configure it's behavior. Example:
|
6
|
+
|
7
|
+
.kubes/config.rb
|
8
|
+
|
9
|
+
```ruby
|
10
|
+
KubesAws.configure do |config|
|
11
|
+
config.base64_secrets = false
|
12
|
+
end
|
13
|
+
```
|
14
|
+
|
15
|
+
Name | Description | Default
|
16
|
+
---|---|---
|
17
|
+
base64_secrets | Whether or not to automatically base64 encoded values returned by the `aws_secret` helper. | true
|
@@ -0,0 +1,18 @@
|
|
1
|
+
---
|
2
|
+
title: Google Kubes Plugin
|
3
|
+
---
|
4
|
+
|
5
|
+
The Google Kubes Plugin adds support helpers like `google_secret`. You can configure it's behavior. Example:
|
6
|
+
|
7
|
+
.kubes/config.rb
|
8
|
+
|
9
|
+
```ruby
|
10
|
+
KubesGoogle.configure do |config|
|
11
|
+
config.base64_secrets = true
|
12
|
+
end
|
13
|
+
```
|
14
|
+
|
15
|
+
Name | Description | Default
|
16
|
+
---|---|---
|
17
|
+
base64_secrets | Whether or not to automatically base64 encoded values returned by the `google_secret` helper. | true
|
18
|
+
{% include plugins/gke-config.md %}
|
data/docs/_docs/variables.md
CHANGED
@@ -9,15 +9,4 @@ You can set variables to be made available to the templates. Generally, it is re
|
|
9
9
|
* [{{ doc.title }}]({{ doc.url }})
|
10
10
|
{% endfor %}
|
11
11
|
|
12
|
-
|
13
|
-
|
14
|
-
To help you get started quickly, you can generate starter variable code.
|
15
|
-
|
16
|
-
$ kubes new variable
|
17
|
-
create .kubes/variables/dev.rb
|
18
|
-
|
19
|
-
.kubes/variables/dev.rb
|
20
|
-
|
21
|
-
```ruby
|
22
|
-
@example = "dev-value"
|
23
|
-
```
|
12
|
+
{% include variables/generator.md %}
|
@@ -48,15 +48,13 @@ ROLE/KIND/ENV.{{ include.ext }} | web/deployment/dev.{{ include.ext }}
|
|
48
48
|
2. Then you can define the core of your resource definition in the `ROLE/KIND.{{ include.ext }}`. Example: `web/deployment.{{ include.ext }}`
|
49
49
|
3. Finally, you can provide environment-specific overrides in the `ROLE/KIND/ENV.{{ include.ext }}`. Example: `web/deployment/dev.{{ include.ext }}`.
|
50
50
|
|
51
|
-
Here's
|
51
|
+
Here's a concrete example of layering with the deployment resource kind:
|
52
52
|
|
53
|
-
.kubes/resources/
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
├── deployment.{{ include.ext }}
|
62
|
-
└── service.{{ include.ext }}
|
53
|
+
.kubes/resources/base/all.{{ include.ext }}
|
54
|
+
.kubes/resources/base/deployment.{{ include.ext }}
|
55
|
+
.kubes/resources/web/deployment.{{ include.ext }}
|
56
|
+
.kubes/resources/web/deployment/dev.{{ include.ext }}
|
57
|
+
|
58
|
+
All of these files get layered and merged together to produce a resulting deployment.{{ include.ext }}
|
59
|
+
|
60
|
+
.kubes/output/web/deployment.{{ include.ext }}
|
@@ -0,0 +1,6 @@
|
|
1
|
+
gke.cluster_name | GKE cluster name. This is required when using the [GKE whitelisting feature]({% link _docs/helpers/google/gke.md %}). | nil
|
2
|
+
gke.enable_get_credentials | Whether or not to run the hook that calls `gcloud container clusters get-credentials`. This spares you from having to call it manually. | false
|
3
|
+
gke.enable_hooks | This will be true when the cluster_name is set. So there's no need to set it. The option provides a quick way to override and disable running the hooks. | true
|
4
|
+
gke.google_project | Google project. Can also be set with the env var `GOOGLE_PROJECT`. `GOOGLE_PROJECT` takes precedence. | nil
|
5
|
+
gke.google_region | Google region cluster is in. Can also be set with the env var `GOOGLE_REGION`. `GOOGLE_REGION` takes precedence. | nil
|
6
|
+
gke.whitelist_ip | Explicit IP to whitelist. By default the IP address of the current machine is automatically detected and used. | nil
|
data/docs/_includes/sidebar.html
CHANGED
@@ -173,6 +173,12 @@
|
|
173
173
|
<li><a href="{% link _docs/extra-env/dsl.md %}">DSL</a></li>
|
174
174
|
</ul>
|
175
175
|
</li>
|
176
|
+
<li><a href="{% link _docs/plugins.md %}">Plugins</a>
|
177
|
+
<ul>
|
178
|
+
<li><a href="{% link _docs/plugins/aws.md %}">AWS</a></li>
|
179
|
+
<li><a href="{% link _docs/plugins/google.md %}">Google</a></li>
|
180
|
+
</ul>
|
181
|
+
</li>
|
176
182
|
<li>Misc
|
177
183
|
<ul>
|
178
184
|
<li><a href="{% link _docs/misc/kustomize.md %}">Kustomize Support</a></li>
|
data/kubes.gemspec
CHANGED
@@ -29,8 +29,8 @@ Gem::Specification.new do |spec|
|
|
29
29
|
spec.add_dependency "zeitwerk"
|
30
30
|
|
31
31
|
# core helper libs
|
32
|
-
spec.add_dependency "kubes_aws", "~> 0.
|
33
|
-
spec.add_dependency "kubes_google", "~> 0.3.
|
32
|
+
spec.add_dependency "kubes_aws", "~> 0.3.0"
|
33
|
+
spec.add_dependency "kubes_google", "~> 0.3.2"
|
34
34
|
|
35
35
|
spec.add_development_dependency "bundler"
|
36
36
|
spec.add_development_dependency "byebug"
|
data/lib/kubes/auth.rb
CHANGED
data/lib/kubes/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kubes
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tung Nguyen
|
@@ -142,28 +142,28 @@ dependencies:
|
|
142
142
|
requirements:
|
143
143
|
- - "~>"
|
144
144
|
- !ruby/object:Gem::Version
|
145
|
-
version: 0.
|
145
|
+
version: 0.3.0
|
146
146
|
type: :runtime
|
147
147
|
prerelease: false
|
148
148
|
version_requirements: !ruby/object:Gem::Requirement
|
149
149
|
requirements:
|
150
150
|
- - "~>"
|
151
151
|
- !ruby/object:Gem::Version
|
152
|
-
version: 0.
|
152
|
+
version: 0.3.0
|
153
153
|
- !ruby/object:Gem::Dependency
|
154
154
|
name: kubes_google
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|
156
156
|
requirements:
|
157
157
|
- - "~>"
|
158
158
|
- !ruby/object:Gem::Version
|
159
|
-
version: 0.3.
|
159
|
+
version: 0.3.2
|
160
160
|
type: :runtime
|
161
161
|
prerelease: false
|
162
162
|
version_requirements: !ruby/object:Gem::Requirement
|
163
163
|
requirements:
|
164
164
|
- - "~>"
|
165
165
|
- !ruby/object:Gem::Version
|
166
|
-
version: 0.3.
|
166
|
+
version: 0.3.2
|
167
167
|
- !ruby/object:Gem::Dependency
|
168
168
|
name: bundler
|
169
169
|
requirement: !ruby/object:Gem::Requirement
|
@@ -362,6 +362,9 @@ files:
|
|
362
362
|
- docs/_docs/patterns/migrations.md
|
363
363
|
- docs/_docs/patterns/multiple-envs.md
|
364
364
|
- docs/_docs/patterns/secrets.md
|
365
|
+
- docs/_docs/plugins.md
|
366
|
+
- docs/_docs/plugins/aws.md
|
367
|
+
- docs/_docs/plugins/google.md
|
365
368
|
- docs/_docs/resources.md
|
366
369
|
- docs/_docs/resources/base.md
|
367
370
|
- docs/_docs/resources/role.md
|
@@ -385,6 +388,7 @@ files:
|
|
385
388
|
- docs/_includes/google_analytics.html
|
386
389
|
- docs/_includes/header.html
|
387
390
|
- docs/_includes/helpers/base64.md
|
391
|
+
- docs/_includes/helpers/generator.md
|
388
392
|
- docs/_includes/intro/features.md
|
389
393
|
- docs/_includes/intro/install.md
|
390
394
|
- docs/_includes/js.html
|
@@ -396,8 +400,10 @@ files:
|
|
396
400
|
- docs/_includes/learn/repos.md
|
397
401
|
- docs/_includes/learn/review.md
|
398
402
|
- docs/_includes/learn/start.md
|
403
|
+
- docs/_includes/plugins/gke-config.md
|
399
404
|
- docs/_includes/reference.md
|
400
405
|
- docs/_includes/sidebar.html
|
406
|
+
- docs/_includes/variables/generator.md
|
401
407
|
- docs/_includes/vs/article.md
|
402
408
|
- docs/_includes/vs/kubes/layering.md
|
403
409
|
- docs/_includes/vs/kubes/structure.md
|