Skip to content

Commit c3b0129

Browse files
committed
refactor: docker-compose declarative configuration
1 parent eaa2d35 commit c3b0129

43 files changed

Lines changed: 875 additions & 793 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

pkg/devspace/compose/loader.go

Lines changed: 365 additions & 357 deletions
Large diffs are not rendered by default.

pkg/devspace/compose/loader_test.go

Lines changed: 15 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"io/ioutil"
66
"os"
77
"path/filepath"
8+
"strings"
89
"testing"
910
1011
composeloader "github.com/compose-spec/compose-go/loader"
@@ -28,7 +29,9 @@ func TestLoad(t *testing.T) {
2829
}
2930
3031
for _, dir := range dirs {
31-
testLoad(dir.Name(), t)
32+
if !strings.HasPrefix(dir.Name(), "x_") {
33+
testLoad(dir.Name(), t)
34+
}
3235
}
3336
}
3437
@@ -75,11 +78,11 @@ func testLoad(dir string, t *testing.T) {
7578
7679
assert.Check(
7780
t,
78-
cmp.DeepEqual(toDeploymentMap(expectedConfig.Deployments), toDeploymentMap(actualConfig.Deployments)),
81+
cmp.DeepEqual(expectedConfig.Deployments, actualConfig.Deployments),
7982
"deployment properties did not match in test case %s",
8083
dir,
8184
)
82-
actualDeployments := actualConfig.Deployments
85+
// actualDeployments := actualConfig.Deployments
8386
actualConfig.Deployments = nil
8487
expectedConfig.Deployments = nil
8588
@@ -132,16 +135,16 @@ func testLoad(dir string, t *testing.T) {
132135
err = dockerCompose.WithServices(nil, func(service composetypes.ServiceConfig) error {
133136
waitHookIdx := getWaitHookIndex(service.Name, actualHooks)
134137
135-
for _, dep := range service.GetDependencies() {
136-
// Check deployments order
137-
assert.Check(t, getDeploymentIndex(dep, actualDeployments) < getDeploymentIndex(service.Name, actualDeployments), "%s deployment should come after %s for test case %s", service.Name, dep, dir)
138+
// for _, dep := range service.GetDependencies() {
139+
// // Check deployments order
140+
// assert.Check(t, getDeploymentIndex(dep, actualDeployments) < getDeploymentIndex(service.Name, actualDeployments), "%s deployment should come after %s for test case %s", service.Name, dep, dir)
138141
139-
// Check for wait hook order
140-
_, ok := expectedWaitHooks[service.Name]
141-
if ok {
142-
assert.Check(t, getWaitHookIndex(dep, actualHooks) < waitHookIdx, "%s wait hook should come after %s", service.Name, dep)
143-
}
144-
}
142+
// // Check for wait hook order
143+
// _, ok := expectedWaitHooks[service.Name]
144+
// if ok {
145+
// assert.Check(t, getWaitHookIndex(dep, actualHooks) < waitHookIdx, "%s wait hook should come after %s", service.Name, dep)
146+
// }
147+
// }
145148
146149
uploadDoneHookIdx := getUploadDoneHookIndex(service.Name, actualHooks)
147150
if uploadDoneHookIdx != -1 {
@@ -183,15 +186,6 @@ func toWaitHookMap(hooks []*latest.HookConfig) map[string]latest.HookConfig {
183186
return hookMap
184187
}
185188
186-
func getDeploymentIndex(name string, deployments []*latest.DeploymentConfig) int {
187-
for idx, deployment := range deployments {
188-
if deployment.Name == name {
189-
return idx
190-
}
191-
}
192-
return -1
193-
}
194-
195189
func getWaitHookIndex(name string, hooks []*latest.HookConfig) int {
196190
for idx, hook := range hooks {
197191
if hook.Wait != nil && hook.Container != nil && hook.Container.LabelSelector != nil && hook.Container.LabelSelector["app.kubernetes.io/component"] == name {
Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,21 @@
1-
version: v1beta11
1+
version: v2beta1
2+
name: docker-compose
23
deployments:
3-
- name: db
4-
helm:
5-
componentChart: true
6-
values:
7-
containers:
8-
- name: db-container
9-
image: mysql/mysql-server:8.0.19
10-
- name: backend-1-2
11-
helm:
12-
componentChart: true
13-
values:
14-
containers:
15-
- name: backend-1-2-container
16-
image: mysql/mysql-server:8.0.19
4+
db:
5+
helm:
6+
chart:
7+
name: component-chart
8+
repo: https://charts.devspace.sh
9+
values:
10+
containers:
11+
- name: db-container
12+
image: mysql/mysql-server:8.0.19
13+
backend-1-2:
14+
helm:
15+
chart:
16+
name: component-chart
17+
repo: https://charts.devspace.sh
18+
values:
19+
containers:
20+
- name: backend-1-2-container
21+
image: mysql/mysql-server:8.0.19
Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,18 @@
1-
version: v1beta11
1+
version: v2beta1
2+
name: docker-compose
23
images:
34
foo:
45
image: foo
56
context: foo
67
dockerfile: foo/Dockerfile
78

89
deployments:
9-
- name: foo
10-
helm:
11-
componentChart: true
12-
values:
13-
containers:
14-
- name: foo-container
15-
image: foo
10+
foo:
11+
helm:
12+
chart:
13+
name: component-chart
14+
repo: https://charts.devspace.sh
15+
values:
16+
containers:
17+
- name: foo-container
18+
image: foo
Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
services:
22
foo:
33
build:
4-
context: foo
54
args:
65
- buildno=1
76
- gitcommithash=cdc3b19
Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
1-
version: v1beta11
1+
version: v2beta1
2+
name: docker-compose
3+
24
images:
35
foo:
46
image: foo
5-
context: foo
6-
dockerfile: foo/Dockerfile
7-
build:
8-
docker:
9-
options:
10-
buildArgs:
11-
buildno: 1
12-
gitcommithash: cdc3b19
7+
dockerfile: Dockerfile
8+
buildArgs:
9+
buildno: 1
10+
gitcommithash: cdc3b19
1311

1412
deployments:
15-
- name: foo
16-
helm:
17-
componentChart: true
18-
values:
19-
containers:
20-
- name: foo-container
21-
image: foo
13+
foo:
14+
helm:
15+
chart:
16+
name: component-chart
17+
repo: https://charts.devspace.sh
18+
values:
19+
containers:
20+
- name: foo-container
21+
image: foo
Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
services:
22
foo:
33
build:
4-
context: foo
54
args:
65
buildno: 1
76
gitcommithash: cdc3b19
Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
1-
version: v1beta11
1+
version: v2beta1
2+
name: docker-compose
3+
24
images:
35
foo:
46
image: foo
5-
context: foo
6-
dockerfile: foo/Dockerfile
7-
build:
8-
docker:
9-
options:
10-
buildArgs:
11-
buildno: 1
12-
gitcommithash: cdc3b19
7+
dockerfile: Dockerfile
8+
buildArgs:
9+
buildno: 1
10+
gitcommithash: cdc3b19
1311

1412
deployments:
15-
- name: foo
16-
helm:
17-
componentChart: true
18-
values:
19-
containers:
20-
- name: foo-container
21-
image: foo
13+
foo:
14+
helm:
15+
chart:
16+
name: component-chart
17+
repo: https://charts.devspace.sh
18+
values:
19+
containers:
20+
- name: foo-container
21+
image: foo
Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,19 @@
1-
version: v1beta11
1+
version: v2beta1
2+
name: docker-compose
3+
24
images:
35
foo:
46
image: foo
57
context: foo
68
dockerfile: foo/Dockerfile
79

810
deployments:
9-
- name: foo
10-
helm:
11-
componentChart: true
12-
values:
13-
containers:
14-
- name: foo-container
15-
image: foo
11+
foo:
12+
helm:
13+
chart:
14+
name: component-chart
15+
repo: https://charts.devspace.sh
16+
values:
17+
containers:
18+
- name: foo-container
19+
image: foo
Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,18 @@
1-
version: v1beta11
1+
version: v2beta1
2+
name: docker-compose
3+
24
images:
35
foo:
46
image: foo
5-
context: .
67
dockerfile: Dockerfile.prod
78

89
deployments:
9-
- name: foo
10-
helm:
11-
componentChart: true
12-
values:
13-
containers:
14-
- name: foo-container
15-
image: foo
10+
foo:
11+
helm:
12+
chart:
13+
name: component-chart
14+
repo: https://charts.devspace.sh
15+
values:
16+
containers:
17+
- name: foo-container
18+
image: foo

0 commit comments

Comments
 (0)