To make `kompose up` & `kompose convert` equal in feature, This PR will
add `--controller` flag for `kompose up` as well as `kompose down`
so that user experience will be the same for `up` & `convert`
Resolves#798
since we are adding `--controller` to `up` and `down`, So respective code to deploy and undeploy also being added for `daemonset` and `replicationcontroller`
Added tests for `--controller`
Updated `sirupsen`, `docker/cli`, `docker/libcompose` in `glide`,
Also changed `Sirupsen` with `sirupsen` in all kompose packages as well as in
`docker/distribution` packages
This PR will add customhelp section in `kompose up --help` section,
which will show consistency in help section.
Issue reference: #842
for example,
```
$ kompose up --help
Deploy your Dockerized application to a container orchestrator. (default "kubernetes")
Usage:
kompose up [flags]
OpenShift Flags:
--build-branch Specify repository branch to use for buildconfig (default is current branch name)
--build-repo Specify source repository for buildconfig (default is current branch's remote url
--insecure-repository Specify to use insecure docker repository while generating Openshift image stream object
Flags:
--build string Set the type of build ("local"|"build-config" (OpenShift only)|"none") (default "local")
-h, --help help for up
--namespace string Specify Namespace to deploy your application (default "default")
--replicas int Specify the number of replicas generated (default 1)
--volumes string Volumes to be generated ("persistentVolumeClaim"|"emptyDir") (default "persistentVolumeClaim")
Global Flags:
--error-on-warning Treat any warning as an error
-f, --file stringArray Specify an alternative compose file
--provider string Specify a provider. Kubernetes or OpenShift. (default "kubernetes")
--suppress-warnings Suppress all warnings
-v, --verbose verbose output
```
it will map `engine.labels.operatingsystem` to `beta.kubernetes.io/os` and
`node.hostname` to `kubernetes.io/hostname` and all other constraints will not be supported.
Previously we used to mention controller type as `--deployment`,
`--replication-controller` or `--daemonset` as argument.
But now,
it will be like,
ex.
```
kompose convert --controller=daemonset
```
This command will add `kompose command` used to generate artifacts as well as `kompose version`,
for ex,
```
metadata:
annotations:
kompose.cmd: kompose convert -f /home/snarwade --stdout
kompose.version: 1.0.0 (HEAD)
```
For functional test, Now each test has template like,
```
"annotations": {
"kompose.cmd": "%CMD%",
"kompose.version": "%VERSION%"
```
Because, for every machine these values will be different.
Updated functional test with new annotations
If test in `make test-cmd` is failing, now it will show diff so that
it will be easy to debug.
for example,
```
===> Starting test <===
convert::expect_success_and_warning: Running: 'kompose -f /home/snarwade/go/src/github.com/kubernetes-incubator/kompose/script/test/fixtures/service-name-change/docker-compose.yml convert --stdout -j' expected_output: '/home/snarwade/go/src/github.com/kubernetes-incubator/kompose/script/test/fixtures/service-name-change/output-k8s.json' expected_warning: 'Unsupported root level volumes key - ignoring'
WARN Unsupported root level volumes key - ignoring
WARN Unsupported depends_on key - ignoring
103c103
< "value": "bitnami_wordpres"
---
> "value": "bitnami_wordpress"
FAIL: converted output does not match
```
now args provided under build in docker-compose file can be available in buildconfig.
it solves #406
Added unit test and functional test
solves #445
Separated key:"value" pairs by spaces
It resolves issues #474 and #589 which were coming from libcompose,
as well as resolves#440 and #437 partially as `group_add` & `stop_grace_period`
are supported by libcompose now.
Resolves#576
This PR includes `output-os-template.json` in `nginx-node-redis` example,
which is basically output template contains `%URI%` and `%REF%` variables
which will be filled while initializing test cases and new will be stored as
`/tmp/output-os.json`
This will remove the problem of git uri and ref.
fixes#445
This PR was partially fixed by docker/libcompose#450, which now gives consistent build context,
also it modifies the function getAbsBuildContext to create accurate build context, Unit test are being modified
according to new structure.
Resolves#272 and #267
As there is no direct mapping of `cpushares` and `cpuset` to kubernetes,
it should not be read and should be moved to unsupported keys.
fixes#270
all errors in undeploy method(both kubernetes and openshift) are appended in a slice of errors,
and then it will be returned after successful deletion of all components.
fixes#270
all errors in undeploy method(both kubernetes and openshift) are appended in a slice of errors,
and then it will be returned after successful deletion of all components.
Fixes#486
This commit will add `dockerfilepath` key under Dockerstratergy in buildconfig.
dockerfilepath allow us to use dockerfiles which are named different than `Dockerfile` which are placed in context directory.
for example, for a docker-compose file:
```
version: "2"
services:
foo:
build:
context: "./build"
dockerfile: "Dockerfile-alternate"
command: "sleep 3600"
```
Resulting buildconfig will be:
```
apiVersion: v1
kind: BuildConfig
...
...
strategy:
dockerStrategy:
dockerfilePath: Dockerfile-alternate
type: Docker
...
...
```
fixes#436
This commit will add support for tmpfs, configEmptyVolumeSource
function is being modified as it have to work in two ways now.
(For emptyvols and tmpfs)
Added unit test for tmpfs too.