Return list of installed/updated charts to shipyard
Required for airflow upgrade. Change-Id: Icd7c0814755c2606181e3bec5f5c05ad1bda43a8 Signed-off-by: Ruslan Aliev <raliev@mirantis.com>
This commit is contained in:
parent
8954d985c0
commit
19e2b88695
@ -59,6 +59,8 @@ type RunCommand struct {
|
|||||||
Manifests string
|
Manifests string
|
||||||
TargetManifest string
|
TargetManifest string
|
||||||
Out io.Writer
|
Out io.Writer
|
||||||
|
Installed *[]string
|
||||||
|
Updated *[]string
|
||||||
|
|
||||||
airManifest *AirshipManifest
|
airManifest *AirshipManifest
|
||||||
airGroups map[string]*AirshipChartGroup
|
airGroups map[string]*AirshipChartGroup
|
||||||
@ -167,6 +169,8 @@ func (c *RunCommand) InstallChart(
|
|||||||
restConfig *rest.Config) error {
|
restConfig *rest.Config) error {
|
||||||
|
|
||||||
log.Printf("installing chart %s %s %s", chart.GetName(), chart.Name, chart.Namespace)
|
log.Printf("installing chart %s %s %s", chart.GetName(), chart.Name, chart.Namespace)
|
||||||
|
updated := false
|
||||||
|
var prevGen int64
|
||||||
obj, err := runtime.DefaultUnstructuredConverter.ToUnstructured(chart)
|
obj, err := runtime.DefaultUnstructuredConverter.ToUnstructured(chart)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@ -181,6 +185,7 @@ func (c *RunCommand) InstallChart(
|
|||||||
}
|
}
|
||||||
log.Printf("chart has been successfully created %s", chart.Name)
|
log.Printf("chart has been successfully created %s", chart.Name)
|
||||||
} else {
|
} else {
|
||||||
|
prevGen = oldObj.GetGeneration()
|
||||||
uObj := &unstructured.Unstructured{Object: obj}
|
uObj := &unstructured.Unstructured{Object: obj}
|
||||||
uObj.SetResourceVersion(oldObj.GetResourceVersion())
|
uObj.SetResourceVersion(oldObj.GetResourceVersion())
|
||||||
log.Printf("chart %s was found, updating", chart.Name)
|
log.Printf("chart %s was found, updating", chart.Name)
|
||||||
@ -194,6 +199,7 @@ func (c *RunCommand) InstallChart(
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
log.Printf("chart has been successfully updated %s", chart.Name)
|
log.Printf("chart has been successfully updated %s", chart.Name)
|
||||||
|
updated = true
|
||||||
}
|
}
|
||||||
|
|
||||||
wOpts := armadawait.WaitOptions{
|
wOpts := armadawait.WaitOptions{
|
||||||
@ -208,6 +214,20 @@ func (c *RunCommand) InstallChart(
|
|||||||
|
|
||||||
err = wOpts.Wait(context.Background())
|
err = wOpts.Wait(context.Background())
|
||||||
log.Printf("finished with chart %s", chart.GetName())
|
log.Printf("finished with chart %s", chart.GetName())
|
||||||
|
if !updated && c.Installed != nil {
|
||||||
|
*c.Installed = append(*c.Installed, chart.Name)
|
||||||
|
} else if updated && c.Updated != nil {
|
||||||
|
if updObj, err := resClient.Namespace(chart.Namespace).Get(
|
||||||
|
context.Background(), chart.GetName(), metav1.GetOptions{}); err != nil {
|
||||||
|
log.Printf("unable to get current generation of chart %s: %s", chart.Name, err.Error())
|
||||||
|
} else {
|
||||||
|
newGen := updObj.GetGeneration()
|
||||||
|
// Chart actually has been updated
|
||||||
|
if newGen > prevGen {
|
||||||
|
*c.Updated = append(*c.Updated, chart.Name)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -77,7 +77,10 @@ func Apply(c *gin.Context) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
runOpts := apply.RunCommand{Manifests: dataReq.Href, TargetManifest: targetManifest, Out: os.Stdout}
|
installed := make([]string, 0)
|
||||||
|
updated := make([]string, 0)
|
||||||
|
runOpts := apply.RunCommand{Manifests: dataReq.Href, TargetManifest: targetManifest, Out: os.Stdout,
|
||||||
|
Installed: &installed, Updated: &updated}
|
||||||
if err := runOpts.RunE(); err != nil {
|
if err := runOpts.RunE(); err != nil {
|
||||||
c.String(500, "apply error", err.Error())
|
c.String(500, "apply error", err.Error())
|
||||||
return
|
return
|
||||||
@ -85,8 +88,8 @@ func Apply(c *gin.Context) {
|
|||||||
|
|
||||||
c.JSON(200, gin.H{
|
c.JSON(200, gin.H{
|
||||||
"message": gin.H{
|
"message": gin.H{
|
||||||
"install": []any{},
|
"install": installed,
|
||||||
"upgrade": []any{},
|
"upgrade": updated,
|
||||||
"diff": []any{},
|
"diff": []any{},
|
||||||
"purge": []any{},
|
"purge": []any{},
|
||||||
"protected": []any{},
|
"protected": []any{},
|
||||||
|
Loading…
x
Reference in New Issue
Block a user