Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 40b2e23

Browse files
committedMar 25, 2022
fix: small fixes & examples update
1 parent cf1cb71 commit 40b2e23

File tree

27 files changed

+3106
-1683
lines changed

27 files changed

+3106
-1683
lines changed
 
Lines changed: 24 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,34 @@
1-
version: v1beta11
1+
version: v2beta1
2+
name: buildkit-in-cluster
3+
4+
# Define an image to use
25
vars:
3-
- name: IMAGE
4-
value: myusername/devspace
6+
IMAGE: myusername/devspace
7+
8+
# Build the dockerfile with buildkit
59
images:
6-
default:
10+
my-image:
711
image: ${IMAGE}
8-
build:
9-
buildKit:
12+
buildKit:
1013
inCluster: {}
14+
15+
# Deploy the built image with helm and the component chart
1116
deployments:
12-
- name: quickstart
17+
my-deployment:
18+
updateImageTags: true
1319
helm:
14-
componentChart: true
1520
values:
1621
containers:
1722
- image: ${IMAGE}
18-
service:
19-
ports:
20-
- port: 3000
23+
24+
# Is started after images were built and deployments deployed
2125
dev:
22-
ports:
23-
- imageSelector: ${IMAGE}
24-
forward:
25-
- port: 3000
26-
sync:
27-
- imageSelector: ${IMAGE}
28-
excludePaths:
29-
- node_modules
26+
my-dev:
27+
imageSelector: ${IMAGE}
28+
logs: {}
29+
ports:
30+
- port: 3000
31+
sync:
32+
- path: ./
33+
excludePaths:
34+
- node_modules

‎examples/buildkit/devspace.yaml

Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,33 @@
1-
version: v1beta11
1+
version: v2beta1
2+
name: buildkit
3+
4+
# Define an image to use
25
vars:
3-
- name: IMAGE
4-
value: myusername/devspace
6+
IMAGE: myusername/devspace
7+
8+
# Build the dockerfile with buildkit
59
images:
6-
default:
10+
my-image:
711
image: ${IMAGE}
8-
build:
9-
buildKit: {}
12+
buildKit: {}
13+
14+
# Deploy the built image with helm and the component chart
1015
deployments:
11-
- name: quickstart
16+
my-deployment:
17+
updateImageTags: true
1218
helm:
13-
componentChart: true
1419
values:
1520
containers:
1621
- image: ${IMAGE}
17-
service:
18-
ports:
19-
- port: 3000
22+
23+
# Is started after images were built and deployments deployed
2024
dev:
21-
ports:
22-
- imageSelector: ${IMAGE}
23-
forward:
24-
- port: 3000
25-
sync:
26-
- imageSelector: ${IMAGE}
25+
my-dev:
26+
imageSelector: ${IMAGE}
27+
logs: {}
28+
ports:
29+
- port: 3000
30+
sync:
31+
- path: ./
2732
excludePaths:
28-
- node_modules
33+
- node_modules

‎examples/custom-builder/devspace.yaml

Lines changed: 28 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,36 @@
11
# Note: This example only works in minikube, since the custom builder
22
# does not push the image
3-
version: v1beta11
3+
version: v2beta1
4+
name: custom-builder
5+
46
vars:
5-
- name: IMAGE
6-
value: myusername/devspace
7+
IMAGE: myusername/devspace
8+
79
images:
8-
default:
10+
my-image:
911
image: ${IMAGE}
10-
build:
11-
custom:
12-
skipImageArg: true
13-
command: |-
14-
# Also works on windows as this is executed in a golang shell
15-
docker build -t ${runtime.images.default.image}:${runtime.images.default.tag} . -f custom/Dockerfile
16-
onChange:
17-
- main.go
12+
custom:
13+
command: |-
14+
# Also works on windows as this is executed in a pseudo shell
15+
docker build -t ${runtime.images.my-image.image}:${runtime.images.my-image.tag} . -f custom/Dockerfile
16+
onChange:
17+
- main.go
18+
1819
deployments:
19-
- name: devspace-default
20-
kubectl:
21-
manifests:
22-
- kube
20+
my-deployment:
21+
updateImageTags: true
22+
kubectl:
23+
manifests:
24+
- kube
25+
2326
dev:
24-
ports:
25-
- imageSelector: ${IMAGE}
26-
forward:
27+
my-dev:
28+
imageSelector: ${IMAGE}
29+
logs: {}
30+
command: ["go", "run", "main.go"]
31+
ports:
2732
- port: 8080
28-
sync:
29-
- imageSelector: ${IMAGE}
33+
sync:
34+
- path: ./
35+
onUpload:
36+
restartContainer: true

‎examples/dependencies/dependency1/devspace.yaml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,3 @@ deployments:
1212
values:
1313
containers:
1414
- image: ${IMAGE}
15-
hooks:
16-
- command: "echo 'Hello from dependency1'"
17-
events: ["before:build:*"]

‎examples/dependencies/devspace.yaml

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,16 @@
1-
version: v1beta11
1+
version: v2beta1
2+
23
dependencies:
3-
- name: dependency1
4-
source:
4+
dependency1:
55
path: dependency1
6-
- name: dependency2
7-
source:
6+
dependency2:
87
path: dependency2
9-
# Use dev.ports config from dependency2
10-
dev:
11-
ports: true
12-
- name: dependency3
13-
source:
8+
pipeline: dev # Allow ports etc from dependency2
9+
dependency3:
1410
git: https://github.com/devspace-cloud/example-dependency.git
11+
1512
dev:
16-
# Open terminal to the pod with the imageName created in dependency1
17-
terminal:
18-
imageSelector: image(dependency1.default)
13+
my-dev:
14+
imageSelector: ${runtime.dependencies.dependency1.images.default}
15+
terminal: {}
1916

‎examples/hooks/Dockerfile

Lines changed: 0 additions & 8 deletions
This file was deleted.

‎examples/hooks/devspace.yaml

Lines changed: 0 additions & 32 deletions
This file was deleted.

‎examples/hooks/go.mod

Lines changed: 0 additions & 1 deletion
This file was deleted.

‎examples/hooks/main.go

Lines changed: 0 additions & 17 deletions
This file was deleted.
Lines changed: 23 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,29 @@
1-
version: v1beta11
1+
version: v2beta1
2+
name: hot-reload-container-restart
3+
24
vars:
3-
- name: IMAGE
4-
value: myusername/devspace
5+
IMAGE: myusername/devspace
6+
57
images:
6-
default:
8+
my-image:
79
image: ${IMAGE}
8-
# this option tells devspace to automatically wrap the Dockerfile entrypoint in memory
9-
# with a small restart helper script so that the process can be easily restarted from within the
10-
# container. This should work with most Dockerfiles that have an ENTRYPOINT statement.
11-
# This will also work for build targets.
12-
# Note: If you override the entrypoint in the kubernetes yaml via the Pod.spec.containers.command,
13-
# please make sure you wrap the command with the devspace script '/devspace-restart-helper'
14-
injectRestartHelper: true
15-
# If you don't have an entrypoint defined in your Dockerfile, you can also define an entrypoint here
16-
# entrypoint: ["go"]
17-
# cmd: ["run", "main.go"]
10+
1811
deployments:
19-
- name: quickstart
20-
helm:
21-
componentChart: true
22-
values:
23-
containers:
24-
- image: ${IMAGE}
25-
service:
26-
ports:
27-
- port: 8080
12+
my-deployment:
13+
updateImageTags: true
14+
helm:
15+
values:
16+
containers:
17+
- image: ${IMAGE}
18+
2819
dev:
29-
ports:
30-
- imageSelector: ${IMAGE}
31-
forward:
20+
my-dev:
21+
imageSelector: ${IMAGE}
22+
command: ["go", "run", "main.go"] # Needed so that DevSpace knows which command to restart
23+
logs: {}
24+
ports:
3225
- port: 8080
33-
sync:
34-
- imageSelector: ${IMAGE}
35-
onUpload:
36-
# this option tells devspace to restart the container process if something changes within
37-
# the container. This obviously only works if the restart helper script is present in the container.
38-
# You can either manually add the restart script or add the injectRestartHelper option to the image
39-
restartContainer: true
26+
sync:
27+
- path: ./
28+
onUpload:
29+
restartContainer: true

‎examples/kaniko/chart/Chart.yaml

Lines changed: 0 additions & 3 deletions
This file was deleted.

‎examples/kaniko/chart/templates/deployments.yaml

Lines changed: 0 additions & 91 deletions
This file was deleted.

‎examples/kaniko/chart/templates/pod-autoscaling.yaml

Lines changed: 0 additions & 29 deletions
This file was deleted.

‎examples/kaniko/chart/templates/services.yaml

Lines changed: 0 additions & 27 deletions
This file was deleted.

‎examples/kaniko/chart/templates/volumes.yaml

Lines changed: 0 additions & 13 deletions
This file was deleted.

‎examples/kaniko/chart/values.yaml

Lines changed: 0 additions & 27 deletions
This file was deleted.

‎examples/kaniko/devspace.yaml

Lines changed: 21 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,27 @@
1-
version: v1beta11
1+
version: v2beta1
2+
name: kaniko
3+
24
vars:
3-
- name: IMAGE
4-
value: myuser/myimage
5+
IMAGE: myuser/myimage
6+
57
images:
6-
default:
8+
my-image:
79
image: ${IMAGE}
8-
entrypoint: ["sleep"]
9-
cmd: ["99999999999999"]
10-
build:
11-
kaniko: {}
12-
# custom kaniko image
13-
# image: mykaniko/kaniko:latest
14-
# additional mounts for the kaniko pod
15-
# additionalMounts:
16-
# - configMap:
17-
# name: test
18-
# items:
19-
# - key: key
20-
# path: config.json
21-
# mountPath: /test/test
22-
# - secret:
23-
# name: test2
24-
# items:
25-
# - key: key
26-
# path: config.json
27-
# mountPath: /test/test
10+
kaniko: {}
11+
2812
deployments:
29-
- name: devspace-default
30-
helm:
31-
chart:
32-
name: ./chart
13+
my-deployment:
14+
updateImageTags: true
15+
helm:
16+
values:
17+
containers:
18+
- image: ${IMAGE}
19+
3320
dev:
34-
ports:
35-
- imageSelector: ${IMAGE}
36-
forward:
37-
- port: 8080
38-
sync:
39-
- imageSelector: ${IMAGE}
40-
terminal:
21+
my-dev:
4122
imageSelector: ${IMAGE}
23+
terminal: {}
24+
ports:
25+
- port: 8080
26+
sync:
27+
- path: ./

‎examples/kind/devspace.yaml

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,26 @@
1-
version: v1beta11
1+
version: v2beta1
2+
23
vars:
3-
- name: IMAGE
4-
value: localhost:5000/app
4+
IMAGE: localhost:5000/app
5+
56
images:
6-
default:
7+
my-image:
78
image: ${IMAGE}
9+
810
deployments:
9-
- name: quickstart
11+
my-deployment:
1012
helm:
11-
componentChart: true
1213
values:
1314
containers:
1415
- image: ${IMAGE}
15-
service:
16-
ports:
17-
- port: 3000
16+
1817
dev:
19-
ports:
20-
- imageSelector: ${IMAGE}
21-
forward:
22-
- port: 3000
23-
sync:
24-
- imageSelector: ${IMAGE}
25-
excludePaths:
26-
- node_modules
18+
my-dev:
19+
imageSelector: ${IMAGE}
20+
logs: {}
21+
ports:
22+
- port: 3000
23+
sync:
24+
- path: ./
25+
excludePaths:
26+
- node_modules

‎examples/kustomize/devspace.yaml

Lines changed: 19 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,22 @@
1-
version: v1beta11
2-
vars:
3-
- name: IMAGE
4-
value: yourusername/devspace
5-
images:
6-
default:
7-
image: loft-sh/vcluster
1+
version: v2beta1
2+
83
deployments:
9-
- name: devspace-app
10-
kubectl:
11-
manifests:
12-
- kube
13-
kustomize: true
4+
my-deployment:
5+
kubectl:
6+
kustomize: true
7+
manifests:
8+
- kube
9+
1410
dev:
15-
ports:
16-
- imageSelector: ${IMAGE}
17-
forward:
11+
my-dev:
12+
labelSelector:
13+
app.kubernetes.io/component: default
14+
devImage: node:17-alpine
15+
terminal: {}
16+
workingDir: /app
17+
ports:
1818
- port: 3000
19-
sync:
20-
- imageSelector: ${IMAGE}
21-
excludePaths:
22-
- node_modules
23-
terminal:
24-
imageSelector: ${IMAGE}
19+
sync:
20+
- path: ./
21+
excludePaths:
22+
- node_modules

‎examples/kustomize/package-lock.json

Lines changed: 2864 additions & 1212 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎examples/microservices/devspace.yaml

Lines changed: 7 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,9 @@
1-
# This example only works with minikube and docker desktop
2-
# If you want to try this example in other
3-
# Clusters you have to exchange the image names
4-
# and enable image pushing
5-
version: v1beta11
6-
images:
1+
version: v2beta1
2+
3+
dependencies:
74
node:
8-
image: node
9-
dockerfile: node/Dockerfile
10-
context: node/
5+
path: node
6+
pipeline: dev
117
php:
12-
image: php
13-
dockerfile: php/Dockerfile
14-
context: php/
15-
deployments:
16-
- name: devspace-node
17-
kubectl:
18-
manifests:
19-
- node/kube/*
20-
- name: devspace-php
21-
helm:
22-
chart:
23-
name: php/chart
24-
dev:
25-
ports:
26-
- imageSelector: image(node):tag(node)
27-
forward:
28-
- port: 3000
29-
sync:
30-
- imageSelector: image(node):tag(node)
31-
localSubPath: ./node
32-
excludePaths:
33-
- node_modules
34-
- imageSelector: image(php):tag(php)
35-
localSubPath: ./php
36-
terminal:
37-
imageSelector: image(node):tag(node)
8+
path: php
9+
pipeline: dev
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
version: v2beta1
2+
name: node
3+
4+
vars:
5+
IMAGE: myuser/node
6+
7+
images:
8+
node:
9+
image: ${IMAGE}
10+
11+
deployments:
12+
node:
13+
updateImageTags: true
14+
kubectl:
15+
manifests:
16+
- kube/*
17+
18+
dev:
19+
node:
20+
labelSelector:
21+
release: devspace-node
22+
devImage: ${runtime.images.node}
23+
ports:
24+
- port: 3000
25+
sync:
26+
- path: ./
27+
excludePaths:
28+
- node_modules
29+
terminal: {}

‎examples/microservices/node/kube/deployment.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,3 +15,4 @@ spec:
1515
containers:
1616
- name: node
1717
image: node
18+
imagePullPolicy: Never
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
version: v2beta1
2+
name: php
3+
4+
vars:
5+
IMAGE: myuser/php
6+
7+
images:
8+
php:
9+
image: ${IMAGE}
10+
11+
deployments:
12+
php:
13+
updateImageTags: true
14+
helm:
15+
chart:
16+
name: chart
17+
values:
18+
containers:
19+
php:
20+
image: ${IMAGE}
21+
22+
dev:
23+
php:
24+
imageSelector: ${IMAGE}
25+
sync:
26+
- path: .

‎pkg/devspace/build/builder/custom/custom.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ func (b *Builder) Build(ctx *devspacecontext.Context) error {
108108
}
109109

110110
// add image arg
111-
if b.imageConf.Custom.SkipImageArg == nil || !*b.imageConf.Custom.SkipImageArg {
111+
if b.imageConf.Custom.SkipImageArg != nil && !*b.imageConf.Custom.SkipImageArg {
112112
for _, tag := range b.imageTags {
113113
if b.imageConf.Custom.ImageFlag != "" {
114114
args = append(args, b.imageConf.Custom.ImageFlag)
@@ -161,7 +161,8 @@ func (b *Builder) Build(ctx *devspacecontext.Context) error {
161161
}
162162
defer writer.Close()
163163

164-
ctx.Log.Infof("Build %s:%s with custom command '%s %s'", b.imageConf.Image, b.imageTags[0], commandPath, strings.Join(args, " "))
164+
ctx.Log.Infof("Build %s:%s with custom command", b.imageConf.Image, b.imageTags[0])
165+
ctx.Log.Debugf("Build %s:%s with custom command '%s %s' in working dir %s", b.imageConf.Image, b.imageTags[0], commandPath, strings.Join(args, " "), ctx.WorkingDir)
165166
if len(args) == 0 {
166167
err = engine.ExecuteSimpleShellCommand(ctx.Context, ctx.WorkingDir, writer, writer, nil, nil, commandPath, args...)
167168
if err != nil {

‎pkg/devspace/build/builder/restart/restart.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,9 @@ while ! [ -f $touchFile ]; do
7272
echo "Container started with restart helper."
7373
echo "Waiting for initial sync to complete before starting application..."
7474
else
75-
if (( $number % 10 == 0 )); then
75+
if [ "$counter" = 10 ]; then
7676
echo "(Still waiting for initial sync to complete)"
77+
counter=0
7778
fi
7879
fi
7980
sleep 1
@@ -107,7 +108,7 @@ while $restart; do
107108
setsid "$@" &
108109
pid=$!
109110
echo "$pid" >"$pidFile"
110-
tail --pid=$pid -f /dev/null
111+
wait "$pid"
111112
fi
112113
set -e
113114

‎pkg/devspace/services/terminal/terminal.go

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@ fi`,
203203
}
204204
}
205205
if useScreen {
206-
newCommand := []string{"screen", "-dRSqL", screenSession}
206+
newCommand := []string{"screen", "-dRSqL", screenSession, "--"}
207207
newCommand = append(newCommand, command...)
208208
command = newCommand
209209
}
@@ -212,9 +212,7 @@ fi`,
212212

213213
before := log.GetBaseInstance().GetLevel()
214214
log.GetBaseInstance().SetLevel(logrus.PanicLevel)
215-
defer log.GetBaseInstance().SetLevel(before)
216-
217-
return ctx.KubeClient.ExecStream(ctx.Context, &kubectl.ExecStreamOptions{
215+
err := ctx.KubeClient.ExecStream(ctx.Context, &kubectl.ExecStreamOptions{
218216
Pod: container.Pod,
219217
Container: container.Container.Name,
220218
Command: command,
@@ -224,6 +222,12 @@ fi`,
224222
Stderr: stderr,
225223
SubResource: kubectl.SubResourceExec,
226224
})
225+
log.GetBaseInstance().SetLevel(before)
226+
if err != nil {
227+
ctx.Log.Debugf("error executing stream: %v", err)
228+
}
229+
230+
return err
227231
}
228232

229233
func IsUnexpectedExitCode(code int) bool {

0 commit comments

Comments
 (0)
Please sign in to comment.