Commit Graph

294 Commits

Author SHA1 Message Date
Hang Yan
1f0a097836
Support assign nodeport port in labels (#1210) 2019-12-26 23:45:58 +08:00
Hang Yan
bc28ffc675
Upgrade deployment/daemonset to apps/v1 (#1207) 2019-12-26 16:36:11 +08:00
Hang Yan
73ec0abab2
Remove duplicate of configmap (#1206)
* also change the name of the generated cm
2019-12-26 08:53:41 +08:00
Charlie Drage
f3d54d7848
1.20.0 Release (#1203) 2019-12-23 12:05:10 -05:00
Mudit Verma
7f4be2a34d network int test fix (#1197) 2019-12-04 11:00:47 +08:00
Chander G
356c64890c fix tests related to secrets (#1198)
1. fix the path used to read secret data
without this fix, the path to the compose file is added to the already
absolute path, hence readFile was unable to find the secrets file

2. fix the expected json format
mountPath includes the entire path including the name of the secret
2019-12-04 10:32:29 +08:00
João Vitor Paes de Barros do Carmo
30736a3973 Add support for file based secret (#1159)
* Support file based secret
* Fix issue about read-only volume path and add support to absolute path at long-syntax
2019-12-01 12:05:31 +08:00
Mudit Verma
ac2b852955 Network Key Translation Feature and test cases (#1195) 2019-12-01 10:19:23 +08:00
Chander G
5857252c3d Merge top level non-service keys (#1187)
* merge top level non-service keys

docker-compose default behaviour is to merge these top level keys such
as `networks`
2019-11-28 14:18:49 +08:00
Charlie Drage
d0526d1d75 Fix tests (#1175)
For some reason, tests have been coming back as always positive (despite
some tests which are failing...)

This PR addresses it
2019-10-25 17:33:11 +08:00
Charlie Drage
f63a961ca7
1.19.0 Release (#1174) 2019-10-16 13:39:36 -04:00
Alan Justino da Silva
30655b4dd6 Copy the service labels also to Deployment Pod spec annotations (#1166)
* Copy the service labels also to Deployment Pod spec annotations

This allows kube2iam to work

* Remove test file forgotten from version 1.0.0

* Update test fixtures to have Deployment.spec.t.m.annotations

* Fix name conversion "test_server" -> "test-server"

It looks unrelated to my changes, but still changing.

* Fixing some more output fixtures
2019-09-02 10:06:28 +08:00
Charlie Drage
2fde1ad7b5 Revert "Add node references (#1123)"
This reverts commit cd7c8a3d9a.
2019-06-20 14:44:17 -04:00
Hang Yan
e74c12e452 Fix container_name set error 2019-06-19 23:31:03 +08:00
Charlie Drage
cd7c8a3d9a
Add node references (#1123)
Removes old Kubernetes references to master / slave and converts them to
master / node.
2019-06-14 10:43:11 -04:00
Hang Yan
06468b2f63 Update dep for compose 3.5+ (#1120)
* Update vendor packages

* Support compose 3.5+ versions
2019-03-26 11:44:26 -04:00
Kamil Kieliszczyk
66ac4aff4f Add kompose.image-pull-secret and kompose.image-pull-policy (#1091)
* Add kompose.image-pull-secret

* Add kompose.image-pull-secret tests

* Add kompose.image-pull-policy

* Add kompose.image-pull-policy tests

* ignore .coverprofile

* Fix typo
2019-02-07 09:50:53 -05:00
huikaihoo
40c1b8cf87 Support multiple hostnames on expose label in service for Kubernetes (#1092)
* Support multiple hostnames on label (kompose.service.expose) separated by semicolon (;)

* Multiple hostnames on expose label separated by comma; Ignore leading / trailing spaces and repeated commas; Updated test cases and documents.
2019-01-31 09:34:04 -05:00
huikaihoo
d48ae64325 Add label support to named volumes in docker compose v3 to Kubernetes (#1083)
* Support read specific label (kompose.volume.size) from named volume and apply to kubernetes supported volume size

* Fix the PVC size in log message when deploy Kubernetes

* Skip creation of PersistentVolumeClaim if it is already created in the same kubernetes deploy

* Add selector to PersistentVolumeClaim only when specific label (kompose.volume.selector) is used in named volume

* Add test case to named-volume for the new labels
2018-11-29 12:07:17 -05:00
mooncake
d3f1ef879b Fix typos: accecpts -> accepts
Signed-off-by: mooncake <xcoder@tenxcloud.com>
2018-11-10 21:06:57 +08:00
Hang Yan
a012fba1c2 Support read data from stdin 2018-08-09 22:46:41 +08:00
Xianlu Bird
0252213efb Add support for Config, endpoint_mode and 3.3 support (#994)
* Add support for Config

* Add deployment endpoint_mode support

* Add docker compose 3.3 support

* Add compose v3.3 support for openshift
2018-08-01 15:09:00 -04:00
Hang Yan
c0360e066b
Merge pull request #1020 from hangyan/fix/env-file-env
Fix environment with env_file bug
2018-07-10 13:58:59 +08:00
Hang Yan
3b04a9178a Fix environment with env_file bug 2018-07-10 13:15:36 +08:00
Hang Yan
5a374742cf
Merge pull request #871 from surajnarwade/stdin
Kompose will read input from stdin
2018-06-06 22:20:27 +08:00
Li Yi
6eb1aed7ab Fix invalid port name with uppercase characters (#1029)
* Fix invalid port name with uppercase characters

Signed-off-by: Li Yi <denverdino@gmail.com>
2018-06-05 14:18:40 +08:00
AdamDang
a869b72876
Typo fix in tests.sh: kubernets->kubernetes
kubernets->kubernetes
2018-05-25 13:06:24 +08:00
xianlubird
a4efdd6cca Add label 'kompose.controller.type' set service convert controller type 2018-05-12 11:52:23 +08:00
xianlubird
84b419c7ef Support compose global deploy mode to daemonset 2018-05-07 15:19:47 +08:00
xianlubird
04e9ee9949 Fix missing attribute when convert with multiple docker-compose files
Signed-off-by: xianlubird <xianlubird@gmail.com>
2018-05-03 11:51:55 +08:00
Hang Yan
f3412a7399 Add headless service type label
Also remove the relation between restart and service create
2018-04-15 00:23:48 +08:00
Hang Yan
88b8e316b9 Support hostname and domainname 2018-03-31 12:00:37 +08:00
Charlie Drage
ff97e413f2
Merge pull request #955 from cdrage/add-generating-packages
Add script for generating deb / rpm packages
2018-03-22 10:28:47 -04:00
Charlie Drage
0b8bdc3dc6 Add script for generating deb / rpm packages
Adds a script to generate deb / rpm packages on release day.
2018-03-22 10:01:28 -04:00
Charlie Drage
b5cc556308
Merge pull request #956 from hangyan/refactor-test-cmd
Refactor tests script to uses vars
2018-03-21 08:49:10 -04:00
Charlie Drage
442caa4359
Merge pull request #957 from hangyan/support-hostpath-volume
Support hostpath volume
2018-03-19 11:47:00 -04:00
Hang Yan
cf833c8818 Support hostpath volume 2018-03-16 10:40:25 +08:00
Hang Yan
6e5b6a3055 Fix deploy resources parse error 2018-03-15 14:00:17 +08:00
Hang Yan
5f38cc723e Refactor tests script to uses vars 2018-03-09 11:21:43 +08:00
Charlie Drage
a5a113d042
Merge pull request #950 from hangyan/support-old-restart-policy
Support old restart policy in compose v3
2018-03-07 08:41:46 -05:00
Suraj Narwade
6d4c8f9b78 Kompose will read input from stdin
Resolves issue #870

for example,

```
$ cat docker-compose.yaml | kompose convert -f -
INFO Kubernetes file "frontend-service.yaml" created
INFO Kubernetes file "redis-master-service.yaml" created
INFO Kubernetes file "redis-slave-service.yaml" created
INFO Kubernetes file "frontend-deployment.yaml" created
INFO Kubernetes file "redis-master-deployment.yaml" created
INFO Kubernetes file "redis-slave-deployment.yaml" created
```

Added integration test for the same.
`
2018-03-07 12:49:21 +05:30
Suraj Narwade
908e3f1b59
Merge pull request #907 from caglar10ur/serviceports
Allow services to use same port with different protocols
2018-03-07 12:29:05 +05:30
Hang Yan
723bd0f9d8 Support old restart policy in compose v3 2018-03-07 13:35:36 +08:00
Charlie Drage
47a8bfc0ea
Merge pull request #946 from hangyan/fix-build-path
Fix image build path error
2018-02-27 10:09:45 -05:00
Charlie Drage
b365953266
Merge pull request #938 from hangyan/fix-helm-custom-dir
Fix custom output and charts conflict error
2018-02-27 10:07:39 -05:00
Hang Yan
0f3d368215 Fix cli custom output and charts conflict error 2018-02-27 16:10:35 +08:00
Hang Yan
e119b30ebd Fix image build path error 2018-02-24 15:40:00 +08:00
Hang Yan
b8f1707d30 Fix healthcheck parser nil pointer error 2018-02-09 11:10:03 +08:00
Charlie Drage
f857afad1c
Merge pull request #929 from hangyan/fix-v2compose-pvc-size-error
Fix custom pvc size in v2 compose not working error
2018-02-08 08:24:49 -05:00
Hang Yan
f18450d045 Fix custom pvc size in v2 compose not working error 2018-02-08 16:13:49 +08:00
Hang Yan
0ef015d3da Fix unset env bug for v3 compose 2018-02-08 15:12:16 +08:00
Hang Yan
9bf86de89b Fix typos in doc 2018-02-07 11:29:17 +08:00
S.Çağlar Onur
e6ae470830 Allow services to use same port with different protocols
kompose fails if compose file declares different protocols for the same port. eg;

...
     ports:
      - 666:666/udp
      - 666:666/tcp
...

This PR adds the port to the output and also makes sure that names are unique for each port/protocol pair.
This is supported with LoadBalancer (kubernetes/kubernetes#2995) so trying to use this config with LB panics.
2018-01-17 11:26:03 -08:00
Charlie Drage
9bbab876cb
Merge pull request #895 from Code0x58/893-fix-image-push
Fix pushing of image to a private repository
2018-01-04 09:11:59 -05:00
Charlie Drage
6b7ba44dfc
Merge pull request #900 from piyush1594/iss_kompose_down
Added Case for Config Map in kompose down
2018-01-04 09:11:14 -05:00
Oliver Bristow
a1aff76396 Test building+pusing an image to a repository registry 2017-12-26 22:51:19 +00:00
Tim Hockin
a178cf53db Convert registry to k8s.gcr.io 2017-12-22 09:55:16 -08:00
Piyush Garg
52f8f1f2b4 Added Case for Config Map in kompose down.
To implement this, added label in
configmap object at the time of init

Fixed ConfigMap test because we are
adding one more field labels in metadata
2017-12-22 15:44:10 +05:30
Charlie Drage
c1f18136d3
Merge pull request #896 from Code0x58/add-ingress-tls
Add kompose.service.expose.tls-secret
2017-12-20 10:51:04 -05:00
Charlie Drage
e6a40eb5c9
Merge pull request #805 from ashetty1/issue_770
Script for generating unit tests
2017-12-19 11:07:15 -05:00
Oliver Bristow
35a782024d Add kompose.service.expose.tls-secret 2017-12-18 15:56:38 +00:00
Suraj Narwade
286fbd1203 Fixed kompose build failure
While `local` build, kompose was not recognizing `dockerfile` key
Hence it was breaking the build as mentioned in issue #832.
This PR will fix the issue.
2017-12-01 11:15:03 +05:30
Charlie Drage
84be7400a2
Merge pull request #846 from surajnarwade/buildv3
Added support for build key in v3
2017-11-30 09:06:32 -05:00
Suraj Narwade
ada8af2410 Added functional test 2017-11-30 11:14:44 +05:30
Suraj Narwade
126d9820c4 Adding --controller flag in up & down
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`
2017-11-27 15:26:24 +05:30
Charlie Drage
0f4bfebf08 Move version information to separate file
Moves the version information to a seperate file. This is mostly due to
import cycle errors occuring when using "import
github.com/kubernetes/kompose/cmd" in order to get the global variable
of VERSION and GITCOMMIT.

Update's the Makefile and other files accordingly.

If the version and commmit is unretriveable due to not being able to
find the kompose binary, the one from pkg/version/version.go will be
used.
2017-11-07 15:28:04 -05:00
Anush Shetty
7bb67675f4 Script for generating CLI tests:
* Made an entry in the Makefile: `make gen-cmd` will run the script now

* Added a section on adding CLI tests in development docs
2017-10-30 14:29:18 +05:30
Charlie Drage
7cd0635adb Merge pull request #819 from ashetty1/issue_781
Adding documentation for tests
2017-10-26 14:00:57 -04:00
Charlie Drage
24a85684cd Redirects not working
Due to not adding a trailing `/` redirects were not working.

For example, going to kompose.io/docs/user-guide.md will appear as
plaintext html, adding a trailing / creates an index.html in the
directory and correctly redirects the user.
2017-10-11 14:18:48 -04:00
Anush Shetty
d040121939 Adding documentation for tests 2017-10-11 19:58:53 +05:30
Charlie Drage
73b760970e Update version number in introduction.md
Updates the version number in introduction.md when doing a release
2017-10-10 15:02:32 -04:00
Charlie Drage
28601fa6ea Update vendoring 2017-10-10 12:55:57 -04:00
Charlie Drage
f4bfe1fcb5 Add env_file + ConfigMaps feature to Kompose
When using env_file with Docker Compose, a ConfigMap will be generated

For example:

```sh
▶ ./kompose convert -f
script/test/fixtures/configmaps/docker-compose.yml
INFO Kubernetes file "redis-service.yaml" created
INFO Kubernetes file "redis-deployment.yaml" created
INFO Kubernetes file "foo-env-configmap.yaml" created
INFO Kubernetes file "bar-env-configmap.yaml" created
```

File:

```yaml
version: '3'

services:
  redis:
    image: 'bitnami/redis:latest'
    environment:
      - ALLOW_EMPTY_PASSWORD=no
    # Env file will override environment / warn!
    env_file:
      - "foo.env"
      - bar.env
    labels:
      kompose.service.type: nodeport
    ports:
      - '6379:6379'
```

To:

```yaml
apiVersion: v1
data:
  ALLOW_EMPTY_PASSWORD: "yes"
kind: ConfigMap
metadata:
  creationTimestamp: null
  name: foo-env
```

```yaml
...
      - env:
        - name: ALLOW_EMPTY_PASSWORD
          valueFrom:
            configMapKeyRef:
              key: ALLOW_EMPTY_PASSWORD
              name: foo-env
```
2017-10-10 12:40:49 -04:00
Li Yi
d283bbbcc2 Fix the cpu limits and requests in generated deployment file
Signed-off-by: Li Yi <denverdino@gmail.com>
2017-10-10 10:04:34 +08:00
Charlie Drage
073547014c Merge pull request #813 from surajnarwade/placementv3
Added feature for `placement` key in v3
2017-10-06 10:20:33 -04:00
Charlie Drage
07cfc1fe28 Merge pull request #834 from cdrage/docs-update
Add Getting Started guide, adds Minishift tutorial
2017-10-06 10:07:58 -04:00
Suraj Narwade
35198cca12 Added feature for placement key in v3
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.
2017-10-06 12:22:14 +05:30
Charlie Drage
5605cb0e54 Add Getting Started guide, adds Minishift tutorial
Updates the getting started guide as well as introduces an
"introduction" page for Kompose.

Adds a Minishift guide as well as a general update to all documentation.
2017-10-05 09:36:53 -04:00
Suraj Narwade
4f8babd623 Added --controller feature
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
```
2017-10-04 12:43:45 +05:30
Charlie Drage
8efe274474 Merge pull request #815 from ashetty1/fix_pr_811
Fix reference to emptyDir in OpenShift test scripts
2017-09-26 15:27:13 -04:00
Charlie Drage
35166b8871 Merge pull request #816 from surajnarwade/tmpfsfix
Fixed tmpfs with mode failure
2017-09-26 15:24:35 -04:00
Suraj Narwade
269f604094 Fixed --volumes validation
Now, `--volumes` argument will validate it's input, it will only allow
`persistentVolumeClaim` or `emptyDir`, otherwise it will throw an error.
2017-09-25 17:25:57 +05:30
Suraj Narwade
8a19c47b1a Fixed tmpfs with mode failure
Fixes #807
now kompose will ignore mode of tmpfs and will pass only mount path.
2017-09-25 14:44:03 +05:30
Anush Shetty
8263958924 Fix reference to emptyDir in OpenShift test scripts:
From --volumes=empty to --volumes=emptyDir
2017-09-19 14:58:53 +05:30
Anush Shetty
1d20de9c6d emptvols -> volumes=yes 2017-09-11 18:39:28 +05:30
Charlie Drage
8fddec9e74 Merge pull request #787 from cdrage/refactor-flags
Add --volumes parameter, deprecate emptyvols
2017-09-08 13:08:05 -04:00
Charlie Drage
cc1671aaa9 Add --volumes parameter, deprecate emptyvols
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.
2017-09-05 11:39:57 -04:00
Anush Shetty
f75ae94ec4 Adding tests for deploy keys 2017-08-30 17:11:40 +05:30
Charlie Drage
ccb2464526 Merge pull request #642 from ashetty1/v3_tests
OpenShift tests for docker compose v3
2017-08-29 09:12:40 -04:00
Shubham
4f6b92f6c8 Merge pull request #759 from cdrage/add-healthcheck
Adds healthcheck
2017-08-27 09:09:54 +05:30
Charlie Drage
2e99b8fd3a Adds healthcheck
This PR adds support for HealthCheck, being able to supply, for example:

```yaml
version: "3"

services:
  redis:
    image: redis
    healthcheck:
      test: echo "hello world"
      interval: 10s
      timeout: 1s
      retries: 5
```

Which is then converted to:

```yaml
spec:
  containers:
  - image: redis
    livenessProbe:
      exec:
        command:
        - echo "hello world"
      failureThreshold: 5
      periodSeconds: 10
      timeoutSeconds: 1
    name: redis
    resources: {}
  restartPolicy: Always
```

At the moment, this only supports livenessProbe, with support for readinessProbe in the future.
2017-08-25 10:02:51 -04:00
Suraj Narwade
8b952abe29 Added functional test for docker compose files in Example directory
Fixes #793
2017-08-24 17:09:51 +05:30
Charlie Drage
bd6d493cef Add deploy: mode: global support
Adds support for deploy: mode.

For example:

```yaml
version: "3"

services:
  foo:
    deploy:
      resources:
        mode: global
        replicas: 6
    image: redis
```

Will only generate replicas: 1 in Kubernetes pods as "global" limits
replicas to only one.
2017-08-23 12:47:27 -04:00
Tomas Kral
1930ebeb91
build and upload master builds to bintray 2017-08-21 17:06:33 +02:00
Charlie Drage
ba7f2b30b2 Change directory for cluster tests
Fixes the directory for running cluster tests (test_k8s rather than
test_ci)
2017-08-18 11:04:51 -04:00
Anush Shetty
40f756d8b6 OpenShift tests for docker compose v3 2017-08-18 17:12:27 +05:30
Charlie Drage
89d43536e4 Rename test-ci to test-k8s
Renames test-ci to test-k8s to coincide with our `make test-openshift`
command.
2017-08-14 12:36:45 -04:00
Suraj Narwade
ec5c4d8550 Adding save command to annotation
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
2017-08-14 12:22:33 +05:30
Charlie Drage
e14bdae933 Merge pull request #757 from cdrage/update-cluster-tests-again-part-two
Update cluster tests, use local Kompose binary
2017-08-11 11:54:40 -04:00
Charlie Drage
e89e41b9fb Update cluster tests, use local Kompose binary
Uses the local kompose binary that was built, not the one stored in the
GOPATH bin folder.

For example, using `./kompose` instead of `kompose`.

Disables `make bin` generation for Kubernetes tests.
2017-08-11 11:20:04 -04:00