Skip to content

Commit 9d2548f

Browse files
committed
refactor: config changes
1 parent e0fbd57 commit 9d2548f

File tree

16 files changed

+116
-260
lines changed

16 files changed

+116
-260
lines changed

cmd/init.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -671,7 +671,7 @@ func (cmd *InitCmd) addProfileConfig(config *latest.Config, imageName string) er
671671
}
672672

673673
// If image building is disabled, move it to production profile instead of disabling it
674-
if imageConfig.Build != nil && imageConfig.Build.Disabled {
674+
if imageConfig.Build != nil {
675675
imageConfig.AppendDockerfileInstructions = []string{}
676676
imageConfig.InjectRestartHelper = false
677677
imageConfig.RebuildStrategy = latest.RebuildStrategyDefault
@@ -681,7 +681,6 @@ func (cmd *InitCmd) addProfileConfig(config *latest.Config, imageName string) er
681681
imageConfig.Build.Docker.Options.Target = ""
682682
}
683683

684-
imageConfig.Build.Disabled = false
685684
if imageConfig.Build.Docker == nil && imageConfig.Build.BuildKit == nil && imageConfig.Build.Kaniko == nil {
686685
imageConfig.Build = nil
687686
}

pkg/devspace/build/build.go

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -70,13 +70,11 @@ func (c *controller) Build(ctx *devspacecontext.Context, images []string, option
7070
if !options.Sequential {
7171
// check if all images are disabled besides one
7272
imagesToBuild := 0
73-
for k, image := range conf.Images {
73+
for k := range conf.Images {
7474
if len(images) > 0 && !stringutil.Contains(images, k) {
7575
continue
7676
}
77-
if image.Build == nil || !image.Build.Disabled {
78-
imagesToBuild++
79-
}
77+
imagesToBuild++
8078
}
8179
if len(conf.Images) <= 1 || imagesToBuild <= 1 {
8280
options.Sequential = true
@@ -95,10 +93,6 @@ func (c *controller) Build(ctx *devspacecontext.Context, images []string, option
9593
if len(images) > 0 && !stringutil.Contains(images, key) {
9694
continue
9795
}
98-
if imageConf.Build != nil && imageConf.Build.Disabled {
99-
ctx.Log.Infof("Skipping building image %s", key)
100-
continue
101-
}
10296

10397
// This is necessary for parallel build otherwise we would override the image conf pointer during the loop
10498
cImageConf := *imageConf

pkg/devspace/config/loader/validate.go

Lines changed: 10 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -216,37 +216,24 @@ func validateHooks(config *latest.Config) error {
216216
func validateDeployments(config *latest.Config) error {
217217
for index, deployConfig := range config.Deployments {
218218
if deployConfig.Name == "" {
219-
return errors.Errorf("deployments[%d].name is required", index)
219+
return errors.Errorf("deployments[%s].name is required", index)
220220
}
221221
if encoding.IsUnsafeName(deployConfig.Name) {
222-
return fmt.Errorf("deployments[%d].name %s has to match the following regex: %v", index, deployConfig.Name, encoding.UnsafeNameRegEx.String())
222+
return fmt.Errorf("deployments[%s].name %s has to match the following regex: %v", index, deployConfig.Name, encoding.UnsafeNameRegEx.String())
223223
}
224224
if deployConfig.Helm == nil && deployConfig.Kubectl == nil {
225225
return errors.Errorf("Please specify either helm or kubectl as deployment type in deployment %s", deployConfig.Name)
226226
}
227-
if deployConfig.Helm != nil {
228-
if deployConfig.Helm.Chart == nil &&
229-
(deployConfig.Helm.ComponentChart == nil || !*deployConfig.Helm.ComponentChart) {
230-
return errors.Errorf("deployments[%d].helm.chart or deployments[%d].helm.componentChart is required", index, index)
231-
}
232-
233-
if deployConfig.Helm.Chart != nil &&
234-
((deployConfig.Helm.Chart.Name != "" && deployConfig.Helm.Chart.Git != nil) ||
235-
(deployConfig.Helm.Chart.Name == "" && deployConfig.Helm.Chart.Git == nil)) {
236-
return errors.Errorf("deployments[%d].helm.chart.name or deployments[%d].helm.chart.git is required", index, index)
237-
}
238-
}
239-
240227
if deployConfig.Kubectl != nil && deployConfig.Kubectl.Manifests == nil {
241-
return errors.Errorf("deployments[%d].kubectl.manifests is required", index)
228+
return errors.Errorf("deployments[%s].kubectl.manifests is required", index)
242229
}
243230
}
244231

245232
return nil
246233
}
247234

248235
func ValidateComponentConfig(deployConfig *latest.DeploymentConfig, overwriteValues map[string]interface{}) error {
249-
if deployConfig.Helm != nil && deployConfig.Helm.ComponentChart != nil && *deployConfig.Helm.ComponentChart {
236+
if deployConfig.Helm != nil && deployConfig.Helm.Chart == nil {
250237
b, err := yaml.Marshal(overwriteValues)
251238
if err != nil {
252239
return errors.Errorf("deployments[%s].helm: Error marshaling overwrite values: %v", deployConfig.Name, err)
@@ -305,7 +292,7 @@ func validateImages(config *latest.Config) error {
305292
if images[imageConf.Image] {
306293
return errors.Errorf("multiple image definitions with the same image name are not allowed")
307294
}
308-
if imageConf.RebuildStrategy != latest.RebuildStrategyDefault && imageConf.RebuildStrategy != latest.RebuildStrategyAlways && imageConf.RebuildStrategy != latest.RebuildStrategyIgnoreContextChanges {
295+
if imageConf.RebuildStrategy != "" && imageConf.RebuildStrategy != latest.RebuildStrategyDefault && imageConf.RebuildStrategy != latest.RebuildStrategyAlways && imageConf.RebuildStrategy != latest.RebuildStrategyIgnoreContextChanges {
309296
return errors.Errorf("images.%s.rebuildStrategy %s is invalid. Please choose one of %v", imageConfigName, string(imageConf.RebuildStrategy), []latest.RebuildStrategy{latest.RebuildStrategyAlways, latest.RebuildStrategyIgnoreContextChanges})
310297
}
311298
if imageConf.Build != nil && imageConf.Build.Kaniko != nil && imageConf.Build.Kaniko.EnvFrom != nil {
@@ -335,22 +322,19 @@ func validateDev(config *latest.Config) error {
335322
if encoding.IsUnsafeName(devPodName) {
336323
return fmt.Errorf("dev[%s] has to match the following regex: %v", devPodName, encoding.UnsafeNameRegEx.String())
337324
}
338-
if len(devPod.LabelSelector) == 0 && devPod.ImageSelector == "" && devPod.Pod == "" {
339-
return errors.Errorf("dev[%s]: image selector, pod and label selector are nil", devPodName)
325+
if len(devPod.LabelSelector) == 0 && devPod.ImageSelector == "" {
326+
return errors.Errorf("dev[%s]: image selector and label selector are nil", devPodName)
340327
}
341328

342329
definedSelectors := 0
343-
if devPod.Pod != "" {
344-
definedSelectors++
345-
}
346330
if devPod.ImageSelector != "" {
347331
definedSelectors++
348332
}
349333
if len(devPod.LabelSelector) > 0 {
350334
definedSelectors++
351335
}
352336
if definedSelectors > 1 {
353-
return errors.Errorf("dev[%s]: image selector, pod and label selector cannot all be defined", devPodName)
337+
return errors.Errorf("dev[%s]: image selector and label selector cannot all be defined", devPodName)
354338
}
355339

356340
err := validateDevContainer(fmt.Sprintf("dev[%s]", devPodName), &devPod.DevContainer, false)
@@ -359,7 +343,7 @@ func validateDev(config *latest.Config) error {
359343
}
360344
if len(devPod.Containers) > 0 {
361345
for i, c := range devPod.Containers {
362-
err := validateDevContainer(fmt.Sprintf("dev[%s].containers[%d]", devPodName, i), &c, true)
346+
err := validateDevContainer(fmt.Sprintf("dev[%s].containers[%s]", devPodName, i), c, true)
363347
if err != nil {
364348
return err
365349
}
@@ -408,8 +392,7 @@ func validateDevContainer(path string, devContainer *latest.DevContainer, nameRe
408392
func EachDevContainer(devPod *latest.DevPod, each func(devContainer *latest.DevContainer) bool) {
409393
if len(devPod.Containers) > 0 {
410394
for _, devContainer := range devPod.Containers {
411-
d := devContainer
412-
cont := each(&d)
395+
cont := each(devContainer)
413396
if !cont {
414397
break
415398
}

pkg/devspace/config/versions/latest/schema.go

Lines changed: 10 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -93,21 +93,12 @@ type Pipeline struct {
9393
// Name of the pipeline, will be filled automatically
9494
Name string `yaml:"name,omitempty" json:"name,omitempty"`
9595

96-
// Rerun defines when this job should get reexecuted
97-
Rerun *JobRerun `yaml:"rerun,omitempty" json:"rerun,omitempty"`
98-
9996
// Steps are the steps that are run in order for this job
10097
Steps []PipelineStep `yaml:"steps,omitempty" json:"steps,omitempty"`
10198
}
10299

103-
type JobRerun struct {
104-
}
105-
106100
// PipelineStep is a step within a single pipeline
107101
type PipelineStep struct {
108-
// Name of the pipeline step to execute
109-
Name string `yaml:"name,omitempty" json:"name,omitempty"`
110-
111102
// If defines a condition as shell command to check if the command
112103
// should get executed.
113104
If string `yaml:"if,omitempty" json:"if,omitempty"`
@@ -120,11 +111,8 @@ type PipelineStep struct {
120111
// pipeline step
121112
Run string `yaml:"run,omitempty" json:"run,omitempty"`
122113

123-
// Directory is the working directory of the pipeline step
124-
Directory string `yaml:"directory,omitempty" json:"directory,omitempty"`
125-
126-
// Env are additional environment variables to use for this pipeline step.
127-
Env map[string]string `yaml:"env,omitempty" json:"env,omitempty"`
114+
// WorkingDir is the working directory of the pipeline step
115+
WorkingDir string `yaml:"workingDir,omitempty" json:"workingDir,omitempty"`
128116
}
129117

130118
type RequireConfig struct {
@@ -219,7 +207,7 @@ type RebuildStrategy string
219207

220208
// List of values that source can take
221209
const (
222-
RebuildStrategyDefault RebuildStrategy = ""
210+
RebuildStrategyDefault RebuildStrategy = "default"
223211
RebuildStrategyAlways RebuildStrategy = "always"
224212
RebuildStrategyIgnoreContextChanges RebuildStrategy = "ignoreContextChanges"
225213
)
@@ -239,10 +227,6 @@ type BuildConfig struct {
239227
// If custom is specified, DevSpace will build the image with the help of
240228
// a custom script.
241229
Custom *CustomConfig `yaml:"custom,omitempty" json:"custom,omitempty"`
242-
243-
// This overrides other options and is able to disable the build for this image.
244-
// Useful if you just want to select the image in a sync path or via devspace enter --image
245-
Disabled bool `yaml:"disabled,omitempty" json:"disabled,omitempty"`
246230
}
247231

248232
// DockerConfig tells the DevSpace CLI to build with Docker on Minikube or on localhost
@@ -511,7 +495,6 @@ type BuildOptions struct {
511495
type DeploymentConfig struct {
512496
Name string `yaml:"name" json:"name"`
513497
Namespace string `yaml:"namespace,omitempty" json:"namespace,omitempty"`
514-
Disabled bool `yaml:"disabled,omitempty" json:"disabled,omitempty"`
515498
Helm *HelmConfig `yaml:"helm,omitempty" json:"helm,omitempty"`
516499
Kubectl *KubectlConfig `yaml:"kubectl,omitempty" json:"kubectl,omitempty"`
517500
}
@@ -697,7 +680,6 @@ type RollingUpdateConfig struct {
697680
// HelmConfig defines the specific helm options used during deployment
698681
type HelmConfig struct {
699682
Chart *ChartConfig `yaml:"chart,omitempty" json:"chart,omitempty"`
700-
ComponentChart *bool `yaml:"componentChart,omitempty" json:"componentChart,omitempty"`
701683
Values map[string]interface{} `yaml:"values,omitempty" json:"values,omitempty"`
702684
ValuesFiles []string `yaml:"valuesFiles,omitempty" json:"valuesFiles,omitempty"`
703685
ReplaceImageTags bool `yaml:"replaceImageTags,omitempty" json:"replaceImageTags,omitempty"`
@@ -719,22 +701,12 @@ type HelmConfig struct {
719701

720702
// ChartConfig defines the helm chart options
721703
type ChartConfig struct {
722-
Name string `yaml:"name,omitempty" json:"name,omitempty"`
723-
Version string `yaml:"version,omitempty" json:"version,omitempty"`
724-
RepoURL string `yaml:"repo,omitempty" json:"repo,omitempty"`
725-
Username string `yaml:"username,omitempty" json:"username,omitempty"`
726-
Password string `yaml:"password,omitempty" json:"password,omitempty"`
727-
Git *GitSource `yaml:"git,omitempty" json:"git,omitempty"`
728-
}
729-
730-
//GitSource defines the git repository options
731-
type GitSource struct {
732-
URL string `yaml:"url,omitempty" json:"url,omitempty"`
733-
CloneArgs []string `yaml:"cloneArgs,omitempty" json:"cloneArgs,omitempty"`
734-
Branch string `yaml:"branch,omitempty" json:"branch,omitempty"`
735-
Tag string `yaml:"tag,omitempty" json:"tag,omitempty"`
736-
Revision string `yaml:"revision,omitempty" json:"revision,omitempty"`
737-
SubPath string `yaml:"subPath,omitempty" json:"subPath,omitempty"`
704+
Name string `yaml:"name,omitempty" json:"name,omitempty"`
705+
Version string `yaml:"version,omitempty" json:"version,omitempty"`
706+
RepoURL string `yaml:"repo,omitempty" json:"repo,omitempty"`
707+
Username string `yaml:"username,omitempty" json:"username,omitempty"`
708+
Password string `yaml:"password,omitempty" json:"password,omitempty"`
709+
Source *SourceConfig `yaml:",inline" json:",inline"`
738710
}
739711

740712
// KubectlConfig defines the specific kubectl options used during deployment
@@ -750,7 +722,6 @@ type KubectlConfig struct {
750722

751723
type DevPod struct {
752724
Name string `yaml:"name,omitempty" json:"name,omitempty"`
753-
Pod string `yaml:"pod,omitempty" json:"pod,omitempty"`
754725
ImageSelector string `yaml:"imageSelector,omitempty" json:"imageSelector,omitempty"`
755726
LabelSelector map[string]string `yaml:"labelSelector,omitempty" json:"labelSelector,omitempty"`
756727
Namespace string `yaml:"namespace,omitempty" json:"namespace,omitempty"`
@@ -764,7 +735,7 @@ type DevPod struct {
764735

765736
// Container Options
766737
DevContainer `yaml:",inline" json:",inline"`
767-
Containers []DevContainer `yaml:"containers,omitempty" json:"containers,omitempty"`
738+
Containers map[string]*DevContainer `yaml:"containers,omitempty" json:"containers,omitempty"`
768739
}
769740

770741
type DevContainer struct {
@@ -1000,7 +971,6 @@ type DependencyConfig struct {
1000971
DisableProfileActivation bool `yaml:"disableProfileActivation,omitempty" json:"disableProfileActivation,omitempty"`
1001972
Vars []DependencyVar `yaml:"vars,omitempty" json:"vars,omitempty"`
1002973
OverwriteVars bool `yaml:"overwriteVars,omitempty" json:"overwriteVars,omitempty"`
1003-
SkipBuild bool `yaml:"skipBuild,omitempty" json:"skipBuild,omitempty"`
1004974
IgnoreDependencies bool `yaml:"ignoreDependencies,omitempty" json:"ignoreDependencies,omitempty"`
1005975
Namespace string `yaml:"namespace,omitempty" json:"namespace,omitempty"`
1006976
}
@@ -1040,7 +1010,6 @@ type SourceConfig struct {
10401010
Branch string `yaml:"branch,omitempty" json:"branch,omitempty"`
10411011
Tag string `yaml:"tag,omitempty" json:"tag,omitempty"`
10421012
Revision string `yaml:"revision,omitempty" json:"revision,omitempty"`
1043-
ConfigName string `yaml:"configName,omitempty" json:"configName,omitempty"`
10441013

10451014
Path string `yaml:"path,omitempty" json:"path,omitempty"`
10461015
}

0 commit comments

Comments
 (0)