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
```
This adds the --volumes paramater with a "generate" and "empty"
By default, "generate" will be used as a place-holder for "true".
Although not used in the code, we will eventually add "none"
This uses CLI paramater naming processes (no emptyVols as that is Go /
Kubernetes specific) and thus we use dashes.
In pkg/app/app.go, the function ValidateComposeFile() has an
unused parameter "cmd *cobra.Command".
This commit removes that parameter from the function and the
callers of the function.
This adds support for building and pushing docker containers
when you perform either `kompose convert` or `kompose up`.
Docker Compose files who have build parameters with their respective
image and build keys will automatically be both built and pushed.
Now we can deploy application in different namespaces using the "--namespace=<value>" flag with kompose up and kompose down. The --namepace flag will deploy the application in that particular "namespace" if exist."
There's A LOT happening in this commit, so here's an outline:
First off, urfave/cli has been removed in favour of spf13/cobra. With
this, comes changes to the formatting as well as the help page for
Kompose.
Upon converting, I noticed a CLI flag was NOT appearing for OpenShift.
Specifically, --deploymentconfig. This has been added with a note
that says it is OpenShift only.
Exit codes have been fixed. If the conversion / down / up fails for
any reason, Kompose will exit with Code 1.
--verbose as well as --suppress-warnings can now be set at the
same time.
app_test.go in the cli directory has been moved to pkg/transformer
to better reflect the testing coverage.
version.go has been removed and converted to it's own CLI command in
conjuction with (most) Go software. A new CLI command has been
created. kompose version
--dab isn't a conventional way for short-form CLI paramters. This
has been shortened to -b for bundle.
CLI flags consisting of only two/three letters have been removed due to
it being unconventional for CLI. For example, --dc was removed in preference
for --deploymentconfig
--replicas has been added as an option when using kompose down or
kompose up. This has been added as previously in app.go the
replica amount was hard-coded as 1.
Differentiating names have been used for flags. For example,
persistent flags use the name Global (ex. GlobalOut). Command-specific
flags have their own names (ex. UpOpt).
Closes#239#253