Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 1 addition & 16 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,22 +10,7 @@ The proxy methods align with Everest operator methods but don't support all orig
You can find the definition of the custom resources in the [Everest operator repo](https://github.com/percona/everest-operator/tree/main/config/crd/bases).

### Run everest locally
0. Prerequisites:
- Golang 1.24.x
- Make 3.x
- Docker 20.x
- Git 2.x
- k3d 5.x
1. Check out the repo:
`git clone https://github.com/percona/everest`
2. Navigate to the repo folder:
`cd everest`
3. Check out a particular branch if needed:
`git checkout <branch_name>`
4. Run the dev environment:
`make k3d-cluster-up`
5. Build the CLI: `make build-cli-debug`
6. Deploy Everest using the CLI : `make deploy`
See [setting up a development environment](dev/README.md).

### Add a new proxy method
1. Copy the corresponding k8s spec to the [openapi.yml](./docs/spec/openapi.yml). For information on observing your cluster API, see [Kubernetes: How to View Swagger UI blog post](https://jonnylangefeld.com/blog/kubernetes-how-to-view-swagger-ui), which details the operator-defined methods (if the everest operator is installed).
Expand Down
23 changes: 11 additions & 12 deletions dev/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,22 +11,21 @@ components.
Build and runtime logs can be easily accessed using tilt's web UI.

## Prerequisites

1. Install [k3d](https://k3d.io)

2. Install [tilt.dev](https://docs.tilt.dev/install.html)
NOTE: for MacOS tilt needs to have installed and runing `docker-desktop` tool. This is not required and can be skiped since we use `k3d` instead.

3. Clone [everest-operator](https://github.com/percona/everest-operator).

4. Clone [percona-helm-charts](https://github.com/percona/percona-helm-charts).
- Golang 1.25.x
- Make 3.x
- Docker 20.x
- Git 2.x
- [k3d](https://k3d.io) 5.x
- [tilt.dev](https://docs.tilt.dev/install.html)
- Clone [everest-operator](https://github.com/percona/everest-operator)
- Clone [percona-helm-charts](https://github.com/percona/percona-helm-charts)

## Set up the environment

### 1. Set up k8s & registry
#### Option A: Local
#### Option A: Local k3d cluster
```sh
k3d cluster create everest-dev --registry-create k3d-registry
make k3d-cluster-up
```
#### Option B: Remote (GKE)
1. Setup your default gcloud project, e.g.
Expand Down Expand Up @@ -110,7 +109,7 @@ tilt down

2. Tear down local k8s cluster
```sh
k3d cluster delete everest-dev
make k3d-cluster-down
```

## Notes for frontend development
Expand Down
5 changes: 1 addition & 4 deletions dev/Tiltfile
Original file line number Diff line number Diff line change
Expand Up @@ -110,10 +110,7 @@ watch_settings(
local('[ -x %s/bin/kustomize ] || make -C %s kustomize' % (operator_dir, operator_dir), quiet=True)

# Build helm dependencies
local_resource(
'everest-chart-deps',
'HELM="go tool -modfile={0}/go.mod helm" make -C {1} deps'.format(backend_dir, everest_chart_dir),
)
local('HELM="go tool -modfile={0}/go.mod helm" make -C {1} deps'.format(backend_dir, everest_chart_dir))
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Replace asynchronous command with synchronous command to ensure dependencies are installed before moving on. Solves below error

Loading Tiltfile at: /Users/chilagrow/source/everest/dev/Tiltfile
Frontend Build enabled: True
Loading local .env file=/Users/chilagrow/source/everest/dev/.env
Using backend dir: /Users/chilagrow/source/everest
Using frontend dir: /Users/chilagrow/source/everest/ui
Using operator dir: /Users/chilagrow/source/everest-operator
Using chart dir: /Users/chilagrow/source/percona-helm-charts/charts/everest
Using PXC operator version: 1.18.0
Using PSMDB operator version: 1.21.1
Using PG operator version: 2.8.2
Using Everest operator build ENV vars: CGO_ENABLED=0 GOOS=linux
Using Everest server backend build ENV vars: CGO_ENABLED=0 GOOS=linux
Using Docker registry URL: k3d-registry:5000
Using Everest debug: False
Using Everest Operator debug: False
Need backup storage: True
ensure kustomize is installed
local: [ -x /Users/chilagrow/source/everest-operator/bin/kustomize ] || make -C /Users/chilagrow/source/everest-operator kustomize
build helm dependencies
installed helm dependencies
local: curl -s https://raw.githubusercontent.com/percona/percona-xtradb-cluster-operator/v1.18.0/deploy/bundle.yaml
local: curl -s https://raw.githubusercontent.com/percona/percona-server-mongodb-operator/v1.21.1/deploy/bundle.yaml
local: curl -s https://raw.githubusercontent.com/percona/percona-postgresql-operator/v2.8.2/deploy/bundle.yaml
Falling back to `kubectl kustomize` since `kustomize` was not found in PATH
Running: kubectl kustomize ../../everest-operator/config/crd
Running: helm template everest /Users/chilagrow/source/percona-helm-charts/charts/everest --namespace everest-system --values ./helm-values/webhook-tls-cert-values.yaml --set dbNamespace.enabled=false --set operator.init=false --set upgrade.preflightChecks=false --set olm.install=false --set createMonitoringResources=false --set monitoring.crds.enabled=true --set monitoring.crds.plain=false --set monitoring.namespaceOverride=everest-monitoring --set server.initialAdminPassword=admin
Traceback (most recent call last):
  /Users/chilagrow/source/everest/dev/Tiltfile:290:20: in <toplevel>
Error in helm: command "helm template everest /Users/chilagrow/source/percona-helm-charts/charts/everest --namespace everest-system --values ./helm-values/webhook-tls-cert-values.yaml --set dbNamespace.enabled=false --set operator.init=false --set upgrade.preflightChecks=false --set olm.install=false --set createMonitoringResources=false --set monitoring.crds.enabled=true --set monitoring.crds.plain=false --set monitoring.namespaceOverride=everest-monitoring --set server.initialAdminPassword=admin" failed.
error: exit status 1
stdout:

stderr:
level=INFO msg="found symbolic link in path. Contents of linked file included and used" path=/Users/chilagrow/source/percona-helm-charts/charts/everest/crds/apiextensions.k8s.io_v1_customresourcedefinition_backupstorages.everest.percona.com.yaml resolved=/Users/chilagrow/source/percona-helm-charts/charts/everest/charts/everest-crds/templates/apiextensions.k8s.io_v1_customresourcedefinition_backupstorages.everest.percona.com.yaml
level=INFO msg="found symbolic link in path. Contents of linked file included and used" path=/Users/chilagrow/source/percona-helm-charts/charts/everest/crds/apiextensions.k8s.io_v1_customresourcedefinition_databaseclusterbackups.everest.percona.com.yaml resolved=/Users/chilagrow/source/percona-helm-charts/charts/everest/charts/everest-crds/templates/apiextensions.k8s.io_v1_customresourcedefinition_databaseclusterbackups.everest.percona.com.yaml
level=INFO msg="found symbolic link in path. Contents of linked file included and used" path=/Users/chilagrow/source/percona-helm-charts/charts/everest/crds/apiextensions.k8s.io_v1_customresourcedefinition_databaseclusterrestores.everest.percona.com.yaml resolved=/Users/chilagrow/source/percona-helm-charts/charts/everest/charts/everest-crds/templates/apiextensions.k8s.io_v1_customresourcedefinition_databaseclusterrestores.everest.percona.com.yaml
level=INFO msg="found symbolic link in path. Contents of linked file included and used" path=/Users/chilagrow/source/percona-helm-charts/charts/everest/crds/apiextensions.k8s.io_v1_customresourcedefinition_databaseclusters.everest.percona.com.yaml resolved=/Users/chilagrow/source/percona-helm-charts/charts/everest/charts/everest-crds/templates/apiextensions.k8s.io_v1_customresourcedefinition_databaseclusters.everest.percona.com.yaml
level=INFO msg="found symbolic link in path. Contents of linked file included and used" path=/Users/chilagrow/source/percona-helm-charts/charts/everest/crds/apiextensions.k8s.io_v1_customresourcedefinition_databaseengines.everest.percona.com.yaml resolved=/Users/chilagrow/source/percona-helm-charts/charts/everest/charts/everest-crds/templates/apiextensions.k8s.io_v1_customresourcedefinition_databaseengines.everest.percona.com.yaml
level=INFO msg="found symbolic link in path. Contents of linked file included and used" path=/Users/chilagrow/source/percona-helm-charts/charts/everest/crds/apiextensions.k8s.io_v1_customresourcedefinition_dataimporters.everest.percona.com.yaml resolved=/Users/chilagrow/source/percona-helm-charts/charts/everest/charts/everest-crds/templates/apiextensions.k8s.io_v1_customresourcedefinition_dataimporters.everest.percona.com.yaml
level=INFO msg="found symbolic link in path. Contents of linked file included and used" path=/Users/chilagrow/source/percona-helm-charts/charts/everest/crds/apiextensions.k8s.io_v1_customresourcedefinition_dataimportjobs.everest.percona.com.yaml resolved=/Users/chilagrow/source/percona-helm-charts/charts/everest/charts/everest-crds/templates/apiextensions.k8s.io_v1_customresourcedefinition_dataimportjobs.everest.percona.com.yaml
level=INFO msg="found symbolic link in path. Contents of linked file included and used" path=/Users/chilagrow/source/percona-helm-charts/charts/everest/crds/apiextensions.k8s.io_v1_customresourcedefinition_loadbalancerconfigs.everest.percona.com.yaml resolved=/Users/chilagrow/source/percona-helm-charts/charts/everest/charts/everest-crds/templates/apiextensions.k8s.io_v1_customresourcedefinition_loadbalancerconfigs.everest.percona.com.yaml
level=INFO msg="found symbolic link in path. Contents of linked file included and used" path=/Users/chilagrow/source/percona-helm-charts/charts/everest/crds/apiextensions.k8s.io_v1_customresourcedefinition_monitoringconfigs.everest.percona.com.yaml resolved=/Users/chilagrow/source/percona-helm-charts/charts/everest/charts/everest-crds/templates/apiextensions.k8s.io_v1_customresourcedefinition_monitoringconfigs.everest.percona.com.yaml
level=INFO msg="found symbolic link in path. Contents of linked file included and used" path=/Users/chilagrow/source/percona-helm-charts/charts/everest/crds/apiextensions.k8s.io_v1_customresourcedefinition_podschedulingpolicies.everest.percona.com.yaml resolved=/Users/chilagrow/source/percona-helm-charts/charts/everest/charts/everest-crds/templates/apiextensions.k8s.io_v1_customresourcedefinition_podschedulingpolicies.everest.percona.com.yaml
level=INFO msg="found symbolic link in path. Contents of linked file included and used" path=/Users/chilagrow/source/percona-helm-charts/charts/everest/crds/apiextensions.k8s.io_v1_customresourcedefinition_splithorizondnsconfigs.enginefeatures.everest.percona.com.yaml resolved=/Users/chilagrow/source/percona-helm-charts/charts/everest/charts/everest-crds/templates/apiextensions.k8s.io_v1_customresourcedefinition_splithorizondnsconfigs.enginefeatures.everest.percona.com.yaml
Error: an error occurred while checking for chart dependencies. You may need to run `helm dependency build` to fetch missing dependencies: found in Chart.yaml, but missing in charts/ directory: operator-lifecycle-manager


# Create namespaces
load('ext://namespace', 'namespace_create', 'namespace_inject')
Expand Down
Loading