feat: support external dependencies for deploy-dependency and delete-dependency annotations#617
Conversation
…dependency annotations Signed-off-by: Dmitry Mordvinov <dmitry.mordvinov@flant.com>
Signed-off-by: Dmitry Mordvinov <dmitry.mordvinov@flant.com>
Signed-off-by: Dmitry Mordvinov <dmitry.mordvinov@flant.com>
| type Dependency struct { | ||
| *spec.ResourceMatcher `json:"resourceMatcher"` | ||
|
|
||
| ResourceMeta *spec.ResourceMeta `json:"resourceMeta"` |
There was a problem hiding this comment.
You have both ResourceMatcher and ResourceMeta, bad/unclear design
|
|
||
| if dep.External { | ||
| dep.MinMatches = 1 | ||
| dep.MaxMatches = 30 |
There was a problem hiding this comment.
move these as constants to common pkg
|
|
||
| if dep.External { | ||
| dep.MinMatches = 1 | ||
| dep.MaxMatches = 30 |
| switch pv := propVal.(type) { | ||
| case string: | ||
| switch pv { | ||
| case "auto", "true", "false": |
There was a problem hiding this comment.
to constants to common pkg, and use them everywhere in this PR
| } | ||
|
|
||
| // Catches validation error for External delete dependencies | ||
| if _, err := manualDeleteDependencies(res.ResourceMeta, otherResourceMetaList, releaseNamespace); err != nil { |
There was a problem hiding this comment.
if we do separately validateDeploy(Delete)Dependencies, can't we write manualDeploy(Delete)Dependencies in a way that they rely on the previous call of validate... functions? So that inside manualDeploy(Delete)Dependencies we often won't check errors (panic instead), etc, so no error will be returned at all? Look at how we do other functions like this where validate is separate
…ons, apply review suggestions Signed-off-by: Dmitry Mordvinov <dmitry.mordvinov@flant.com>
Signed-off-by: Dmitry Mordvinov <dmitry.mordvinov@flant.com> # Conflicts: # pkg/action/release_uninstall.go
Signed-off-by: Dmitry Mordvinov <dmitry.mordvinov@flant.com> # Conflicts: # pkg/resource/resource.go
Signed-off-by: Dmitry Mordvinov <dmitry.mordvinov@flant.com>
| DependencyExternalAuto = "auto" | ||
| DependencyExternalFalse = "false" | ||
| DependencyExternalTrue = "true" |
There was a problem hiding this comment.
Make a type DependencyExternal string for those
| var manDeps []*Dependency | ||
| if err := validateDeleteDependencies(resourceSpec.ResourceMeta); err == nil { | ||
| manDeps, _ = manualDeleteDependencies(resourceSpec.ResourceMeta, otherResourceMetaList, releaseNamespace) | ||
| if err := validateDeleteDependencies(resourceSpec.ResourceMeta, otherResourceMetaList); err == nil { |
There was a problem hiding this comment.
Huh? We should fail here if err != nil
Signed-off-by: Dmitry Mordvinov <dmitry.mordvinov@flant.com> # Conflicts: # pkg/common/common.go # pkg/resource/resource_test.go
Signed-off-by: Dmitry Mordvinov <dmitry.mordvinov@flant.com>
No description provided.