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 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