From e015d6d61f643d3fdfa5e3461ae492279d4814b4 Mon Sep 17 00:00:00 2001 From: neha_gupta Date: Wed, 30 Nov 2022 13:51:24 +0530 Subject: [PATCH] add version info in fission support (#2645) --- pkg/fission-cli/cmd/support/dump.go | 15 ++++++------ pkg/fission-cli/cmd/support/resources/crd.go | 14 +++++++++++ pkg/healthcheck/healthcheck.go | 25 ++++++++++++++++---- 3 files changed, 42 insertions(+), 12 deletions(-) diff --git a/pkg/fission-cli/cmd/support/dump.go b/pkg/fission-cli/cmd/support/dump.go index 70b42de0..d78bdfa6 100644 --- a/pkg/fission-cli/cmd/support/dump.go +++ b/pkg/fission-cli/cmd/support/dump.go @@ -101,13 +101,14 @@ func (opts *DumpSubCommand) do(input cli.Input) error { "fission-function-pod-log": resources.NewKubernetesPodLogDumper(k8sClient, "executorType in (poolmgr, newdeploy)"), // CRD resources - "fission-crd-packages": resources.NewCrdDumper(opts.Client(), resources.CrdPackage), - "fission-crd-environments": resources.NewCrdDumper(opts.Client(), resources.CrdEnvironment), - "fission-crd-functions": resources.NewCrdDumper(opts.Client(), resources.CrdFunction), - "fission-crd-httptriggers": resources.NewCrdDumper(opts.Client(), resources.CrdHttpTrigger), - "fission-crd-kubewatchers": resources.NewCrdDumper(opts.Client(), resources.CrdKubeWatcher), - "fission-crd-mqtriggers": resources.NewCrdDumper(opts.Client(), resources.CrdMessageQueueTrigger), - "fission-crd-timetriggers": resources.NewCrdDumper(opts.Client(), resources.CrdTimeTrigger), + "fission-crd-packages": resources.NewCrdDumper(opts.Client(), resources.CrdPackage), + "fission-crd-environments": resources.NewCrdDumper(opts.Client(), resources.CrdEnvironment), + "fission-crd-functions": resources.NewCrdDumper(opts.Client(), resources.CrdFunction), + "fission-crd-httptriggers": resources.NewCrdDumper(opts.Client(), resources.CrdHttpTrigger), + "fission-crd-kubewatchers": resources.NewCrdDumper(opts.Client(), resources.CrdKubeWatcher), + "fission-crd-mqtriggers": resources.NewCrdDumper(opts.Client(), resources.CrdMessageQueueTrigger), + "fission-crd-timetriggers": resources.NewCrdDumper(opts.Client(), resources.CrdTimeTrigger), + "fission-crd-canaryconfigs": resources.NewCrdDumper(opts.Client(), resources.CrdCanaryConfig), } dumpName := fmt.Sprintf("%v_%v", DUMP_ARCHIVE_PREFIX, time.Now().Unix()) diff --git a/pkg/fission-cli/cmd/support/resources/crd.go b/pkg/fission-cli/cmd/support/resources/crd.go index ecc46329..ccef25a0 100644 --- a/pkg/fission-cli/cmd/support/resources/crd.go +++ b/pkg/fission-cli/cmd/support/resources/crd.go @@ -36,6 +36,8 @@ const ( CrdKubeWatcher = "KubeWatcher" CrdMessageQueueTrigger = "MessageQueue" CrdTimeTrigger = "TimeTrigger" + + CrdCanaryConfig = "CanaryConfig" ) type CrdDumper struct { @@ -138,6 +140,18 @@ func (res CrdDumper) Dump(ctx context.Context, dumpDir string) { writeToFile(f, item) } + case CrdCanaryConfig: + items, err := res.client.FissionClientSet.CoreV1().CanaryConfigs(metav1.NamespaceAll).List(ctx, metav1.ListOptions{}) + if err != nil { + console.Warn(fmt.Sprintf("Error getting %v list: %v", res.crdType, err)) + return + } + + for _, item := range items.Items { + f := getFileName(dumpDir, item.ObjectMeta) + writeToFile(f, item) + } + default: console.Warn(fmt.Sprintf("Unknown type: %v", res.crdType)) } diff --git a/pkg/healthcheck/healthcheck.go b/pkg/healthcheck/healthcheck.go index 804d7907..cbcd9828 100644 --- a/pkg/healthcheck/healthcheck.go +++ b/pkg/healthcheck/healthcheck.go @@ -26,6 +26,7 @@ import ( fv1 "github.com/fission/fission/pkg/apis/core/v1" "github.com/fission/fission/pkg/fission-cli/cliwrapper/cli" "github.com/fission/fission/pkg/fission-cli/cmd" + "github.com/fission/fission/pkg/fission-cli/console" "github.com/fission/fission/pkg/fission-cli/util" ) @@ -96,7 +97,7 @@ func (hc *HealthChecker) CheckKubeVersion() (err error) { return nil } -func (hc *HealthChecker) CheckServiceStatus(ctx context.Context, namespace string, name string) (err error) { +func (hc *HealthChecker) CheckServiceStatus(ctx context.Context, namespace, name, svcName string) (err error) { depl, err := hc.kubeAPI.AppsV1().Deployments(namespace).Get(ctx, name, metav1.GetOptions{}) if err != nil { return fmt.Errorf("failed to get %s deployment status", name) @@ -106,7 +107,7 @@ func (hc *HealthChecker) CheckServiceStatus(ctx context.Context, namespace strin return fmt.Errorf("%s deployment is not running", name) } - _, err = hc.kubeAPI.CoreV1().Services(namespace).Get(ctx, name, metav1.GetOptions{}) + _, err = hc.kubeAPI.CoreV1().Services(namespace).Get(ctx, svcName, metav1.GetOptions{}) if err != nil { return fmt.Errorf("failed to get %s service status", name) } @@ -120,6 +121,9 @@ func (hc *HealthChecker) CheckFissionVersion(ctx context.Context, input cli.Inpu clientVersion := ver.Client["fission/core"].Version serverVersion := ver.Server["fission/core"].Version + console.Verbose(2, "clientVersion: %s", clientVersion) + console.Verbose(2, "serverVersion: %s", serverVersion) + if clientVersion != serverVersion { return fmt.Errorf("client version %s does not match with server version %s", clientVersion, serverVersion) } @@ -155,19 +159,30 @@ func (hc *HealthChecker) allCategories() []*Category { { successMsg: "executor is running fine", check: func(ctx context.Context, input cli.Input, client cmd.Client) error { - return hc.CheckServiceStatus(ctx, hc.fissionNamespace, "executor") + return hc.CheckServiceStatus(ctx, hc.fissionNamespace, "executor", "executor") }, }, { successMsg: "router is running fine", check: func(ctx context.Context, input cli.Input, client cmd.Client) error { - return hc.CheckServiceStatus(ctx, hc.fissionNamespace, "router") + return hc.CheckServiceStatus(ctx, hc.fissionNamespace, "router", "router") }, }, { successMsg: "storagesvc is running fine", check: func(ctx context.Context, input cli.Input, client cmd.Client) error { - return hc.CheckServiceStatus(ctx, hc.fissionNamespace, "storagesvc") + return hc.CheckServiceStatus(ctx, hc.fissionNamespace, "storagesvc", "storagesvc") + }, + }, + { + successMsg: "webhook is running fine", + check: func(ctx context.Context, input cli.Input, client cmd.Client) error { + err := hc.CheckServiceStatus(ctx, hc.fissionNamespace, "webhook", "webhook-service") + if err != nil { + console.Errorf("Error found: %s", err.Error()) + } + + return err }, }, },