Skip to content

Commit b6dc86d

Browse files
committed
Add --deployments flag
1 parent 65fd9ee commit b6dc86d

File tree

13 files changed

+81
-197
lines changed

13 files changed

+81
-197
lines changed

.prettierignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
examples/

cmd/deploy.go

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package cmd
22

33
import (
4+
"strings"
5+
46
"github.com/devspace-cloud/devspace/pkg/devspace/build"
57
"github.com/devspace-cloud/devspace/pkg/devspace/config/configutil"
68
"github.com/devspace-cloud/devspace/pkg/devspace/config/generated"
@@ -27,6 +29,7 @@ type DeployCmd struct {
2729
ForceBuild bool
2830
BuildSequential bool
2931
ForceDeploy bool
32+
Deployments string
3033
ForceDependencies bool
3134

3235
SwitchContext bool
@@ -67,6 +70,7 @@ devspace deploy --kube-context=deploy-context
6770
deployCmd.Flags().BoolVar(&cmd.BuildSequential, "build-sequential", false, "Builds the images one after another instead of in parallel")
6871
deployCmd.Flags().BoolVarP(&cmd.ForceDeploy, "force-deploy", "d", false, "Forces to (re-)deploy every deployment")
6972
deployCmd.Flags().BoolVar(&cmd.ForceDependencies, "force-dependencies", false, "Forces to re-evaluate dependencies (use with --force-build --force-deploy to actually force building & deployment of dependencies)")
73+
deployCmd.Flags().StringVar(&cmd.Deployments, "deployments", "", "Only deploy a specifc deployment (You can specify multiple deployments comma-separated")
7074

7175
return deployCmd
7276
}
@@ -147,8 +151,17 @@ func (cmd *DeployCmd) Run(cobraCmd *cobra.Command, args []string) {
147151
}
148152
}
149153

154+
// What deployments should be deployed
155+
deployments := []string{}
156+
if cmd.Deployments != "" {
157+
deployments = strings.Split(cmd.Deployments, ",")
158+
for index := range deployments {
159+
deployments[index] = strings.TrimSpace(deployments[index])
160+
}
161+
}
162+
150163
// Deploy all defined deployments
151-
err = deploy.All(config, generatedConfig.GetActive(), client, false, cmd.ForceDeploy, builtImages, log.GetInstance())
164+
err = deploy.All(config, generatedConfig.GetActive(), client, false, cmd.ForceDeploy, builtImages, deployments, log.GetInstance())
152165
if err != nil {
153166
log.Fatal(err)
154167
}

cmd/dev.go

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package cmd
33
import (
44
"fmt"
55
"os"
6+
"strings"
67
"sync"
78
"time"
89

@@ -32,6 +33,7 @@ type DevCmd struct {
3233
ForceBuild bool
3334
BuildSequential bool
3435
ForceDeploy bool
36+
Deployments string
3537
ForceDependencies bool
3638

3739
Sync bool
@@ -75,6 +77,7 @@ Starts your project in development mode:
7577
devCmd.Flags().BoolVar(&cmd.BuildSequential, "build-sequential", false, "Builds the images one after another instead of in parallel")
7678

7779
devCmd.Flags().BoolVarP(&cmd.ForceDeploy, "force-deploy", "d", false, "Forces to deploy every deployment")
80+
devCmd.Flags().StringVar(&cmd.Deployments, "deployments", "", "Only deploy a specifc deployment (You can specify multiple deployments comma-separated")
7881
devCmd.Flags().BoolVar(&cmd.ForceDependencies, "force-dependencies", false, "Forces to re-evaluate dependencies (use with --force-build --force-deploy to actually force building & deployment of dependencies)")
7982

8083
devCmd.Flags().BoolVarP(&cmd.SkipPipeline, "skip-pipeline", "x", false, "Skips build & deployment and only starts sync, portforwarding & terminal")
@@ -181,8 +184,17 @@ func (cmd *DevCmd) buildAndDeploy(config *latest.Config, client kubernetes.Inter
181184

182185
// Deploy all defined deployments
183186
if config.Deployments != nil {
187+
// What deployments should be deployed
188+
deployments := []string{}
189+
if cmd.Deployments != "" {
190+
deployments = strings.Split(cmd.Deployments, ",")
191+
for index := range deployments {
192+
deployments[index] = strings.TrimSpace(deployments[index])
193+
}
194+
}
195+
184196
// Deploy all
185-
err = deploy.All(config, generatedConfig.GetActive(), client, true, cmd.ForceDeploy, builtImages, log.GetInstance())
197+
err = deploy.All(config, generatedConfig.GetActive(), client, true, cmd.ForceDeploy, builtImages, deployments, log.GetInstance())
186198
if err != nil {
187199
return fmt.Errorf("Error deploying: %v", err)
188200
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
kind: Deployment
2+
apiVersion: extensions/v1beta1
3+
metadata:
4+
name: devspace
5+
spec:
6+
replicas: 1
7+
template:
8+
metadata:
9+
labels:
10+
app.kubernetes.io/component: {{ $.Release.Name | quote }}
11+
app.kubernetes.io/name: devspace-app
12+
helm.sh/chart: "{{ $.Chart.Name }}-{{ $.Chart.Version }}"
13+
spec:
14+
containers:
15+
- name: default
16+
image: {{ .Values.image }}

examples/minikube/chart/templates/deployments.yaml

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

examples/minikube/chart/templates/pod-autoscaling.yaml

Lines changed: 0 additions & 29 deletions
This file was deleted.
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
apiVersion: v1
2+
kind: Service
3+
metadata:
4+
labels:
5+
app.kubernetes.io/name: devspace-app
6+
name: external
7+
spec:
8+
ports:
9+
- name: port-0
10+
port: 80
11+
protocol: TCP
12+
targetPort: 3000
13+
selector:
14+
app.kubernetes.io/component: {{ $.Release.Name | quote }}
15+
app.kubernetes.io/name: devspace-app
16+
type: ClusterIP

examples/minikube/chart/templates/services.yaml

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

examples/minikube/chart/templates/volumes.yaml

Lines changed: 0 additions & 13 deletions
This file was deleted.
Lines changed: 2 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,2 @@
1-
components:
2-
- name: default
3-
containers:
4-
- # Image tag will be automatically updated in runtime
5-
# when running devspace deploy or devspace dev
6-
image: devspace
7-
resources:
8-
limits:
9-
cpu: "100m"
10-
memory: "200Mi"
11-
ephemeralStorage: "1Gi"
12-
# Environment variables
13-
env: []
14-
# Mount volumes in this container
15-
volumeMounts: []
16-
# Expose your component via service
17-
# URLs will be connected if name=external and externalPort=80
18-
service:
19-
name: external
20-
type: ClusterIP
21-
ports:
22-
- externalPort: 80
23-
containerPort: 3000
24-
25-
# Define persistent volumes here
26-
# Then mount them in containers above
27-
volumes: []
28-
29-
# Defines image pull secrets
30-
# DevSpace CLI will append all pull secrets which are automatically created
31-
# More infos on: https://devspace.cloud/docs/cli/images/pull-secrets
32-
pullSecrets: []
1+
# Will be overriden during devspace dev / devspace deploy
2+
image: devspace

0 commit comments

Comments
 (0)