percona-everest-backend

module
v0.4.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 1, 2023 License: Apache-2.0

README

Welcome to Percona Everest Backend

Percona Everest is an open source Database-as-a-Service solution that automates day-one and day-two operations for Postgres, MySQL, and MongoDB databases within Kubernetes clusters.

Prerequisites

A Kubernetes cluster is available for public use, but we do not offer support for creating one.

Creating Kubernetes cluster

You must have a publicly accessible Kubernetes cluster to use Everest. EKS or GKE is recommended, as it may be difficult to make it work with local installations of Kubernetes such as minikube, kind, k3d, or similar products. Everest does not help with spinning up a Kubernetes cluster but assists with installing all the necessary components for Everest to run.

Getting started

The Percona Everest has two primary components that assist you in creating the environment:

  1. CLI, which installs Everest's required components.
  2. Backend, which installs DBaaS features.

To start using Everest, use the following commands:

export SECRETS_ROOT_KEY=$(openssl rand -base64 32)
echo "$SECRETS_ROOT_KEY"

This generates a base64-encoded 256-bit key used for secrets encryption. Make sure to securely store this key, without it everest won't be able to access the secrets stored in its internal secrets storage.

wget https://raw.githubusercontent.com/percona/percona-everest-backend/main/deploy/quickstart-compose.yml
docker compose -f quickstart-compose.yml up -d

This will spin up the backend/frontend, accessible at http://127.0.0.1:8080.

Everest provisioning

  1. Download the latest release of everestctl command for your operating system

  2. Modify the permissions of the file:

chmod +x everestctl-darwin-amd64
  1. Run the following command to install all the required operators in headless mode:
 ./everestctl-darwin-amd64 install operators --backup.enable=false --everest.endpoint=http://127.0.0.1:8080 --monitoring.enable=false --operator.mongodb=true --operator.postgresql=true --operator.xtradb-cluster=true --skip-wizard

Alternatively, use the wizard to run it:

✗ ./everestctl install operators ? Everest URL http://127.0.0.1:8080 ? Choose your Kubernetes Cluster name k3d-everest-dev ? Do you want to enable monitoring? No ? Do you want to enable backups? No ? What operators do you want to install? MySQL, MongoDB, PostgreSQL

Once provisioning is complete, you can visit http://127.0.0.1:8080 to create your first database cluster!

## Known limitations

- Currently, Everest only allows for the basic creation of database clusters without monitoring integration or backup/restore support. However, we will be adding this functionality in the near future.
- It is possible to register multiple Kubernetes clusters, but the user interface only supports one.
- There are no authentication or access control features, but you can integrate Everest with your existing solution.
    * [Ambassador](https://github.com/datawire/ambassador) via
  [auth service](https://www.getambassador.io/reference/services/auth-service)
    * [Envoy](https://www.envoyproxy.io) via the
  [External Authorization HTTP Filter](https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/security/ext_authz_filter.html)
    * AWS API Gateway via
  [Custom Authorizers](https://aws.amazon.com/de/blogs/compute/introducing-custom-authorizers-in-amazon-api-gateway/)
    * [Nginx](https://www.nginx.com) via
  [Authentication Based on Subrequest Result](https://docs.nginx.com/nginx/admin-guide/security-controls/configuring-subrequest-authentication/)

Directories

Path Synopsis
Package api ...
Package api ...
Package client provides primitives to interact with the openapi HTTP API.
Package client provides primitives to interact with the openapi HTTP API.
cmd
percona-everest-backend Copyright (C) 2023 Percona LLC
percona-everest-backend Copyright (C) 2023 Percona LLC
config
Package config ...
Package config ...
Package model provides structures and methods to operate databases and another storages.
Package model provides structures and methods to operate databases and another storages.
pkg
configs
Package configs contains methods common to configs management.
Package configs contains methods common to configs management.
convertors
Package convertors provides data size convert functinality.
Package convertors provides data size convert functinality.
kubernetes
Package kubernetes ...
Package kubernetes ...
kubernetes/client
Package client provides a way to communicate with a k8s cluster.
Package client provides a way to communicate with a k8s cluster.
kubernetes/client/customresources
Package customresources provides methods to work with custom everest k8s resources.
Package customresources provides methods to work with custom everest k8s resources.
logger
Package logger provides functionality related to logging.
Package logger provides functionality related to logging.
pmm
Package pmm provides methods for working with PMM.
Package pmm provides methods for working with PMM.
version
Package version implements version reporting command to the end user.
Package version implements version reporting command to the end user.
Package public embeds the FE app into the BE
Package public embeds the FE app into the BE

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL