Commit Graph

205 Commits

Author SHA1 Message Date
Hang Yan
5d7ed192a4
Code Refactor (#1438)
* Code refactor
Signed-off-by: Hang Yan <hang.yan@hotmail.com>
2021-10-03 17:33:43 +08:00
ichx
2f081075a8
Fix misuse in struct kobject.ServiceConfig.Port (#1423) 2021-08-29 21:37:22 +08:00
ichx
e82fe96c38
Add support for negated placement constraint (#1419) 2021-08-27 22:49:55 +08:00
Kubernetes Prow Robot
94bff75a15
Merge pull request #1401 from tk42/service_account
Add ServiceAccountName
2021-08-12 07:15:47 -07:00
tk42
998dbd72f2 Fixed LabelServiceAccountName 2021-08-12 21:47:53 +09:00
Lex Cao
ef474809e3
Fix build context (#1411) 2021-08-11 09:43:42 +08:00
tk42
f7f987de49 Add ServiceAccountName
The label `kompose.service.accountname` defines the service account name
to provide the credential info of the pod.
2021-07-24 08:44:07 +09:00
tk42
deb00f3407
support multiple containers in a pod (#1394) 2021-07-08 09:48:05 +08:00
exokortex
c51d59566b
actually use normalizeNetworkNames to produce valid network names (#1393) 2021-07-07 14:29:03 +08:00
james song
0b331d9e5d
Fixed, #1385 (#1386)
Add support for more readiness args
2021-05-19 23:52:33 +08:00
Hang Yan
bd1abffb16
Fix labels merge error (#1380) 2021-05-01 18:27:41 +08:00
Rémy Léone
395d99fb7d
add support for golangci-lint (#1373) 2021-04-07 11:10:56 +08:00
João Vitor Paes de Barros do Carmo
0036f0c32b
Add readiness healthcheck generation by label (#1366) 2021-03-17 18:02:50 +08:00
namusyaka
01f18cb3cf
improve tests for loadV3Ports (#1349)
* improve tests for loadV3Ports

* fix a wrong test by passing "expose" appropriately
2020-11-06 11:46:18 +08:00
namusyaka
8b06045c70
Support port range for docker-compose v2 (#1345)
* allow port range specification in v1v2

* improve tests for loadPorts

* add port range to fixtures of docker-compose v2

* update fixtures to follow up on #1341
2020-11-04 22:16:33 +08:00
Hang Yan
ee3228cb7a
Bump docker version (#1334)
to support compose 3.8
2020-10-31 17:30:28 +08:00
Hang Yan
f31257f5cf
Add support for compose 2.x (#1333) 2020-10-31 08:27:50 +08:00
Hang Yan
525b68f027
Go mod (#1305)
* Use go mod instead of glide
* Add `--with-kompose-annotation` flag to allow us to switch it off for tests
* Remove hostpid support (since the newest sdk does not support it)
* Create new test script and fixtures
* Remove replicationcontroller support
2020-08-07 17:25:52 +08:00
Jing Guo
8edc5f4d01
fix stop_grace_period in v3 (#1300) 2020-08-02 17:57:29 +08:00
windayski
42fd5ede3e
fix typo (#1281) 2020-06-18 08:40:29 -04:00
Hang Yan
49d8133fb9
Support v2 restart unless-stopped (#1244) 2020-02-22 19:25:29 +08:00
Hang Yan
e7f05588bf
Support deploy update_config (#1232) 2020-01-05 19:30:41 +08:00
Hang Yan
4d864a9aab
Support deploy labels (#1231) 2020-01-05 11:35:32 +08:00
Hang Yan
05e9bf4fc8
Support config short syntax and fix old bugs (#1230) 2020-01-05 10:19:22 +08:00
Hang Yan
fe4301192a
Refactor code and fix build (#1228) 2020-01-04 17:17:14 +08:00
Hang Yan
1089a26844
Support port expose (#1227) 2020-01-04 14:15:10 +08:00
Chander G
5732a555cb Concat and merge service fields when merging compose files (#1186) (#1226)
according to docker compose specs, certain fields are merged and
certain others are concatented
2020-01-03 23:17:29 +08:00
Hang Yan
25337eb82c
Fix v3 hostpath path concatenate error (#1222) 2019-12-28 18:40:36 +08:00
Hang Yan
ae138029a1
Fix hostpath path translate error (#1221) 2019-12-28 18:01:38 +08:00
Hang Yan
34b827c97e
Support use configmap as volume (#1216) 2019-12-28 01:02:27 +08:00
Hang Yan
d2d0d61cf2
Merge will include deploy resources (#1214) 2019-12-27 13:51:11 +08:00
Hang Yan
1f0a097836
Support assign nodeport port in labels (#1210) 2019-12-26 23:45:58 +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
sivanzcw
d03a6a9474 fix golint error about comment on exported variable (#1178) 2019-11-14 11:38:48 +08:00
Hang Yan
fb7a92ca5e Fix placement parser panic (#1121) 2019-04-04 15:31:06 -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
Suraj Deshmukh
294c28b10c
Merge pull request #1079 from xichengliudui/fix18111502
delete excess code
2018-11-20 07:25:31 +05:30
SataQiu
12171cf54f fix typo: generting -> generating 2018-11-15 16:14:50 +08:00
xichengliudui
c2fe9e514f delete excess code 2018-11-13 22:35:10 -05:00
Hang Yan
b8aada8f33
Merge pull request #1061 from hangyan/fix/stdin
Support read data from stdin
2018-10-02 10:33:47 +08:00
Roberto C. Morano
424f1a9a2c Propagate dots into valid service names (#1063)
* normalize '.' (dot) to '-' (dash) in service names

* added warning about the dot character replacements in service names

* fix gofmt compliance

* also normalize container names (need lowercase)

* splitted normalization for volumes and service names into different functions (it conflicted with './' volumes replacement)

* changed volume normalization to use the new own normalization function

* changed container normalization to use its new own normalization function

* updated as per discussed in PR #1063 review
2018-09-28 20:20:01 +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
João Vitor Paes de Barros do Carmo
e9dab2781a Unit Test added to Placement Constraints Custom Labels 2018-07-04 17:35:56 -04:00
João Vitor Paes de Barros do Carmo
e2ed3a95b7 support node.labels at placement 2018-06-20 18:26:44 -04: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
xianlubird
a4efdd6cca Add label 'kompose.controller.type' set service convert controller type 2018-05-12 11:52:23 +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
Xianlu Bird
c496fa4373 Fix golint warnings (#992) 2018-04-27 09:28:49 -04: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
Tomas Kral
25f8ba42f9
Merge pull request #976 from hangyan/hostname-domain-support
Support hostname and domainname
2018-04-11 15:58:18 +02:00
Hang Yan
3c531fea66 Fix typos in comments 2018-04-01 16:01:51 +08:00
Hang Yan
88b8e316b9 Support hostname and domainname 2018-03-31 12:00:37 +08:00
Hang Yan
505cb8b754 Fix golint warnings 2018-03-25 16:22:08 +08:00
Charlie Drage
5d733f33cf
Merge pull request #954 from hangyan/support-compose-v3.2
Add support for compose v3.2
2018-03-22 10:02:32 -04:00
Hang Yan
6e5b6a3055 Fix deploy resources parse error 2018-03-15 14:00:17 +08:00
Hang Yan
61ff9eeeaa Add support for compose v3.2 2018-03-09 00:13:10 +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
Hang Yan
723bd0f9d8 Support old restart policy in compose v3 2018-03-07 13:35:36 +08:00
Hang Yan
ea8b373105 Fix broken links for volume in comments 2018-03-03 19:25:39 +08:00
Hang Yan
a1090ecbf9 Refactor label names to const strings 2018-02-25 14:32: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
2b135cfe58
Remove unneeded TODO comment 2018-02-07 00:04:57 +08:00
Oliver Bristow
35a782024d Add kompose.service.expose.tls-secret 2017-12-18 15:56:38 +00:00
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
5de4aa85f8 Added sirupsen and updated all occurances
Updated `sirupsen`, `docker/cli`, `docker/libcompose` in `glide`,
Also changed `Sirupsen` with `sirupsen` in all kompose packages as well as in
`docker/distribution` packages
2017-11-27 12:28:46 +05:30
Anatoli Babenia
1975c32740 Set service volume size with kompose.volume.size label (#235)
1. Copy labels from compose to kobject
2. If kompose.volume.size is set on service level, use it

Internal API changes:

- Add PVCSize to kobject Volumes struct
- Pass default volume size as CreatePVC() param
2017-11-12 13:05:55 +03:00
xianlubird
9b66188144 Ignore links attribute and print warning message
Signed-off-by: xianlubird@gmail.com
2017-11-08 10:08:12 +08:00
Suraj Narwade
c7d6bc63d9 Added support for build key in v3
Resolves #636

This PR will add support for `build` in docker compose v3.
As https://github.com/docker/cli/pull/481 got merged now
2017-10-25 14:38:08 +05:30
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
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
Suraj Narwade
f51a7d096e Fixed go vet
Fixes #825 (since `go vet` was failing locally while doing `make test`)
2017-09-26 16:59:13 +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
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
Suraj Narwade
641f8f8932 Added support for group_add key
This PR will add support for `group_add` key which will map to
supplemental group in pod security context.
2017-08-10 11:54:35 +05:30
Charlie Drage
af26b797a2 Add CPU limit, CPU Reservation and Memory Reservation
This adds support for CPU limit, CPU reservation as well as memory
reservation.

Specifically, when using the `deploy` key in Docker Compose.
2017-08-03 09:41:14 -04:00
Suraj Narwade
d5a5f42d8b Handling Volume at early stage
It will resolve #544 as well as refactor volume handling part.
2017-07-26 19:59:05 +05:30
Charlie Drage
787b7d9261 kubernetes-incubator -> kubernetes
Today, we graduate from the incubator, thus all links are updates from
kubernetes-incubator to kubernetes
2017-07-12 15:42:13 -04:00
Charlie Drage
b8d64ea336 Merge pull request #677 from cdrage/its-2017
2016 -> 2017 for licensing
2017-07-07 10:10:02 -04:00
Suraj Narwade
9dcb2bfba6 added support for restart-policy keys in v3
Resolves `restart_policy` from issue #644
2017-07-06 17:44:19 +05:30
Suraj Narwade
041d7f7d61 Added support for replicas keys in v3
resolves #644 `replicas` key
2017-07-04 12:40:12 +05:30
Charlie Drage
ce32bb817d 2016 -> 2017 for licensing
New year, update to the license.
2017-06-28 10:49:52 -04:00
Suraj Narwade
9bd3488512 Fixes kompose.service.type label issue
Minor Fix, resolves #673
2017-06-27 09:52:11 +05:30
Charlie Drage
c5cac569a2 Merge pull request #658 from kadel/fixv3EnvSubstitution
fix env substitution for docker compose v3
2017-06-20 09:41:20 -04:00
Tomas Kral
ef8c7a7a0a
fix env substitution for docker compose v3 2017-06-20 15:16:12 +02:00
Abhishek
1401a39cbd Changing printf verb %s to %v in compose_test.go 2017-06-20 09:58:22 +05:30
Suraj Narwade
209cda28d2 Failing when port is specified with labels
Resolves #522
Kompose will give FATAL error if labels are given but ports are not defined
2017-06-15 09:30:01 +05:30
Charlie Drage
2b58307191 Add v3 support
This does a major refactor on the compose.go functions as well as brings
in a new era of v3 support to Kompose.

Similar to how we utilize libcompose, we utilize docker/cli's "stack
deploy" code which has a built-in v3 parser. We convert the parsed
structure to our own and then convert it to Kubernetes/OpenShift
artifacts.
2017-06-13 09:44:48 -04:00
Charlie Drage
1f0cf0b2e1 Merge pull request #609 from surajnarwade/validate_dockerfilepath
Validate dockerfilepath in buildconfig
2017-05-31 13:13:04 -04:00
gitlawr
1485ed4479 add support for "pid" key
solve #610
convert service.pid to Pod.Spec.HostPid
set Pod.Spec.HostPid to true if service.pid ="host", to false otherwise
update conversion.md on support for the key
2017-05-31 22:39:17 +08:00
Suraj Narwade
581e181967 Validate dockerfilepath in buildconfig
This PR will resolve #594 by validating dockerfilepath based on whether
it is relative path or not.
2017-05-30 16:31:20 +05:30