From 0607d0d313a36bb54bba207e51b1cb99068dad78 Mon Sep 17 00:00:00 2001 From: "M. Mert Yildiran" Date: Sun, 27 Nov 2022 04:31:53 +0300 Subject: [PATCH] :fire: Remove the `install` command --- bucket/provider.go | 43 ------------------------- cmd/check.go | 1 - cmd/check/kubernetesPermissions.go | 45 --------------------------- cmd/checkRunner.go | 6 +--- cmd/install.go | 29 ----------------- cmd/installRunner.go | 33 -------------------- config/configStruct.go | 1 - config/configStructs/checkConfig.go | 10 +++--- config/configStructs/installConfig.go | 11 ------- 9 files changed, 5 insertions(+), 174 deletions(-) delete mode 100644 bucket/provider.go delete mode 100644 cmd/install.go delete mode 100644 cmd/installRunner.go delete mode 100644 config/configStructs/installConfig.go diff --git a/bucket/provider.go b/bucket/provider.go deleted file mode 100644 index 209a45da8..000000000 --- a/bucket/provider.go +++ /dev/null @@ -1,43 +0,0 @@ -package bucket - -import ( - "fmt" - "io" - "net/http" - "time" - - "github.com/kubeshark/kubeshark/utils" -) - -type Provider struct { - url string - client *http.Client -} - -const DefaultTimeout = 2 * time.Second - -func NewProvider(url string, timeout time.Duration) *Provider { - return &Provider{ - url: url, - client: &http.Client{ - Timeout: timeout, - }, - } -} - -func (provider *Provider) GetInstallTemplate(templateName string) (string, error) { - url := fmt.Sprintf("%s/%v", provider.url, templateName) - response, err := utils.Get(url, provider.client) - if err != nil { - return "", err - } - - defer response.Body.Close() - - installTemplate, err := io.ReadAll(response.Body) - if err != nil { - return "", err - } - - return string(installTemplate), nil -} diff --git a/cmd/check.go b/cmd/check.go index 491ab45fe..604676f7b 100644 --- a/cmd/check.go +++ b/cmd/check.go @@ -26,6 +26,5 @@ func init() { } checkCmd.Flags().Bool(configStructs.PreTapCheckName, defaultCheckConfig.PreTap, "Check pre-tap Kubeshark installation for potential problems") - checkCmd.Flags().Bool(configStructs.PreInstallCheckName, defaultCheckConfig.PreInstall, "Check pre-install Kubeshark installation for potential problems") checkCmd.Flags().Bool(configStructs.ImagePullCheckName, defaultCheckConfig.ImagePull, "Test connectivity to container image registry by creating and removing a temporary pod in 'default' namespace") } diff --git a/cmd/check/kubernetesPermissions.go b/cmd/check/kubernetesPermissions.go index c4052b6ee..6505b885d 100644 --- a/cmd/check/kubernetesPermissions.go +++ b/cmd/check/kubernetesPermissions.go @@ -5,14 +5,11 @@ import ( "embed" "fmt" "log" - "strings" - "github.com/kubeshark/kubeshark/bucket" "github.com/kubeshark/kubeshark/config" "github.com/kubeshark/kubeshark/kubernetes" "github.com/kubeshark/kubeshark/utils" rbac "k8s.io/api/rbac/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/kubernetes/scheme" ) @@ -50,48 +47,6 @@ func TapKubernetesPermissions(ctx context.Context, embedFS embed.FS, kubernetesP return false } -func InstallKubernetesPermissions(ctx context.Context, kubernetesProvider *kubernetes.Provider) bool { - log.Printf("\nkubernetes-permissions\n--------------------") - - bucketProvider := bucket.NewProvider(config.Config.Install.TemplateUrl, bucket.DefaultTimeout) - installTemplate, err := bucketProvider.GetInstallTemplate(config.Config.Install.TemplateName) - if err != nil { - log.Printf("%v error while checking kubernetes permissions, err: %v", fmt.Sprintf(utils.Red, "✗"), err) - return false - } - - resourcesTemplate := strings.Split(installTemplate, "---")[1:] - - permissionsExist := true - - decode := scheme.Codecs.UniversalDeserializer().Decode - for _, resourceTemplate := range resourcesTemplate { - obj, _, err := decode([]byte(resourceTemplate), nil, nil) - if err != nil { - log.Printf("%v error while checking kubernetes permissions, err: %v", fmt.Sprintf(utils.Red, "✗"), err) - return false - } - - groupVersionKind := obj.GetObjectKind().GroupVersionKind() - resource := fmt.Sprintf("%vs", strings.ToLower(groupVersionKind.Kind)) - permissionsExist = checkCreatePermission(ctx, kubernetesProvider, resource, groupVersionKind.Group, obj.(metav1.Object).GetNamespace()) && permissionsExist - - switch resourceObj := obj.(type) { - case *rbac.Role: - permissionsExist = checkRulesPermissions(ctx, kubernetesProvider, resourceObj.Rules, resourceObj.Namespace) && permissionsExist - case *rbac.ClusterRole: - permissionsExist = checkRulesPermissions(ctx, kubernetesProvider, resourceObj.Rules, "") && permissionsExist - } - } - - return permissionsExist -} - -func checkCreatePermission(ctx context.Context, kubernetesProvider *kubernetes.Provider, resource string, group string, namespace string) bool { - exist, err := kubernetesProvider.CanI(ctx, namespace, resource, "create", group) - return checkPermissionExist(group, resource, "create", namespace, exist, err) -} - func checkRulesPermissions(ctx context.Context, kubernetesProvider *kubernetes.Provider, rules []rbac.PolicyRule, namespace string) bool { permissionsExist := true diff --git a/cmd/checkRunner.go b/cmd/checkRunner.go index 7636ace79..a336cb723 100644 --- a/cmd/checkRunner.go +++ b/cmd/checkRunner.go @@ -28,15 +28,11 @@ func runKubesharkCheck() { checkPassed = check.KubernetesVersion(kubernetesVersion) } - if config.Config.Check.PreTap || config.Config.Check.PreInstall || config.Config.Check.ImagePull { + if config.Config.Check.PreTap || config.Config.Check.ImagePull { if config.Config.Check.PreTap { if checkPassed { checkPassed = check.TapKubernetesPermissions(ctx, embedFS, kubernetesProvider) } - } else if config.Config.Check.PreInstall { - if checkPassed { - checkPassed = check.InstallKubernetesPermissions(ctx, kubernetesProvider) - } } if config.Config.Check.ImagePull { diff --git a/cmd/install.go b/cmd/install.go deleted file mode 100644 index 43b5c2c25..000000000 --- a/cmd/install.go +++ /dev/null @@ -1,29 +0,0 @@ -package cmd - -import ( - "log" - - "github.com/creasty/defaults" - "github.com/kubeshark/kubeshark/config/configStructs" - "github.com/spf13/cobra" -) - -var installCmd = &cobra.Command{ - Use: "install", - Short: "Installs kubeshark components", - RunE: func(cmd *cobra.Command, args []string) error { - runKubesharkInstall() - return nil - }, -} - -func init() { - rootCmd.AddCommand(installCmd) - - defaultInstallConfig := configStructs.InstallConfig{} - if err := defaults.Set(&defaultInstallConfig); err != nil { - log.Print(err) - } - - installCmd.Flags().BoolP(configStructs.OutInstallName, "o", defaultInstallConfig.Out, "print (to stdout) Kubernetes manifest used to install Kubeshark Pro edition") -} diff --git a/cmd/installRunner.go b/cmd/installRunner.go deleted file mode 100644 index 9f2464a28..000000000 --- a/cmd/installRunner.go +++ /dev/null @@ -1,33 +0,0 @@ -package cmd - -import ( - "fmt" - "log" - "strings" - - "github.com/kubeshark/kubeshark/bucket" - "github.com/kubeshark/kubeshark/config" -) - -func runKubesharkInstall() { - // TODO: Remove this function - if config.Config.Install.Out { - bucketProvider := bucket.NewProvider(config.Config.Install.TemplateUrl, bucket.DefaultTimeout) - installTemplate, err := bucketProvider.GetInstallTemplate(config.Config.Install.TemplateName) - if err != nil { - log.Printf("Failed getting install template, err: %v", err) - return - } - - fmt.Print(installTemplate) - return - } - - var sb strings.Builder - sb.WriteString("Hello! This command can be used to install Kubeshark Pro edition on your Kubernetes cluster.") - sb.WriteString("\nPlease run:") - sb.WriteString("\n\tkubeshark install -o | kubectl apply -n kubeshark -f -") - sb.WriteString("\n\nor use helm chart as described in https://getkubeshark.io/docs/installing-kubeshark/centralized-installation\n") - - fmt.Print(sb.String()) -} diff --git a/config/configStruct.go b/config/configStruct.go index 3bb3458d7..2923d90c3 100644 --- a/config/configStruct.go +++ b/config/configStruct.go @@ -58,7 +58,6 @@ type ConfigStruct struct { Front FrontConfig `yaml:"front"` Tap configStructs.TapConfig `yaml:"tap"` Check configStructs.CheckConfig `yaml:"check"` - Install configStructs.InstallConfig `yaml:"install"` Version configStructs.VersionConfig `yaml:"version"` View configStructs.ViewConfig `yaml:"view"` Logs configStructs.LogsConfig `yaml:"logs"` diff --git a/config/configStructs/checkConfig.go b/config/configStructs/checkConfig.go index 3f65e81da..7f8f00f79 100644 --- a/config/configStructs/checkConfig.go +++ b/config/configStructs/checkConfig.go @@ -1,13 +1,11 @@ package configStructs const ( - PreTapCheckName = "pre-tap" - PreInstallCheckName = "pre-install" - ImagePullCheckName = "image-pull" + PreTapCheckName = "pre-tap" + ImagePullCheckName = "image-pull" ) type CheckConfig struct { - PreTap bool `yaml:"pre-tap"` - PreInstall bool `yaml:"pre-install"` - ImagePull bool `yaml:"image-pull"` + PreTap bool `yaml:"pre-tap"` + ImagePull bool `yaml:"image-pull"` } diff --git a/config/configStructs/installConfig.go b/config/configStructs/installConfig.go deleted file mode 100644 index fce605150..000000000 --- a/config/configStructs/installConfig.go +++ /dev/null @@ -1,11 +0,0 @@ -package configStructs - -const ( - OutInstallName = "out" -) - -type InstallConfig struct { - TemplateUrl string `yaml:"template-url" default:"https://storage.googleapis.com/static.up9.io/kubeshark/helm-template"` - TemplateName string `yaml:"template-name" default:"helm-template.yaml"` - Out bool `yaml:"out"` -}