kubes 0.8.6 → 0.8.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/FUNDING.yml +1 -0
- data/CHANGELOG.md +12 -0
- data/docs/_docs/config/hooks/docker.md +7 -0
- data/docs/_docs/config/hooks/kubes.md +1 -1
- data/docs/_docs/helpers/builtin/config-map-files.md +1 -1
- data/docs/_docs/intro/how-kubes-works.md +1 -1
- data/docs/_docs/layering/extra.md +16 -0
- data/docs/_docs/layering.md +1 -0
- data/docs/_docs/learn/dsl/new-project.md +1 -1
- data/docs/_docs/learn/yaml/new-project.md +1 -1
- data/docs/_includes/intro/features.md +11 -11
- data/docs/_includes/learn/review.md +3 -1
- data/docs/_includes/sidebar.html +1 -0
- data/docs/_sass/theme.scss +1 -0
- data/lib/kubes/compiler/shared/runtime_helpers.rb +4 -0
- data/lib/kubes/compiler/strategy/result.rb +1 -0
- data/lib/kubes/config.rb +4 -0
- data/lib/kubes/core.rb +7 -3
- data/lib/kubes/version.rb +1 -1
- data/lib/templates/new/resource/yaml/ingress.yaml +6 -8
- data/lib/templates/new/resource/yaml/managed_certificate.yaml +5 -3
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1089172c4489c77f34abd1cc5df408e11467950f40ae67ee062377f078c131d1
|
4
|
+
data.tar.gz: 1c29e074651e78963aa1fbc83314e49b6da006c7902056c2ef108dd91302b8a7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ac9080b9f30461b48d4d4fbf5e6a9ca6be2a53385a0cde1b649e6da26c265ddb7adb7f3c66714ad179ebac3f3ae3ebd9ea112bc5a0f5e65beab7d51d30f9574d
|
7
|
+
data.tar.gz: c6424d462ba9c7b834fcf1944fd75275ae6fa8b6abf7ea7b29fa9575fa6f5ae0853529ca10b32e1eeff11ac094e2ee920008c326936e2c1bd5e153cb8dc3f915
|
data/.github/FUNDING.yml
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
github: boltops-tools
|
data/CHANGELOG.md
CHANGED
@@ -3,6 +3,18 @@
|
|
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.8.9] - 2022-08-11
|
7
|
+
- [#64](https://github.com/boltops-tools/kubes/pull/64) extra variable layering
|
8
|
+
- add extra layering docs
|
9
|
+
|
10
|
+
## [0.8.8] - 2022-08-11
|
11
|
+
- add Kubes.extra method
|
12
|
+
- update managed_certificate and ingress apiVersion
|
13
|
+
|
14
|
+
## [0.8.7] - 2022-06-21
|
15
|
+
- [#63](https://github.com/boltops-tools/kubes/pull/63) remove kubes meta from yaml
|
16
|
+
- adjust app layer. keep old layer also for now though
|
17
|
+
|
6
18
|
## [0.8.6] - 2022-02-16
|
7
19
|
- [#62](https://github.com/boltops-tools/kubes/pull/62) config map files: add Kubes.app txt layer
|
8
20
|
|
@@ -6,6 +6,13 @@ categories: hooks
|
|
6
6
|
|
7
7
|
{% include config/hooks/generator.md type="docker" %}
|
8
8
|
|
9
|
+
## Docker Hooks
|
10
|
+
|
11
|
+
Hook | Description
|
12
|
+
---|---
|
13
|
+
build | When kubes builds Docker image.
|
14
|
+
push | When kubes pushes the Docker image.
|
15
|
+
|
9
16
|
Here are some examples of running custom hooks before and after the docker commands.
|
10
17
|
|
11
18
|
## Build Hooks
|
@@ -17,7 +17,7 @@ apply | When kubes runs all the `kubectl apply` commands.
|
|
17
17
|
delete | When kubes runs all the `kubectl delete` commands.
|
18
18
|
prune | When kubes prunes. IE: To clean old secrets.
|
19
19
|
|
20
|
-
##
|
20
|
+
## Kubes Lifecyle Level
|
21
21
|
|
22
22
|
These lifecycle points occur at a higher-level than the `kubectl` commands. Here's an example to help explain:
|
23
23
|
|
@@ -16,7 +16,7 @@ Now, use `kubectl` directly and apply them in the proper order:
|
|
16
16
|
kubectl apply -f .kubes/output/web/service.yaml
|
17
17
|
kubectl apply -f .kubes/output/web/deployment.yaml
|
18
18
|
|
19
|
-
The deploy command
|
19
|
+
The deploy command simply does all 3 steps: build, compile, and apply.
|
20
20
|
|
21
21
|
kubes deploy
|
22
22
|
|
data/docs/_docs/layering.md
CHANGED
@@ -8,3 +8,4 @@ Kubes supports layering files together so you can use the same Kubernetes files
|
|
8
8
|
* [DSL Layering]({% link _docs/layering/dsl.md %})
|
9
9
|
* [Mix Layering]({% link _docs/layering/mix.md %})
|
10
10
|
* [Merge Behavior]({% link _docs/layering/merge-dsl.md %})
|
11
|
+
* [Extra Layering]({% link _docs/layering/extra.md %})
|
@@ -9,7 +9,7 @@ If you already a project with an existing Dockerfile, you can use that. If you d
|
|
9
9
|
|
10
10
|
{% include learn/repos.md %}
|
11
11
|
|
12
|
-
Let's
|
12
|
+
Let's initialize a starter kubes project. This is similar to a `git init`.
|
13
13
|
|
14
14
|
$ kubes init --app demo --repo $REPO --type dsl
|
15
15
|
create .kubes/config.rb
|
@@ -9,7 +9,7 @@ If you already a project with an existing Dockerfile, you can use that. If you d
|
|
9
9
|
|
10
10
|
{% include learn/repos.md %}
|
11
11
|
|
12
|
-
Let's
|
12
|
+
Let's initialize a starter kubes project. This is similar to a `git init`.
|
13
13
|
|
14
14
|
$ kubes init --app demo --repo $REPO
|
15
15
|
create Dockerfile
|
@@ -1,11 +1,11 @@
|
|
1
|
-
* Automation
|
2
|
-
* Syntactic Sugar
|
3
|
-
* Layering
|
4
|
-
* Secrets
|
5
|
-
* Generators
|
6
|
-
* CLI Customizations
|
7
|
-
* Hooks
|
8
|
-
* Automated Suffix Hashes
|
9
|
-
* Kustomize Support
|
10
|
-
* Auto Context Switching
|
11
|
-
* Ordering
|
1
|
+
* **Automation**: [Builds the Docker image]({% link _docs/config/docker.md %}) and updates the compiled YAML files
|
2
|
+
* **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.
|
3
|
+
* **Layering**: Use the same Kubernetes YAML to build multiple environments like dev and prod with [layering]({% link _docs/layering.md %}).
|
4
|
+
* **Secrets**: Use helpers like [aws_secret]({% link _docs/helpers/aws/secrets.md %}), [aws_ssm]({% link _docs/helpers/aws/ssm.md %}), and [google_secret]({% link _docs/helpers/google/secrets.md %}) to build Kubernetes secrets.yaml from secret providers designed for it.
|
5
|
+
* **Generators**: Kubes ships with a few generators to help you get building with Kubernetes quickly. See: [Generator Docs]({% link _docs/generators.md %}).
|
6
|
+
* **CLI Customizations**: You can customize the [cli args]({% link _docs/config/args/kubectl.md %}).
|
7
|
+
* **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.
|
8
|
+
* **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.
|
9
|
+
* **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 %}).
|
10
|
+
* **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 %}).
|
11
|
+
* **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 %}).
|
@@ -2,6 +2,8 @@
|
|
2
2
|
|
3
3
|
The `config.rb` is where you can configure Kubes settings.
|
4
4
|
|
5
|
+
.kubes/config.rb
|
6
|
+
|
5
7
|
```ruby
|
6
8
|
Kubes.configure do |config|
|
7
9
|
config.repo = "112233445566.dkr.ecr.us-west-2.amazonaws.com/demo" # may be gcr.io/project-123/demo
|
@@ -13,7 +15,7 @@ end
|
|
13
15
|
|
14
16
|
This is where the `--repo` from `kubes init` got saved. The other options are covered in the [Env Config Docs]({% link _docs/config/env.md %}).
|
15
17
|
|
16
|
-
##
|
18
|
+
## Dockerfile
|
17
19
|
|
18
20
|
The `Dockerfile` is a simple starter example that just runs nginx
|
19
21
|
|
data/docs/_includes/sidebar.html
CHANGED
@@ -128,6 +128,7 @@
|
|
128
128
|
<li><a href="{% link _docs/layering/mix.md %}">Mix</a></li>
|
129
129
|
<li><a href="{% link _docs/layering/merge-dsl.md %}">Merge DSL</a></li>
|
130
130
|
<li><a href="{% link _docs/layering/merge-options.md %}">Merge Options</a></li>
|
131
|
+
<li><a href="{% link _docs/layering/extra.md %}">Extra Layering</a></li>
|
131
132
|
</ul>
|
132
133
|
</li>
|
133
134
|
<li><a href="{% link _docs/dsl.md %}">DSL</a>
|
data/docs/_sass/theme.scss
CHANGED
@@ -59,14 +59,18 @@ module Kubes::Compiler::Shared
|
|
59
59
|
layers = [
|
60
60
|
"base.rb",
|
61
61
|
"#{Kubes.env}.rb",
|
62
|
+
"#{Kubes.env}-#{Kubes.extra}.rb",
|
62
63
|
"base/all.rb",
|
63
64
|
"base/all/#{Kubes.env}.rb",
|
65
|
+
"base/all/#{Kubes.env}-#{Kubes.extra}.rb",
|
64
66
|
"base/#{kind}.rb",
|
65
67
|
"base/#{kind}/base.rb",
|
66
68
|
"base/#{kind}/#{Kubes.env}.rb",
|
69
|
+
"base/#{kind}/#{Kubes.env}-#{Kubes.extra}.rb",
|
67
70
|
"#{role}/#{kind}.rb",
|
68
71
|
"#{role}/#{kind}/base.rb",
|
69
72
|
"#{role}/#{kind}/#{Kubes.env}.rb",
|
73
|
+
"#{role}/#{kind}/#{Kubes.env}-#{Kubes.extra}.rb",
|
70
74
|
]
|
71
75
|
if Kubes.app
|
72
76
|
app_layers = ["#{Kubes.app}.rb"]
|
data/lib/kubes/config.rb
CHANGED
@@ -96,8 +96,12 @@ module Kubes
|
|
96
96
|
evaluate_file(".kubes/config.rb")
|
97
97
|
evaluate_file(".kubes/config/env/#{Kubes.env}.rb")
|
98
98
|
if Kubes.app
|
99
|
+
# TODO: deprecate
|
99
100
|
evaluate_file(".kubes/config/env/#{Kubes.app}.rb")
|
100
101
|
evaluate_file(".kubes/config/env/#{Kubes.app}/#{Kubes.env}.rb")
|
102
|
+
# newer
|
103
|
+
evaluate_file(".kubes/config/app/#{Kubes.app}.rb")
|
104
|
+
evaluate_file(".kubes/config/app/#{Kubes.app}/#{Kubes.env}.rb")
|
101
105
|
end
|
102
106
|
Kubes::Plugin.plugins.each do |klass|
|
103
107
|
# klass: IE: KubesAws, KubesGoogle
|
data/lib/kubes/core.rb
CHANGED
@@ -3,11 +3,15 @@ module Kubes
|
|
3
3
|
extend Memoist
|
4
4
|
|
5
5
|
def app
|
6
|
-
ENV['KUBES_APP']
|
6
|
+
ENV['KUBES_APP'] unless ENV['KUBES_APP'].blank?
|
7
7
|
end
|
8
8
|
|
9
9
|
def env
|
10
|
-
ENV['KUBES_ENV']
|
10
|
+
ENV['KUBES_ENV'].blank? ? "dev" : ENV['KUBES_ENV']
|
11
|
+
end
|
12
|
+
|
13
|
+
def extra
|
14
|
+
ENV['KUBES_EXTRA'] unless ENV['KUBES_EXTRA'].blank?
|
11
15
|
end
|
12
16
|
|
13
17
|
def root
|
@@ -36,7 +40,7 @@ module Kubes
|
|
36
40
|
def check_project!
|
37
41
|
return if File.exist?("#{Kubes.root}/.kubes/config.rb")
|
38
42
|
logger.error "ERROR: It doesnt look like this is a kubes project. Are you sure you are in a kubes project?".color(:red)
|
39
|
-
ENV['
|
43
|
+
ENV['KUBES_TEST'] ? raise : exit(1)
|
40
44
|
end
|
41
45
|
|
42
46
|
# wrapper to ensure we use the same deeper_merge options everywhere
|
data/lib/kubes/version.rb
CHANGED
@@ -1,12 +1,10 @@
|
|
1
|
-
apiVersion: networking.k8s.io/
|
1
|
+
apiVersion: networking.k8s.io/v1
|
2
2
|
kind: Ingress
|
3
3
|
metadata:
|
4
4
|
name: <%= role %>
|
5
5
|
spec:
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
serviceName: <%= role %>
|
12
|
-
servicePort: 80
|
6
|
+
defaultBackend:
|
7
|
+
service:
|
8
|
+
name: web
|
9
|
+
port:
|
10
|
+
number: 80
|
@@ -1,7 +1,9 @@
|
|
1
|
-
|
1
|
+
# Docs: https://cloud.google.com/kubernetes-engine/docs/how-to/managed-certs#setting_up_a_google-managed_certificate
|
2
|
+
# https://kubes.guru/docs/dsl/resources/managed_certificate/
|
3
|
+
apiVersion: networking.gke.io/v1
|
2
4
|
kind: ManagedCertificate
|
3
5
|
metadata:
|
4
|
-
name:
|
6
|
+
name: managed-cert
|
5
7
|
spec:
|
6
8
|
domains:
|
7
|
-
-
|
9
|
+
- subdomain1.example.com
|
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.8.
|
4
|
+
version: 0.8.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tung Nguyen
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-08-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -258,6 +258,7 @@ extra_rdoc_files: []
|
|
258
258
|
files:
|
259
259
|
- ".dockerignore"
|
260
260
|
- ".gcloudignore"
|
261
|
+
- ".github/FUNDING.yml"
|
261
262
|
- ".github/ISSUE_TEMPLATE.md"
|
262
263
|
- ".github/ISSUE_TEMPLATE/bug_report.md"
|
263
264
|
- ".github/ISSUE_TEMPLATE/documentation.md"
|
@@ -367,6 +368,7 @@ files:
|
|
367
368
|
- docs/_docs/intro/structure.md
|
368
369
|
- docs/_docs/layering.md
|
369
370
|
- docs/_docs/layering/dsl.md
|
371
|
+
- docs/_docs/layering/extra.md
|
370
372
|
- docs/_docs/layering/merge-dsl.md
|
371
373
|
- docs/_docs/layering/merge-options.md
|
372
374
|
- docs/_docs/layering/mix.md
|
@@ -851,7 +853,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
851
853
|
- !ruby/object:Gem::Version
|
852
854
|
version: '0'
|
853
855
|
requirements: []
|
854
|
-
rubygems_version: 3.
|
856
|
+
rubygems_version: 3.3.12
|
855
857
|
signing_key:
|
856
858
|
specification_version: 4
|
857
859
|
summary: 'Kubernetes Deployment Tool: build docker image, compile Kubernetes YAML
|