Skip to content

Commit daae231

Browse files
Merge branch 'master' into Kanvas-popup
2 parents a8ec12f + f0a6dc3 commit daae231

File tree

6 files changed

+214
-60
lines changed

6 files changed

+214
-60
lines changed

charts/index.yaml

Lines changed: 61 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,66 @@ entries:
4747
- charts/kratos-0.39.1.tgz
4848
version: 0.39.1
4949
layer5-cloud:
50+
- apiVersion: v2
51+
appVersion: v0.8.674
52+
created: "2026-02-28T00:42:41.133719418Z"
53+
dependencies:
54+
- condition: kratos.enabled
55+
name: kratos
56+
repository: '@ory'
57+
version: 0.60.0
58+
- condition: ory/hydra.enabled
59+
name: hydra
60+
repository: '@ory'
61+
version: 0.60.0
62+
description: Layer5 Cloud is a collection of services that can be deployed on-premises.
63+
digest: 57f99d42eeeef23c87f3415492ab5bf4019498573be82a1e8894ae55f6ed1474
64+
icon: data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNDEuNzMgMTQxLjczIj48dGl0bGU+NS1saWdodC1iZzwvdGl0bGU+PHJlY3QgaWQ9Il9QYXRoXyIgZGF0YS1uYW1lPSImbHQ7UGF0aCZndDsiIHg9Ijc5LjYzIiB5PSIyMy45NyIgd2lkdGg9IjM2LjkzIiBoZWlnaHQ9IjE3Ljc5IiBzdHlsZT0iZmlsbDojMDBiMzlmIi8+PHBhdGggaWQ9Il9QYXRoXzIiIGRhdGEtbmFtZT0iJmx0O1BhdGgmZ3Q7IiBkPSJNMTE5LjkyLDgzLjlWNzYuNTNjMC04LjQ5LTcuMTQtMTUuMzctMTUuOTQtMTUuMzdINDQuMzhWNTYuMzFIMjIuNTZ2MjFIOTguMVY4My45WiIgc3R5bGU9ImZpbGw6IzAwYjM5ZiIvPjxwb2x5Z29uIGlkPSJfUGF0aF8zIiBkYXRhLW5hbWU9IiZsdDtQYXRoJmd0OyIgcG9pbnRzPSI0NC4zOCA1MC41IDQ0LjM4IDQxLjc2IDczLjYgNDEuNzYgNzMuNiAyMy45NyAyMi41NiAyMy45NyAyMi41NiA1MC41IDQ0LjM4IDUwLjUiIHN0eWxlPSJmaWxsOiMwMGQzYTkiLz48cGF0aCBpZD0iX1BhdGhfNCIgZGF0YS1uYW1lPSImbHQ7UGF0aCZndDsiIGQ9Ik05OC4xLDg5LjYyVjEwMEg2OC44OHYxNy43OWgzNmExNC43NywxNC43NywwLDAsMCwxNS0xNC40OVY4OS42MloiIHN0eWxlPSJmaWxsOiMwMGQzYTkiLz48cGF0aCBpZD0iX1BhdGhfNSIgZGF0YS1uYW1lPSImbHQ7UGF0aCZndDsiIGQ9Ik00Mi42Myw5MC41OFYxMDBINjIuODV2MTcuNzloLTI2YTE0Ljc3LDE0Ljc3LDAsMCwxLTE1LTE0LjQ5VjkwLjU4WiIgc3R5bGU9ImZpbGw6IzAwYjM5ZiIvPjwvc3ZnPg==
65+
name: layer5-cloud
66+
type: application
67+
urls:
68+
- https://docs.layer5.io/charts/layer5-cloud-v0.8.674.tgz
69+
version: v0.8.674
70+
- apiVersion: v2
71+
appVersion: v0.8.673
72+
created: "2026-02-27T03:05:13.37436623Z"
73+
dependencies:
74+
- condition: kratos.enabled
75+
name: kratos
76+
repository: '@ory'
77+
version: 0.60.0
78+
- condition: ory/hydra.enabled
79+
name: hydra
80+
repository: '@ory'
81+
version: 0.60.0
82+
description: Layer5 Cloud is a collection of services that can be deployed on-premises.
83+
digest: 8d72b5eaaaffb2d91e1b7c7d181ad9f356abe005878257abb89bd6cadc5ec60f
84+
icon: data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNDEuNzMgMTQxLjczIj48dGl0bGU+NS1saWdodC1iZzwvdGl0bGU+PHJlY3QgaWQ9Il9QYXRoXyIgZGF0YS1uYW1lPSImbHQ7UGF0aCZndDsiIHg9Ijc5LjYzIiB5PSIyMy45NyIgd2lkdGg9IjM2LjkzIiBoZWlnaHQ9IjE3Ljc5IiBzdHlsZT0iZmlsbDojMDBiMzlmIi8+PHBhdGggaWQ9Il9QYXRoXzIiIGRhdGEtbmFtZT0iJmx0O1BhdGgmZ3Q7IiBkPSJNMTE5LjkyLDgzLjlWNzYuNTNjMC04LjQ5LTcuMTQtMTUuMzctMTUuOTQtMTUuMzdINDQuMzhWNTYuMzFIMjIuNTZ2MjFIOTguMVY4My45WiIgc3R5bGU9ImZpbGw6IzAwYjM5ZiIvPjxwb2x5Z29uIGlkPSJfUGF0aF8zIiBkYXRhLW5hbWU9IiZsdDtQYXRoJmd0OyIgcG9pbnRzPSI0NC4zOCA1MC41IDQ0LjM4IDQxLjc2IDczLjYgNDEuNzYgNzMuNiAyMy45NyAyMi41NiAyMy45NyAyMi41NiA1MC41IDQ0LjM4IDUwLjUiIHN0eWxlPSJmaWxsOiMwMGQzYTkiLz48cGF0aCBpZD0iX1BhdGhfNCIgZGF0YS1uYW1lPSImbHQ7UGF0aCZndDsiIGQ9Ik05OC4xLDg5LjYyVjEwMEg2OC44OHYxNy43OWgzNmExNC43NywxNC43NywwLDAsMCwxNS0xNC40OVY4OS42MloiIHN0eWxlPSJmaWxsOiMwMGQzYTkiLz48cGF0aCBpZD0iX1BhdGhfNSIgZGF0YS1uYW1lPSImbHQ7UGF0aCZndDsiIGQ9Ik00Mi42Myw5MC41OFYxMDBINjIuODV2MTcuNzloLTI2YTE0Ljc3LDE0Ljc3LDAsMCwxLTE1LTE0LjQ5VjkwLjU4WiIgc3R5bGU9ImZpbGw6IzAwYjM5ZiIvPjwvc3ZnPg==
85+
name: layer5-cloud
86+
type: application
87+
urls:
88+
- https://docs.layer5.io/charts/layer5-cloud-v0.8.673.tgz
89+
version: v0.8.673
90+
- apiVersion: v2
91+
appVersion: v0.8.672
92+
created: "2026-02-26T20:33:10.157496363Z"
93+
dependencies:
94+
- condition: kratos.enabled
95+
name: kratos
96+
repository: '@ory'
97+
version: 0.60.0
98+
- condition: ory/hydra.enabled
99+
name: hydra
100+
repository: '@ory'
101+
version: 0.60.0
102+
description: Layer5 Cloud is a collection of services that can be deployed on-premises.
103+
digest: c123c5fd8538c4a71f45f3efe6a7d48ac6ad78d9bee38ddd619ec6a06fa8ff7f
104+
icon: data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNDEuNzMgMTQxLjczIj48dGl0bGU+NS1saWdodC1iZzwvdGl0bGU+PHJlY3QgaWQ9Il9QYXRoXyIgZGF0YS1uYW1lPSImbHQ7UGF0aCZndDsiIHg9Ijc5LjYzIiB5PSIyMy45NyIgd2lkdGg9IjM2LjkzIiBoZWlnaHQ9IjE3Ljc5IiBzdHlsZT0iZmlsbDojMDBiMzlmIi8+PHBhdGggaWQ9Il9QYXRoXzIiIGRhdGEtbmFtZT0iJmx0O1BhdGgmZ3Q7IiBkPSJNMTE5LjkyLDgzLjlWNzYuNTNjMC04LjQ5LTcuMTQtMTUuMzctMTUuOTQtMTUuMzdINDQuMzhWNTYuMzFIMjIuNTZ2MjFIOTguMVY4My45WiIgc3R5bGU9ImZpbGw6IzAwYjM5ZiIvPjxwb2x5Z29uIGlkPSJfUGF0aF8zIiBkYXRhLW5hbWU9IiZsdDtQYXRoJmd0OyIgcG9pbnRzPSI0NC4zOCA1MC41IDQ0LjM4IDQxLjc2IDczLjYgNDEuNzYgNzMuNiAyMy45NyAyMi41NiAyMy45NyAyMi41NiA1MC41IDQ0LjM4IDUwLjUiIHN0eWxlPSJmaWxsOiMwMGQzYTkiLz48cGF0aCBpZD0iX1BhdGhfNCIgZGF0YS1uYW1lPSImbHQ7UGF0aCZndDsiIGQ9Ik05OC4xLDg5LjYyVjEwMEg2OC44OHYxNy43OWgzNmExNC43NywxNC43NywwLDAsMCwxNS0xNC40OVY4OS42MloiIHN0eWxlPSJmaWxsOiMwMGQzYTkiLz48cGF0aCBpZD0iX1BhdGhfNSIgZGF0YS1uYW1lPSImbHQ7UGF0aCZndDsiIGQ9Ik00Mi42Myw5MC41OFYxMDBINjIuODV2MTcuNzloLTI2YTE0Ljc3LDE0Ljc3LDAsMCwxLTE1LTE0LjQ5VjkwLjU4WiIgc3R5bGU9ImZpbGw6IzAwYjM5ZiIvPjwvc3ZnPg==
105+
name: layer5-cloud
106+
type: application
107+
urls:
108+
- https://docs.layer5.io/charts/layer5-cloud-v0.8.672.tgz
109+
version: v0.8.672
50110
- apiVersion: v2
51111
appVersion: v0.8.671
52112
created: "2026-02-20T19:25:24.093328606Z"
@@ -7899,4 +7959,4 @@ entries:
78997959
urls:
79007960
- https://docs.layer5.io/charts/layer5-cloud-v0.8.235.tgz
79017961
version: v0.8.235
7902-
generated: "2026-02-20T19:25:24.086831944Z"
7962+
generated: "2026-02-28T00:42:41.126544015Z"

charts/layer5-cloud-v0.8.672.tgz

63.6 KB
Binary file not shown.

charts/layer5-cloud-v0.8.673.tgz

62.7 KB
Binary file not shown.

charts/layer5-cloud-v0.8.674.tgz

63.6 KB
Binary file not shown.

content/en/cloud/self-hosted/deployment/_index.md

Lines changed: 152 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -8,20 +8,67 @@ weight: 2
88

99
## High-level List of Deployment Tasks
1010

11-
## High-level List of Deployment Tasks
11+
<ol>
12+
<li>Review the prequisites for installing Layer5 Cloud on Kubernetes. (<a href="#prerequisites">docs</a>)</li>
13+
<li>Prepare INIT_CONFIG parameters for initial setup</li>
14+
<li>Install Layer5 Cloud on Kubernetes using Helm. Deploy it's services in Kubernetes in-cluster. (<a href="#installation">docs</a>)</li>
15+
<li>Meshery deployments are separate from <a href="https://docs.meshery.io/extensibility/providers">Remote Provider</a> deployments (Layer5 Cloud). Deploy Meshery in Kubernetes in-cluster (or out-of-cluster). (<a href="https://docs.meshery.io/installation/quick-start">docs</a>)</li>
16+
<li>Configure Meshery Server point to your Remote Provider. Learn more about the Meshery Server registration process with Remote Providers. (<a href="https://docs.meshery.io/extensibility/providers#meshery-server-registration">docs</a>)</li>
17+
</ol>
18+
19+
### Kubernetes-based Installation with Helm
20+
21+
Layer5 offers on-premises installation of its [Meshery Remote Provider](https://docs.meshery.io/extensibility/providers): Layer5 Cloud. Available in the [Layer5 Helm repository](https://docs.layer5.io/charts) is the layer5-cloud chart, which contains two subcharts. See the Helm repo [index](https://docs.layer5.io/charts/index.yaml) for details.
22+
23+
#### Prerequisites
24+
25+
Before you begin ensure the following are installed:
26+
- Helm.
27+
- An ingress controller like `ingress-nginx`.
28+
- A certificate manager like `cert-manager`.
29+
30+
##### 1. Create dedicated namespaces
31+
32+
This deployment uses two namespaces, `cnpg-postgres` for hosting the PostgreSQL database using CloudNativePG operator and `layer5-cloud` namespace for the Layer5 Cloud. You can also choose to keep all components in the same namespace.
33+
```bash
34+
kubectl create ns cnpg-postgres
35+
kubectl create ns layer5-cloud
36+
```
37+
38+
##### 2. Prepare for data persistence (Persistent Volume)
39+
40+
Layer5 uses PostgreSQL database that requires a persistent storage. It can be configured in many different ways in a Kubernetes cluster. Here we are using _local path provisioner from Rancher_ which automatically creates a PV using a set local path. Running the follwing command to deploy the local path provisioner:
41+
42+
```bash
43+
kubectl apply -f https://raw.githubusercontent.com/rancher/local-path-provisioner/v0.0.31/deploy/local-path-storage.yaml
44+
```
45+
46+
This creates a default storage class called `local-path` which stores data by default in `/opt/local-path-provisioner` and has the reclaim policy set to `Delete`.
47+
48+
> **_NOTE:_** It is recommended you create a new storage class that uses a different path with ample storage and uses `Retain` reclaim policy.
49+
50+
For this guide, we will use the defaults.
51+
52+
##### 3. Install an ingress controller
53+
54+
This example deployment uses ingress-nginx but you may choose to use an ingress controller of your choice.
55+
56+
```bash
57+
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.13.3/deploy/static/provider/cloud/deploy.yaml
58+
```
1259

13-
### INIT_CONFIG
60+
#### INIT_CONFIG
1461

1562
The `INIT_CONFIG` environment variable allows you to configure the initial setup of your self-hosted Layer5 Cloud provider. This variable accepts a JSON string that defines the provider initialization configuration.
1663

17-
#### Purpose
64+
##### Purpose
1865

1966
`INIT_CONFIG` enables you to:
2067
- Pre-configure provider settings during deployment
2168
- Automate initial setup for consistent deployments
2269
- Define custom provider configurations without manual intervention
2370

24-
#### Usage
71+
##### Usage
2572

2673
Set the `INIT_CONFIG` environment variable with a JSON configuration string:
2774

@@ -48,92 +95,139 @@ env:
4895
The INIT_CONFIG variable is only processed during the initial startup. Subsequent restarts will not reprocess this configuration.
4996
{{< /alert >}}
5097
51-
#### Configuration Schema
98+
##### Configuration Schema
5299
53100
The `INIT_CONFIG` JSON structure supports the following fields:
54101

55102
- `provider.name`: The name of your provider instance
56103
- `provider.settings`: Custom provider settings specific to your deployment
57104

58105

59-
<ol>
60-
<li>Review the prequisites for installing Layer5 Cloud on Kubernetes. (<a href="#prerequisites">docs</a>)</li>
61-
</li>
62-
<li>Install Layer5 Cloud on Kubernetes using Helm. Deploy it's services in Kubernetes in-cluster. (<a href="#installation">docs</a>)</li>
63-
<li>Meshery deployments are separate from <a href="https://docs.meshery.io/extensibility/providers">Remote Provider</a> deployments (Layer5 Cloud). Deploy Meshery in Kubernetes in-cluster (or out-of-cluster). (<a href="https://docs.meshery.io/installation/quick-start">docs</a>)</li>
64-
<li>Configure Meshery Server point to your Remote Provider. Learn more about the Meshery Server registration process with Remote Providers. (<a href="https://docs.meshery.io/extensibility/providers#meshery-server-registration">docs</a>)</li>
65-
</ol>
66-
67-
### Kubernetes-based Installation with Helm
106+
#### Installation
68107

69-
Layer5 offers on-premises installation of its [Meshery Remote Provider](https://docs.meshery.io/extensibility/providers): Layer5 Cloud. Contained in the [Layer5 Helm repository](https://docs.layer5.io/charts) is one chart with two subcharts (see repo [index](https://docs.layer5.io/charts/index.yaml)).
108+
You will install the Postgres database first or configure connection details to your existing Postgres v12+ database server, followed by the rest of Layer5 Cloud's containers.
70109

71-
#### Prerequisites
110+
##### 1. Deploy PostgreSQL using CloudNativePG
72111

73-
##### 1. Prepare a Persistent Volume
112+
In this example, we are using CloudNativePG's operator based approach to create a PostgreSQL cluster. You can choose a different approach of your choice.
74113

75-
A persistent volume to store the Postgres database is necessary to prepare prior to deployment. If your target cluster does not have a persistent volume readily available (or not configured for automatic PV provisioning and binding of PVCs to PV), we suggest to apply the following configuration to your cluster.
114+
PostgreSQL requires persistent storage which can be configured in many different ways in a Kubernetes cluster. Here we are using _local path provisioner from Rancher_ which automatically creates a PV using a set local path. Running the follwing command to deploy the local path provisioner:
76115

77116
```bash
78-
kubectl apply -f install/kubernetes/persistent-volume.yaml
117+
kubectl apply -f https://raw.githubusercontent.com/rancher/local-path-provisioner/v0.0.31/deploy/local-path-storage.yaml
79118
```
80119

81-
##### 2. Prepare a dedicated namespace and add the chart repo to your helm configuration
120+
This creates a default storage class called `local-path` which stores data by default in `/opt/local-path-provisioner`. You can create a new storage class that uses a different path. For this deployment, we will use the defaults.
82121

83-
*You may choose to use an alternative namespace, but the following instructions assume the use of `layer5` namespace.*
122+
Add and install CloudNativePG operator using the following commands:
84123

85124
```bash
86-
kubectl create ns layer5
87-
helm repo add layer5 https://docs.layer5.io/charts
88-
```
125+
helm repo add cnpg https://cloudnative-pg.github.io/charts
89126
90-
##### 3. Ensure NGINX Ingress Controller is deployed
127+
helm upgrade --install cnpg --namespace cnpg-system --create-namespace cnpg/cloudnative-pg
128+
```
91129

92-
*You may chose to use an alternative ingress controller, but the following instructions assume the use of NGINX Ingress Controller.*
130+
Deploying a PostgreSQL cluster requires the follwing pre-requisite resources:
131+
- A super user secret
132+
- A Meshery user secret
93133

134+
Run the following commands to create them replacing username and passwords as needed:
94135
```bash
95-
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.8.2/deploy/static/provider/cloud/deploy.yaml
136+
kubectl -n cnpg-postgres create secret generic meshery-user --from-literal=username=meshery --from-literal=password=meshery --type=kubernetes.io/basic-auth
96137
```
97138

98-
#### Installation
99-
100-
The first service to install is the Postgres database. The following command installs the Postgres database and initializes it's dataset. The dataset is used by the Layer5 Cloud server and the Layer5 Cloud identity provider.
139+
```bash
140+
kubectl -n cnpg-postgres create secret generic cnpg-superuser --from-literal=username=postgres --from-literal=password=postgres --type=kubernetes.io/basic-auth
141+
```
101142

102-
Layer5 Cloud `postgres` database requires [pg_cron](https://github.com/citusdata/pg_cron) extension to be enabled and configured to execute on a schedule. The Cloud instance is bundled with both Data Definition Language (DDL) to iniatilze the schema and with Data Manipulation Language (DML) that support both greenfield deployments and upgrades of existing deployments.
143+
For this documentation, we use the following manifests to deploy a PostgreSQL cluster:
144+
```yaml
145+
# cluster.yaml
146+
apiVersion: postgresql.cnpg.io/v1
147+
kind: Cluster
148+
metadata:
149+
name: cnpg-postgres
150+
namespace: cnpg-postgres
151+
spec:
152+
instances: 2
153+
# Persistent storage configuration
154+
storage:
155+
storageClass: local-path
156+
size: 10Gi
157+
158+
superuserSecret:
159+
name: cnpg-superuser
160+
bootstrap:
161+
initdb:
162+
database: meshery
163+
owner: meshery
164+
secret:
165+
name: meshery-user
166+
postInitSQL:
167+
- create database hydra owner meshery;
168+
- create database kratos owner meshery;
169+
- create extension "uuid-ossp";
170+
- ALTER ROLE meshery WITH SUPERUSER;
171+
postInitApplicationSQLRefs:
172+
configMapRefs:
173+
- name: extra-init
174+
key: init.sql
175+
---
176+
# extra-init.yaml
177+
apiVersion: v1
178+
kind: ConfigMap
179+
metadata:
180+
name: extra-init
181+
namespace: cnpg-postgres
182+
data:
183+
init.sql: |
184+
GRANT ALL PRIVILEGES ON DATABASE meshery to meshery;
185+
GRANT ALL PRIVILEGES ON DATABASE hydra to meshery;
186+
GRANT ALL PRIVILEGES ON DATABASE kratos to meshery;
187+
```
103188

104-
##### 1. Install Postgres database
189+
CloudNativePG provides a curated list of [samples](https://github.com/cloudnative-pg/cloudnative-pg/blob/main/docs/src/samples.md) showing configuration options that can be used as a reference.
105190

191+
Apply the YAML file. You should notice two cnpg pods shortly thereafter.
106192
```bash
107-
helm repo add bitnami https://charts.bitnami.com/bitnami
108-
helm install postgresql bitnami/postgresql --version 14.0.1
193+
NAME READY STATUS RESTARTS AGE
194+
cnpg-postgres-1 1/1 Running 0 3h5m
195+
cnpg-postgres-2 1/1 Running 0 3h5m
109196
```
197+
Retrieve the _Service_ endpoints of cnpg. This must be updated in the Layer5 `values.yaml` file later.
110198

111-
##### 2. Install Remote Provider Server and Identity Provider
199+
##### 2. Deploy Layer5 cloud
112200

113-
```bash
114-
## TBD: Delete local filesystem reference
115-
# helm install -f ./install/kubernetes/values.yaml cloud ./install/kubernetes -n <namespace>`
116-
117-
helm install -f ./install/helm-chart-values/layer5-cloud-values.yaml cloud ./install/kubernetes -n postgres \
118-
--set-file 'kratos.kratos.emailTemplates.recovery.valid.subject'=<path to the email templates to override>/valid/email-recover-subject.body.gotmpl \
119-
--set-file 'kratos.kratos.emailTemplates.recovery.valid.body'=<path to the email templates to override>/valid/email-recover.body.gotmpl \
120-
--set-file 'kratos.kratos.emailTemplates.verification.valid.subject'=<path to the email templates to override>/valid/email-verify-subject.body.gotmpl \
121-
--set-file 'kratos.kratos.emailTemplates.verification.valid.body'=<path to the email templates to override>/valid/email-verify.body.gotmpl
122-
```
201+
1. Start by adding the Layer5 helm chart repo.
202+
```bash
203+
helm repo add layer5 https://docs.layer5.io/charts
204+
```
123205

124-
##### 3. Create an OAuth 2.0 client
125-
1. Port forward the Hydra Admin service.
126-
2. ```bash
127-
hydra clients create \
128-
--endpoint <port forwarded endpoint> \
129-
--id meshery-cloud \ <--- ensure the id specified matches with the env.oauthclientid in values.yaml
130-
--secret some-secret \ <--- ensure the secret specified matches with the env.oauthsecret in values.yaml
131-
--grant-types authorization_code,refresh_token,client_credentials,implicit \
132-
--response-types token,code,id_token \
133-
--scope openid,offline,offline_access \
134-
--callbacks <Layer5 Cloud host>/callback
206+
2. Next, to modify values such as the database connection or other parameters, you will use the `values.yaml` file.
207+
208+
You can generate it using the following command:
209+
```bash
210+
helm show values layer5/layer5-cloud > values.yaml
135211
```
212+
Review and update values if necessary. If you have followed this tutorial with the exact steps, there are no changes requires to get started.
136213

137-
## Uninstalling the Chart
214+
3. Deploy Layer5 Cloud using the `helm install` command.
215+
216+
```bash
217+
helm install -f values.yaml layer5-cloud -n layer5-cloud
218+
```
138219

139-
220+
##### 3. Create an OAuth 2.0 client
221+
1. Port forward the _Hydra Admin_ service.
222+
223+
2. Run the following command to create the hydra client:
224+
```bash
225+
hydra clients create \
226+
--endpoint <port forwarded endpoint> \
227+
--id meshery-cloud \ <--- ensure the id specified matches with the env.oauthclientid in values.yaml
228+
--secret some-secret \ <--- ensure the secret specified matches with the env.oauthsecret in values.yaml
229+
--grant-types authorization_code,refresh_token,client_credentials,implicit \
230+
--response-types token,code,id_token \
231+
--scope openid,offline,offline_access \
232+
--callbacks <Layer5 Cloud host>/callback
233+
```

0 commit comments

Comments
 (0)