From 00cabbd7aa5b538ff02e5108b9bbd8f09ce01513 Mon Sep 17 00:00:00 2001 From: Oksana Grishchenko <91597950+oksana-grishchenko@users.noreply.github.com> Date: Fri, 1 Mar 2024 15:38:49 +0200 Subject: [PATCH] EVEREST-726 use internal manifest (#20) EVEREST-726 use internal manifest --- deploy/quickstart-k8s.yaml | 2 +- embed.go | 17 +++++++++++++++++ pkg/install/install.go | 2 +- pkg/kubernetes/kubernetes.go | 24 ++++++------------------ pkg/version/version.go | 20 +------------------- 5 files changed, 26 insertions(+), 39 deletions(-) create mode 100644 embed.go diff --git a/deploy/quickstart-k8s.yaml b/deploy/quickstart-k8s.yaml index 8c3465023..176f15135 100644 --- a/deploy/quickstart-k8s.yaml +++ b/deploy/quickstart-k8s.yaml @@ -53,7 +53,7 @@ roleRef: subjects: - kind: "ServiceAccount" name: everest-admin - namespace: percona-everest + namespace: everest-system --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding diff --git a/embed.go b/embed.go new file mode 100644 index 000000000..710c5b221 --- /dev/null +++ b/embed.go @@ -0,0 +1,17 @@ +// Package scripts provides embed scripts. +package scripts + +import "embed" + +//go:embed deploy/* +var deployScripts embed.FS + +// Manifest returns Everest manifest file content. +func Manifest() ([]byte, error) { + data, err := deployScripts.ReadFile("deploy/quickstart-k8s.yaml") + if err != nil { + return nil, err + } + + return data, nil +} diff --git a/pkg/install/install.go b/pkg/install/install.go index 67c4ab503..46eaacca9 100644 --- a/pkg/install/install.go +++ b/pkg/install/install.go @@ -47,7 +47,7 @@ type Install struct { } const ( - everestBackendServiceName = "percona-everest-backend" + everestBackendServiceName = "everest" everestOperatorName = "everest-operator" pxcOperatorName = "percona-xtradb-cluster-operator" psmdbOperatorName = "percona-server-mongodb-operator" diff --git a/pkg/kubernetes/kubernetes.go b/pkg/kubernetes/kubernetes.go index 1cdc14d74..6060c4c9d 100644 --- a/pkg/kubernetes/kubernetes.go +++ b/pkg/kubernetes/kubernetes.go @@ -47,6 +47,7 @@ import ( "k8s.io/apimachinery/pkg/version" "k8s.io/client-go/rest" + scripts "github.com/percona/everest" everestv1alpha1 "github.com/percona/everest-operator/api/v1alpha1" "github.com/percona/everest/data" "github.com/percona/everest/pkg/kubernetes/client" @@ -905,9 +906,9 @@ func (k *Kubernetes) ApplyObject(obj runtime.Object) error { // InstallEverest downloads the manifest file and applies it against provisioned k8s cluster. func (k *Kubernetes) InstallEverest(ctx context.Context, namespace string) error { - data, err := k.getManifestData(ctx) + data, err := scripts.Manifest() if err != nil { - return errors.Join(err, errors.New("failed downloading everest monitoring file")) + return errors.Join(err, errors.New("failed reading everest manifest file")) } err = k.client.ApplyManifestFile(data, namespace) @@ -920,24 +921,11 @@ func (k *Kubernetes) InstallEverest(ctx context.Context, namespace string) error return nil } -func (k *Kubernetes) getManifestData(ctx context.Context) ([]byte, error) { - req, err := http.NewRequestWithContext(ctx, http.MethodGet, everestVersion.ManifestURL(), nil) - if err != nil { - return nil, err - } - resp, err := http.DefaultClient.Do(req) - if err != nil { - return nil, err - } - defer resp.Body.Close() //nolint:errcheck - return io.ReadAll(resp.Body) -} - // DeleteEverest downloads the manifest file and deletes it from provisioned k8s cluster. -func (k *Kubernetes) DeleteEverest(ctx context.Context, namespace string) error { - data, err := k.getManifestData(ctx) +func (k *Kubernetes) DeleteEverest(_ context.Context, namespace string) error { + data, err := scripts.Manifest() if err != nil { - return errors.Join(err, errors.New("failed downloading everest monitoring file")) + return errors.Join(err, errors.New("failed reading everest manifest file")) } err = k.client.DeleteManifestFile(data, namespace) diff --git a/pkg/version/version.go b/pkg/version/version.go index 44fc234db..657526ade 100644 --- a/pkg/version/version.go +++ b/pkg/version/version.go @@ -28,8 +28,6 @@ import ( const ( devCatalogImage = "docker.io/perconalab/everest-catalog:latest" releaseCatalogImage = "docker.io/percona/everest-catalog:%s" - devManifestURL = "https://raw.githubusercontent.com/percona/percona-everest-backend/main/deploy/quickstart-k8s.yaml" - releaseManifestURL = "https://raw.githubusercontent.com/percona/percona-everest-backend/v%s/deploy/quickstart-k8s.yaml" ) var ( @@ -43,10 +41,7 @@ var ( catalogImage string //nolint:gochecknoglobals ) -// CatalogImage returns a catalog image needed for the build of everestctl -// -// for dev builds it returns https://raw.githubusercontent.com/percona/percona-everest-backend/main/deploy/quickstart-k8s.yaml -// for the release builds it returns https://raw.githubusercontent.com/percona/percona-everest-backend/vX.Y.Z/deploy/quickstart-k8s.yaml +// CatalogImage returns a catalog image needed for the build of everestctl. func CatalogImage() string { catalogImage = devCatalogImage v, err := goversion.NewSemver(Version) @@ -56,19 +51,6 @@ func CatalogImage() string { return catalogImage } -// ManifestURL returns a manifest URL to install everest -// -// for dev builds it returns everest-catalog:latest -// for the release it returns everest-catalog:X.Y.Z. -func ManifestURL() string { - url := devManifestURL - v, err := goversion.NewSemver(Version) - if Version != "" && err == nil && v.Prerelease() == "" { - url = fmt.Sprintf(releaseManifestURL, Version) - } - return url -} - // FullVersionInfo returns full version report. func FullVersionInfo() string { out := []string{