rops 1.0.1 → 1.0.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: edce405e87d5a4199f1bf81eb2b308ffd59e980bfd8cca9e5af65d2766fe765d
4
- data.tar.gz: 28579f4f236865908f1a0fdbac465225285c9961a2aaf13aa1513bd477a7481f
3
+ metadata.gz: 251592c08814310a14cc0530cb79be6d18510b28393211810690495c559c4632
4
+ data.tar.gz: 0a4aee08e4858051f0f555b1ca322a661673231ccd0da4c6258f604ed87eb5d7
5
5
  SHA512:
6
- metadata.gz: 70d5f614103f56e270c43014c81bc4801223a0fbae5977f4f658367b590c96ba0308c631c88f75c8f18c88882dfb350fee85b620f477afa1db524775f406d1c7
7
- data.tar.gz: ed7bb0203a5dbe569019bef605e9a8ab805de1d8a0914f8d9162b4157c64b7a78489000ef13fbb1e112feced24a5a9a7f71244a1582e48ea4d18aa8a909703e4
6
+ metadata.gz: ff89c2f68f4a214da8d451f95719c512f816913a5bc40cc5c8e04e1440d99a0f9d53f7dc70228637dc61ebbc311eb7f8987b4e0f86deb4abc10954d1a7c5de79
7
+ data.tar.gz: de710e909b10d21e70a6f7386ee79d94311cd84a7cfe0f0d67b966cb92251463911890dd1ae0ea2ac7cc2b4d57c62e9ddd92badc29e9e0571a6acbe356a822ab
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rops (1.0.1)
4
+ rops (1.0.5)
5
5
  activesupport (~> 6.1.4)
6
6
  dry-cli (~> 0.7.0)
7
7
  git (~> 1.9.1)
data/README.md CHANGED
@@ -2,26 +2,23 @@
2
2
 
3
3
  The Record360 Operations tool - checkout, build, deploy
4
4
 
5
- ## Usage
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
- ### Installation
9
+ ## Installation
10
10
 
11
- Add `rops` to your Gemfile and then run `bundle install`.
11
+ Download and install with:
12
12
 
13
- ```ruby
14
- # Gemfile
15
- group :development do
16
- gem 'rops', github: 'Record360/rops'
17
- end
13
+ ```shell
14
+ gem install rops
18
15
  ```
19
16
 
20
- ### Configuration
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
- #### Project Root Directory
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
- #### Docker Container Images
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
- #### Git Default Branch
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
- #### Docker Registry
52
- The Docker registry to push container images. By default, `docker.io/r360`, which is probably not what you want and should be overridden by setting the `registry` field in the configuration file.
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
- #### Kubernetes Context
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
- ### Operations
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
@@ -1,7 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
  $: << __dir__+'/../lib'
3
3
 
4
- require 'bundler/setup'
5
4
  require 'dry/cli'
6
5
  require 'active_support'
7
6
  require 'active_support/core_ext'
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' => 'docker.io/r360',
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
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rops
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Steve Sloan