shipitron 0.2.2 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Dockerfile +8 -8
- data/Dockerfile.release +9 -8
- data/README.md +6 -4
- data/lib/shipitron/consul_keys.rb +11 -0
- data/lib/shipitron/server/deploy_application.rb +2 -0
- data/lib/shipitron/server/update_deploy_ref.rb +36 -0
- data/lib/shipitron/version.rb +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f276eea3bc814eeedda43552b9c801662562f7b1
|
4
|
+
data.tar.gz: 129599725b7dfe76b22e1ddd3be38dfd9577a9c1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 44af2826b1072da8b54808c86553fa6c093c3894f658cb54d03a2035eaa64950fef01a0df7c3a0369e6c902eaf9b3222300a63c062c4d45de916bb6c66c9ff02
|
7
|
+
data.tar.gz: 9098145bb5484b87ded3aafb2b88cc43ba0f41569ed96990222826e24ab87d777dc12c22d172287f4e8ebf068264133520830ec59f8588f23eaa237c030fac56
|
data/Dockerfile
CHANGED
@@ -6,20 +6,20 @@ RUN addgroup -S shipitron && \
|
|
6
6
|
addgroup -g 1101 docker && \
|
7
7
|
addgroup shipitron docker
|
8
8
|
|
9
|
-
ENV GOSU_VERSION 1.
|
10
|
-
ENV DUMB_INIT_VERSION 1.
|
9
|
+
ENV GOSU_VERSION 1.10
|
10
|
+
ENV DUMB_INIT_VERSION 1.2.0
|
11
11
|
|
12
|
-
RUN apk add --no-cache ca-certificates gnupg && \
|
12
|
+
RUN apk add --no-cache ca-certificates gnupg openssl && \
|
13
13
|
mkdir -p /tmp/build && \
|
14
14
|
cd /tmp/build && \
|
15
15
|
gpg --keyserver pool.sks-keyservers.net --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4 && \
|
16
|
-
|
17
|
-
|
16
|
+
wget -O gosu "https://github.com/tianon/gosu/releases/download/${GOSU_VERSION}/gosu-amd64" && \
|
17
|
+
wget -O gosu.asc "https://github.com/tianon/gosu/releases/download/${GOSU_VERSION}/gosu-amd64.asc" && \
|
18
18
|
gpg --verify gosu.asc && \
|
19
19
|
chmod +x gosu && \
|
20
20
|
cp gosu /bin/gosu && \
|
21
|
-
|
22
|
-
|
21
|
+
wget https://github.com/Yelp/dumb-init/releases/download/v${DUMB_INIT_VERSION}/dumb-init_${DUMB_INIT_VERSION}_amd64 && \
|
22
|
+
wget https://github.com/Yelp/dumb-init/releases/download/v${DUMB_INIT_VERSION}/sha256sums && \
|
23
23
|
grep dumb-init_${DUMB_INIT_VERSION}_amd64$ sha256sums | sha256sum -c && \
|
24
24
|
chmod +x dumb-init_${DUMB_INIT_VERSION}_amd64 && \
|
25
25
|
cp dumb-init_${DUMB_INIT_VERSION}_amd64 /bin/dumb-init && \
|
@@ -31,7 +31,7 @@ RUN apk add --no-cache ca-certificates gnupg && \
|
|
31
31
|
RUN apk add --no-cache \
|
32
32
|
build-base \
|
33
33
|
git \
|
34
|
-
openssh \
|
34
|
+
openssh-client \
|
35
35
|
perl \
|
36
36
|
bash
|
37
37
|
|
data/Dockerfile.release
CHANGED
@@ -6,20 +6,20 @@ RUN addgroup -S shipitron && \
|
|
6
6
|
addgroup -g 1101 docker && \
|
7
7
|
addgroup shipitron docker
|
8
8
|
|
9
|
-
ENV GOSU_VERSION 1.
|
10
|
-
ENV DUMB_INIT_VERSION 1.
|
9
|
+
ENV GOSU_VERSION 1.10
|
10
|
+
ENV DUMB_INIT_VERSION 1.2.0
|
11
11
|
|
12
|
-
RUN apk add --no-cache ca-certificates gnupg && \
|
12
|
+
RUN apk add --no-cache ca-certificates gnupg openssl && \
|
13
13
|
mkdir -p /tmp/build && \
|
14
14
|
cd /tmp/build && \
|
15
15
|
gpg --keyserver pool.sks-keyservers.net --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4 && \
|
16
|
-
|
17
|
-
|
16
|
+
wget -O gosu "https://github.com/tianon/gosu/releases/download/${GOSU_VERSION}/gosu-amd64" && \
|
17
|
+
wget -O gosu.asc "https://github.com/tianon/gosu/releases/download/${GOSU_VERSION}/gosu-amd64.asc" && \
|
18
18
|
gpg --verify gosu.asc && \
|
19
19
|
chmod +x gosu && \
|
20
20
|
cp gosu /bin/gosu && \
|
21
|
-
|
22
|
-
|
21
|
+
wget https://github.com/Yelp/dumb-init/releases/download/v${DUMB_INIT_VERSION}/dumb-init_${DUMB_INIT_VERSION}_amd64 && \
|
22
|
+
wget https://github.com/Yelp/dumb-init/releases/download/v${DUMB_INIT_VERSION}/sha256sums && \
|
23
23
|
grep dumb-init_${DUMB_INIT_VERSION}_amd64$ sha256sums | sha256sum -c && \
|
24
24
|
chmod +x dumb-init_${DUMB_INIT_VERSION}_amd64 && \
|
25
25
|
cp dumb-init_${DUMB_INIT_VERSION}_amd64 /bin/dumb-init && \
|
@@ -31,12 +31,13 @@ RUN apk add --no-cache ca-certificates gnupg && \
|
|
31
31
|
RUN apk add --no-cache \
|
32
32
|
build-base \
|
33
33
|
git \
|
34
|
+
openssh-client \
|
34
35
|
perl \
|
35
36
|
bash
|
36
37
|
|
37
38
|
WORKDIR /app
|
38
39
|
|
39
|
-
ENV SHIPITRON_VERSION=0.
|
40
|
+
ENV SHIPITRON_VERSION=0.3.0
|
40
41
|
|
41
42
|
RUN gem install shipitron -v ${SHIPITRON_VERSION} && \
|
42
43
|
mkdir -p /home/shipitron/.ssh && \
|
data/README.md
CHANGED
@@ -31,16 +31,18 @@ applications:
|
|
31
31
|
- Add needed ssh known hosts to `shipitron/<app name>/git_host_key` in consul k/v
|
32
32
|
- Add git ssh deploy key to `shipitron/<app name>/git_deploy_key` in consul k/v
|
33
33
|
- Add docker auth config (`~/.docker/config.json` after `docker login`) to `shipitron/<app name>/docker_auth` in consul k/v
|
34
|
+
- Add deploy ref key to `shipitron/<app name>/deploy_ref_key`
|
34
35
|
- `docker run -it --rm -v shipitron.yml:/shipitron/config/shipitron.yml outstand/shipitron:<version> deploy <app>`
|
35
36
|
|
36
37
|
## Development
|
37
38
|
|
38
39
|
- `docker volume create --name shipitron_fog`
|
39
40
|
- `./build_dev.sh`
|
40
|
-
- `docker run -it --rm -v $(pwd):/shipitron -v shipitron_fog:/fog -e FOG_LOCAL=true outstand/shipitron:dev rspec spec` to run specs
|
41
|
-
- `
|
42
|
-
- `docker run -it --rm -v $(pwd):/shipitron -v
|
43
|
-
- `docker run -it --rm
|
41
|
+
- `docker run -it --rm -v $(pwd):/shipitron -v shipitron_fog:/fog -e FOG_LOCAL=true -w /shipitron outstand/shipitron:dev rspec spec` to run specs
|
42
|
+
- `APP_PATH=/path/to/app`
|
43
|
+
- `docker run -it --rm -v $(pwd):/shipitron -v $APP_PATH:/app outstand/shipitron:dev deploy <app>` to run client side
|
44
|
+
- `docker run -it --rm -v $(pwd):/shipitron -v $APP_PATH:/app outstand/shipitron:dev deploy <app> --simulate` to get the arguments for `server_deploy` below
|
45
|
+
- `docker run -it --rm --dns 10.10.10.2 -v $(pwd):/shipitron -v $APP_PATH:/app -v /bin/docker:/bin/docker -v /var/run/docker.sock:/var/run/docker.sock -v shipitron_fog:/fog -e FOG_LOCAL=true -e CONSUL_HOST=consul outstand/shipitron:dev server_deploy --name dummy-app --repository git@github.com:outstand/dummy-app --bucket outstand-shipitron --image-name outstand/dummy-app --region us-east-1 --cluster-name us-east-1-prod-blue --ecs-task-defs dummy-app --ecs-services dummy-app --build-script shipitron/build.sh --post-builds 'ecs_task:dummy-app,container_name:dummy-app,command:echo postbuild' --ecs-task-def-templates LS0tCmZhbWlseTogZHVtbXktYXBwCmNvbnRhaW5lcl9kZWZpbml0aW9uczoKICAtIG5hbWU6IGR1bW15LWFwcAogICAgaW1hZ2U6IG91dHN0YW5kL2R1bW15LWFwcDp7e3RhZ319CiAgICBtZW1vcnk6IDEyOAogICAgZXNzZW50aWFsOiB0cnVlCiAgICBwb3J0X21hcHBpbmdzOgogICAgICAtIGNvbnRhaW5lcl9wb3J0OiA4MAogICAgZW52aXJvbm1lbnQ6CiAgICAgIC0gbmFtZTogU0VSVklDRV84MF9OQU1FCiAgICAgICAgdmFsdWU6IGR1bW15Cg== --ecs-service-templates LS0tCmNsdXN0ZXI6IHt7Y2x1c3Rlcn19CnNlcnZpY2VfbmFtZTogZHVtbXktYXBwCnRhc2tfZGVmaW5pdGlvbjogZHVtbXktYXBwe3tyZXZpc2lvbn19CmRlc2lyZWRfY291bnQ6IHt7Y291bnR9fQojcm9sZToge3tyb2xlfX0KZGVwbG95bWVudF9jb25maWd1cmF0aW9uOgogIG1heGltdW1fcGVyY2VudDogMjAwCiAgbWluaW11bV9oZWFsdGh5X3BlcmNlbnQ6IDUwCg== --debug` to run server side (dummy-app is an example)
|
44
46
|
|
45
47
|
To release a new version:
|
46
48
|
- Update the version number in `version.rb` and `Dockerfile.release` and commit the result.
|
@@ -30,5 +30,16 @@ module Shipitron
|
|
30
30
|
end
|
31
31
|
end
|
32
32
|
|
33
|
+
def set_key(key:, value:)
|
34
|
+
Logger.debug "Setting key #{key}"
|
35
|
+
Diplomat::Kv.put(key, value)
|
36
|
+
end
|
37
|
+
|
38
|
+
def set_key!(key:, value:)
|
39
|
+
set_key(key: key, value: value).tap do |retval|
|
40
|
+
raise "Unable to set #{key}!" if retval != true
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
33
44
|
end
|
34
45
|
end
|
@@ -6,6 +6,7 @@ require 'shipitron/server/docker/build_image'
|
|
6
6
|
require 'shipitron/server/docker/push_image'
|
7
7
|
require 'shipitron/server/update_ecs_task_definitions'
|
8
8
|
require 'shipitron/server/run_post_build'
|
9
|
+
require 'shipitron/server/update_deploy_ref'
|
9
10
|
require 'shipitron/server/update_ecs_services'
|
10
11
|
|
11
12
|
module Shipitron
|
@@ -57,6 +58,7 @@ module Shipitron
|
|
57
58
|
Docker::PushImage,
|
58
59
|
UpdateEcsTaskDefinitions,
|
59
60
|
RunPostBuild,
|
61
|
+
UpdateDeployRef,
|
60
62
|
UpdateEcsServices
|
61
63
|
]
|
62
64
|
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'shipitron'
|
2
|
+
require 'shipitron/consul_keys'
|
3
|
+
|
4
|
+
module Shipitron
|
5
|
+
module Server
|
6
|
+
class UpdateDeployRef
|
7
|
+
include Metaractor
|
8
|
+
include ConsulKeys
|
9
|
+
|
10
|
+
required :application
|
11
|
+
required :docker_image
|
12
|
+
|
13
|
+
before do
|
14
|
+
configure_consul_client!
|
15
|
+
end
|
16
|
+
|
17
|
+
def call
|
18
|
+
Logger.info "Updating deploy ref to #{docker_image.tag}"
|
19
|
+
set_key!(key: deploy_ref_key, value: docker_image.tag)
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
def application
|
24
|
+
context.application
|
25
|
+
end
|
26
|
+
|
27
|
+
def docker_image
|
28
|
+
context.docker_image
|
29
|
+
end
|
30
|
+
|
31
|
+
def deploy_ref_key
|
32
|
+
fetch_key!(key: "shipitron/#{application}/deploy_ref_key")
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
data/lib/shipitron/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: shipitron
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Schlesinger
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-10-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -276,6 +276,7 @@ files:
|
|
276
276
|
- lib/shipitron/server/git/upload_cache.rb
|
277
277
|
- lib/shipitron/server/run_post_build.rb
|
278
278
|
- lib/shipitron/server/transform_cli_args.rb
|
279
|
+
- lib/shipitron/server/update_deploy_ref.rb
|
279
280
|
- lib/shipitron/server/update_ecs_services.rb
|
280
281
|
- lib/shipitron/server/update_ecs_task_definitions.rb
|
281
282
|
- lib/shipitron/server/upload_build_cache.rb
|
@@ -303,7 +304,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
303
304
|
version: '0'
|
304
305
|
requirements: []
|
305
306
|
rubyforge_project:
|
306
|
-
rubygems_version: 2.6.
|
307
|
+
rubygems_version: 2.6.7
|
307
308
|
signing_key:
|
308
309
|
specification_version: 4
|
309
310
|
summary: A deployment tool for use with Docker and ECS.
|