rops 1.0.1 → 1.0.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/Gemfile.lock +1 -1
- data/README.md +13 -20
- data/bin/rops +0 -1
- data/lib/deployer.rb +2 -2
- data/lib/image.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 251592c08814310a14cc0530cb79be6d18510b28393211810690495c559c4632
|
4
|
+
data.tar.gz: 0a4aee08e4858051f0f555b1ca322a661673231ccd0da4c6258f604ed87eb5d7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ff89c2f68f4a214da8d451f95719c512f816913a5bc40cc5c8e04e1440d99a0f9d53f7dc70228637dc61ebbc311eb7f8987b4e0f86deb4abc10954d1a7c5de79
|
7
|
+
data.tar.gz: de710e909b10d21e70a6f7386ee79d94311cd84a7cfe0f0d67b966cb92251463911890dd1ae0ea2ac7cc2b4d57c62e9ddd92badc29e9e0571a6acbe356a822ab
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -2,26 +2,23 @@
|
|
2
2
|
|
3
3
|
The Record360 Operations tool - checkout, build, deploy
|
4
4
|
|
5
|
-
##
|
5
|
+
## Description
|
6
6
|
|
7
7
|
This tool implements the Record360 Best Practices for building and deploying projects. It interfaces with Git (for source control), Docker/Podman (for container images), and Kubernetes (cluster deployments).
|
8
8
|
|
9
|
-
|
9
|
+
## Installation
|
10
10
|
|
11
|
-
|
11
|
+
Download and install with:
|
12
12
|
|
13
|
-
```
|
14
|
-
|
15
|
-
group :development do
|
16
|
-
gem 'rops', github: 'Record360/rops'
|
17
|
-
end
|
13
|
+
```shell
|
14
|
+
gem install rops
|
18
15
|
```
|
19
16
|
|
20
|
-
|
17
|
+
## Configuration
|
21
18
|
|
22
19
|
`rops` has several opinionated defaults, which can be overridden by command line options or a configuration file.
|
23
20
|
|
24
|
-
|
21
|
+
### Project Root Directory
|
25
22
|
By default, the current working directory when `rops` runs. It can be overridden with the `--root=<DIR>` option.
|
26
23
|
|
27
24
|
The project root directory must contain:
|
@@ -34,7 +31,7 @@ end
|
|
34
31
|
* `./platform/rops.yaml`
|
35
32
|
* `./config/rops.yaml`
|
36
33
|
|
37
|
-
|
34
|
+
### Docker Container Images
|
38
35
|
By default, a single image named from the the Project root directory and built from `./Dockerfile`. May be overridden by setting the `images` array in the configuration file, e.g.:
|
39
36
|
|
40
37
|
```yaml
|
@@ -45,23 +42,22 @@ images:
|
|
45
42
|
dockerfile: dockerfiles/second.Dockerfile
|
46
43
|
```
|
47
44
|
|
48
|
-
|
45
|
+
### Git Default Branch
|
49
46
|
The Git branch to build, by default `master`. Overridden with the `default_branch` field in the configuration file.
|
50
47
|
|
51
|
-
|
52
|
-
The Docker registry to push container images. By default, `
|
48
|
+
### Docker Registry
|
49
|
+
The Docker registry to push container images. By default, `r360`, which is probably not what you want and should be overridden by setting the `registry` field in the configuration file.
|
53
50
|
|
54
|
-
|
51
|
+
### Kubernetes Context
|
55
52
|
The name of the Kubernetes context to deploy to (as listed in `~/.kube/config`). Defaults to `staging` and overridden with the `default_context` field in the configuration file.
|
56
53
|
|
57
54
|
There are extra safety features when deploying to the production context, which defaults to `production` and may be overridden with the `production_context` field in the configuration file.
|
58
55
|
|
59
56
|
Kubernetes configuration is organized by Kubernetes context name, under the `./platform` directory. For example, the Kubernetes configuration for the default contexts (`staging` and `production`) is stored under `./platform/staging` and `./platform/production` respectively.
|
60
57
|
|
61
|
-
|
58
|
+
## Operations
|
62
59
|
|
63
60
|
### Status
|
64
|
-
|
65
61
|
Arguments:
|
66
62
|
* `context`: Kubernetes context (default `staging`, or the value of `staging_context`)
|
67
63
|
|
@@ -80,7 +76,6 @@ Currently running (staging):
|
|
80
76
|
```
|
81
77
|
|
82
78
|
### Build
|
83
|
-
|
84
79
|
Arguments:
|
85
80
|
* `branch`: Git branch/commit (default `master`, or the value of `default_branch`)
|
86
81
|
|
@@ -105,7 +100,6 @@ Successfully tagged localhost/web:gfc50028b-feature
|
|
105
100
|
```
|
106
101
|
|
107
102
|
### Push
|
108
|
-
|
109
103
|
Arguments:
|
110
104
|
* `branch`: Git branch/commit (default `master`, or the value of `default_branch`)
|
111
105
|
|
@@ -120,7 +114,6 @@ Storing signatures
|
|
120
114
|
```
|
121
115
|
|
122
116
|
### Deploy
|
123
|
-
|
124
117
|
Arguments:
|
125
118
|
* `branch`: Git branch/commit (default `master`, or the value of `default_branch`)
|
126
119
|
* `context`: Kubernetes context (default `staging`, or the value of `default_context`)
|
data/bin/rops
CHANGED
data/lib/deployer.rb
CHANGED
@@ -9,7 +9,7 @@ class Deployer
|
|
9
9
|
CONFIG_DEFAULTS = {
|
10
10
|
'repository' => nil,
|
11
11
|
'default_branch' => 'master',
|
12
|
-
'registry' => '
|
12
|
+
'registry' => 'r360',
|
13
13
|
'default_context' => 'staging',
|
14
14
|
'production_context' => 'production',
|
15
15
|
'images' => []
|
@@ -135,7 +135,7 @@ class Deployer
|
|
135
135
|
cmd = "kubectl --context #{context} #{cmd}"
|
136
136
|
|
137
137
|
if ssh_host.blank?
|
138
|
-
stdout, stderr, cmd_status = Open3.capture3(cmd)
|
138
|
+
stdout, stderr, cmd_status = Open3.capture3(cmd, stdin_data: data)
|
139
139
|
[ stdout, stderr, cmd_status.success? ]
|
140
140
|
else
|
141
141
|
require 'net/ssh'
|
data/lib/image.rb
CHANGED
@@ -68,7 +68,7 @@ class Image
|
|
68
68
|
if status.success? || stderr.include?('error parsing manifest blob')
|
69
69
|
@remote_exists = true
|
70
70
|
else
|
71
|
-
puts stderr if stderr.present? && !stderr.include?('manifest unknown')
|
71
|
+
puts stderr if stderr.present? && !stderr.include?('manifest unknown') && !stderr.include?('no such manifest')
|
72
72
|
@remote_exists = false
|
73
73
|
end
|
74
74
|
end
|