Skip to content

Commit

Permalink
fix(application): exposed UpdateStatusFunc add Pre\PostUninstall repo (
Browse files Browse the repository at this point in the history
…#1633)


Co-authored-by: xdonggao <xdonggao@tencent.com>
  • Loading branch information
GaoXiaodong and xdonggao committed Oct 25, 2021
1 parent 24f26a6 commit e030f1b
Show file tree
Hide file tree
Showing 8 changed files with 36 additions and 28 deletions.
36 changes: 20 additions & 16 deletions pkg/application/controller/app/action/hooks.go
Expand Up @@ -38,45 +38,47 @@ type Hooks interface {
platformClient platformversionedclient.PlatformV1Interface,
app *applicationv1.App,
repo appconfig.RepoConfiguration,
updateStatusFunc updateStatusFunc) error
updateStatusFunc UpdateStatusFunc) error
PostInstall(ctx context.Context,
applicationClient applicationversionedclient.ApplicationV1Interface,
platformClient platformversionedclient.PlatformV1Interface,
app *applicationv1.App,
repo appconfig.RepoConfiguration,
updateStatusFunc updateStatusFunc) error
updateStatusFunc UpdateStatusFunc) error
PreUpgrade(ctx context.Context,
applicationClient applicationversionedclient.ApplicationV1Interface,
platformClient platformversionedclient.PlatformV1Interface,
app *applicationv1.App,
repo appconfig.RepoConfiguration,
updateStatusFunc updateStatusFunc) error
updateStatusFunc UpdateStatusFunc) error
PostUpgrade(ctx context.Context,
applicationClient applicationversionedclient.ApplicationV1Interface,
platformClient platformversionedclient.PlatformV1Interface,
app *applicationv1.App,
repo appconfig.RepoConfiguration,
updateStatusFunc updateStatusFunc) error
updateStatusFunc UpdateStatusFunc) error
PreRollback(ctx context.Context,
applicationClient applicationversionedclient.ApplicationV1Interface,
platformClient platformversionedclient.PlatformV1Interface,
app *applicationv1.App,
repo appconfig.RepoConfiguration,
updateStatusFunc updateStatusFunc) error
updateStatusFunc UpdateStatusFunc) error
PostRollback(ctx context.Context,
applicationClient applicationversionedclient.ApplicationV1Interface,
platformClient platformversionedclient.PlatformV1Interface,
app *applicationv1.App,
repo appconfig.RepoConfiguration,
updateStatusFunc updateStatusFunc) error
updateStatusFunc UpdateStatusFunc) error
PreUninstall(ctx context.Context,
applicationClient applicationversionedclient.ApplicationV1Interface,
platformClient platformversionedclient.PlatformV1Interface,
app *applicationv1.App) error
app *applicationv1.App,
repo appconfig.RepoConfiguration) error
PostUninstall(ctx context.Context,
applicationClient applicationversionedclient.ApplicationV1Interface,
platformClient platformversionedclient.PlatformV1Interface,
app *applicationv1.App) error
app *applicationv1.App,
repo appconfig.RepoConfiguration) error
}

type EmptyHooks struct{}
Expand All @@ -86,7 +88,7 @@ func (EmptyHooks) PreInstall(ctx context.Context,
platformClient platformversionedclient.PlatformV1Interface,
app *applicationv1.App,
repo appconfig.RepoConfiguration,
updateStatusFunc updateStatusFunc) error {
updateStatusFunc UpdateStatusFunc) error {
return nil
}

Expand All @@ -95,7 +97,7 @@ func (EmptyHooks) PostInstall(ctx context.Context,
platformClient platformversionedclient.PlatformV1Interface,
app *applicationv1.App,
repo appconfig.RepoConfiguration,
updateStatusFunc updateStatusFunc) error {
updateStatusFunc UpdateStatusFunc) error {
return nil
}

Expand All @@ -104,7 +106,7 @@ func (EmptyHooks) PreUpgrade(ctx context.Context,
platformClient platformversionedclient.PlatformV1Interface,
app *applicationv1.App,
repo appconfig.RepoConfiguration,
updateStatusFunc updateStatusFunc) error {
updateStatusFunc UpdateStatusFunc) error {
return nil
}

Expand All @@ -113,7 +115,7 @@ func (EmptyHooks) PostUpgrade(ctx context.Context,
platformClient platformversionedclient.PlatformV1Interface,
app *applicationv1.App,
repo appconfig.RepoConfiguration,
updateStatusFunc updateStatusFunc) error {
updateStatusFunc UpdateStatusFunc) error {
return nil
}

Expand All @@ -122,7 +124,7 @@ func (EmptyHooks) PreRollback(ctx context.Context,
platformClient platformversionedclient.PlatformV1Interface,
app *applicationv1.App,
repo appconfig.RepoConfiguration,
updateStatusFunc updateStatusFunc) error {
updateStatusFunc UpdateStatusFunc) error {
return nil
}

Expand All @@ -131,21 +133,23 @@ func (EmptyHooks) PostRollback(ctx context.Context,
platformClient platformversionedclient.PlatformV1Interface,
app *applicationv1.App,
repo appconfig.RepoConfiguration,
updateStatusFunc updateStatusFunc) error {
updateStatusFunc UpdateStatusFunc) error {
return nil
}

func (EmptyHooks) PreUninstall(ctx context.Context,
applicationClient applicationversionedclient.ApplicationV1Interface,
platformClient platformversionedclient.PlatformV1Interface,
app *applicationv1.App) error {
app *applicationv1.App,
repo appconfig.RepoConfiguration) error {
return nil
}

func (EmptyHooks) PostUninstall(ctx context.Context,
applicationClient applicationversionedclient.ApplicationV1Interface,
platformClient platformversionedclient.PlatformV1Interface,
app *applicationv1.App) error {
app *applicationv1.App,
repo appconfig.RepoConfiguration) error {
return nil
}

Expand Down
2 changes: 1 addition & 1 deletion pkg/application/controller/app/action/install.go
Expand Up @@ -38,7 +38,7 @@ func Install(ctx context.Context,
platformClient platformversionedclient.PlatformV1Interface,
app *applicationv1.App,
repo appconfig.RepoConfiguration,
updateStatusFunc updateStatusFunc) (*applicationv1.App, error) {
updateStatusFunc UpdateStatusFunc) (*applicationv1.App, error) {
hooks := getHooks(app)
err := hooks.PreInstall(ctx, applicationClient, platformClient, app, repo, updateStatusFunc)
if err != nil {
Expand Down
2 changes: 1 addition & 1 deletion pkg/application/controller/app/action/pull.go
Expand Up @@ -37,7 +37,7 @@ func Pull(ctx context.Context,
platformClient platformversionedclient.PlatformV1Interface,
app *applicationv1.App,
repo appconfig.RepoConfiguration,
updateStatusFunc updateStatusFunc) (string, error) {
updateStatusFunc UpdateStatusFunc) (string, error) {
client, err := util.NewHelmClient(ctx, platformClient, app.Spec.TargetCluster, app.Spec.TargetNamespace)
if err != nil {
return "", err
Expand Down
2 changes: 1 addition & 1 deletion pkg/application/controller/app/action/rollback.go
Expand Up @@ -36,7 +36,7 @@ func Rollback(ctx context.Context,
platformClient platformversionedclient.PlatformV1Interface,
app *applicationv1.App,
repo appconfig.RepoConfiguration,
updateStatusFunc updateStatusFunc) (*applicationv1.App, error) {
updateStatusFunc UpdateStatusFunc) (*applicationv1.App, error) {
hooks := getHooks(app)
err := hooks.PreRollback(ctx, applicationClient, platformClient, app, repo, updateStatusFunc)
if err != nil {
Expand Down
2 changes: 1 addition & 1 deletion pkg/application/controller/app/action/types.go
Expand Up @@ -24,4 +24,4 @@ import (
applicationv1 "tkestack.io/tke/api/application/v1"
)

type updateStatusFunc func(ctx context.Context, app *applicationv1.App, previousStatus, newStatus *applicationv1.AppStatus) (*applicationv1.App, error)
type UpdateStatusFunc func(ctx context.Context, app *applicationv1.App, previousStatus, newStatus *applicationv1.AppStatus) (*applicationv1.App, error)
8 changes: 5 additions & 3 deletions pkg/application/controller/app/action/uninstall.go
Expand Up @@ -20,6 +20,7 @@ package action

import (
"context"
appconfig "tkestack.io/tke/pkg/application/config"

"helm.sh/helm/v3/pkg/release"
applicationv1 "tkestack.io/tke/api/application/v1"
Expand All @@ -33,9 +34,10 @@ import (
func Uninstall(ctx context.Context,
applicationClient applicationversionedclient.ApplicationV1Interface,
platformClient platformversionedclient.PlatformV1Interface,
app *applicationv1.App) (*release.UninstallReleaseResponse, error) {
app *applicationv1.App,
repo appconfig.RepoConfiguration) (*release.UninstallReleaseResponse, error) {
hooks := getHooks(app)
err := hooks.PreUninstall(ctx, applicationClient, platformClient, app)
err := hooks.PreUninstall(ctx, applicationClient, platformClient, app, repo)
if err != nil {
return nil, err
}
Expand All @@ -50,6 +52,6 @@ func Uninstall(ctx context.Context,
if err != nil {
return resp, err
}
err = hooks.PostUninstall(ctx, applicationClient, platformClient, app)
err = hooks.PostUninstall(ctx, applicationClient, platformClient, app, repo)
return resp, err
}
2 changes: 1 addition & 1 deletion pkg/application/controller/app/action/upgrade.go
Expand Up @@ -38,7 +38,7 @@ func Upgrade(ctx context.Context,
platformClient platformversionedclient.PlatformV1Interface,
app *applicationv1.App,
repo appconfig.RepoConfiguration,
updateStatusFunc updateStatusFunc) (*applicationv1.App, error) {
updateStatusFunc UpdateStatusFunc) (*applicationv1.App, error) {
hooks := getHooks(app)
err := hooks.PreUpgrade(ctx, applicationClient, platformClient, app, repo, updateStatusFunc)
if err != nil {
Expand Down
10 changes: 6 additions & 4 deletions pkg/application/controller/app/deletion/app_resources_deleter.go
Expand Up @@ -253,7 +253,8 @@ func (d *applicationResourcesDeleter) finalizeApplication(ctx context.Context, a

type deleteResourceFunc func(ctx context.Context,
deleter *applicationResourcesDeleter,
app *applicationv1.App) error
app *applicationv1.App,
repo appconfig.RepoConfiguration) error

var deleteResourceFuncs = []deleteResourceFunc{
deleteApplication,
Expand All @@ -267,7 +268,7 @@ func (d *applicationResourcesDeleter) deleteAllContent(ctx context.Context, app

var errs []error
for _, deleteFunc := range deleteResourceFuncs {
err := deleteFunc(ctx, d, app)
err := deleteFunc(ctx, d, app, d.repo)
if err != nil {
// If there is an error, hold on to it but proceed with all the remaining resource.
errs = append(errs, err)
Expand All @@ -284,8 +285,9 @@ func (d *applicationResourcesDeleter) deleteAllContent(ctx context.Context, app

func deleteApplication(ctx context.Context,
deleter *applicationResourcesDeleter,
app *applicationv1.App) error {
_, err := action.Uninstall(ctx, deleter.applicationClient, deleter.platformClient, app)
app *applicationv1.App,
repo appconfig.RepoConfiguration) error {
_, err := action.Uninstall(ctx, deleter.applicationClient, deleter.platformClient, app, repo)
if err != nil {
if strings.Contains(err.Error(), "not found") {
log.Warn(err.Error())
Expand Down

0 comments on commit e030f1b

Please sign in to comment.