feat: add duration to affected releases on sync (#773)
* feat: add duration to affected releases on sync Signed-off-by: Alexandru Axenti <alex.axenti@gmail.com>
This commit is contained in:
parent
7c72e2ba3e
commit
0012e7e5a1
|
|
@ -262,9 +262,170 @@ processing releases in group 1/2: default/default/external-secrets
|
||||||
processing releases in group 2/2: default/default/my-release
|
processing releases in group 2/2: default/default/my-release
|
||||||
|
|
||||||
UPDATED RELEASES:
|
UPDATED RELEASES:
|
||||||
NAME CHART VERSION
|
NAME CHART VERSION DURATION
|
||||||
external-secrets incubator/raw 3.1.0
|
external-secrets incubator/raw 3.1.0 0s
|
||||||
my-release incubator/raw 3.1.0
|
my-release incubator/raw 3.1.0 0s
|
||||||
|
|
||||||
|
changing working directory back to "/path/to"
|
||||||
|
`,
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
t.Run("check-duration", func(t *testing.T) {
|
||||||
|
check(t, testcase{
|
||||||
|
fields: fields{
|
||||||
|
skipNeeds: true,
|
||||||
|
},
|
||||||
|
files: map[string]string{
|
||||||
|
"/path/to/helmfile.yaml": `
|
||||||
|
{{ $mark := "a" }}
|
||||||
|
|
||||||
|
releases:
|
||||||
|
- name: kubernetes-external-secrets
|
||||||
|
chart: incubator/raw
|
||||||
|
namespace: kube-system
|
||||||
|
|
||||||
|
- name: external-secrets
|
||||||
|
chart: incubator/raw
|
||||||
|
namespace: default
|
||||||
|
labels:
|
||||||
|
app: test
|
||||||
|
needs:
|
||||||
|
- kube-system/kubernetes-external-secrets
|
||||||
|
|
||||||
|
- name: my-release
|
||||||
|
chart: incubator/raw
|
||||||
|
namespace: default
|
||||||
|
labels:
|
||||||
|
app: test
|
||||||
|
needs:
|
||||||
|
- default/external-secrets
|
||||||
|
hooks:
|
||||||
|
- name: my-release
|
||||||
|
events:
|
||||||
|
- postsync
|
||||||
|
showlogs: true
|
||||||
|
command: sleep
|
||||||
|
args: [5s]
|
||||||
|
`,
|
||||||
|
},
|
||||||
|
selectors: []string{"app=test"},
|
||||||
|
upgraded: []exectest.Release{
|
||||||
|
{Name: "external-secrets", Flags: []string{"--kube-context", "default", "--namespace", "default"}},
|
||||||
|
{Name: "my-release", Flags: []string{"--kube-context", "default", "--namespace", "default"}},
|
||||||
|
},
|
||||||
|
lists: map[exectest.ListKey]string{
|
||||||
|
{Filter: "^external-secrets$", Flags: listFlags("default", "default")}: `NAME REVISION UPDATED STATUS CHART APP VERSION NAMESPACE
|
||||||
|
external-secrets 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 default
|
||||||
|
`,
|
||||||
|
{Filter: "^my-release$", Flags: listFlags("default", "default")}: `NAME REVISION UPDATED STATUS CHART APP VERSION NAMESPACE
|
||||||
|
my-release 4 Fri Nov 1 08:40:07 2019 DEPLOYED raw-3.1.0 3.1.0 default
|
||||||
|
`,
|
||||||
|
},
|
||||||
|
// as we check for log output, set concurrency to 1 to avoid non-deterministic test result
|
||||||
|
concurrency: 1,
|
||||||
|
log: `processing file "helmfile.yaml" in directory "."
|
||||||
|
changing working directory to "/path/to"
|
||||||
|
first-pass rendering starting for "helmfile.yaml.part.0": inherited=&{default map[] map[]}, overrode=<nil>
|
||||||
|
first-pass uses: &{default map[] map[]}
|
||||||
|
first-pass rendering output of "helmfile.yaml.part.0":
|
||||||
|
0:
|
||||||
|
1:
|
||||||
|
2:
|
||||||
|
3: releases:
|
||||||
|
4: - name: kubernetes-external-secrets
|
||||||
|
5: chart: incubator/raw
|
||||||
|
6: namespace: kube-system
|
||||||
|
7:
|
||||||
|
8: - name: external-secrets
|
||||||
|
9: chart: incubator/raw
|
||||||
|
10: namespace: default
|
||||||
|
11: labels:
|
||||||
|
12: app: test
|
||||||
|
13: needs:
|
||||||
|
14: - kube-system/kubernetes-external-secrets
|
||||||
|
15:
|
||||||
|
16: - name: my-release
|
||||||
|
17: chart: incubator/raw
|
||||||
|
18: namespace: default
|
||||||
|
19: labels:
|
||||||
|
20: app: test
|
||||||
|
21: needs:
|
||||||
|
22: - default/external-secrets
|
||||||
|
23: hooks:
|
||||||
|
24: - name: my-release
|
||||||
|
25: events:
|
||||||
|
26: - postsync
|
||||||
|
27: showlogs: true
|
||||||
|
28: command: sleep
|
||||||
|
29: args: [5s]
|
||||||
|
30:
|
||||||
|
|
||||||
|
first-pass produced: &{default map[] map[]}
|
||||||
|
first-pass rendering result of "helmfile.yaml.part.0": {default map[] map[]}
|
||||||
|
vals:
|
||||||
|
map[]
|
||||||
|
defaultVals:[]
|
||||||
|
second-pass rendering result of "helmfile.yaml.part.0":
|
||||||
|
0:
|
||||||
|
1:
|
||||||
|
2:
|
||||||
|
3: releases:
|
||||||
|
4: - name: kubernetes-external-secrets
|
||||||
|
5: chart: incubator/raw
|
||||||
|
6: namespace: kube-system
|
||||||
|
7:
|
||||||
|
8: - name: external-secrets
|
||||||
|
9: chart: incubator/raw
|
||||||
|
10: namespace: default
|
||||||
|
11: labels:
|
||||||
|
12: app: test
|
||||||
|
13: needs:
|
||||||
|
14: - kube-system/kubernetes-external-secrets
|
||||||
|
15:
|
||||||
|
16: - name: my-release
|
||||||
|
17: chart: incubator/raw
|
||||||
|
18: namespace: default
|
||||||
|
19: labels:
|
||||||
|
20: app: test
|
||||||
|
21: needs:
|
||||||
|
22: - default/external-secrets
|
||||||
|
23: hooks:
|
||||||
|
24: - name: my-release
|
||||||
|
25: events:
|
||||||
|
26: - postsync
|
||||||
|
27: showlogs: true
|
||||||
|
28: command: sleep
|
||||||
|
29: args: [5s]
|
||||||
|
30:
|
||||||
|
|
||||||
|
merged environment: &{default map[] map[]}
|
||||||
|
2 release(s) matching app=test found in helmfile.yaml
|
||||||
|
|
||||||
|
Affected releases are:
|
||||||
|
external-secrets (incubator/raw) UPDATED
|
||||||
|
my-release (incubator/raw) UPDATED
|
||||||
|
|
||||||
|
processing 2 groups of releases in this order:
|
||||||
|
GROUP RELEASES
|
||||||
|
1 default/default/external-secrets
|
||||||
|
2 default/default/my-release
|
||||||
|
|
||||||
|
processing releases in group 1/2: default/default/external-secrets
|
||||||
|
processing releases in group 2/2: default/default/my-release
|
||||||
|
hook[my-release]: stateFilePath=helmfile.yaml, basePath=.
|
||||||
|
|
||||||
|
hook[my-release]: triggered by event "postsync"
|
||||||
|
|
||||||
|
hook[my-release]:
|
||||||
|
|
||||||
|
|
||||||
|
hook[postsync] logs |
|
||||||
|
|
||||||
|
UPDATED RELEASES:
|
||||||
|
NAME CHART VERSION DURATION
|
||||||
|
external-secrets incubator/raw 3.1.0 0s
|
||||||
|
my-release incubator/raw 3.1.0 5s
|
||||||
|
|
||||||
changing working directory back to "/path/to"
|
changing working directory back to "/path/to"
|
||||||
`,
|
`,
|
||||||
|
|
@ -399,10 +560,10 @@ processing releases in group 2/3: default/default/external-secrets
|
||||||
processing releases in group 3/3: default/default/my-release
|
processing releases in group 3/3: default/default/my-release
|
||||||
|
|
||||||
UPDATED RELEASES:
|
UPDATED RELEASES:
|
||||||
NAME CHART VERSION
|
NAME CHART VERSION DURATION
|
||||||
kubernetes-external-secrets incubator/raw 3.1.0
|
kubernetes-external-secrets incubator/raw 3.1.0 0s
|
||||||
external-secrets incubator/raw 3.1.0
|
external-secrets incubator/raw 3.1.0 0s
|
||||||
my-release incubator/raw 3.1.0
|
my-release incubator/raw 3.1.0 0s
|
||||||
|
|
||||||
changing working directory back to "/path/to"
|
changing working directory back to "/path/to"
|
||||||
`,
|
`,
|
||||||
|
|
@ -525,10 +686,10 @@ processing releases in group 2/3: default//serviceB
|
||||||
processing releases in group 3/3: default//serviceA
|
processing releases in group 3/3: default//serviceA
|
||||||
|
|
||||||
UPDATED RELEASES:
|
UPDATED RELEASES:
|
||||||
NAME CHART VERSION
|
NAME CHART VERSION DURATION
|
||||||
serviceC my/chart 3.1.0
|
serviceC my/chart 3.1.0 0s
|
||||||
serviceB my/chart 3.1.0
|
serviceB my/chart 3.1.0 0s
|
||||||
serviceA my/chart 3.1.0
|
serviceA my/chart 3.1.0 0s
|
||||||
|
|
||||||
changing working directory back to "/path/to"
|
changing working directory back to "/path/to"
|
||||||
`,
|
`,
|
||||||
|
|
@ -670,14 +831,15 @@ processing releases in group 1/2: default/default/external-secrets
|
||||||
processing releases in group 2/2: default/default/my-release
|
processing releases in group 2/2: default/default/my-release
|
||||||
|
|
||||||
UPDATED RELEASES:
|
UPDATED RELEASES:
|
||||||
NAME CHART VERSION
|
NAME CHART VERSION DURATION
|
||||||
external-secrets incubator/raw 3.1.0
|
external-secrets incubator/raw 3.1.0 0s
|
||||||
my-release incubator/raw 3.1.0
|
my-release incubator/raw 3.1.0 0s
|
||||||
|
|
||||||
|
|
||||||
DELETED RELEASES:
|
DELETED RELEASES:
|
||||||
NAME
|
NAME DURATION
|
||||||
kubernetes-external-secrets
|
kubernetes-external-secrets 0s
|
||||||
|
|
||||||
changing working directory back to "/path/to"
|
changing working directory back to "/path/to"
|
||||||
`,
|
`,
|
||||||
})
|
})
|
||||||
|
|
@ -811,9 +973,9 @@ processing releases in group 1/2: default/default/external-secrets
|
||||||
processing releases in group 2/2: default/default/my-release
|
processing releases in group 2/2: default/default/my-release
|
||||||
|
|
||||||
UPDATED RELEASES:
|
UPDATED RELEASES:
|
||||||
NAME CHART VERSION
|
NAME CHART VERSION DURATION
|
||||||
external-secrets incubator/raw 3.1.0
|
external-secrets incubator/raw 3.1.0 0s
|
||||||
my-release incubator/raw 3.1.0
|
my-release incubator/raw 3.1.0 0s
|
||||||
|
|
||||||
changing working directory back to "/path/to"
|
changing working directory back to "/path/to"
|
||||||
`,
|
`,
|
||||||
|
|
|
||||||
|
|
@ -403,17 +403,18 @@ release "front-proxy" processed
|
||||||
release "logging" processed
|
release "logging" processed
|
||||||
|
|
||||||
DELETED RELEASES:
|
DELETED RELEASES:
|
||||||
NAME
|
NAME DURATION
|
||||||
frontend-v3
|
frontend-v3 0s
|
||||||
frontend-v2
|
frontend-v2 0s
|
||||||
frontend-v1
|
frontend-v1 0s
|
||||||
backend-v2
|
backend-v2 0s
|
||||||
backend-v1
|
backend-v1 0s
|
||||||
anotherbackend
|
anotherbackend 0s
|
||||||
servicemesh
|
servicemesh 0s
|
||||||
database
|
database 0s
|
||||||
front-proxy
|
front-proxy 0s
|
||||||
logging
|
logging 0s
|
||||||
|
|
||||||
changing working directory back to "/path/to"
|
changing working directory back to "/path/to"
|
||||||
`,
|
`,
|
||||||
})
|
})
|
||||||
|
|
@ -594,8 +595,9 @@ processing releases in group 1/1: logging
|
||||||
release "logging" processed
|
release "logging" processed
|
||||||
|
|
||||||
DELETED RELEASES:
|
DELETED RELEASES:
|
||||||
NAME
|
NAME DURATION
|
||||||
logging
|
logging 0s
|
||||||
|
|
||||||
changing working directory back to "/path/to"
|
changing working directory back to "/path/to"
|
||||||
`,
|
`,
|
||||||
})
|
})
|
||||||
|
|
@ -664,9 +666,10 @@ processing releases in group 2/2: backend-v1
|
||||||
release "backend-v1" processed
|
release "backend-v1" processed
|
||||||
|
|
||||||
DELETED RELEASES:
|
DELETED RELEASES:
|
||||||
NAME
|
NAME DURATION
|
||||||
frontend-v1
|
frontend-v1 0s
|
||||||
backend-v1
|
backend-v1 0s
|
||||||
|
|
||||||
changing working directory back to "/path/to"
|
changing working directory back to "/path/to"
|
||||||
`,
|
`,
|
||||||
})
|
})
|
||||||
|
|
@ -735,9 +738,10 @@ processing releases in group 2/2: backend-v1
|
||||||
release "backend-v1" processed
|
release "backend-v1" processed
|
||||||
|
|
||||||
DELETED RELEASES:
|
DELETED RELEASES:
|
||||||
NAME
|
NAME DURATION
|
||||||
frontend-v1
|
frontend-v1 0s
|
||||||
backend-v1
|
backend-v1 0s
|
||||||
|
|
||||||
changing working directory back to "/path/to"
|
changing working directory back to "/path/to"
|
||||||
`,
|
`,
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -459,17 +459,18 @@ release "front-proxy" processed
|
||||||
release "logging" processed
|
release "logging" processed
|
||||||
|
|
||||||
DELETED RELEASES:
|
DELETED RELEASES:
|
||||||
NAME
|
NAME DURATION
|
||||||
frontend-v3
|
frontend-v3 0s
|
||||||
frontend-v2
|
frontend-v2 0s
|
||||||
frontend-v1
|
frontend-v1 0s
|
||||||
backend-v2
|
backend-v2 0s
|
||||||
backend-v1
|
backend-v1 0s
|
||||||
anotherbackend
|
anotherbackend 0s
|
||||||
servicemesh
|
servicemesh 0s
|
||||||
database
|
database 0s
|
||||||
front-proxy
|
front-proxy 0s
|
||||||
logging
|
logging 0s
|
||||||
|
|
||||||
changing working directory back to "/path/to"
|
changing working directory back to "/path/to"
|
||||||
`,
|
`,
|
||||||
})
|
})
|
||||||
|
|
@ -650,8 +651,9 @@ processing releases in group 1/1: default//logging
|
||||||
release "logging" processed
|
release "logging" processed
|
||||||
|
|
||||||
DELETED RELEASES:
|
DELETED RELEASES:
|
||||||
NAME
|
NAME DURATION
|
||||||
logging
|
logging 0s
|
||||||
|
|
||||||
changing working directory back to "/path/to"
|
changing working directory back to "/path/to"
|
||||||
`,
|
`,
|
||||||
})
|
})
|
||||||
|
|
@ -720,9 +722,10 @@ processing releases in group 2/2: default//backend-v1
|
||||||
release "backend-v1" processed
|
release "backend-v1" processed
|
||||||
|
|
||||||
DELETED RELEASES:
|
DELETED RELEASES:
|
||||||
NAME
|
NAME DURATION
|
||||||
frontend-v1
|
frontend-v1 0s
|
||||||
backend-v1
|
backend-v1 0s
|
||||||
|
|
||||||
changing working directory back to "/path/to"
|
changing working directory back to "/path/to"
|
||||||
`,
|
`,
|
||||||
})
|
})
|
||||||
|
|
@ -791,9 +794,10 @@ processing releases in group 2/2: default//backend-v1
|
||||||
release "backend-v1" processed
|
release "backend-v1" processed
|
||||||
|
|
||||||
DELETED RELEASES:
|
DELETED RELEASES:
|
||||||
NAME
|
NAME DURATION
|
||||||
frontend-v1
|
frontend-v1 0s
|
||||||
backend-v1
|
backend-v1 0s
|
||||||
|
|
||||||
changing working directory back to "/path/to"
|
changing working directory back to "/path/to"
|
||||||
`,
|
`,
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -57,11 +57,12 @@ GROUP RELEASES
|
||||||
processing releases in group 1/1: default//foo
|
processing releases in group 1/1: default//foo
|
||||||
|
|
||||||
UPDATED RELEASES:
|
UPDATED RELEASES:
|
||||||
NAME CHART VERSION
|
NAME CHART VERSION DURATION
|
||||||
foo stable/mychart1 3.1.0
|
foo stable/mychart1 3.1.0 0s
|
||||||
|
|
||||||
|
|
||||||
DELETED RELEASES:
|
DELETED RELEASES:
|
||||||
NAME
|
NAME DURATION
|
||||||
bar
|
bar 0s
|
||||||
|
|
||||||
changing working directory back to "/path/to"
|
changing working directory back to "/path/to"
|
||||||
|
|
|
||||||
|
|
@ -57,11 +57,12 @@ GROUP RELEASES
|
||||||
processing releases in group 1/1: default//foo
|
processing releases in group 1/1: default//foo
|
||||||
|
|
||||||
UPDATED RELEASES:
|
UPDATED RELEASES:
|
||||||
NAME CHART VERSION
|
NAME CHART VERSION DURATION
|
||||||
foo stable/mychart1 3.1.0
|
foo stable/mychart1 3.1.0 0s
|
||||||
|
|
||||||
|
|
||||||
DELETED RELEASES:
|
DELETED RELEASES:
|
||||||
NAME
|
NAME DURATION
|
||||||
bar
|
bar 0s
|
||||||
|
|
||||||
changing working directory back to "/path/to"
|
changing working directory back to "/path/to"
|
||||||
|
|
|
||||||
|
|
@ -56,7 +56,8 @@ processing releases in group 1/2: default//bar
|
||||||
processing releases in group 2/2: default//foo
|
processing releases in group 2/2: default//foo
|
||||||
|
|
||||||
DELETED RELEASES:
|
DELETED RELEASES:
|
||||||
NAME
|
NAME DURATION
|
||||||
bar
|
bar 0s
|
||||||
foo
|
foo 0s
|
||||||
|
|
||||||
changing working directory back to "/path/to"
|
changing working directory back to "/path/to"
|
||||||
|
|
|
||||||
|
|
@ -56,7 +56,8 @@ processing releases in group 1/2: default//foo
|
||||||
processing releases in group 2/2: default//bar
|
processing releases in group 2/2: default//bar
|
||||||
|
|
||||||
DELETED RELEASES:
|
DELETED RELEASES:
|
||||||
NAME
|
NAME DURATION
|
||||||
foo
|
foo 0s
|
||||||
bar
|
bar 0s
|
||||||
|
|
||||||
changing working directory back to "/path/to"
|
changing working directory back to "/path/to"
|
||||||
|
|
|
||||||
|
|
@ -57,11 +57,12 @@ GROUP RELEASES
|
||||||
processing releases in group 1/1: default//bar
|
processing releases in group 1/1: default//bar
|
||||||
|
|
||||||
UPDATED RELEASES:
|
UPDATED RELEASES:
|
||||||
NAME CHART VERSION
|
NAME CHART VERSION DURATION
|
||||||
bar stable/mychart2 3.1.0
|
bar stable/mychart2 3.1.0 0s
|
||||||
|
|
||||||
|
|
||||||
DELETED RELEASES:
|
DELETED RELEASES:
|
||||||
NAME
|
NAME DURATION
|
||||||
foo
|
foo 0s
|
||||||
|
|
||||||
changing working directory back to "/path/to"
|
changing working directory back to "/path/to"
|
||||||
|
|
|
||||||
|
|
@ -57,11 +57,12 @@ GROUP RELEASES
|
||||||
processing releases in group 1/1: default//bar
|
processing releases in group 1/1: default//bar
|
||||||
|
|
||||||
UPDATED RELEASES:
|
UPDATED RELEASES:
|
||||||
NAME CHART VERSION
|
NAME CHART VERSION DURATION
|
||||||
bar stable/mychart2 3.1.0
|
bar stable/mychart2 3.1.0 0s
|
||||||
|
|
||||||
|
|
||||||
DELETED RELEASES:
|
DELETED RELEASES:
|
||||||
NAME
|
NAME DURATION
|
||||||
foo
|
foo 0s
|
||||||
|
|
||||||
changing working directory back to "/path/to"
|
changing working directory back to "/path/to"
|
||||||
|
|
|
||||||
|
|
@ -64,9 +64,9 @@ processing releases in group 2/2: default//foo
|
||||||
getting deployed release version failed: Failed to get the version for: mychart1
|
getting deployed release version failed: Failed to get the version for: mychart1
|
||||||
|
|
||||||
UPDATED RELEASES:
|
UPDATED RELEASES:
|
||||||
NAME CHART VERSION
|
NAME CHART VERSION DURATION
|
||||||
baz stable/mychart3 3.1.0
|
baz stable/mychart3 3.1.0 0s
|
||||||
bar stable/mychart2 3.1.0
|
bar stable/mychart2 3.1.0 0s
|
||||||
foo stable/mychart1
|
foo stable/mychart1 0s
|
||||||
|
|
||||||
changing working directory back to "/path/to"
|
changing working directory back to "/path/to"
|
||||||
|
|
|
||||||
|
|
@ -64,9 +64,9 @@ processing releases in group 2/2: default//foo
|
||||||
getting deployed release version failed: Failed to get the version for: mychart1
|
getting deployed release version failed: Failed to get the version for: mychart1
|
||||||
|
|
||||||
UPDATED RELEASES:
|
UPDATED RELEASES:
|
||||||
NAME CHART VERSION
|
NAME CHART VERSION DURATION
|
||||||
baz stable/mychart3 3.1.0
|
baz stable/mychart3 3.1.0 0s
|
||||||
bar stable/mychart2 3.1.0
|
bar stable/mychart2 3.1.0 0s
|
||||||
foo stable/mychart1
|
foo stable/mychart1 0s
|
||||||
|
|
||||||
changing working directory back to "/path/to"
|
changing working directory back to "/path/to"
|
||||||
|
|
|
||||||
|
|
@ -60,9 +60,9 @@ processing releases in group 2/2: default//foo
|
||||||
getting deployed release version failed: unexpected list key: listkey(filter=^foo$,flags=--kube-contextdefault--uninstalling--deployed--failed--pending) not found in
|
getting deployed release version failed: unexpected list key: listkey(filter=^foo$,flags=--kube-contextdefault--uninstalling--deployed--failed--pending) not found in
|
||||||
|
|
||||||
UPDATED RELEASES:
|
UPDATED RELEASES:
|
||||||
NAME CHART VERSION
|
NAME CHART VERSION DURATION
|
||||||
baz stable/mychart3
|
baz stable/mychart3 0s
|
||||||
bar stable/mychart2
|
bar stable/mychart2 0s
|
||||||
foo stable/mychart1
|
foo stable/mychart1 0s
|
||||||
|
|
||||||
changing working directory back to "/path/to"
|
changing working directory back to "/path/to"
|
||||||
|
|
|
||||||
|
|
@ -170,18 +170,19 @@ processing releases in group 4/5: default//backend-v2
|
||||||
processing releases in group 5/5: default//frontend-v3
|
processing releases in group 5/5: default//frontend-v3
|
||||||
|
|
||||||
UPDATED RELEASES:
|
UPDATED RELEASES:
|
||||||
NAME CHART VERSION
|
NAME CHART VERSION DURATION
|
||||||
logging charts/fluent-bit 3.1.0
|
logging charts/fluent-bit 3.1.0 0s
|
||||||
front-proxy stable/envoy 3.1.0
|
front-proxy stable/envoy 3.1.0 0s
|
||||||
database charts/mysql 3.1.0
|
database charts/mysql 3.1.0 0s
|
||||||
servicemesh charts/istio 3.1.0
|
servicemesh charts/istio 3.1.0 0s
|
||||||
anotherbackend charts/anotherbackend 3.1.0
|
anotherbackend charts/anotherbackend 3.1.0 0s
|
||||||
backend-v2 charts/backend 3.1.0
|
backend-v2 charts/backend 3.1.0 0s
|
||||||
frontend-v3 charts/frontend 3.1.0
|
frontend-v3 charts/frontend 3.1.0 0s
|
||||||
|
|
||||||
|
|
||||||
DELETED RELEASES:
|
DELETED RELEASES:
|
||||||
NAME
|
NAME DURATION
|
||||||
frontend-v1
|
frontend-v1 0s
|
||||||
backend-v1
|
backend-v1 0s
|
||||||
|
|
||||||
changing working directory back to "/path/to"
|
changing working directory back to "/path/to"
|
||||||
|
|
|
||||||
|
|
@ -54,8 +54,8 @@ processing releases in group 2/2: default/testNamespace/bar
|
||||||
getting deployed release version failed: Failed to get the version for: mychart2
|
getting deployed release version failed: Failed to get the version for: mychart2
|
||||||
|
|
||||||
UPDATED RELEASES:
|
UPDATED RELEASES:
|
||||||
NAME CHART VERSION
|
NAME CHART VERSION DURATION
|
||||||
foo stable/mychart1
|
foo stable/mychart1 0s
|
||||||
bar stable/mychart2
|
bar stable/mychart2 0s
|
||||||
|
|
||||||
changing working directory back to "/path/to"
|
changing working directory back to "/path/to"
|
||||||
|
|
|
||||||
|
|
@ -54,8 +54,8 @@ processing releases in group 2/2: default//bar
|
||||||
getting deployed release version failed: Failed to get the version for: mychart2
|
getting deployed release version failed: Failed to get the version for: mychart2
|
||||||
|
|
||||||
UPDATED RELEASES:
|
UPDATED RELEASES:
|
||||||
NAME CHART VERSION
|
NAME CHART VERSION DURATION
|
||||||
foo stable/mychart1
|
foo stable/mychart1 0s
|
||||||
bar stable/mychart2
|
bar stable/mychart2 0s
|
||||||
|
|
||||||
changing working directory back to "/path/to"
|
changing working directory back to "/path/to"
|
||||||
|
|
|
||||||
|
|
@ -54,8 +54,8 @@ processing releases in group 2/2: default/testNamespace/foo
|
||||||
getting deployed release version failed: Failed to get the version for: mychart1
|
getting deployed release version failed: Failed to get the version for: mychart1
|
||||||
|
|
||||||
UPDATED RELEASES:
|
UPDATED RELEASES:
|
||||||
NAME CHART VERSION
|
NAME CHART VERSION DURATION
|
||||||
bar stable/mychart2
|
bar stable/mychart2 0s
|
||||||
foo stable/mychart1
|
foo stable/mychart1 0s
|
||||||
|
|
||||||
changing working directory back to "/path/to"
|
changing working directory back to "/path/to"
|
||||||
|
|
|
||||||
|
|
@ -54,8 +54,8 @@ processing releases in group 2/2: default//foo
|
||||||
getting deployed release version failed: Failed to get the version for: mychart1
|
getting deployed release version failed: Failed to get the version for: mychart1
|
||||||
|
|
||||||
UPDATED RELEASES:
|
UPDATED RELEASES:
|
||||||
NAME CHART VERSION
|
NAME CHART VERSION DURATION
|
||||||
bar stable/mychart2
|
bar stable/mychart2 0s
|
||||||
foo stable/mychart1
|
foo stable/mychart1 0s
|
||||||
|
|
||||||
changing working directory back to "/path/to"
|
changing working directory back to "/path/to"
|
||||||
|
|
|
||||||
|
|
@ -58,8 +58,8 @@ processing releases in group 2/2: default/ns1/foo
|
||||||
getting deployed release version failed: Failed to get the version for: mychart1
|
getting deployed release version failed: Failed to get the version for: mychart1
|
||||||
|
|
||||||
UPDATED RELEASES:
|
UPDATED RELEASES:
|
||||||
NAME CHART VERSION
|
NAME CHART VERSION DURATION
|
||||||
bar stable/mychart2
|
bar stable/mychart2 0s
|
||||||
foo stable/mychart1
|
foo stable/mychart1 0s
|
||||||
|
|
||||||
changing working directory back to "/path/to"
|
changing working directory back to "/path/to"
|
||||||
|
|
|
||||||
|
|
@ -58,8 +58,8 @@ processing releases in group 2/2: default/ns2/bar
|
||||||
getting deployed release version failed: Failed to get the version for: mychart2
|
getting deployed release version failed: Failed to get the version for: mychart2
|
||||||
|
|
||||||
UPDATED RELEASES:
|
UPDATED RELEASES:
|
||||||
NAME CHART VERSION
|
NAME CHART VERSION DURATION
|
||||||
foo stable/mychart1
|
foo stable/mychart1 0s
|
||||||
bar stable/mychart2
|
bar stable/mychart2 0s
|
||||||
|
|
||||||
changing working directory back to "/path/to"
|
changing working directory back to "/path/to"
|
||||||
|
|
|
||||||
|
|
@ -82,8 +82,8 @@ processing releases in group 1/2: default/default/external-secrets
|
||||||
processing releases in group 2/2: default/default/my-release
|
processing releases in group 2/2: default/default/my-release
|
||||||
|
|
||||||
UPDATED RELEASES:
|
UPDATED RELEASES:
|
||||||
NAME CHART VERSION
|
NAME CHART VERSION DURATION
|
||||||
external-secrets incubator/raw 3.1.0
|
external-secrets incubator/raw 3.1.0 0s
|
||||||
my-release incubator/raw 3.1.0
|
my-release incubator/raw 3.1.0 0s
|
||||||
|
|
||||||
changing working directory back to "/path/to"
|
changing working directory back to "/path/to"
|
||||||
|
|
|
||||||
|
|
@ -63,6 +63,6 @@ processing releases in group 1/1: default/default/foo
|
||||||
getting deployed release version failed: unexpected list key: {^foo$ --kube-contextdefault--deleting--deployed--failed--pending}
|
getting deployed release version failed: unexpected list key: {^foo$ --kube-contextdefault--deleting--deployed--failed--pending}
|
||||||
|
|
||||||
UPDATED RELEASES:
|
UPDATED RELEASES:
|
||||||
NAME CHART VERSION
|
NAME CHART VERSION DURATION
|
||||||
foo incubator/raw
|
foo incubator/raw 0s
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -65,7 +65,7 @@ GROUP RELEASES
|
||||||
processing releases in group 1/1: default/default/foo
|
processing releases in group 1/1: default/default/foo
|
||||||
|
|
||||||
UPDATED RELEASES:
|
UPDATED RELEASES:
|
||||||
NAME CHART VERSION
|
NAME CHART VERSION DURATION
|
||||||
foo incubator/raw 3.1.0
|
foo incubator/raw 3.1.0 0s
|
||||||
|
|
||||||
changing working directory back to "/path/to"
|
changing working directory back to "/path/to"
|
||||||
|
|
|
||||||
|
|
@ -79,9 +79,9 @@ processing releases in group 2/3: default//serviceB
|
||||||
processing releases in group 3/3: default//serviceA
|
processing releases in group 3/3: default//serviceA
|
||||||
|
|
||||||
UPDATED RELEASES:
|
UPDATED RELEASES:
|
||||||
NAME CHART VERSION
|
NAME CHART VERSION DURATION
|
||||||
serviceC my/chart 3.1.0
|
serviceC my/chart 3.1.0 0s
|
||||||
serviceB my/chart 3.1.0
|
serviceB my/chart 3.1.0 0s
|
||||||
serviceA my/chart 3.1.0
|
serviceA my/chart 3.1.0 0s
|
||||||
|
|
||||||
changing working directory back to "/path/to"
|
changing working directory back to "/path/to"
|
||||||
|
|
|
||||||
|
|
@ -69,7 +69,7 @@ GROUP RELEASES
|
||||||
processing releases in group 1/1: default/default/foo
|
processing releases in group 1/1: default/default/foo
|
||||||
|
|
||||||
UPDATED RELEASES:
|
UPDATED RELEASES:
|
||||||
NAME CHART VERSION
|
NAME CHART VERSION DURATION
|
||||||
foo incubator/raw 3.1.0
|
foo incubator/raw 3.1.0 0s
|
||||||
|
|
||||||
changing working directory back to "/path/to"
|
changing working directory back to "/path/to"
|
||||||
|
|
|
||||||
|
|
@ -87,9 +87,9 @@ processing releases in group 2/3: default/default/external-secrets
|
||||||
processing releases in group 3/3: default/default/my-release
|
processing releases in group 3/3: default/default/my-release
|
||||||
|
|
||||||
UPDATED RELEASES:
|
UPDATED RELEASES:
|
||||||
NAME CHART VERSION
|
NAME CHART VERSION DURATION
|
||||||
kubernetes-external-secrets incubator/raw 3.1.0
|
kubernetes-external-secrets incubator/raw 3.1.0 0s
|
||||||
external-secrets incubator/raw 3.1.0
|
external-secrets incubator/raw 3.1.0 0s
|
||||||
my-release incubator/raw 3.1.0
|
my-release incubator/raw 3.1.0 0s
|
||||||
|
|
||||||
changing working directory back to "/path/to"
|
changing working directory back to "/path/to"
|
||||||
|
|
|
||||||
|
|
@ -84,8 +84,8 @@ processing releases in group 1/2: default/default/external-secrets
|
||||||
processing releases in group 2/2: default/default/my-release
|
processing releases in group 2/2: default/default/my-release
|
||||||
|
|
||||||
UPDATED RELEASES:
|
UPDATED RELEASES:
|
||||||
NAME CHART VERSION
|
NAME CHART VERSION DURATION
|
||||||
external-secrets incubator/raw 3.1.0
|
external-secrets incubator/raw 3.1.0 0s
|
||||||
my-release incubator/raw 3.1.0
|
my-release incubator/raw 3.1.0 0s
|
||||||
|
|
||||||
changing working directory back to "/path/to"
|
changing working directory back to "/path/to"
|
||||||
|
|
|
||||||
|
|
@ -92,12 +92,13 @@ processing releases in group 1/2: default/default/external-secrets
|
||||||
processing releases in group 2/2: default/default/my-release
|
processing releases in group 2/2: default/default/my-release
|
||||||
|
|
||||||
UPDATED RELEASES:
|
UPDATED RELEASES:
|
||||||
NAME CHART VERSION
|
NAME CHART VERSION DURATION
|
||||||
external-secrets incubator/raw 3.1.0
|
external-secrets incubator/raw 3.1.0 0s
|
||||||
my-release incubator/raw 3.1.0
|
my-release incubator/raw 3.1.0 0s
|
||||||
|
|
||||||
|
|
||||||
DELETED RELEASES:
|
DELETED RELEASES:
|
||||||
NAME
|
NAME DURATION
|
||||||
kubernetes-external-secrets
|
kubernetes-external-secrets 0s
|
||||||
|
|
||||||
changing working directory back to "/path/to"
|
changing working directory back to "/path/to"
|
||||||
|
|
|
||||||
|
|
@ -86,8 +86,8 @@ processing releases in group 1/2: default/default/external-secrets
|
||||||
processing releases in group 2/2: default/default/my-release
|
processing releases in group 2/2: default/default/my-release
|
||||||
|
|
||||||
UPDATED RELEASES:
|
UPDATED RELEASES:
|
||||||
NAME CHART VERSION
|
NAME CHART VERSION DURATION
|
||||||
external-secrets incubator/raw 3.1.0
|
external-secrets incubator/raw 3.1.0 0s
|
||||||
my-release incubator/raw 3.1.0
|
my-release incubator/raw 3.1.0 0s
|
||||||
|
|
||||||
changing working directory back to "/path/to"
|
changing working directory back to "/path/to"
|
||||||
|
|
|
||||||
|
|
@ -82,8 +82,8 @@ processing releases in group 1/2: default/default/external-secrets
|
||||||
processing releases in group 2/2: default/default/my-release
|
processing releases in group 2/2: default/default/my-release
|
||||||
|
|
||||||
UPDATED RELEASES:
|
UPDATED RELEASES:
|
||||||
NAME CHART VERSION
|
NAME CHART VERSION DURATION
|
||||||
external-secrets incubator/raw 3.1.0
|
external-secrets incubator/raw 3.1.0 0s
|
||||||
my-release incubator/raw 3.1.0
|
my-release incubator/raw 3.1.0 0s
|
||||||
|
|
||||||
changing working directory back to "/path/to"
|
changing working directory back to "/path/to"
|
||||||
|
|
|
||||||
|
|
@ -79,7 +79,7 @@ GROUP RELEASES
|
||||||
processing releases in group 1/1: default/default/external-secrets
|
processing releases in group 1/1: default/default/external-secrets
|
||||||
|
|
||||||
UPDATED RELEASES:
|
UPDATED RELEASES:
|
||||||
NAME CHART VERSION
|
NAME CHART VERSION DURATION
|
||||||
external-secrets incubator/raw 3.1.0
|
external-secrets incubator/raw 3.1.0 0s
|
||||||
|
|
||||||
changing working directory back to "/path/to"
|
changing working directory back to "/path/to"
|
||||||
|
|
|
||||||
|
|
@ -87,9 +87,9 @@ processing releases in group 2/3: default/external-secrets
|
||||||
processing releases in group 3/3: default/my-release
|
processing releases in group 3/3: default/my-release
|
||||||
|
|
||||||
UPDATED RELEASES:
|
UPDATED RELEASES:
|
||||||
NAME CHART VERSION
|
NAME CHART VERSION DURATION
|
||||||
kubernetes-external-secrets incubator/raw 3.1.0
|
kubernetes-external-secrets incubator/raw 3.1.0 0s
|
||||||
external-secrets incubator/raw 3.1.0
|
external-secrets incubator/raw 3.1.0 0s
|
||||||
my-release incubator/raw 3.1.0
|
my-release incubator/raw 3.1.0 0s
|
||||||
|
|
||||||
changing working directory back to "/path/to"
|
changing working directory back to "/path/to"
|
||||||
|
|
|
||||||
|
|
@ -84,8 +84,8 @@ processing releases in group 1/2: default/external-secrets
|
||||||
processing releases in group 2/2: default/my-release
|
processing releases in group 2/2: default/my-release
|
||||||
|
|
||||||
UPDATED RELEASES:
|
UPDATED RELEASES:
|
||||||
NAME CHART VERSION
|
NAME CHART VERSION DURATION
|
||||||
external-secrets incubator/raw 3.1.0
|
external-secrets incubator/raw 3.1.0 0s
|
||||||
my-release incubator/raw 3.1.0
|
my-release incubator/raw 3.1.0 0s
|
||||||
|
|
||||||
changing working directory back to "/path/to"
|
changing working directory back to "/path/to"
|
||||||
|
|
|
||||||
|
|
@ -92,12 +92,13 @@ processing releases in group 1/2: default/external-secrets
|
||||||
processing releases in group 2/2: default/my-release
|
processing releases in group 2/2: default/my-release
|
||||||
|
|
||||||
UPDATED RELEASES:
|
UPDATED RELEASES:
|
||||||
NAME CHART VERSION
|
NAME CHART VERSION DURATION
|
||||||
external-secrets incubator/raw 3.1.0
|
external-secrets incubator/raw 3.1.0 0s
|
||||||
my-release incubator/raw 3.1.0
|
my-release incubator/raw 3.1.0 0s
|
||||||
|
|
||||||
|
|
||||||
DELETED RELEASES:
|
DELETED RELEASES:
|
||||||
NAME
|
NAME DURATION
|
||||||
kubernetes-external-secrets
|
kubernetes-external-secrets 0s
|
||||||
|
|
||||||
changing working directory back to "/path/to"
|
changing working directory back to "/path/to"
|
||||||
|
|
|
||||||
|
|
@ -86,8 +86,8 @@ processing releases in group 1/2: default/external-secrets
|
||||||
processing releases in group 2/2: default/my-release
|
processing releases in group 2/2: default/my-release
|
||||||
|
|
||||||
UPDATED RELEASES:
|
UPDATED RELEASES:
|
||||||
NAME CHART VERSION
|
NAME CHART VERSION DURATION
|
||||||
external-secrets incubator/raw 3.1.0
|
external-secrets incubator/raw 3.1.0 0s
|
||||||
my-release incubator/raw 3.1.0
|
my-release incubator/raw 3.1.0 0s
|
||||||
|
|
||||||
changing working directory back to "/path/to"
|
changing working directory back to "/path/to"
|
||||||
|
|
|
||||||
|
|
@ -82,8 +82,8 @@ processing releases in group 1/2: default/external-secrets
|
||||||
processing releases in group 2/2: default/my-release
|
processing releases in group 2/2: default/my-release
|
||||||
|
|
||||||
UPDATED RELEASES:
|
UPDATED RELEASES:
|
||||||
NAME CHART VERSION
|
NAME CHART VERSION DURATION
|
||||||
external-secrets incubator/raw 3.1.0
|
external-secrets incubator/raw 3.1.0 0s
|
||||||
my-release incubator/raw 3.1.0
|
my-release incubator/raw 3.1.0 0s
|
||||||
|
|
||||||
changing working directory back to "/path/to"
|
changing working directory back to "/path/to"
|
||||||
|
|
|
||||||
|
|
@ -79,7 +79,7 @@ GROUP RELEASES
|
||||||
processing releases in group 1/1: default/external-secrets
|
processing releases in group 1/1: default/external-secrets
|
||||||
|
|
||||||
UPDATED RELEASES:
|
UPDATED RELEASES:
|
||||||
NAME CHART VERSION
|
NAME CHART VERSION DURATION
|
||||||
external-secrets incubator/raw 3.1.0
|
external-secrets incubator/raw 3.1.0 0s
|
||||||
|
|
||||||
changing working directory back to "/path/to"
|
changing working directory back to "/path/to"
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,6 @@ hook[presync] logs | foo
|
||||||
hook[presync] logs |
|
hook[presync] logs |
|
||||||
|
|
||||||
UPDATED RELEASES:
|
UPDATED RELEASES:
|
||||||
NAME CHART VERSION
|
NAME CHART VERSION DURATION
|
||||||
foo incubator/raw
|
foo incubator/raw 0s
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,6 @@ hook[presync] logs | foo
|
||||||
hook[presync] logs |
|
hook[presync] logs |
|
||||||
|
|
||||||
UPDATED RELEASES:
|
UPDATED RELEASES:
|
||||||
NAME CHART VERSION
|
NAME CHART VERSION DURATION
|
||||||
foo incubator/raw
|
foo incubator/raw 0s
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,6 @@ hook[preapply] logs | foo
|
||||||
hook[preapply] logs |
|
hook[preapply] logs |
|
||||||
|
|
||||||
UPDATED RELEASES:
|
UPDATED RELEASES:
|
||||||
NAME CHART VERSION
|
NAME CHART VERSION DURATION
|
||||||
foo incubator/raw
|
foo incubator/raw 0s
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,6 @@ hook[presync] logs | foo
|
||||||
hook[presync] logs |
|
hook[presync] logs |
|
||||||
|
|
||||||
UPDATED RELEASES:
|
UPDATED RELEASES:
|
||||||
NAME CHART VERSION
|
NAME CHART VERSION DURATION
|
||||||
foo incubator/raw 3.1.0
|
foo incubator/raw 3.1.0 0s
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,6 @@ hook[presync] logs | foo
|
||||||
hook[presync] logs |
|
hook[presync] logs |
|
||||||
|
|
||||||
UPDATED RELEASES:
|
UPDATED RELEASES:
|
||||||
NAME CHART VERSION
|
NAME CHART VERSION DURATION
|
||||||
foo incubator/raw
|
foo incubator/raw 0s
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ hook[presync] logs | bar
|
||||||
hook[presync] logs |
|
hook[presync] logs |
|
||||||
|
|
||||||
UPDATED RELEASES:
|
UPDATED RELEASES:
|
||||||
NAME CHART VERSION
|
NAME CHART VERSION DURATION
|
||||||
foo incubator/raw
|
foo incubator/raw 0s
|
||||||
bar incubator/raw
|
bar incubator/raw 0s
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -15,10 +15,11 @@ hook[presync] logs | foo
|
||||||
hook[presync] logs |
|
hook[presync] logs |
|
||||||
|
|
||||||
UPDATED RELEASES:
|
UPDATED RELEASES:
|
||||||
NAME CHART VERSION
|
NAME CHART VERSION DURATION
|
||||||
foo incubator/raw 3.1.0
|
foo incubator/raw 3.1.0 0s
|
||||||
|
|
||||||
|
|
||||||
DELETED RELEASES:
|
DELETED RELEASES:
|
||||||
NAME
|
NAME DURATION
|
||||||
bar
|
bar 0s
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
"sync"
|
"sync"
|
||||||
"text/template"
|
"text/template"
|
||||||
|
"time"
|
||||||
|
|
||||||
"github.com/helmfile/chartify"
|
"github.com/helmfile/chartify"
|
||||||
"github.com/helmfile/vals"
|
"github.com/helmfile/vals"
|
||||||
|
|
@ -289,6 +290,7 @@ type ReleaseSpec struct {
|
||||||
Values []interface{} `yaml:"values,omitempty"`
|
Values []interface{} `yaml:"values,omitempty"`
|
||||||
Secrets []interface{} `yaml:"secrets,omitempty"`
|
Secrets []interface{} `yaml:"secrets,omitempty"`
|
||||||
SetValues []SetValue `yaml:"set,omitempty"`
|
SetValues []SetValue `yaml:"set,omitempty"`
|
||||||
|
duration time.Duration
|
||||||
|
|
||||||
ValuesTemplate []interface{} `yaml:"valuesTemplate,omitempty"`
|
ValuesTemplate []interface{} `yaml:"valuesTemplate,omitempty"`
|
||||||
SetValuesTemplate []SetValue `yaml:"setTemplate,omitempty"`
|
SetValuesTemplate []SetValue `yaml:"setTemplate,omitempty"`
|
||||||
|
|
@ -797,6 +799,7 @@ func (st *HelmState) DeleteReleasesForSync(affectedReleases *AffectedReleases, h
|
||||||
}
|
}
|
||||||
deletionFlags := st.appendConnectionFlags(args, release)
|
deletionFlags := st.appendConnectionFlags(args, release)
|
||||||
m.Lock()
|
m.Lock()
|
||||||
|
start := time.Now()
|
||||||
if _, err := st.triggerReleaseEvent("preuninstall", nil, release, "sync"); err != nil {
|
if _, err := st.triggerReleaseEvent("preuninstall", nil, release, "sync"); err != nil {
|
||||||
affectedReleases.Failed = append(affectedReleases.Failed, release)
|
affectedReleases.Failed = append(affectedReleases.Failed, release)
|
||||||
relErr = newReleaseFailedError(release, err)
|
relErr = newReleaseFailedError(release, err)
|
||||||
|
|
@ -809,6 +812,7 @@ func (st *HelmState) DeleteReleasesForSync(affectedReleases *AffectedReleases, h
|
||||||
} else {
|
} else {
|
||||||
affectedReleases.Deleted = append(affectedReleases.Deleted, release)
|
affectedReleases.Deleted = append(affectedReleases.Deleted, release)
|
||||||
}
|
}
|
||||||
|
release.duration = time.Since(start)
|
||||||
m.Unlock()
|
m.Unlock()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -892,6 +896,7 @@ func (st *HelmState) SyncReleases(affectedReleases *AffectedReleases, helm helme
|
||||||
var relErr *ReleaseError
|
var relErr *ReleaseError
|
||||||
context := st.createHelmContext(release, workerIndex)
|
context := st.createHelmContext(release, workerIndex)
|
||||||
|
|
||||||
|
start := time.Now()
|
||||||
if _, err := st.triggerPresyncEvent(release, "sync"); err != nil {
|
if _, err := st.triggerPresyncEvent(release, "sync"); err != nil {
|
||||||
relErr = newReleaseFailedError(release, err)
|
relErr = newReleaseFailedError(release, err)
|
||||||
} else if !release.Desired() {
|
} else if !release.Desired() {
|
||||||
|
|
@ -948,6 +953,7 @@ func (st *HelmState) SyncReleases(affectedReleases *AffectedReleases, helm helme
|
||||||
st.logger.Warnf("warn: %v\n", err)
|
st.logger.Warnf("warn: %v\n", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
release.duration = time.Since(start)
|
||||||
|
|
||||||
if relErr == nil {
|
if relErr == nil {
|
||||||
results <- syncResult{}
|
results <- syncResult{}
|
||||||
|
|
@ -2026,6 +2032,7 @@ func (st *HelmState) DeleteReleases(affectedReleases *AffectedReleases, helm hel
|
||||||
}
|
}
|
||||||
context := st.createHelmContext(&release, workerIndex)
|
context := st.createHelmContext(&release, workerIndex)
|
||||||
|
|
||||||
|
start := time.Now()
|
||||||
if _, err := st.triggerReleaseEvent("preuninstall", nil, &release, "delete"); err != nil {
|
if _, err := st.triggerReleaseEvent("preuninstall", nil, &release, "delete"); err != nil {
|
||||||
affectedReleases.Failed = append(affectedReleases.Failed, &release)
|
affectedReleases.Failed = append(affectedReleases.Failed, &release)
|
||||||
|
|
||||||
|
|
@ -2041,6 +2048,7 @@ func (st *HelmState) DeleteReleases(affectedReleases *AffectedReleases, helm hel
|
||||||
affectedReleases.Failed = append(affectedReleases.Failed, &release)
|
affectedReleases.Failed = append(affectedReleases.Failed, &release)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
release.duration = time.Since(start)
|
||||||
|
|
||||||
affectedReleases.Deleted = append(affectedReleases.Deleted, &release)
|
affectedReleases.Deleted = append(affectedReleases.Deleted, &release)
|
||||||
return nil
|
return nil
|
||||||
|
|
@ -3066,11 +3074,12 @@ func (ar *AffectedReleases) DisplayAffectedReleases(logger *zap.SugaredLogger) {
|
||||||
logger.Info("\nUPDATED RELEASES:")
|
logger.Info("\nUPDATED RELEASES:")
|
||||||
tbl, _ := prettytable.NewTable(prettytable.Column{Header: "NAME"},
|
tbl, _ := prettytable.NewTable(prettytable.Column{Header: "NAME"},
|
||||||
prettytable.Column{Header: "CHART", MinWidth: 6},
|
prettytable.Column{Header: "CHART", MinWidth: 6},
|
||||||
prettytable.Column{Header: "VERSION", AlignRight: true},
|
prettytable.Column{Header: "VERSION", MinWidth: 6},
|
||||||
|
prettytable.Column{Header: "DURATION", AlignRight: true},
|
||||||
)
|
)
|
||||||
tbl.Separator = " "
|
tbl.Separator = " "
|
||||||
for _, release := range ar.Upgraded {
|
for _, release := range ar.Upgraded {
|
||||||
err := tbl.AddRow(release.Name, release.Chart, release.installedVersion)
|
err := tbl.AddRow(release.Name, release.Chart, release.installedVersion, release.duration.Round(time.Second))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Warn("Could not add row, %v", err)
|
logger.Warn("Could not add row, %v", err)
|
||||||
}
|
}
|
||||||
|
|
@ -3079,18 +3088,33 @@ func (ar *AffectedReleases) DisplayAffectedReleases(logger *zap.SugaredLogger) {
|
||||||
}
|
}
|
||||||
if ar.Deleted != nil && len(ar.Deleted) > 0 {
|
if ar.Deleted != nil && len(ar.Deleted) > 0 {
|
||||||
logger.Info("\nDELETED RELEASES:")
|
logger.Info("\nDELETED RELEASES:")
|
||||||
logger.Info("NAME")
|
tbl, _ := prettytable.NewTable(prettytable.Column{Header: "NAME"},
|
||||||
|
prettytable.Column{Header: "DURATION", AlignRight: true},
|
||||||
|
)
|
||||||
|
tbl.Separator = " "
|
||||||
for _, release := range ar.Deleted {
|
for _, release := range ar.Deleted {
|
||||||
logger.Info(release.Name)
|
err := tbl.AddRow(release.Name, release.duration.Round(time.Second))
|
||||||
|
if err != nil {
|
||||||
|
logger.Warn("Could not add row, %v", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
logger.Info(tbl.String())
|
||||||
|
}
|
||||||
if ar.Failed != nil && len(ar.Failed) > 0 {
|
if ar.Failed != nil && len(ar.Failed) > 0 {
|
||||||
logger.Info("\nFAILED RELEASES:")
|
logger.Info("\nFAILED RELEASES:")
|
||||||
logger.Info("NAME")
|
tbl, _ := prettytable.NewTable(prettytable.Column{Header: "NAME"},
|
||||||
|
prettytable.Column{Header: "CHART", MinWidth: 6},
|
||||||
|
prettytable.Column{Header: "VERSION", AlignRight: true},
|
||||||
|
)
|
||||||
|
tbl.Separator = " "
|
||||||
for _, release := range ar.Failed {
|
for _, release := range ar.Failed {
|
||||||
logger.Info(release.Name)
|
err := tbl.AddRow(release.Name, release.Chart, release.installedVersion)
|
||||||
|
if err != nil {
|
||||||
|
logger.Warn("Could not add row, %v", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
logger.Info(tbl.String())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func escape(value string) string {
|
func escape(value string) string {
|
||||||
|
|
|
||||||
|
|
@ -38,39 +38,39 @@ func TestGenerateID(t *testing.T) {
|
||||||
run(testcase{
|
run(testcase{
|
||||||
subject: "baseline",
|
subject: "baseline",
|
||||||
release: ReleaseSpec{Name: "foo", Chart: "incubator/raw"},
|
release: ReleaseSpec{Name: "foo", Chart: "incubator/raw"},
|
||||||
want: "foo-values-7cd4757dfd",
|
want: "foo-values-77cb4d7f9b",
|
||||||
})
|
})
|
||||||
|
|
||||||
run(testcase{
|
run(testcase{
|
||||||
subject: "different bytes content",
|
subject: "different bytes content",
|
||||||
release: ReleaseSpec{Name: "foo", Chart: "incubator/raw"},
|
release: ReleaseSpec{Name: "foo", Chart: "incubator/raw"},
|
||||||
data: []byte(`{"k":"v"}`),
|
data: []byte(`{"k":"v"}`),
|
||||||
want: "foo-values-7bb85f848f",
|
want: "foo-values-6f6bc74b55",
|
||||||
})
|
})
|
||||||
|
|
||||||
run(testcase{
|
run(testcase{
|
||||||
subject: "different map content",
|
subject: "different map content",
|
||||||
release: ReleaseSpec{Name: "foo", Chart: "incubator/raw"},
|
release: ReleaseSpec{Name: "foo", Chart: "incubator/raw"},
|
||||||
data: map[string]interface{}{"k": "v"},
|
data: map[string]interface{}{"k": "v"},
|
||||||
want: "foo-values-c57649655",
|
want: "foo-values-57dfc6cb8f",
|
||||||
})
|
})
|
||||||
|
|
||||||
run(testcase{
|
run(testcase{
|
||||||
subject: "different chart",
|
subject: "different chart",
|
||||||
release: ReleaseSpec{Name: "foo", Chart: "stable/envoy"},
|
release: ReleaseSpec{Name: "foo", Chart: "stable/envoy"},
|
||||||
want: "foo-values-bf798c8f",
|
want: "foo-values-74594bb67",
|
||||||
})
|
})
|
||||||
|
|
||||||
run(testcase{
|
run(testcase{
|
||||||
subject: "different name",
|
subject: "different name",
|
||||||
release: ReleaseSpec{Name: "bar", Chart: "incubator/raw"},
|
release: ReleaseSpec{Name: "bar", Chart: "incubator/raw"},
|
||||||
want: "bar-values-5465f47b4f",
|
want: "bar-values-bdbb54d7",
|
||||||
})
|
})
|
||||||
|
|
||||||
run(testcase{
|
run(testcase{
|
||||||
subject: "specific ns",
|
subject: "specific ns",
|
||||||
release: ReleaseSpec{Name: "foo", Chart: "incubator/raw", Namespace: "myns"},
|
release: ReleaseSpec{Name: "foo", Chart: "incubator/raw", Namespace: "myns"},
|
||||||
want: "myns-foo-values-55f77767f5",
|
want: "myns-foo-values-677dcd477",
|
||||||
})
|
})
|
||||||
|
|
||||||
for id, n := range ids {
|
for id, n := range ids {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue