orchparty 1.0.0 → 1.0.1
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/.travis.yml +23 -11
- data/Dockerfile +6 -14
- data/README.md +21 -20
- data/Rakefile +14 -2
- data/lib/orchparty/plugins/docker_compose_v2.rb +5 -4
- data/lib/orchparty/version.rb +1 -1
- metadata +2 -3
- data/.dockerignore +0 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 36cea1b0eaf3894a0bc33bba74ac62d5280bfbb0
|
|
4
|
+
data.tar.gz: edb5d5f36cb497497aab8a3fbf82e53baa127ba0
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ccd0aca2b0d5e7f5b43121abff1a099fa790bfb229abf278bd171312d95fc1f413fd1b80fec560172f686e8900742b800f57b4ebf932341f000c9394222cf6e2
|
|
7
|
+
data.tar.gz: 8507ef27dbe893728d94b5f50bc9678185332742c89337b90ad241e5b9844c34f933e317e8f538bf69720a83c088ae4ccaefac225c25eadce41697bcbc3c41be
|
data/.travis.yml
CHANGED
|
@@ -1,9 +1,15 @@
|
|
|
1
|
-
sudo:
|
|
1
|
+
sudo: required
|
|
2
|
+
services:
|
|
3
|
+
- docker
|
|
2
4
|
language: ruby
|
|
5
|
+
env:
|
|
6
|
+
global:
|
|
7
|
+
- secure: gQZ3h3P2ZWPZHsgEPA1C0vdRcegPGO72E/rv3VeWybkVUbQbjbem6SSd0RIQN7G/BWcUx7NfvFkjErMpnNqpFAiM5dqRJzfvLiNox9mAJLsvke4/aJSokfT8348tpwZ9adfSK1HmAtIurb20vE7HTWUO4Sjf18Min3Kh9brz0+dtMhheAwx0NxtwRdpQ2WCmr8gB6OSC3X+AHjg0Vokb8I/o4TC53akJ1D84aowk6zqij+lPZzEtnRcaRe8UU7CS+91k16wnPg2+gy/4IpaHRq9bOSOrspBGI7SbMfDGpTWV3ytUvXfvGYYD2hJ4RbX5KiqF3Lma21WuxrQl8e9AzSfSuW2EFGbvRxF5J5XlE4z4AW9ooaJ3iFkP53m4DEdxL+9SaN2M3RuGM07ojXDJNsl7gTPciz61V4kDiyMB2Fg4+PPJM/ug2Jr8Sm4ONjO28cWN4AZYu1tj4YVXOaw2ftk8dzEOqu3gqafamENLrF2IiupGkTltdQMqIr3iDmkhN0cDigO2geqz8bCWViZ17A1Q+k4J8U4vfI1gnfv2DQza3AYj5Jd4qy5f1C8Zgw1z/hKwX6snN1CtRU7wYw4IEUPHxs4sJf+kg+64aUy4PnvO1+mKroUjFoggPBZnVYKNHLl8w5falmSPH9PratGf3nH0xJPcsUGKfrago7irU1Y=
|
|
8
|
+
- secure: FRzU0dSarYMvl3AMNNymJJ6FtmS9erZdhqiD3GNoChrZkdN2dBUdmXKVvUH/EPqSCIEJlN1ZTyvp4SWRutHVJ1h5xqOe50gIX1tYPoSdSWk83ZPW5JuPbQVqBZfVUILsI8MY832j4MP+NgjudsYtGqrWLlj8AikojiQuQOGRPyJ54msxe4WxsHwLM+QC+uVL+qIBRxIQa1EHznCaOy4cnKuIikYqwE57+aDAOfhSHDAB2FFUYtE1R2gTmTfe708UE3o47ksdUNZRwv4+BUwltg21YGgNqPq+qtHdiSwp4FD5WSEfjGaTJ8U6bMZksUMQu7LarJnQSiCuaY/jXfsSJ0/p5IkWenHsVX3aZ2sS6sMw1e/0stWcpbxYwYJaGJ8W9vPuBpivFl05n0goP7EeC3llKtIDQm3STU3UpKrPszyv0WgGB7tNjRZdWDMaX7R9rzISkzEORFPY7A4HLpbKt14LEGNFDf7ZSUIVFntIKK5ZPe+PaUtZPQFaVqPOht3UiY0EvYkNKmcsM6FdkI6uJxm0IhXTJ0wUMgQyzzCpZkBWhqrHkxJkTi2ByBj9OzvrPYzYe0xuPmqDOIpFnZL2Gp8lXWKe0DJ27zD+dHprflPjtA7DJt95THZnH4Nv1VVoI1oRk2IU4ZA94c7hc+gA9JU5jAGd0r9yTYp3/rMLHCw=
|
|
3
9
|
addons:
|
|
4
10
|
code_climate:
|
|
5
11
|
repo_token:
|
|
6
|
-
secure:
|
|
12
|
+
secure: HTTk2xYKjsWmnOkQd0CX/ltH5E87vRmqm5z+010D4wc4P8gxrbdwgZB9J/KgKp0u55WP1Ox64VQiMqBQxAOAlMyWd+Wnys6u/ooZx8Wk8msEBio7Pf75VYTLrAfOiRNcE7iYqcv/SBrdj6jkA0+defKtZT65RavVef6B9dyPxXW8lTijW6BAM15Qe+Gh/o+hfLGAeNPMCvNmkXQL/aucGaihqJHU7AJ+udtiCBRJPuXKRSKp92rpj6ar9QyrRNH71V0sJLzpG4CS7xvSwMsKcN1VSzI8TtIYaw602EDesM/82igqgajYCJLYuvUefwexdL+eA8S+P4YHi+QkD4bCFxU1YzWQbFty2B5HBF5RJl3TVeGKu3v3NLQE7MzMfr2g6Cxq4BAY4DdRygVkeviJZJnO8D4iLfZTsawqoga6z+loj89bDxBmHHJxWPYWefOeUJDu2oC9OsxVqAIw/fZ2aorjslRMYieej8GqmZw8USbyGl+t5I4AyaUu8bAcR2pnUaZr+d9/4mA+qFow8XJNuMN2ldfKbGPYXsEiJm57aBNLaOtT5WYQ1m8TRJnaBI+26G2vNXol/OBB5Lh2ThhHDmCyGIEK91uBGGuqw1sDyIriY2DbbuHQFkprEUDLcSnDr7OxvmIaJivdcayYUaM0/znO35owdxH1Y2RCiL50WQc=
|
|
7
13
|
rvm:
|
|
8
14
|
- 2.2
|
|
9
15
|
- 2.3
|
|
@@ -12,13 +18,19 @@ before_install: gem install bundler -v 1.13.6
|
|
|
12
18
|
install: bundle install
|
|
13
19
|
script: bundle exec rspec
|
|
14
20
|
after_success:
|
|
15
|
-
|
|
21
|
+
- bundle exec codeclimate-test-reporter
|
|
16
22
|
deploy:
|
|
17
|
-
provider: rubygems
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
- provider: rubygems
|
|
24
|
+
api_key:
|
|
25
|
+
secure: XnUBF2iCbMQXD/hUDcbOF2Y66x2A+Fjg0qx5ceJB7ctOnh2Q6NWMjcxF0oINteryzY78gbI3BB0GnemX8nrvJ/kLxgVWSOPBPlR1ufREekSkElPnccGi6oH8D6goI0d3rtB81cwOzJl+BhXCLFiJRvySOmDBw87ENhianMwhNf+6oW/QgAHKHKuu9hJM91u5Z+8dw8x5iqMtxxiiCPSmd9T6PDknJDD3sz2XdSOMGRQO9EqFQSdngX6AbRRgOewY+klXCut44Vc8SefIqtmRQ6/VF5onTNeLL4ZJkiazS2r4Xi93jl0/lzIamqDIinbVFx5xVH1Kb3JyjkRnW/Ah6tHtwQZlJUuJLQbRFKDY+w3dXKKn7rLaV3neQ9q/0TxlHuUQqQsLV6cY38Xb0y/x+xYvNaWy7oDLe836dHIvxec3Ea7t0wt2HMk5jVuFDNm3TnSvu7mYbF+ZoYyYLFLtX35KMu7WMDQnHU6zvJPdE6EFENoximY/MiX0vvco0Z4HiQmJFRrmvA/gGKgn7qpan+6oysrLg/oVWOgYbc5BQmLoX9jxnb//BSWlxxD85tBGlG/IO1pOU/FAFNlbheqxfoF/YUyWJQCIX0V1H13+10KuLBSSX+lg4BkxmluWC4VsqMeMwTHtEgKb7x7nIJsRxmcvyqIeD/noCoSooLgUH+A=
|
|
26
|
+
gem: orchparty
|
|
27
|
+
on:
|
|
28
|
+
tags: true
|
|
29
|
+
repo: jannishuebl/orchparty
|
|
30
|
+
rvm: 2.4
|
|
31
|
+
- provider: script
|
|
32
|
+
script: rake upload_docker
|
|
33
|
+
on:
|
|
34
|
+
tags: true
|
|
35
|
+
repo: jannishuebl/orchparty
|
|
36
|
+
rvm: 2.4
|
data/Dockerfile
CHANGED
|
@@ -1,14 +1,6 @@
|
|
|
1
|
-
FROM ruby:2.
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
ADD orchparty.gemspec .
|
|
8
|
-
ADD lib lib
|
|
9
|
-
ADD .git .git
|
|
10
|
-
RUN bundle install --without development test
|
|
11
|
-
ADD . .
|
|
12
|
-
RUN rake install
|
|
13
|
-
COPY docker-entrypoint /usr/local/bin/
|
|
14
|
-
ENTRYPOINT ["/bin/sh", "docker-entrypoint"]
|
|
1
|
+
FROM ruby:2.4.1-slim
|
|
2
|
+
COPY docker-entrypoint .
|
|
3
|
+
ENTRYPOINT ["/bin/sh", "docker-entrypoint"]
|
|
4
|
+
ADD pkg/ pkg
|
|
5
|
+
RUN gem install pkg/orchparty-*
|
|
6
|
+
|
data/README.md
CHANGED
|
@@ -73,13 +73,31 @@ orchparty and we just simply compile the config for all popular orchestration fr
|
|
|
73
73
|
|
|
74
74
|
## Installation
|
|
75
75
|
|
|
76
|
-
|
|
76
|
+
### Run via docker
|
|
77
|
+
|
|
78
|
+
**Currently only relativ path are supported when running via docker.**
|
|
79
|
+
|
|
80
|
+
Add to bashrc:
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
alias orchparty="docker run --rm -v /:/rootfs -e ROOT_PWD=$PWD jannishuebl/orchparty:latest"
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
As tag you can use semantic versioning eg X.X.X or X.X or X.
|
|
87
|
+
|
|
88
|
+
If you use latest update by running:
|
|
77
89
|
|
|
78
|
-
|
|
90
|
+
$ docker pull jannishuebl/orchparty:latest
|
|
91
|
+
|
|
92
|
+
### Install from rubygems.org
|
|
93
|
+
|
|
94
|
+
Setup a Ruby Enviroment with Ruby 2.2 or higher is necessary for the intallation.
|
|
79
95
|
|
|
80
96
|
$ gem install orchparty
|
|
81
97
|
|
|
82
|
-
|
|
98
|
+
Update:
|
|
99
|
+
|
|
100
|
+
$ gem update orchparty
|
|
83
101
|
|
|
84
102
|
## Usage
|
|
85
103
|
|
|
@@ -111,23 +129,6 @@ Orchparty.generate(:docker_compose_v1,
|
|
|
111
129
|
{output: "path/to/output_file.yml"})
|
|
112
130
|
```
|
|
113
131
|
|
|
114
|
-
### In your own piece of code
|
|
115
|
-
|
|
116
|
-
```ruby
|
|
117
|
-
require 'orchparty'
|
|
118
|
-
|
|
119
|
-
# load the generator plugin you want to use
|
|
120
|
-
Orchparty.plugin :docker_compose_v1
|
|
121
|
-
|
|
122
|
-
Orchparty.generate(:docker_compose_v1,
|
|
123
|
-
# all options that are needed for orchparty to transform
|
|
124
|
-
# your input to a plain hash for generating
|
|
125
|
-
{filename: "path/to/input_file.rb",
|
|
126
|
-
application: "application_name_to_generate" },
|
|
127
|
-
# all options that are needed for the plugin
|
|
128
|
-
{output: "path/to/output_file.yml"})
|
|
129
|
-
```
|
|
130
|
-
|
|
131
132
|
## DSL spec
|
|
132
133
|
|
|
133
134
|
So let us start an example! Let us implement a configuration for a beautiful app called [app_perf](https://github.com/randy-girard/app_perf) with orchparty. This App is an opensource replacement for [New Relic](https://newrelic.com/)!
|
data/Rakefile
CHANGED
|
@@ -1,7 +1,19 @@
|
|
|
1
1
|
require "bundler/gem_tasks"
|
|
2
|
+
require_relative 'lib/orchparty/version.rb'
|
|
2
3
|
|
|
3
4
|
|
|
4
|
-
task :upload_docker do
|
|
5
|
-
|
|
5
|
+
task :upload_docker => [:build] do
|
|
6
|
+
version = Orchparty::VERSION.split(".")
|
|
7
|
+
tags = []
|
|
8
|
+
tags << "latest"
|
|
9
|
+
tags << version.join(".")
|
|
10
|
+
tags << version[0..1].join(".")
|
|
11
|
+
tags << version[0]
|
|
6
12
|
|
|
13
|
+
puts `docker login -u $DOCKER_USER -p $DOCKER_PASS`
|
|
14
|
+
puts `docker build . -t orchparty`
|
|
15
|
+
tags.each do |tag|
|
|
16
|
+
puts `docker tag orchparty jannishuebl/orchparty:#{tag}`
|
|
17
|
+
puts `docker push jannishuebl/orchparty:#{tag}`
|
|
18
|
+
end
|
|
7
19
|
end
|
|
@@ -26,15 +26,16 @@ module Orchparty
|
|
|
26
26
|
end
|
|
27
27
|
|
|
28
28
|
def self.output(application)
|
|
29
|
-
{"version" => "2",
|
|
29
|
+
output_hash = {"version" => "2",
|
|
30
30
|
"services" =>
|
|
31
31
|
application.services.map do |name,service|
|
|
32
32
|
service = service.to_h
|
|
33
33
|
[service.delete(:name), HashUtils.deep_stringify_keys(service.to_h)]
|
|
34
34
|
end.to_h,
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
35
|
+
}
|
|
36
|
+
output_hash["volumes"] = transform_to_yaml(application.volumes) if application.volumes && !application.volumes.empty?
|
|
37
|
+
output_hash["networks"] = transform_to_yaml(application.networks) if application.networks && !application.networks.empty?
|
|
38
|
+
output_hash.to_yaml
|
|
38
39
|
end
|
|
39
40
|
end
|
|
40
41
|
end
|
data/lib/orchparty/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: orchparty
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.0.
|
|
4
|
+
version: 1.0.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Jannis Huebl
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2017-08-
|
|
11
|
+
date: 2017-08-07 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: hashie
|
|
@@ -90,7 +90,6 @@ executables:
|
|
|
90
90
|
extensions: []
|
|
91
91
|
extra_rdoc_files: []
|
|
92
92
|
files:
|
|
93
|
-
- ".dockerignore"
|
|
94
93
|
- ".gitignore"
|
|
95
94
|
- ".rspec"
|
|
96
95
|
- ".travis.yml"
|
data/.dockerignore
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
Dockerfile
|