shipitron 0.2.2 → 0.3.0
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/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.
|