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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b2ccdea8159a378436eaf3a11787bacf9535f8ad
4
- data.tar.gz: 3dba4a2eefd4c7939dff7a96a27b4fb3b04d19d1
3
+ metadata.gz: 36cea1b0eaf3894a0bc33bba74ac62d5280bfbb0
4
+ data.tar.gz: edb5d5f36cb497497aab8a3fbf82e53baa127ba0
5
5
  SHA512:
6
- metadata.gz: 7754f19348534203cf89552abbd3dd8288380770e1e5045e1735ec1196b4ab49caadc4c96cd7c9f93d3da302b240bd60e15e00ff19015224f9e4c2eb4a3e78bc
7
- data.tar.gz: f770f266217b8131e7cfff17952ab49f3a1d54cf19af52465d57dd8942fbcd6710a4798cfad6222683f28d295ea407b596ce580d9916bdc0474f6af012162df0
6
+ metadata.gz: ccd0aca2b0d5e7f5b43121abff1a099fa790bfb229abf278bd171312d95fc1f413fd1b80fec560172f686e8900742b800f57b4ebf932341f000c9394222cf6e2
7
+ data.tar.gz: 8507ef27dbe893728d94b5f50bc9678185332742c89337b90ad241e5b9844c34f933e317e8f538bf69720a83c088ae4ccaefac225c25eadce41697bcbc3c41be
data/.travis.yml CHANGED
@@ -1,9 +1,15 @@
1
- sudo: false
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: "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="
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
- - bundle exec codeclimate-test-reporter
21
+ - bundle exec codeclimate-test-reporter
16
22
  deploy:
17
- provider: rubygems
18
- api_key:
19
- 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=
20
- gem: orchparty
21
- on:
22
- tags: true
23
- repo: jannishuebl/orchparty
24
- rvm: 2.4
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.3.1-slim
2
- RUN apt-get update && apt-get install -y git
3
- RUN mkdir /orchparty
4
- WORKDIR /orchparty
5
- ADD Gemfile .
6
- ADD Gemfile.lock .
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
- Setup a Ruby Enviroment with Ruby 2.2 or higher is necessary for the intallation.
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
- Install from rubygems.org
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
- Maybe for the future it is possible to run the gem in a docker container, so no local Ruby Environment is needed.
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
- `docker build . `
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
- "volumes" => transform_to_yaml(application.volumes),
36
- "networks" => transform_to_yaml(application.networks),
37
- }.to_yaml
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
@@ -1,3 +1,3 @@
1
1
  module Orchparty
2
- VERSION = "1.0.0"
2
+ VERSION = "1.0.1"
3
3
  end
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.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-06 00:00:00.000000000 Z
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