This adds support for supplying for example:
"127.0.0.1:80:80/tcp" to docker-compose.yaml and converting it to it's
corresponding Kubernetes / OpenShift hostIP.
This commit also refactors the loadPorts function of compose.go
Closes https://github.com/kubernetes-incubator/kompose/issues/335
If TCP is passed in as the protocol, by default, we add TCP as the
protocol within the Kubernetes or OpenShift artifacts.
By default, TCP is already selected within Kubernetes and thus having
the TCP output is redundant.
This commit checks to see if TCP has already been selected, and if it
has, ignores adding it to the list of ports.
Closes https://github.com/kubernetes-incubator/kompose/issues/392
Due to changes to libcompose, NetworkConfigs now returns a default
network regardless if one has been provided or not.
An if statement is added that will debug output and ignore the default
network provided that it's the only network available.
- Added buildconfig doc in user guide.
- Add inline code documentation to explain why buildconfig
object needs to be created after imagestream, because of
https://github.com/openshift/origin/issues/4518
- spelling mistake
- pass compose file dir instead of compose file to initBuildConfig call
- Use as default value for cli --build-branch option
- Pass current build branch to buildconfig related functions instead of opt.BuildBranch
- Fix printing buildconfig source branch in logs.
- Error out on failure to create buildconfig, with meaningful error messages, e.g., git missing, error in fetching git remote, error in creating build context, etc.
- Add info log for build repo/branch being used.
This adds supports for stdin_open: bool and
tty: bool support for kubernetes and openshift
providers in kompose. This maps to the
template.Spec.Containers[0].Stdin and
template.Spec.Containers[0].TTY in Kubernets
world.
Also, added tests.
Fixes#344
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
Implements a kompose specific docker compose label "kompose.service.expose" which can be used to expose the specified services externally. The accepted values are of type string.
If the value is set to "true", the provider sets the endpoint automatically, and for any other value, the value is set as the hostname. If multiple ports are defined in a service, the first one is chosen to be the exposed.
Unit tests, functional tests, glide updates and docs have also been added in this commit for the related feature.
When kompose convert -o artifacts is run, then if artifacts is a directory,
kompose stores all the resulting files inside it, and if it's not a directory,
it stores the artifacts in a single file.
Fixes#209
if a user specifies a docker-compose service
with restart value as "no" or "on-failure"
then normal pod will be created as against
to a controller and a pod.
Checks to see if "container_name" is used correctly in a docker-compose
file conversion and updates the changes respectively in the outputted
artifact files.
For example with container_name set as myfoobarname, the change will
correctly update the "containerNames" portion of the deployment-config
for OpenShift.
"imageChangeParams": {
"automatic": true,
"containerNames": [
"myfoobarname"
],
"from": {
"kind": "ImageStreamTag",
"name": "rabbit:3.6.1"
}
}
Closes https://github.com/kubernetes-incubator/kompose/issues/301
Moved label handling code from Transformer to loader,
to make it generic to handle creating service types.
Added new attribute to ServiceConfig which gets populated
in loader.
Fixes#273
This is so you can set Opts on instance creation of
kubernetes.Kubernetes and openshift.Openshift. This is useful
so that we can pass option information arround without having
to do it on the call stack every time.
Now a user can provide volumes_from to share volumes
from other service so here the PVC created for that
service will be shared by service calling volumes_from
Now a user can select a provider using global flag
--provider=openshift to select openshift provider
or --provider-kubernetes to select kubernetes provider
if nothing is provided kubernetes is the default provider.
Fixes#179
We had Command and Args together with Entrypoint in Kompose object.
This doesn't make much sense, as Entrypoint and Command are same thing.
I've removed Entrypoint from Kompose object in favor of Command to keep
same naming convensions as in Kubernetes.
Entrypoint from docker-compose.yml is now saved to Command and Command
is saved to Args (http://kubernetes.io/docs/user-guide/containers/).
docker-compose.yml | Kompose object
-------------------|---------------
Entrypoint | Command
Command | Args
Sorts objects in Transform function, this should
make sure that Services are first everywhere as
long as we keep order in the slice that Transform returns.
fixes#130
The repated controller creation code has been removed. And
aggregated it into a single function, that Kubernetes and OpenShift
providers' Transform code can call.