orchparty 1.0.0 → 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|