mirror of
https://github.com/zitadel/zitadel.git
synced 2025-08-11 21:37:32 +00:00
feat(crdb): use crdb native backup and s3 backup added (#1915)
* fix(zitadelctl): implement takedown command * fix(zitadelctl): correct destroy flow * fix(zitadelctl): correct backup commands to read crds beforehand * fix: add of destroyfile * fix: clean for userlist * fix: change backup and restore to crdb native * fix: timeout for delete pvc for cockroachdb * fix: corrected unit tests * fix: add ignored file for scale * fix: correct handling of gitops in backup command * feat: add s3 backup kind * fix: backuplist for s3 and timeout for pv deletion * fix(database): fix nil pointer with binary version * fix(database): cleanup of errors which cam with merging of the s3 logic * fix: correct unit tests * fix: cleanup monitor output Co-authored-by: Elio Bischof <eliobischof@gmail.com> * fix: backup imagepullpolixy to ifnotpresent Co-authored-by: Elio Bischof <eliobischof@gmail.com>
This commit is contained in:
@@ -2,13 +2,11 @@ package cmds
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/caos/orbos/pkg/kubernetes/cli"
|
||||
"sort"
|
||||
|
||||
"github.com/spf13/cobra"
|
||||
|
||||
"github.com/caos/orbos/pkg/kubernetes/cli"
|
||||
|
||||
"github.com/caos/zitadel/pkg/databases"
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
|
||||
func BackupListCommand(getRv GetRootValues) *cobra.Command {
|
||||
|
@@ -3,11 +3,11 @@ package cmds
|
||||
import (
|
||||
"errors"
|
||||
|
||||
"github.com/caos/zitadel/pkg/zitadel"
|
||||
|
||||
"github.com/caos/orbos/mntr"
|
||||
|
||||
"github.com/caos/orbos/pkg/kubernetes/cli"
|
||||
"github.com/caos/zitadel/operator/crtlcrd"
|
||||
"github.com/caos/zitadel/operator/crtlgitops"
|
||||
|
||||
"github.com/caos/zitadel/pkg/databases"
|
||||
"github.com/manifoldco/promptui"
|
||||
@@ -82,17 +82,17 @@ func RestoreCommand(getRv GetRootValues) *cobra.Command {
|
||||
return mntr.ToUserError(errors.New("chosen backup is not existing"))
|
||||
}
|
||||
|
||||
ensure := func() error { return nil }
|
||||
if rv.Gitops {
|
||||
if err := zitadel.GitOpsClearMigrateRestore(monitor, gitClient, orbConfig, k8sClient, backup, &version); err != nil {
|
||||
return err
|
||||
ensure = func() error {
|
||||
return crtlgitops.Restore(monitor, gitClient, k8sClient, backup)
|
||||
}
|
||||
} else {
|
||||
if err := zitadel.CrdClearMigrateRestore(monitor, k8sClient, backup, &version); err != nil {
|
||||
return err
|
||||
ensure = func() error {
|
||||
return crtlcrd.Restore(monitor, k8sClient, backup)
|
||||
}
|
||||
|
||||
}
|
||||
return nil
|
||||
return scaleForFunction(monitor, gitClient, orbConfig, k8sClient, &version, rv.Gitops, ensure)
|
||||
}
|
||||
return cmd
|
||||
}
|
||||
|
85
cmd/zitadelctl/cmds/scale.go
Normal file
85
cmd/zitadelctl/cmds/scale.go
Normal file
@@ -0,0 +1,85 @@
|
||||
package cmds
|
||||
|
||||
import (
|
||||
"github.com/caos/orbos/mntr"
|
||||
"github.com/caos/orbos/pkg/git"
|
||||
"github.com/caos/orbos/pkg/kubernetes"
|
||||
orbconfig "github.com/caos/orbos/pkg/orb"
|
||||
"github.com/caos/zitadel/operator/crtlcrd/zitadel"
|
||||
"github.com/caos/zitadel/operator/crtlgitops"
|
||||
kubernetes2 "github.com/caos/zitadel/pkg/kubernetes"
|
||||
macherrs "k8s.io/apimachinery/pkg/api/errors"
|
||||
)
|
||||
|
||||
func scaleForFunction(
|
||||
monitor mntr.Monitor,
|
||||
gitClient *git.Client,
|
||||
orbCfg *orbconfig.Orb,
|
||||
k8sClient *kubernetes.Client,
|
||||
version *string,
|
||||
gitops bool,
|
||||
ensureFunc func() error,
|
||||
) error {
|
||||
noOperator := false
|
||||
if err := kubernetes2.ScaleZitadelOperator(monitor, k8sClient, 0); err != nil {
|
||||
if macherrs.IsNotFound(err) {
|
||||
noOperator = true
|
||||
} else {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
noZitadel := false
|
||||
if gitops {
|
||||
noZitadelT, err := crtlgitops.ScaleDown(monitor, gitClient, k8sClient, orbCfg, version, gitops)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
noZitadel = noZitadelT
|
||||
} else {
|
||||
noZitadelT, err := zitadel.ScaleDown(monitor, k8sClient, version)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
noZitadel = noZitadelT
|
||||
}
|
||||
|
||||
noDatabase := false
|
||||
if err := kubernetes2.ScaleDatabaseOperator(monitor, k8sClient, 0); err != nil {
|
||||
if macherrs.IsNotFound(err) {
|
||||
noDatabase = true
|
||||
} else {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
if err := ensureFunc(); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if !noDatabase {
|
||||
if err := kubernetes2.ScaleDatabaseOperator(monitor, k8sClient, 1); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
if !noZitadel {
|
||||
if gitops {
|
||||
if err := crtlgitops.ScaleUp(monitor, gitClient, k8sClient, orbCfg, version, gitops); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
if err := zitadel.ScaleUp(monitor, k8sClient, version); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if !noOperator {
|
||||
if err := kubernetes2.ScaleZitadelOperator(monitor, k8sClient, 1); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
Reference in New Issue
Block a user