Skip to content

Commit 790e294

Browse files
Merge branch 'main' into EVEREST-1180
2 parents 76bfc43 + baa4ada commit 790e294

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+2810
-3613
lines changed

.github/workflows/everest-pr-checks.yaml

+3-1
Original file line numberDiff line numberDiff line change
@@ -86,13 +86,15 @@ jobs:
8686
helm install everest ./charts/everest \
8787
--create-namespace \
8888
--namespace everest-system \
89-
--set dbNamespace.enabled=true
89+
--set dbNamespace.enabled=true \
90+
--set pmm.enabled=true
9091
9192
# Wait for system components
9293
kubectl wait --for=condition=available --timeout=60s deployment/everest-server -n everest-system
9394
kubectl wait --for=condition=available --timeout=60s deployment/everest-operator -n everest-system
9495
kubectl wait --for=condition=available --timeout=60s deployment/kube-state-metrics -n everest-monitoring
9596
kubectl wait --for=condition=available --timeout=60s deployment/vm-operator -n everest-monitoring
97+
kubectl wait --for=condition=ready pods --timeout=120s -n everest-system -l app.kubernetes.io/name=pmm
9698
9799
# Wait for default DB namespace.
98100
kubectl wait --for=condition=available --timeout=60s deployment/percona-postgresql-operator -n everest

charts/everest/Chart.lock

+7-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
dependencies:
22
- name: common
33
repository: file://charts/common
4-
version: 0.0.14
4+
version: 0.0.15
55
- name: everest-db-namespace
66
repository: file://charts/everest-db-namespace
77
version: 0.0.0
@@ -10,6 +10,9 @@ dependencies:
1010
version: 5.27.0
1111
- name: victoria-metrics-operator
1212
repository: https://victoriametrics.github.io/helm-charts
13-
version: 0.37.0
14-
digest: sha256:b219948462cc632aa1b2b1bd80e7831c9cbfd9aa22d38a1eaa6e61c70bfe563c
15-
generated: "2024-12-18T15:46:21.983602+05:30"
13+
version: 0.43.0
14+
- name: pmm
15+
repository: https://percona.github.io/percona-helm-charts
16+
version: 1.3.21
17+
digest: sha256:20f0ec5c5d290dc959ce1d15b88240a02f795ceceb7a3e904d83e4cc34498496
18+
generated: "2025-04-10T16:12:11.785878+05:30"

charts/everest/Chart.yaml

+5-1
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,10 @@ dependencies:
3030
condition: "kube-state-metrics.enabled"
3131
- name: victoria-metrics-operator
3232
alias: monitoring
33-
version: 0.37.0
33+
version: 0.43.0
3434
repository: "https://victoriametrics.github.io/helm-charts"
3535
condition: "monitoring.enabled"
36+
- name: pmm
37+
repository: "https://percona.github.io/percona-helm-charts"
38+
condition: "pmm.enabled"
39+
version: 1.3.*

charts/everest/Makefile

+1
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ add-repos:
2222
$(HELM) version
2323
$(HELM) repo add prometheus-community https://prometheus-community.github.io/helm-charts
2424
$(HELM) repo add vm https://victoriametrics.github.io/helm-charts
25+
$(HELM) repo add percona https://percona.github.io/percona-helm-charts/
2526

2627
deps: add-repos
2728
$(HELM) dependency update .

charts/everest/README.md

+13
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,11 @@ The following table shows the configurable parameters of the Percona Everest cha
146146
| createMonitoringResources | bool | `true` | If set, creates resources for Kubernetes monitoring. |
147147
| dbNamespace.enabled | bool | `true` | If set, deploy the database operators in `everest` namespace. The namespace may be overridden by setting `dbNamespace.namespaceOverride`. |
148148
| dbNamespace.namespaceOverride | string | `"everest"` | If `dbNamespace.enabled` is `true`, deploy the database operators in this namespace. |
149+
| ingress.annotations | object | `{}` | Additional annotations for the ingress resource. |
150+
| ingress.enabled | bool | `false` | Enable ingress for Everest server |
151+
| ingress.hosts | list | `[{"host":"chart-example.local","paths":[{"path":"/","pathType":"ImplementationSpecific"}]}]` | List of hosts and their paths for the ingress resource. |
152+
| ingress.ingressClassName | string | `""` | Ingress class name. This is used to specify which ingress controller should handle this ingress. |
153+
| ingress.tls | list | `[]` | Each entry in the list specifies a TLS certificate and the hosts it applies to. |
149154
| namespaceOverride | string | `""` | Namespace override. Defaults to the value of .Release.Namespace. |
150155
| olm.catalogSourceImage | string | `"perconalab/everest-catalog"` | Image to use for Everest CatalogSource. |
151156
| olm.image | string | `"quay.io/operator-framework/olm@sha256:1b6002156f568d722c29138575733591037c24b4bfabc67946f268ce4752c3e6"` | Image to use for the OLM components. |
@@ -156,11 +161,15 @@ The following table shows the configurable parameters of the Percona Everest cha
156161
| olm.packageserver.tls.tlsKey | string | `""` | Client key for the PackageServer APIService. Overrides the tls.type setting. |
157162
| olm.packageserver.tls.type | string | `"helm"` | Type of TLS certificates. Supported values are "helm" and "cert-manager". For production setup, it is recommended to use "cert-manager". |
158163
| operator.enableLeaderElection | bool | `true` | Enable leader election for the operator. |
164+
| operator.env | list | `[]` | Additional environment variables to pass to the operator deployment. |
159165
| operator.healthProbeAddr | string | `":8081"` | Health probe address for the operator. |
160166
| operator.image | string | `"perconalab/everest-operator"` | Image to use for the Everest operator container. |
161167
| operator.metricsAddr | string | `"127.0.0.1:8080"` | Metrics address for the operator. |
162168
| operator.resources | object | `{"limits":{"cpu":"500m","memory":"128Mi"},"requests":{"cpu":"5m","memory":"64Mi"}}` | Resources to allocate for the operator container. |
169+
| pmm | object | `{"enabled":false,"nameOverride":"pmm"}` | PMM settings. |
170+
| pmm.enabled | bool | `false` | If set, deploys PMM in the release namespace. |
163171
| server.apiRequestsRateLimit | int | `100` | Set the allowed number of requests per second. |
172+
| server.env | list | `[]` | Additional environment variables to pass to the server deployment. |
164173
| server.image | string | `"perconalab/everest"` | Image to use for the server container. |
165174
| server.initialAdminPassword | string | `""` | The initial password configured for the admin user. If unset, a random password is generated. It is strongly recommended to reset the admin password after installation. |
166175
| server.jwtKey | string | `""` | Key for signing JWT tokens. This needs to be an RSA private key. This is created during installation only. To update the key after installation, you need to manually update the `everest-jwt` Secret or use everestctl. |
@@ -170,6 +179,10 @@ The following table shows the configurable parameters of the Percona Everest cha
170179
| server.rbac.enabled | bool | `false` | If set, enables RBAC for Everest. |
171180
| server.rbac.policy | string | `"g, admin, role:admin\n"` | RBAC policy configuration. Ignored if `rbac.enabled` is false. |
172181
| server.resources | object | `{"limits":{"cpu":"200m","memory":"500Mi"},"requests":{"cpu":"100m","memory":"20Mi"}}` | Resources to allocate for the server container. |
182+
| server.service | object | `{"name":"everest","port":8080,"type":"ClusterIP"}` | Service configuration for the server. |
183+
| server.service.name | string | `"everest"` | Name of the service for everest |
184+
| server.service.port | int | `8080` | Port to expose on the service. |
185+
| server.service.type | string | `"ClusterIP"` | Type of service to create. |
173186
| server.tls.certificate.additionalHosts | list | `[]` | Certificate Subject Alternate Names (SANs) |
174187
| server.tls.certificate.create | bool | `false` | Create a Certificate resource (requires cert-manager to be installed) If set, creates a Certificate resource instead of a Secret. The Certificate uses the Secret name provided by `tls.secret.name` The Everest server pod will come up only after cert-manager has reconciled the Certificate resource. |
175188
| server.tls.certificate.domain | string | `""` | Certificate primary domain (commonName) |

charts/everest/charts/common/Chart.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ apiVersion: v2
22
name: common
33
description: A library chart for Everest containing common resources.
44
type: library
5-
version: 0.0.14
5+
version: 0.0.15
66
appVersion: "0.0.3"
77
maintainers:
88
- name: mayankshah1607

charts/everest/charts/common/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# common
22

3-
![Version: 0.0.14](https://img.shields.io/badge/Version-0.0.14-informational?style=flat-square) ![Type: library](https://img.shields.io/badge/Type-library-informational?style=flat-square) ![AppVersion: 0.0.3](https://img.shields.io/badge/AppVersion-0.0.3-informational?style=flat-square)
3+
![Version: 0.0.15](https://img.shields.io/badge/Version-0.0.15-informational?style=flat-square) ![Type: library](https://img.shields.io/badge/Type-library-informational?style=flat-square) ![AppVersion: 0.0.3](https://img.shields.io/badge/AppVersion-0.0.3-informational?style=flat-square)
44

55
A library chart for Everest containing common resources.
66

charts/everest/charts/common/templates/_operators_installer.yaml.tpl

+8-8
Original file line numberDiff line numberDiff line change
@@ -86,32 +86,32 @@ spec:
8686
- -c
8787
- |
8888
kubectl label namespace {{ .namespace }} app.kubernetes.io/managed-by=everest --overwrite
89-
subs=$(kubectl -n {{ .namespace }} get subscription -o jsonpath='{.items[*].metadata.name}')
89+
subs=$(kubectl -n {{ .namespace }} get subscriptions.operators.coreos.com -o jsonpath='{.items[*].metadata.name}')
9090
for sub in $subs
9191
do
9292
# We do not want to touch already installed operators, otherwise bad things can happen.
93-
installedCSV=$(kubectl -n {{ .namespace }} get sub $sub -o jsonpath='{.status.installedCSV}')
93+
installedCSV=$(kubectl -n {{ .namespace }} get subscriptions.operators.coreos.com $sub -o jsonpath='{.status.installedCSV}')
9494
if [ "$installedCSV" != "" ]; then
9595
echo "Operator $sub already installed. Skip..."
9696
continue
9797
fi
9898

9999
echo "Waiting for InstallPlan to be created for Subscription $sub"
100-
kubectl wait --for=jsonpath='.status.installplan.name' sub/$sub -n {{ .namespace }} --timeout=600s
100+
kubectl wait --for=jsonpath='.status.installplan.name' subscriptions.operators.coreos.com/$sub -n {{ .namespace }} --timeout=600s
101101

102-
ip=$(kubectl -n {{ .namespace }} get sub $sub -o jsonpath='{.status.installplan.name}')
102+
ip=$(kubectl -n {{ .namespace }} get subscriptions.operators.coreos.com $sub -o jsonpath='{.status.installplan.name}')
103103
echo "InstallPlan $ip created for Subscription $sub"
104104

105105
echo "Approving InstallPlan $ip"
106-
kubectl -n {{ .namespace }} patch installplan $ip --type='json' -p='[{"op": "replace", "path": "/spec/approved", "value": true}]'
106+
kubectl -n {{ .namespace }} patch installplans.operators.coreos.com $ip --type='json' -p='[{"op": "replace", "path": "/spec/approved", "value": true}]'
107107

108108
echo "Waiting for InstallPlan to be complete $ip"
109-
kubectl wait --for=jsonpath='.status.phase'=Complete installplan/$ip -n {{ .namespace }} --timeout=600s
109+
kubectl wait --for=jsonpath='.status.phase'=Complete installplans.operators.coreos.com/$ip -n {{ .namespace }} --timeout=600s
110110

111-
csv=$(kubectl get sub $sub -n {{ .namespace }} -o jsonpath='{.status.installedCSV}')
111+
csv=$(kubectl get subscriptions.operators.coreos.com $sub -n {{ .namespace }} -o jsonpath='{.status.installedCSV}')
112112

113113
echo "Waiting for CSV $csv to succeed"
114-
kubectl wait --for=jsonpath='.status.phase'=Succeeded csv/$csv -n {{ .namespace }} --timeout=600s
114+
kubectl wait --for=jsonpath='.status.phase'=Succeeded clusterserviceversions.operators.coreos.com/$csv -n {{ .namespace }} --timeout=600s
115115
done
116116
dnsPolicy: ClusterFirst
117117
restartPolicy: OnFailure
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
dependencies:
22
- name: common
33
repository: file://../common
4-
version: 0.0.14
5-
digest: sha256:61216b351bbcb7f96c3fe64d857053392bb347aa177b139c661f51673ba4954e
6-
generated: "2024-12-18T15:46:26.617364+05:30"
4+
version: 0.0.15
5+
digest: sha256:707d2c42aa47e16a9ae8649184489d1ca7b5bfec62e2f08653ca7910ec860235
6+
generated: "2025-02-28T17:55:16.967068+05:30"

0 commit comments

Comments
 (0)