kubernetes_helper 1.19.1 → 1.20.0
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/README.md +27 -2
- data/lib/kubernetes_helper/version.rb +1 -1
- data/lib/templates/README.md +4 -44
- data/lib/templates/_cd_digital.sh +1 -5
- data/lib/templates/_cd_google.sh +1 -5
- data/lib/templates/cd.sh +6 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c3ddc1acbc8178da9b6974ef51e84d193a819438a1ec47f3307399c4d09ab89e
|
4
|
+
data.tar.gz: 82a49cdadb9f156d8e0ba7092de2c30a1f912e5127ec8edfc8bbd51db48a3f93
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 683358d87dd5f2d41515512b3d7dd46774dce3f04e57556f515b3238ecec878b7f1a0416afba026ebf1f229b9659cbe02b98c9368cd0bd7cdeddb403ecafc4c7
|
7
|
+
data.tar.gz: '0586f4298b889b1d2068f26f2772f492aa170d77e842207c79f18ee34383d20b00dcc48eb087bb7dad3aea1d79c997bf98515ea796578854b844f4c375b39058'
|
data/README.md
CHANGED
@@ -49,19 +49,44 @@ Configuration and customization can be done for multiple environments and at any
|
|
49
49
|
- `deployment.logs_resources` (Hash, optional): Configure depending on the app requirements. Default: `{ cpu: { max: '200m', min: '50m' }, mem: { max: '200Mi', min: '50Mi' } }`
|
50
50
|
|
51
51
|
### Application deployment.yml for jobs or services without internet interaction (Optional)
|
52
|
-
Ideal to run sidekiq or similar jobs without
|
52
|
+
Ideal to run sidekiq or similar jobs as a service without interacting via HTTP.
|
53
53
|
- `deployment.job_apps[].name` (String, optional): Job deployment name (Note: Underscores are not accepted). Sample: `my-app-job`. Note: This deployment is created only if this value is present
|
54
54
|
- `deployment.job_apps[].command` (String, optional): Bash command to be used for job container. Sample: `bundle exec sidekiq`
|
55
55
|
- `deployment.job_apps[].sidekiq_alive_gem` (Boolean, default false): If true will add liveness checker settings using `sidekiq_alive_gem` (`sidekiq_alive` gem needs to be present in your Gemfile)
|
56
56
|
- `deployment.job_apps[].services` (Array, Optional): List of linux service names that are required for a healthy job container. Sample: `['sidekiq', 'cron']`. Note: This will be ignored if `sidekiq_alive_gem` was defined.
|
57
57
|
- `deployment.job_apps[].resources` (Hash, optional): Configure depending on the job app requirements. Sample: `{ cpu: { max: '1', min: '500m' }, mem: { max: '1Gi', min: '500Mi' } }`
|
58
|
+
Sample:
|
59
|
+
```ruby
|
60
|
+
{
|
61
|
+
job_apps: [
|
62
|
+
{
|
63
|
+
name: "my-app-sidekiq",
|
64
|
+
command: 'bundle exec sidekiq',
|
65
|
+
services: %w[sidekiq],
|
66
|
+
resources: { mem: { max: '10Gi', min: '5Gi' } }
|
67
|
+
}
|
68
|
+
]
|
69
|
+
}
|
70
|
+
|
71
|
+
```
|
58
72
|
|
59
73
|
### Required settings for Cronjob apps (Note: Cronjobs do not support `sidekiq_alive_gem` and `services`)
|
60
|
-
Ideal to
|
74
|
+
Ideal to process periodic tasks
|
61
75
|
- `deployment.job_apps[].schedule` (String): Cron schedule. Sample: `*/5 * * * *`
|
62
76
|
- `deployment.job_apps[].kind` (String, default `Deployment`): Kind of job application [`Deployment` or `CronJob`]
|
63
77
|
- `deployment.job_apps[].concurrency_policy` (String, default `Forbid`): [Documentation](https://kubernetes.io/docs/tasks/job/automated-tasks-with-cron-jobs/#concurrency-policy)
|
64
78
|
- `deployment.job_apps[].suspend` (String, default `false`): If `true` then marks as finished the job application (stops creating new pods).
|
79
|
+
Sample:
|
80
|
+
```ruby
|
81
|
+
{
|
82
|
+
job_apps: [{
|
83
|
+
name: "my-promotions-cronjob",
|
84
|
+
command: 'bundle exec rake promotions:process > ./log/promotions.log 2>&1',
|
85
|
+
schedule: '0 22 * * *',
|
86
|
+
kind: 'CronJob'
|
87
|
+
}]
|
88
|
+
}
|
89
|
+
```
|
65
90
|
|
66
91
|
### Applications secrets.yml (Optional)
|
67
92
|
- `secrets.name` (String): K8s secrets name where env vars will be saved and fetched from. Sample: `my-app-secrets`
|
data/lib/templates/README.md
CHANGED
@@ -84,50 +84,10 @@ This gem comes with continuous deployment script out of the box which can be exe
|
|
84
84
|
PROD_CLOUD_TOKEN=<secret content here>
|
85
85
|
```
|
86
86
|
|
87
|
-
* Add github workflow to automatically run deployment when merged into master or staging
|
88
|
-
```yml
|
89
|
-
name: "Continuous Deployment"
|
90
|
-
on:
|
91
|
-
push:
|
92
|
-
branches:
|
93
|
-
- master
|
94
|
-
- staging
|
95
|
-
|
96
|
-
deployment:
|
97
|
-
runs-on: ubuntu-latest
|
98
|
-
jobs:
|
99
|
-
steps:
|
100
|
-
- uses: actions/checkout@v2
|
101
|
-
with:
|
102
|
-
ref: ${{ env.DEPLOY_BRANCH }}
|
103
|
-
- name: Cancel previous Workflow Actions
|
104
|
-
uses: styfle/cancel-workflow-action@0.6.0
|
105
|
-
with:
|
106
|
-
access_token: ${{ github.token }}
|
107
|
-
|
108
|
-
- name: Set up Cloud SDK
|
109
|
-
uses: google-github-actions/setup-gcloud@master
|
110
|
-
- uses: satackey/action-docker-layer-caching@v0.0.11
|
111
|
-
continue-on-error: true
|
112
|
-
with:
|
113
|
-
key: CD-docker-cache-${{ hashFiles('Dockerfile', 'Gemfile.lock') }}
|
114
|
-
|
115
|
-
#### App deployment
|
116
|
-
- run: sudo gem install kubernetes_helper
|
117
|
-
- name: App deployment
|
118
|
-
env:
|
119
|
-
KB_AUTH_TOKEN: ${{ github.ref_name == 'master' && secrets.PROD_CLOUD_TOKEN || secrets.BETA_CLOUD_TOKEN }}
|
120
|
-
DEPLOY_ENV: ${{ github.ref_name == 'master' && 'production' || 'beta' }}
|
121
|
-
run: kubernetes_helper run_deployment 'cd.sh'
|
122
|
-
```
|
87
|
+
* Add github workflow to automatically run deployment when merged into master or staging: [See here](https://github.com/owen2345/reusable-ci-cd-actions#continuous-deployment)
|
123
88
|
|
124
|
-
## Apply
|
125
|
-
|
126
|
-
Open kubernetes secrets and add/edit/remove values and then save it
|
127
|
-
`kubectl edit secret ...`
|
128
|
-
Once secrets were updated, then restart all related pods, see: https://medium.com/devops-dudes/how-to-propagate-a-change-in-kubernetes-secrets-by-restarting-dependent-pods-b71231827656
|
129
|
-
|
130
|
-
- Other settings
|
89
|
+
## Apply deployment changes manually
|
90
|
+
Note: it can be enable for auto update with (`settings.rb`): `update_deployment: true`
|
131
91
|
```bash
|
132
92
|
DEPLOY_ENV=beta kubernetes_helper run_yml 'deployment.yml' 'kubectl apply'
|
133
|
-
```
|
93
|
+
```
|
@@ -12,11 +12,7 @@ fi
|
|
12
12
|
|
13
13
|
## Build and push containers
|
14
14
|
echo "****** building image..."
|
15
|
-
|
16
|
-
<%= continuous_deployment.docker_cmd %>
|
17
|
-
<% else %>
|
18
|
-
docker <%=continuous_deployment.docker_build_cmd || 'build -f Dockerfile'%> -t $DEPLOY_NAME .
|
19
|
-
<% end %>
|
15
|
+
eval $DOCKER_BUILD_CMD
|
20
16
|
docker push $DEPLOY_NAME
|
21
17
|
|
22
18
|
echo "****** tagging image $DEPLOY_NAME as $LATEST_NAME"
|
data/lib/templates/_cd_google.sh
CHANGED
@@ -23,11 +23,7 @@ if [ -z $ALREADY_DEPLOYED ]
|
|
23
23
|
then
|
24
24
|
## Build and push containers
|
25
25
|
echo "****** image not created yet, building image..."
|
26
|
-
|
27
|
-
<%= continuous_deployment.docker_cmd %>
|
28
|
-
<% else %>
|
29
|
-
docker <%=continuous_deployment.docker_build_cmd || 'build -f Dockerfile'%> -t $DEPLOY_NAME .
|
30
|
-
<% end %>
|
26
|
+
eval $DOCKER_BUILD_CMD
|
31
27
|
docker push $DEPLOY_NAME
|
32
28
|
else
|
33
29
|
echo "****** image was already created: $ALREADY_DEPLOYED"
|
data/lib/templates/cd.sh
CHANGED
@@ -16,6 +16,12 @@ CI_COMMIT_SHA=${CI_COMMIT_SHA:-$(date +%s) }
|
|
16
16
|
DEPLOY_NAME="${IMAGE_NAME}:${CI_COMMIT_SHA}"
|
17
17
|
LATEST_NAME="${IMAGE_NAME}:<%= continuous_deployment.image_tag || 'latest' %>"
|
18
18
|
|
19
|
+
<% if continuous_deployment.docker_cmd %>
|
20
|
+
DOCKER_BUILD_CMD="<%= continuous_deployment.docker_cmd %>"
|
21
|
+
<% else %>
|
22
|
+
DOCKER_BUILD_CMD="docker <%=continuous_deployment.docker_build_cmd || 'build -f Dockerfile'%> -t $DEPLOY_NAME --build-arg DEPLOY_VERSION=${DEPLOY_VERSION} ."
|
23
|
+
<% end %>
|
24
|
+
|
19
25
|
<%= include_template "_cd_google.sh" if continuous_deployment.image_name.include?('gcr.io/') %>
|
20
26
|
<%= include_template "_cd_digital.sh" if continuous_deployment.image_name.include?('digitalocean.com/') %>
|
21
27
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kubernetes_helper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.20.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- owen2345
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-08-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: erb
|