Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade our argo fork to the latest version #22

Merged
merged 151 commits into from
Apr 30, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
151 commits
Select commit Hold shift + click to select a range
19d6cee
Updated ARTIFACT_REPO.md (#1049)
edlee2121 Oct 20, 2018
e297d19
Updated examples/README.md (#1051)
edlee2121 Oct 21, 2018
f18716b
Support for K8s API based Executor (#1010)
dtaniwaki Oct 26, 2018
6e6c59f
Submodules are dirty after checkout -- need to update (#1052)
andreimc Oct 26, 2018
79ed766
Parameter and Argument names should support snake case (#1048)
bbc88ks Oct 26, 2018
23d733b
Add namespace explicitly to pod metadata (#1059)
dvavili Oct 26, 2018
7ef1cea
Update dependencies to K8s v1.12 and client-go 9.0
jessesuen Oct 27, 2018
a07bbe4
Adding SAP Hybris in Who uses Argo (#1064)
nexus49 Oct 30, 2018
036969c
Add Cratejoy to list of users (#1063)
howinator Oct 30, 2018
eb48c23
Raise not implemented error when artifact saving is unsupported (#1062)
dtaniwaki Oct 31, 2018
2f3fc41
Adding native GCS support for artifact storage and retrieval
decarboxy Sep 28, 2018
f2914d6
Support nested steps workflow parallelism (#1046)
WeiTang114 Nov 2, 2018
76b14f5
Auto-complete workflow names (#1061)
dtaniwaki Nov 3, 2018
79b3e30
Fix string format arguments in workflow utilities. (#1070)
jmcarp Nov 3, 2018
a53a76e
fix #1078 Azure AKS authentication issues (#1079)
gerardaus Nov 6, 2018
afdac9b
Issue #740 - System level workflow parallelism limits & priorities (#…
alexmt Nov 7, 2018
d4ef6e9
Add new article and minor edits. (#1083)
edlee2121 Nov 9, 2018
95b72f3
Update docs to outline bare minimum set of privileges for a workflow
jessesuen Nov 11, 2018
b5dfa02
Use relative links on README file (#1087)
alexmt Nov 11, 2018
62b2436
Fix typo in demo.md (#1089)
protochron Nov 13, 2018
60b508d
Drop reference to removed `argo install` command. (#1074)
jmcarp Nov 15, 2018
cb8b036
Initialize child node before marking phase. Fixes panic on invalid `W…
jmcarp Nov 15, 2018
438330c
#1081 added retry logic to s3 load and save function (#1082)
kshamajain99 Nov 15, 2018
46855dc
adding logo to be used by the OS Site (#1099)
rociomontes Nov 20, 2018
bb8a6a5
Update ROADMAP.md
jessesuen Nov 20, 2018
49c1fa4
Update docs with examples using the K8s REST API
jessesuen Nov 16, 2018
ec20d94
Issue #1114 - Set FORCE_NAMESPACE_ISOLATION env variable in namespace…
alexmt Dec 6, 2018
e59398a
Fix examples docs of parameters. (#1110)
locona Dec 7, 2018
7814283
Remove docker_lib mount volume which is not needed anymore (#1115)
ywskycn Dec 7, 2018
515a900
add support for ppc64le and s390x (#1102)
chenzhiwei Dec 7, 2018
1ae3696
Install mime-support in argoexec to set proper mime types for S3 arti…
jessesuen Dec 7, 2018
6bb3adb
Adding Quantibio in Who uses Argo (#1111)
jackywu Dec 8, 2018
587ab1a
Fix output artifact and parameter conflict (#1125)
Ark-kun Dec 14, 2018
3484099
Update generated swagger to fix verify-codegen (#1131)
alexmt Dec 17, 2018
0f84e51
Allow owner reference to be set in submit util (#1120)
nareshku Dec 18, 2018
e09d9ad
Issue #1104 - Remove container wait timeout from 'argo logs --follow'…
alexmt Dec 28, 2018
e078032
Issue #1132 - Fix panic in ttl controller (#1143)
alexmt Dec 28, 2018
174eb20
Issue #1040 - Kill daemoned step if workflow consist of single daemon…
alexmt Dec 28, 2018
e400b65
Fix global artifact overwriting in nested workflow (#1086)
WeiTang114 Jan 3, 2019
cb53848
Fix issue where steps with exhausted retires would not complete (#1148)
jessesuen Jan 3, 2019
f6ce783
add support for other archs (#1137)
chenzhiwei Jan 3, 2019
c7fec9d
Reflect minio chart changes in documentation (#1147)
alexmt Jan 3, 2019
3561bff
Issue #1136 - Fix metadata for DAG with loops (#1149)
alexmt Jan 3, 2019
4fd758c
Add slack badge to README (#1164)
alexmt Jan 9, 2019
6726d9a
Fix failing TestAddGlobalArtifactToScope unit test
jessesuen Jan 9, 2019
31e5f63
Fix tests compilation error (#1157)
alexmt Jan 9, 2019
149d176
Replace exponential retry with poll (#1166)
kzadorozhny Jan 9, 2019
8db0006
add support for hostNetwork & dnsPolicy config (#1161)
Dreamheart Jan 9, 2019
c3cc51b
Support HDFS Artifact (#1159)
dtaniwaki Jan 12, 2019
864c709
Update codegen for network config (#1168)
dtaniwaki Jan 12, 2019
649d64d
Add GitHub to users in README.md (#1151)
Jan 14, 2019
0b41ca0
Add Preferred Networks to users in README.md (#1172)
dtaniwaki Jan 14, 2019
528e8f8
Add missing patch in namespace kustomization.yaml (#1170)
alexmt Jan 14, 2019
521eb25
Validate ArchiveLocation artifacts (#1167)
dtaniwaki Jan 14, 2019
5a91714
Update README and preview notice in CLA.
edlee2121 Jan 14, 2019
e381653
Update README. (#1173) (#1176)
edlee2121 Jan 16, 2019
1fc0314
Argo users: Equinor (#1175)
epa095 Jan 16, 2019
2b2651b
Do not mount unnecessary docker socket (#1178)
dtaniwaki Jan 17, 2019
f07b5af
Issue #1113 - Wait for daemon pods completion to handle annotations (…
alexmt Jan 18, 2019
eaaad7d
Increased S3 artifact retry time and added log (#1138)
kshamajain99 Jan 24, 2019
8eb4c66
Issue #1123 - Fix 'kubectl get' failure if resource namespace is diff…
alexmt Jan 25, 2019
93289b4
Refactor Makefile/Dockerfile to remove volume binding in favor of bui…
jessesuen Jan 25, 2019
01ce5c3
Add Docker Hub build hooks
jessesuen Jan 25, 2019
17250f3
Add documentation how to use parameter-file's (#1191)
kivio Jan 25, 2019
831e219
Issue #988 - Submit should not print logs to stdout unless output is …
alexmt Jan 25, 2019
311ad86
Fix missing docker binary in argoexec image. Improve reuse of image l…
jessesuen Jan 25, 2019
73504a2
Fischerjulian adds ruby to rest docs (#1196)
fischerjulian Jan 28, 2019
eda7e08
Updated OWNERS (#1198)
edlee2121 Jan 29, 2019
14a432e
Update community/README (#1197)
edlee2121 Jan 30, 2019
bd249a8
Issue #1128 - Use polling instead of fs notify to get annotation chan…
alexmt Jan 30, 2019
f92284d
Minor spelling, formatting, and style updates. (#1193)
annawinkler Feb 1, 2019
edcb562
Dockerfile: argoexec base image correction (fixes #1209) (#1213)
elikatsis Feb 8, 2019
2ddae16
Set executor image pull policy for resource template (#1174)
dtaniwaki Feb 10, 2019
f1797f7
Add schedulerName to workflow and template spec (#1184)
Feb 12, 2019
8aae293
Issue #1190 - Fix incorrect retry node handling (#1208)
alexmt Feb 13, 2019
0bda53c
fix dag retries (#1221)
Feb 15, 2019
f6b0c8f
Executor can access the k8s apiserver with a out-of-cluster config fi…
Feb 15, 2019
baa3e62
Update README with typo fixes (#1220)
jdfalko Feb 15, 2019
8b67e1b
Update README.md (#1236)
groodt Feb 25, 2019
eeac5a0
Remove extra quotes around output parameter value (#1232)
elikatsis Feb 25, 2019
2b1d56e
Update README.md (#1224)
migggy Feb 25, 2019
cde5cd3
Include stderr when retrieving docker logs (#1225)
shahin Feb 26, 2019
3f1fb9d
Add Gardener to "Who uses Argo" (#1228)
Feb 26, 2019
94cda3d
Add feature to continue workflow on failed/error steps/tasks (#1205)
Feb 27, 2019
2b0b8f1
Fix the Prometheus address references (#1237)
spacez320 Feb 27, 2019
1cb88ba
Fixed Issue#1223 Kubernetes Resource action: patch is not supported (…
sarabala1979 Mar 4, 2019
fa042aa
typo, executo -> executor (#1243)
nstott Mar 5, 2019
3f06385
Issue#1165 fake outputs don't notify and task completes successfully …
sarabala1979 Mar 6, 2019
b038412
Git cloning via SSH was not verifying host public key (#1261)
jessesuen Mar 15, 2019
70c130a
Update versions (#1218)
ialidzhikov Mar 15, 2019
b2743f3
Proxy Priority and PriorityClassName to pods (#1179)
dtaniwaki Mar 15, 2019
4bfbb20
Error running 1000s of tasks: "etcdserver: request is too large" #118…
sarabala1979 Mar 18, 2019
e610524
Reduce redundancy pod label action (#1271)
xianlubird Mar 21, 2019
73a37f2
Add the `mergeStrategy` option to resource patching (#1269)
ian-howell Mar 22, 2019
1e111ca
Fix bug with DockerExecutor's CopyFile (#1275)
duboisf Mar 22, 2019
59fcc5c
Add workflow labels and annotations global vars (#1280)
discordianfish Mar 25, 2019
adab9ed
Argo CI is current inactive (#1285)
edlee2121 Mar 26, 2019
9b555cd
Issue#896 Workflow steps with non-existant output artifact path will …
sarabala1979 Mar 27, 2019
d5f4b42
Fix for Resource creation where template has same parameter templatin…
sarabala1979 Mar 27, 2019
850f3f1
Admiralty: add link to blog post, add user (#1295)
adrienjt Mar 27, 2019
9345111
Add dns config support (#1301)
xianlubird Apr 2, 2019
a8a5557
Speed up podReconciliation using parallel goroutine (#1286)
xianlubird Apr 2, 2019
de779f3
Add community meeting notes link (#1304)
alexmt Apr 3, 2019
928e4df
Add Karius to users in README.md (#1305)
xubofei1983 Apr 4, 2019
4591e44
Added support for artifact path references (#1300)
Ark-kun Apr 5, 2019
e34024a
Add support for init containers (#1183)
dtaniwaki Apr 5, 2019
1a028d5
Secrets should be passed to pods using volumes instead of API calls (…
sarabala1979 Apr 5, 2019
abb7706
CheckandEstimate implementation to optimize podReconciliation (#1308)
sarabala1979 Apr 5, 2019
bbdf2e2
Add alibaba cloud to officially using argo list (#1313)
xianlubird Apr 9, 2019
0d400f2
Refactor checkandEstimate to optimize podReconciliation (#1311)
xianlubird Apr 9, 2019
db89c47
Fix formatting issues in examples documentation (#1310)
clelange Apr 9, 2019
c60010d
Fix nil pointer dereference with secret volumes (#1314)
jessesuen Apr 9, 2019
02550be
Archive location should conditionally be added to template only when …
jessesuen Apr 10, 2019
b4edfd3
Fix SIGSEGV in watch/CheckAndDecompress. Consolidate duplicate code (…
jessesuen Apr 10, 2019
75b28a3
Implement support for PNS (Process Namespace Sharing) executor (#1214)
jessesuen Apr 10, 2019
40f9a87
Reorganize manifests to kustomize 2 and update version to v2.3.0-rc1
jessesuen Apr 10, 2019
1c729a7
Update v2.3.0 CHANGELOG.md
jessesuen Apr 10, 2019
950de1b
Export the methods of `KubernetesClientInterface` (#1294)
chris-chambers Apr 11, 2019
a5a2bcf
Update README.md (#1321)
edlee2121 Apr 12, 2019
6607dca
Issue1316 Pod creation with secret volumemount (#1318)
sarabala1979 Apr 12, 2019
64370a2
Support parameter substitution in the volumes attribute (#1238)
elikatsis Apr 12, 2019
bd8d5cb
`argo list` was not displaying non-zero priorities correctly
jessesuen Apr 21, 2019
34af5a0
Fix regression where argoexec wait would not return when podname was …
jessesuen Apr 21, 2019
49a6b6d
wait will conditionally become privileged if main/sidecar privileged …
jessesuen Apr 21, 2019
bb1bfdd
Update version to v2.3.0-rc2. Update changelog
jessesuen Apr 21, 2019
4e37a44
Add documentation on releasing
jessesuen Apr 21, 2019
5a0d2b9
use a secret selector for getting credentials
decarboxy Apr 23, 2019
923dd33
Merge remote-tracking branch 'origin/master' into native-gcs-support
decarboxy Apr 23, 2019
5cd09eb
Merge remote-tracking branch 'upstream/master' into upgrade-argo
decarboxy Apr 24, 2019
805231f
fixing build issues
decarboxy Apr 24, 2019
4352e89
linter issues
decarboxy Apr 24, 2019
9e781fc
Merge remote-tracking branch 'origin/native-gcs-support' into upgrade…
decarboxy Apr 24, 2019
c0fea1e
Merge remote-tracking branch 'origin/native-gcs-support' into upgrade…
decarboxy Apr 24, 2019
6511bc7
fixing jenkinsfile(?)
decarboxy Apr 24, 2019
280ca06
jenkins
decarboxy Apr 24, 2019
7f66c88
jenkins
decarboxy Apr 24, 2019
9cbff08
jenkins
decarboxy Apr 24, 2019
11266b8
jenkins
decarboxy Apr 24, 2019
3b16984
jenkins?
decarboxy Apr 24, 2019
fee62d3
jenkins :(
decarboxy Apr 24, 2019
5856cb6
jenkins :(
decarboxy Apr 24, 2019
5756fee
jenkins
decarboxy Apr 25, 2019
1afa553
jenkins
decarboxy Apr 25, 2019
9eab6bf
jenkins
decarboxy Apr 25, 2019
716baf9
jenkins
decarboxy Apr 25, 2019
43e2181
gopkg
decarboxy Apr 25, 2019
35c1071
use GetSecretFromVolMount instead of GetSecrets
decarboxy Apr 25, 2019
7685704
Merge remote-tracking branch 'origin/native-gcs-support' into upgrade…
decarboxy Apr 25, 2019
afc87c8
actually build argoexec
decarboxy Apr 26, 2019
e9f2a46
Fix #1340 parameter substitution bug
elikatsis Apr 27, 2019
c93c75a
Merge remote-tracking branch 'arrikto/fix-loop-params' into upgrade-argo
decarboxy Apr 29, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 5 additions & 7 deletions .argo-ci/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,16 +22,13 @@ spec:
value: "{{item}}"
withItems:
- make controller-image executor-image
- make cli-linux
- make cli-darwin
- make release-clis
- name: test
template: ci-builder
arguments:
parameters:
- name: cmd
value: "{{item}}"
withItems:
- dep ensure && make lint test verify-codegen
value: dep ensure && make lint test verify-codegen

- name: ci-builder
inputs:
Expand Down Expand Up @@ -67,10 +64,11 @@ spec:
env:
- name: DOCKER_HOST
value: 127.0.0.1
- name: DOCKER_BUILDKIT
value: "1"
sidecars:
- name: dind
image: docker:17.10-dind
image: docker:18.09-dind
securityContext:
privileged: true
mirrorVolumeMounts: true

8 changes: 4 additions & 4 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
*
!dist
dist/pkg
!Gopkg.*
# Prevent vendor directory from being copied to ensure we are not not pulling unexpected cruft from
# a user's workspace, and are only building off of what is locked by dep.
vendor
dist
6 changes: 3 additions & 3 deletions ARTIFACT_REPO.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,12 @@ $ helm install stable/minio --name argo-artifacts --set service.type=LoadBalance

Login to the Minio UI using a web browser (port 9000) after obtaining the external IP using `kubectl`.
```
$ kubectl get service argo-artifacts-minio
$ kubectl get service argo-artifacts
```

On Minikube:
```
$ minikube service --url argo-artifacts-minio
$ minikube service --url argo-artifacts
```

NOTE: When minio is installed via Helm, it uses the following hard-wired default credentials,
Expand Down Expand Up @@ -106,7 +106,7 @@ For Minio, the `accessKeySecret` and `secretKeySecret` naturally correspond the

Example:
```
$ kubectl edit configmap workflow-controller-configmap -n kube-system
$ kubectl edit configmap workflow-controller-configmap -n argo # assumes argo was installed in the argo namespace
...
data:
config: |
Expand Down
89 changes: 89 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,94 @@
# Changelog

## 2.3.0-rc2 (2019-04-21)

### Changes since 2.3.0-rc1
+ Support parameter substitution in the volumes attribute (#1238)
- Fix regression where argoexec wait would not return when podname was too long
- wait will conditionally become privileged if main/sidecar privileged (issue #1323)
- `argo list` was not displaying non-zero priorities correctly
- Pod creation with secret volumemount (#1318)
- Export the methods of `KubernetesClientInterface` (#1294)


## 2.3.0-rc1 (2019-04-10)

### Notes about upgrading from v2.2

* Secrets are passed to the wait sidecar using volumeMounts instead of performing K8s API calls
performed by the. This is much more secure since it limits the privileges of the workflow pod

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This isn't even.

Do we have to do something here?

to no longer require namespace level secret access. However, as a consequence, workflow pods which
reference a secret that does not exist, will now indefinitely stay in a Pending state, as opposed
to the previous behavior of failing during runtime.


### Deprecation Notice
The workflow-controller-configmap introduces a new config field, `executor`, which is a container
spec and provides controls over the executor sidecar container (i.e. `init`/`wait`). The fields
`executorImage`, `executorResources`, and `executorImagePullPolicy` are deprecated and will be
mlarrousse marked this conversation as resolved.
Show resolved Hide resolved
removed in a future release.

### New Features:
+ Support for PNS (Process Namespace Sharing) executor (#1214)
+ Support for K8s API based Executor (#1010) (@dtaniwaki)
+ Adds limited support for Kubelet/K8s API artifact collection by mirroring volume mounts to wait sidecar
+ Support HDFS Artifact (#1159) (@dtaniwaki)
+ System level workflow parallelism limits & priorities (#1065)
+ Support larger workflows through node status compression (#1264)
+ Support nested steps workflow parallelism (#1046) (@WeiTang114)
+ Add feature to continue workflow on failed/error steps/tasks (#1205) (@schrodit)
+ Parameter and Argument names should support snake case (#1048) (@bbc88ks)
+ Add support for ppc64le and s390x (#1102) (@chenzhiwei)
+ Install mime-support in argoexec to set proper mime types for S3 artifacts
+ Allow owner reference to be set in submit util (#1120) (@nareshku)
+ add support for hostNetwork & dnsPolicy config (#1161) (@Dreamheart)
+ Add schedulerName to workflow and template spec (#1184) (@houz42)
+ Executor can access the k8s apiserver with a out-of-cluster config file (@houz42)
+ Proxy Priority and PriorityClassName to pods (#1179) (@dtaniwaki)
+ Add the `mergeStrategy` option to resource patching (#1269) (@ian-howell)
+ Add workflow labels and annotations global vars (#1280) (@discordianfish)
+ Support for optional input/output artifacts (#1277)
+ Add dns config support (#1301) (@xianlubird)
+ Added support for artifact path references (#1300) (@Ark-kun)
+ Add support for init containers (#1183) (@dtaniwaki)
+ Secrets should be passed to pods using volumes instead of API calls (#1302)
+ Azure AKS authentication issues #1079 (@gerardaus)

### New Features:
* Update dependencies to K8s v1.12 and client-go 9.0
* Add namespace explicitly to pod metadata (#1059) (@dvavili)
* Raise not implemented error when artifact saving is unsupported (#1062) (@dtaniwaki)
* Retry logic to s3 load and save function (#1082) (@kshamajain99)
* Remove docker_lib mount volume which is not needed anymore (#1115) (@ywskycn)
* Documentation improvements and fixes (@protochron, @jmcarp, @locona, @kivio, @fischerjulian, @annawinkler, @jdfalko, @groodt, @migggy, @nstott, @adrienjt)
* Validate ArchiveLocation artifacts (#1167) (@dtaniwaki)
* Git cloning via SSH was not verifying host public key (#1261)
* Speed up podReconciliation using parallel goroutine (#1286) (@xianlubird)


- Initialize child node before marking phase. Fixes panic on invalid `When` (#1075) (@jmcarp)
- Submodules are dirty after checkout -- need to update (#1052) (@andreimc)
- Fix output artifact and parameter conflict (#1125) (@Ark-kun)
- Remove container wait timeout from 'argo logs --follow' (#1142)
- Fix panic in ttl controller (#1143)
- Kill daemoned step if workflow consist of single daemoned step (#1144)
- Fix global artifact overwriting in nested workflow (#1086) (@WeiTang114)
- Fix issue where steps with exhausted retires would not complete (#1148)
- Fix metadata for DAG with loops (#1149)
- Replace exponential retry with poll (#1166) (@kzadorozhny)
- Dockerfile: argoexec base image correction (#1213) (@elikatsis)
- Set executor image pull policy for resource template (#1174) (@dtaniwaki)
- fix dag retries (#1221) (@houz42)
- Remove extra quotes around output parameter value (#1232) (@elikatsis)
- Include stderr when retrieving docker logs (#1225) (@shahin)
- Fix the Prometheus address references (#1237) (@spacez320)
- Kubernetes Resource action: patch is not supported (#1245)
- Fake outputs don't notify and task completes successfully (#1247)
- Reduce redundancy pod label action (#1271) (@xianlubird)
- Fix bug with DockerExecutor's CopyFile (#1275)
- Fix for Resource creation where template has same parameter templating (#1283)
- Fixes an issue where daemon steps were not getting terminated properly

## 2.2.1 (2018-10-18)

### Changelog since v2.2.0
Expand Down
22 changes: 15 additions & 7 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,17 +15,17 @@ Go to https://github.com/argoproj/

## How to suggest a new feature

Go to https://groups.google.com/forum/#!forum/argoproj
* Create a new topic to discuss your feature.
Go to https://github.com/argoproj/
* Open an issue and discuss it.

## How to setup your dev environment

### Requirements
* Golang 1.10
* Golang 1.11
* Docker
* dep v0.5
* Mac Install: `brew install dep`
* gometalinter v2.0.5
* gometalinter v2.0.12

### Quickstart
```
Expand All @@ -36,9 +36,16 @@ $ make
```

### Build workflow-controller and executor images
The following will build the workflow-controller and executor images tagged with the `latest` tag, then push to a personal dockerhub repository:
The following will build the release versions of workflow-controller and executor images tagged
with the `latest` tag, then push to a personal dockerhub repository, `mydockerrepo`:
```
$ make controller-image executor-image IMAGE_TAG=latest IMAGE_NAMESPACE=mydockerrepo DOCKER_PUSH=true
```
Building release versions of the images will be slow during development, since the build happens
inside a docker build context, which cannot re-use the golang build cache between builds. To build
images quicker (for development purposes), images can be built by adding DEV_IMAGE=true.
```
$ make controller-image executor-image IMAGE_TAG=latest IMAGE_NAMESPACE=jessesuen DOCKER_PUSH=true
$ make controller-image executor-image IMAGE_TAG=latest IMAGE_NAMESPACE=mydockerrepo DOCKER_PUSH=true DEV_IMAGE=true
```

### Build argo cli
Expand All @@ -49,5 +56,6 @@ $ ./dist/argo version

### Deploying controller with alternative controller/executor images
```
$ argo install --controller-image jessesuen/workflow-controller:latest --executor-image jessesuen/argoexec:latest
$ helm install argo/argo --set images.namespace=mydockerrepo --set
images.controller workflow-controller:latest
```
99 changes: 99 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
####################################################################################################
# Builder image
# Initial stage which pulls prepares build dependencies and CLI tooling we need for our final image
# Also used as the image in CI jobs so needs all dependencies
####################################################################################################
FROM golang:1.11.5 as builder

RUN apt-get update && apt-get install -y \
git \
make \
wget \
gcc \
zip && \
apt-get clean && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

WORKDIR /tmp

# Install docker
ENV DOCKER_CHANNEL stable
ENV DOCKER_VERSION 18.09.1
RUN wget -O docker.tgz "https://download.docker.com/linux/static/${DOCKER_CHANNEL}/x86_64/docker-${DOCKER_VERSION}.tgz" && \
tar --extract --file docker.tgz --strip-components 1 --directory /usr/local/bin/ && \
rm docker.tgz

# Install dep
ENV DEP_VERSION=0.5.0
RUN wget https://github.com/golang/dep/releases/download/v${DEP_VERSION}/dep-linux-amd64 -O /usr/local/bin/dep && \
chmod +x /usr/local/bin/dep

# Install gometalinter
ENV GOMETALINTER_VERSION=2.0.12
RUN curl -sLo- https://github.com/alecthomas/gometalinter/releases/download/v${GOMETALINTER_VERSION}/gometalinter-${GOMETALINTER_VERSION}-linux-amd64.tar.gz | \
tar -xzC "$GOPATH/bin" --exclude COPYING --exclude README.md --strip-components 1 -f- && \
ln -s $GOPATH/bin/gometalinter $GOPATH/bin/gometalinter.v2


####################################################################################################
# argoexec-base
# Used as the base for both the release and development version of argoexec
####################################################################################################
FROM debian:9.6-slim as argoexec-base
# NOTE: keep the version synced with https://storage.googleapis.com/kubernetes-release/release/stable.txt
ENV KUBECTL_VERSION=1.13.4
RUN apt-get update && \
apt-get install -y curl jq procps git tar mime-support && \
rm -rf /var/lib/apt/lists/* && \
curl -L -o /usr/local/bin/kubectl -LO https://storage.googleapis.com/kubernetes-release/release/v${KUBECTL_VERSION}/bin/linux/amd64/kubectl && \
chmod +x /usr/local/bin/kubectl
COPY hack/ssh_known_hosts /etc/ssh/ssh_known_hosts
COPY --from=builder /usr/local/bin/docker /usr/local/bin/


####################################################################################################
# Argo Build stage which performs the actual build of Argo binaries
####################################################################################################
FROM builder as builder-base

# A dummy directory is created under $GOPATH/src/dummy so we are able to use dep
# to install all the packages of our dep lock file
COPY Gopkg.toml ${GOPATH}/src/dummy/Gopkg.toml
COPY Gopkg.lock ${GOPATH}/src/dummy/Gopkg.lock

RUN cd ${GOPATH}/src/dummy && \
dep ensure -vendor-only && \
mv vendor/* ${GOPATH}/src/ && \
rmdir vendor

WORKDIR /go/src/github.com/cyrusbiotechnology/argo
COPY . .

FROM builder-base as argo-build
# Perform the build

ARG MAKE_TARGET="controller executor cli-linux-amd64"
RUN make $MAKE_TARGET


####################################################################################################
# argoexec
####################################################################################################
FROM argoexec-base as argoexec
COPY --from=argo-build /go/src/github.com/cyrusbiotechnology/argo/dist/argoexec /usr/local/bin/


####################################################################################################
# workflow-controller
####################################################################################################
FROM scratch as workflow-controller
COPY --from=argo-build /go/src/github.com/cyrusbiotechnology/argo/dist/workflow-controller /bin/
ENTRYPOINT [ "workflow-controller" ]


####################################################################################################
# argocli
####################################################################################################
FROM scratch as argocli
COPY --from=argo-build /go/src/github.com/cyrusbiotechnology/argo/dist/argo-linux-amd64 /bin/argo
ENTRYPOINT [ "argo" ]
16 changes: 0 additions & 16 deletions Dockerfile-argoexec

This file was deleted.

32 changes: 0 additions & 32 deletions Dockerfile-builder

This file was deleted.

12 changes: 0 additions & 12 deletions Dockerfile-ci-builder

This file was deleted.

4 changes: 0 additions & 4 deletions Dockerfile-cli

This file was deleted.

5 changes: 0 additions & 5 deletions Dockerfile-workflow-controller

This file was deleted.

5 changes: 5 additions & 0 deletions Dockerfile.argoexec-dev
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
####################################################################################################
# argoexec-dev
####################################################################################################
FROM argoexec-base
COPY argoexec /usr/local/bin/
6 changes: 6 additions & 0 deletions Dockerfile.workflow-controller-dev
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
####################################################################################################
# workflow-controller-dev
####################################################################################################
FROM scratch
COPY workflow-controller /bin/
ENTRYPOINT [ "workflow-controller" ]
Loading