release_manager 0.8.1 → 0.8.2

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
  SHA1:
3
- metadata.gz: 1e186490a7357d97daefeaf8337a6de1fb1f12dd
4
- data.tar.gz: b9f2e85a0497c460847291524f598e151988b28c
3
+ metadata.gz: 8c5f092e245aea42b984105f438d28a7c08ee105
4
+ data.tar.gz: 2f33d50455fdf64fb2ad9f6292ab1d438c5791a7
5
5
  SHA512:
6
- metadata.gz: 93b5fdde39f5917395ad9743a91a41c6be41cc3845d2e01271980015af99c6f03ec940ad908c0a4c968159aaec22c86fa7f65f7d5882b9c377dfb3d13ede8813
7
- data.tar.gz: 1624f3df2c269bbc2128c5d5afce001f0856f3581a11f55024e7ae6367b83e6291c21e2dbd55407f40952e2d4efda63fe44b15c78f13b90a3a6d92d921f55a79
6
+ metadata.gz: f1652bfddb2ab6671ad58216507116eab5beda0622bb977d01ce9102e09c9d047d0d5af0002a84d8b5d5e7c26ac849195263be49d384eb469763e40783606329
7
+ data.tar.gz: 5de1534bd90dcd3a4c1f133bacb114dc376a604f2888702391d6332126576f456f93fafa1d095c4d5961bc492b99b41dda599457915effa9f4721c360d77640d
data/CHANGELOG.md CHANGED
@@ -2,6 +2,11 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 0.8.2
6
+ * Fixes #7 - sandbox-create hangs when ssh does not have host id key
7
+ * Fixes #6 - sandbox-create hangs when ssh-agent does not have a key/id
8
+ * Fixes #10 - Add better error handling with a token is not set
9
+ * Add MERGE_REQUEST_URL environment variable when creating a MR for r10k
5
10
  ## 0.8.1
6
11
  * Improves error handling when tags already exist
7
12
  * Fixes #12 - deploy-r10k does not write a patch file
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- release_manager (0.8.1)
4
+ release_manager (0.8.2)
5
5
  gitlab (~> 4.2.0)
6
6
  highline (~> 1.7)
7
7
  rugged (~> 0.26)
data/README.md CHANGED
@@ -75,6 +75,15 @@ Or install it yourself as:
75
75
 
76
76
  $ gem install release_manager
77
77
 
78
+
79
+ Release Manager depends on the Rugged gem which requires compilation and a few OS dependencies.
80
+
81
+ ### Ubnutu / Debian
82
+ apt-get update && apt-get install libgit2-21 cmake libssh-dev
83
+
84
+ ### RedHat Based
85
+ yum install cmake libssh2 libssh2-devel git
86
+
78
87
  ### Install directly from source
79
88
  If you don't have access to a gem server you can use the `specific_install` gem. This will install the latest version
80
89
  directly from source.
@@ -89,11 +98,32 @@ There are several cli utilities bundled with the gem, each one can be used indep
89
98
  found further below in this document.
90
99
 
91
100
  * `sandbox-create -n my_sandbox` - Sandbox creation and module repo forking (most popular)
92
- * `deploy-mod` - Sandbox creation and repo forking
101
+ * `deploy-mod` - (module) Deploy the latest version of your mod to r10k-control Puppetfile
102
+ * `deploy-mod` - (r10k repo) Deploy the latest version (tags) of your r10k-control repo branch to other branches
93
103
  * `deploy-r10k` - Deploying your r10k repo to other branches in the same repo using merge requests
94
- * `release-mod` - Sandbox creation and repo forking (Also popular)
104
+ * `release-mod` - Increments version, tags, updates changelog and releases version to gitlab
95
105
  * `bump-changelog` - for directly manipulating the changelog
96
106
 
107
+ ## Automating the release process
108
+ Over the last few years I have adapted the build->release->deploy process to r10k environments. This is done by
109
+ treating all puppet modules as separate projects, and r10k-control as the AIO (all in one) project the encomposes all the modules.
110
+
111
+ Where as most people would only merge the changes from one branch to the production branch, Release Manager expects there are multiple stages to pass in order to get to production. This greatly reduces risk and follows a similar process to traditional software development.
112
+
113
+ Release Manager enforces this process and will version the r10k-control repo just like a module. Once that version is released, the version is then deployed to the other puppet environments by merging only the differences between the two branches. This is done purposely as we will be assured that the contents of v0.1.1 have been deployed to the dest branch (qa, staging, and production). Additionally, you can have multiple versions in flight at any given time. So a typical scenario can be something like:
114
+
115
+ - feature_branch ( dev + feature/bugfix)
116
+ - dev (bleeding edge)
117
+ - qa (v1.1.5)
118
+ - staging (v1.1.4)
119
+ - production (v1.0.0)
120
+
121
+ Because most people are accustomed to this release process, it becomes easy to trace where changes are at any given moment. Keeping a changelog in r10k-control helps immensely as well.
122
+
123
+ Futhermore, if you realize a problem with v1.1.4 and need a hotfix, just create a branch `git checkout -b hotfix upstream/v1.1.4` apply the fix, and release a new version. They deploy the hotfix to any branch you desire.
124
+
125
+ Keep in mind releases are immutable. So once you create a release, you have to cut another release to deploy any changes. This is by design so that you always know what is deployed.
126
+
97
127
  ## The workflow problem
98
128
  R10k allows us to create a puppet environment for each branch on the r10k-control repository. This makes isolating code deployments
99
129
  simple to use because each branch corresponds to a puppet environment. However, this workflow implies that you will fork
data/docker-compose.yml CHANGED
@@ -20,7 +20,7 @@ services:
20
20
  runner:
21
21
  depends_on:
22
22
  - web
23
- image: 'gitlab/gitlab-runner:ubuntu-v9.5.0'
23
+ image: 'gitlab/gitlab-runner:ubuntu-v10.5.0'
24
24
  volumes:
25
25
  - './srv/gitlab-runner/config:/etc/gitlab-runner'
26
26
  - '/var/run/docker.sock:/var/run/docker.sock'
@@ -39,7 +39,7 @@ services:
39
39
  - GITLAB_API_PRIVATE_TOKEN
40
40
  #entrypoint:
41
41
  web:
42
- image: 'gitlab/gitlab-ce:9.5.5-ce.0'
42
+ image: 'gitlab/gitlab-ce:10.5.4-ce.0'
43
43
  restart: always
44
44
  # environment:
45
45
  # GITLAB_OMNIBUS_CONFIG: |
@@ -59,6 +59,7 @@ Options:
59
59
  options[:remote] = true
60
60
  validate(options)
61
61
  path = File.dirname(options[:puppetfile])
62
+ ReleaseManager::VCSManager.default_instance.validate_authorization
62
63
  R10kDeployer.run(path, options)
63
64
  end
64
65
  end
@@ -103,6 +103,7 @@ Options:
103
103
  puts "expected major minor or patch for parameter -l, --level. You supplied #{options[:level]}.".fatal
104
104
  exit 1
105
105
  end
106
+ ReleaseManager::VCSManager.default_instance.validate_authorization
106
107
  r = options[:remote] ?
107
108
  RemoteRelease.new(options[:path], options) : Release.new(options[:path], options)
108
109
  r.run
@@ -122,7 +122,12 @@ Options:
122
122
  end
123
123
  # check options to ensure all values are present
124
124
  begin
125
+ ReleaseManager::VCSManager.default_instance.validate_authorization
125
126
  s = Sandbox.create(options[:sandbox_name], options)
127
+ rescue Rugged::SshError => e
128
+ puts e.message.fatal
129
+ puts 'Please see https://github.com/nwops/release_manager#ssh-agent-usage for info on starting the ssh-agent'.fatal
130
+ exit 1
126
131
  rescue InvalidToken => e
127
132
  puts e.message.fatal
128
133
  puts "Please update your Gitlab API token as it may be expired or incorrect".fatal
@@ -60,6 +60,7 @@ module ReleaseManager
60
60
  # @return [Rugged::Remote] a rugged remote object
61
61
  def add_remote(url, remote_name = 'upstream', reset_url = false )
62
62
  return false unless git_url?(url)
63
+ url = url.gsub('"', '') # remove quotes if url contains quotes
63
64
  if remote_exists?(remote_name)
64
65
  # ensure the correct url is set
65
66
  # this sets a non persistant fetch url
@@ -50,9 +50,13 @@ class Puppetfile
50
50
  modules[name] = ControlMod.new(name, metadata)
51
51
  end
52
52
 
53
- def push(remote, branch, force = false)
53
+ # @param remote [String] - the remote name
54
+ # @param branch [String] - the branch to push
55
+ # @param force [Boolean] - force push , defaults to false
56
+ # @pram tags [Boolean] - push tags, defaults to true
57
+ def push(remote, branch, force = false, tags = true)
54
58
  push_branch(remote, branch, force)
55
- push_tags(remote)
59
+ push_tags(remote) if tags
56
60
  end
57
61
 
58
62
  def data
@@ -23,7 +23,10 @@ class R10kDeployer
23
23
  ensure
24
24
  # cleanup branch, checkout previous branch
25
25
  end
26
- puts mr.web_url if mr
26
+ if mr
27
+ ENV['MERGE_REQUEST_URL'] = mr.web_url
28
+ puts mr.web_url
29
+ end
27
30
  end
28
31
 
29
32
  def cleanup(branch = nil)
@@ -175,7 +175,7 @@ class Sandbox
175
175
  # no need to push if we didn't commit anything
176
176
  if committed
177
177
  logger.info("Pushing new environment branch: #{name} to upstream")
178
- puppetfile.push('upstream', name, true)
178
+ puppetfile.push('upstream', name, true, false)
179
179
  end
180
180
  logger.info("Sandbox created successfully")
181
181
  return self
@@ -5,7 +5,7 @@ module ReleaseManager
5
5
  extend Forwardable
6
6
  attr_accessor :vcs
7
7
  def_delegators :vcs, :add_ssh_key, :add_permission, :create_repo_fork, :swap_namespace, :create_tag,
8
- :clone_repo, :create_repo_branch, :repo_exists?, :repo_id, :add_permissions,
8
+ :clone_repo, :create_repo_branch, :repo_exists?, :repo_id, :add_permissions, :validate_authorization,
9
9
  :vcs_create_commit, :create_merge_request, :diff_2_commit, :vcs_create_branch, :rebase_mr,
10
10
  :remote_tags, :remote_tag_names, :remote_tag_exists?
11
11
 
@@ -32,6 +32,18 @@ module ReleaseManager
32
32
  client.projects(project_id)
33
33
  end
34
34
 
35
+ # @param [Boolean] - returns true if the user has valid access by trying to access the api
36
+ def validate_authorization
37
+ begin
38
+ client.todos
39
+ true
40
+ rescue Gitlab::Error::Unauthorized
41
+ logger.fatal "Please set the GITLAB_API_PRIVATE_TOKEN environment variable with a valid token"
42
+ logger.fatal "Example: export GITLAB_API_PRIVATE_TOKEN=kdii2ljljijsldjfoa"
43
+ raise InvalidToken, "The gitlab token is invalid or expired"
44
+ end
45
+ end
46
+
35
47
  # https://docs.gitlab.com/ee/api/members.html
36
48
  def add_permission(username, project_id, access_level = 20)
37
49
  begin
@@ -102,6 +102,19 @@ module ReleaseManager
102
102
  raise NotImplementedError
103
103
  end
104
104
 
105
+ # @param hostname [String] - the hostname of the system you wnat to add keys for
106
+ def add_known_hosts_keys(hostname)
107
+ URI(ReleaseManager.gitlab_server)
108
+ known_hosts = File.expand_dir(File.join('~', '.ssh', 'ssh_known_hosts'))
109
+ `ssh-keygen -F #{hostname} -f #{known_hosts} > /dev/null`
110
+ `ssh-keyscan -H #{hostname} >> #{known_hosts}` unless $CHILD_STATUS.success?
111
+ end
112
+
113
+ # @param [Boolean] - returns true if the user has valid access by trying to access the api
114
+ def validate_authorization
115
+ raise NotImplementedError
116
+ end
117
+
105
118
  # @param Array[Hash] the changed files in the commit or all the commits in the diff between src and dst
106
119
  # @return Array[Hash]
107
120
  def diff_2_commit(diff_obj)
@@ -1,3 +1,3 @@
1
1
  module ReleaseManager
2
- VERSION = "0.8.1"
2
+ VERSION = "0.8.2"
3
3
  end
@@ -9,7 +9,7 @@
9
9
  "secret_key_base": "2b9aa72b37a6680f7795c2532faa460f021a2c7727a489321f2f2d318869f09864305aad9e2556b6945c1404a2b383d99f2ccce09f23fd46a3ade40a33262ed1",
10
10
  "db_key_base": "d7d621b72bb30cf09a7ed2c47f9ce648e292169f3294d14d59fd1adabd538b1003de51beca728084b67755f20ff12e15381916a9b495b63ed74f63e891e18b9d",
11
11
  "otp_key_base": "5fc0b0ba5d959acf5e9c788b5241a043485c03c6c903fe84d8982de6eb20ced39ed9604885a55d5a82dd8cc0fd04d4415eeb3e534a5e6a9e0bf062a1b0d4cbb0",
12
- "jws_private_key": "-----BEGIN RSA PRIVATE KEY-----\n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\n-----END RSA PRIVATE KEY-----\n"
12
+ "openid_connect_signing_key": "-----BEGIN RSA PRIVATE KEY-----\n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\n-----END RSA PRIVATE KEY-----\n"
13
13
  },
14
14
  "registry": {
15
15
  "http_secret": "7a50a3e7a4436e6887c33ddac7c078fcd2935be978c890164f2ce7b175b9161247fec3d7a5cae08b7a2fa0d0ff855ffcbc3dc7921485379b31bd22978fbdb607",
@@ -20,5 +20,9 @@
20
20
  "email_invite_salt": "6fb3016ddce5827e8f5e9fb9d70f8566",
21
21
  "file_public_link_salt": "a8064c9f949330baf43c62d03f2b94ac",
22
22
  "sql_at_rest_encrypt_key": "f527b3c4910c6ea13e804cf96ce51d91"
23
+ },
24
+ "postgresql": {
25
+ "internal_certificate": "-----BEGIN CERTIFICATE-----\nMIIFBzCCAu+gAwIBAgIBADANBgkqhkiG9w0BAQsFADBHMQwwCgYDVQQGEwNVU0Ex\nDzANBgNVBAoMBkdpdExhYjERMA8GA1UECwwIRGF0YWJhc2UxEzARBgNVBAMMClBv\nc3RncmVTUUwwHhcNMTgwMzE2MTcwMDQyWhcNMjgwMzEzMTcwMDQyWjBHMQwwCgYD\nVQQGEwNVU0ExDzANBgNVBAoMBkdpdExhYjERMA8GA1UECwwIRGF0YWJhc2UxEzAR\nBgNVBAMMClBvc3RncmVTUUwwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC\nAQC8kpZ9td9kCKbNHKP27Q2gnAdJvIO2j1lp5AIJA0Hf1QcW7dhekghJid4K+cak\nFzdhZClbuImIveAE+HRIeGC+xYFJqbVcdgezmNuq0aWOoAcDpSkDPxRkOiv8eVjh\nXow4lhT3w0AmS9/KZxuxLbSW34GTqvoRjIHQYLBjau7IkctHaQsKWx7o6OARQ7PV\nhnRmSp07PRydqqciRFrms45cPq3k/pBfxZAb9SEcEA0uk4l0gSRGGxe87gSGdtNZ\nnHW2kvFjZdhHC5W1BbM5G2CMcicmIsUVYoi7BB1Osg+QsKphk1F6kWGP1CaKKL0a\nVUcvCQiEbrEE6P4vHW4OPOXL4iSVtn1o/yZew7gjjd2mjr/k3MuPpTgEfF8xP1aL\ncd+fvqy9NMqj5my5Eol37A2n+bjVu8j2TNJ5fF2/7aN7tZWY7mdYt8lo8s0Cncxx\n/YMC/mo3JRFUxHgkTtkoeokkV3qKAEBHc8B7FB0bByBNNBnZG0VvcSR2ur9V5/gf\nX3A1R1TPvY/y+pyLTUsLf9gGIuu0QzKYm1R4ZhQTlhEhQ+3mHHovqUUCEJI0DkdN\nODxuh2ikRbg8Qi1msG89hP6EnigCufa71k/gsI/JiiMohXYezkXzdptkfCM54Dx/\nS02iK2ybFhl7SIt/TguG/lJFArV+6VSS0chrDSFXwCNclQIDAQABMA0GCSqGSIb3\nDQEBCwUAA4ICAQCRut64/FXtw7Uzw8yx61RvUCchWD2Sa7PZuprQm+vdDnpdouL7\nCOLpidH3Q/1MX7m8N/m/7nF3KyAFGQSlhoYEl8X0gcFh5pfjBmjt8P4ZKtfmF+n7\n+LO8j+VwlvIC3Zl7yM55Dm7uIaFVxEklZ+a4dquGGIFGPhS2WXJKI1tB4Ilz35Yg\nik4EbaLd7XnAAitSAhotPuxVoshRrbSn/kieHY2I6vJtmrX/V9YXPx03DTvtNT4A\nmQaWTkADAJ8a6Yz5pda+yaGJMC//Gd7TgmxpdonJWMfoktdHJ/wyTqveIqVRS9gF\nkwhbRcihQr2QfgxqnQ3XQucYHEk4JsXQcfIKZGWqui7fkxffchJ7PUGrDJR7ptiP\n1Uswnb4dxKtNCVGgqFqhW8dTTX9fGCSQL5hmgD3J4bZSugV/HcnkeKplN8FlbK05\nComEX/sid/iLN9YHS9cd7AKBs8LlnP4cT/2PLdQT/NiMXhJKzLKiwSjc0R6R7bdw\nhuyA13t1HXNYtJbKUZh5p1Cryysh3ZvnxJb7DP5X3vjy6vmQ+KCahB22ShRBM1KP\nD32C6EGDH1wLGRDag7yHY+Fcr3cGl3mZXdCIXVRSso9kRuKQPpK0d2cHaFoHkVJM\nj2ih5mdJ9vPtHT+HL/mk+kAf5UvpwqC4hLLbKiF5W/KUzVGPUNVbRNGfqQ==\n-----END CERTIFICATE-----\n",
26
+ "internal_key": "-----BEGIN RSA PRIVATE KEY-----\n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\n-----END RSA PRIVATE KEY-----\n"
23
27
  }
24
28
  }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: release_manager
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.1
4
+ version: 0.8.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Corey Osman
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-12-14 00:00:00.000000000 Z
11
+ date: 2018-03-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gitlab