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
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added content/deploy/images/namespaces.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
177 changes: 177 additions & 0 deletions content/deploy/openshift.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,177 @@
---
title: 'Red Hat OpenShift ClickOps Installation'
date: '2023-10-18T15:02:24-03:00'
categories: ["how-to"]
description: How to install Rhize on the Red Had OpenShift platform using the Red Hat OpenShift Console
weight: 600
---

This procedure will guide you through the installation of Rhize, including monitoring applications on the Red Hat OpenShift platform v4.x.x.

Check failure on line 9 in content/deploy/openshift.md

View workflow job for this annotation

GitHub Actions / vale

[vale] content/deploy/openshift.md#L9

[Vale.Repetition] 'x' is repeated!
Raw output
{"message": "[Vale.Repetition] 'x' is repeated!", "location": {"path": "content/deploy/openshift.md", "range": {"start": {"line": 9, "column": 137}}}, "severity": "ERROR"}

Prerequisites:

- Red Hat OpenShift Platform running
- kubeadmin permissions to

Check failure on line 14 in content/deploy/openshift.md

View workflow job for this annotation

GitHub Actions / vale

[vale] content/deploy/openshift.md#L14

[Vale.Spelling] Did you really mean 'kubeadmin'?
Raw output
{"message": "[Vale.Spelling] Did you really mean 'kubeadmin'?", "location": {"path": "content/deploy/openshift.md", "range": {"start": {"line": 14, "column": 4}}}, "severity": "ERROR"}
- create/list namespaces

Check failure on line 15 in content/deploy/openshift.md

View workflow job for this annotation

GitHub Actions / vale

[vale] content/deploy/openshift.md#L15

[Vale.Spelling] Did you really mean 'namespaces'?
Raw output
{"message": "[Vale.Spelling] Did you really mean 'namespaces'?", "location": {"path": "content/deploy/openshift.md", "range": {"start": {"line": 15, "column": 19}}}, "severity": "ERROR"}
- create/list cluster Helm chart repositories
- create secret in `openshift-config` namespace
- create release
- Your cluster has access to public Helm chart repositories
- OpenShift CLI `oc` available

## 1. Create the Rhize OpenShift Project

With the Red Hat OpenShift Console:
1. Login using your existing credentials.
1. Using the left hand menu, navigate to _Home_ and _Projects_.
1. Click _Create Project_ and enter name 'rhize'
1. Click _Create_

> The 'rhize' project with the 'rhize' namespace has now been created

1. Using the left hand menu, navigate to _Helm_ and _Releases_.
1. Using the project selector, click the down arrow and ensure 'rhize' is selected.

## 2. Configure Helm Chart Repositories

### 2.1 Add Libre Helm Chart Secret

The Libre Helm chart repository requires authentication to access. Create a secret using the Red Hat OpenShift command line utility using your provided access token.

```shell
$ oc create secret generic libre-helmchart-repository --from-literal=username='tom561' --from-literal=password='glpat-XXXXX' --namespace openshift-config
```

Now that the secret is configured, we can use it in the next step to create the Helm chart repositories.

### 2.1 Add Helm Chart Repositories

With the Red Hat OpenShift Console:
1. Login using your existing credentials.
1. Using the left hand menu, navigate to _Helm_ and _Repositories_.
1. Click _Create Helm Repository_ and create the following Helm Chart Repositories (HCR).

| Type | name | label | description | url |

Check failure on line 54 in content/deploy/openshift.md

View workflow job for this annotation

GitHub Actions / vale

[vale] content/deploy/openshift.md#L54

[Vale.Spelling] Did you really mean 'url'?
Raw output
{"message": "[Vale.Spelling] Did you really mean 'url'?", "location": {"path": "content/deploy/openshift.md", "range": {"start": {"line": 54, "column": 80}}}, "severity": "ERROR"}
| Cluster Scoped | appsmith-ee | appsmith-ee | | https://helm-ee.appsmith.com |

Check failure on line 55 in content/deploy/openshift.md

View workflow job for this annotation

GitHub Actions / vale

[vale] content/deploy/openshift.md#L55

[Vale.Terms] Use 'Appsmith' instead of 'appsmith'.
Raw output
{"message": "[Vale.Terms] Use 'Appsmith' instead of 'appsmith'.", "location": {"path": "content/deploy/openshift.md", "range": {"start": {"line": 55, "column": 20}}}, "severity": "ERROR"}

Check failure on line 55 in content/deploy/openshift.md

View workflow job for this annotation

GitHub Actions / vale

[vale] content/deploy/openshift.md#L55

[Vale.Terms] Use 'Appsmith' instead of 'appsmith'.
Raw output
{"message": "[Vale.Terms] Use 'Appsmith' instead of 'appsmith'.", "location": {"path": "content/deploy/openshift.md", "range": {"start": {"line": 55, "column": 43}}}, "severity": "ERROR"}
| Cluster Scoped | bitnami | bitnami | | https://charts.bitnami.com/bitnami |

Check failure on line 56 in content/deploy/openshift.md

View workflow job for this annotation

GitHub Actions / vale

[vale] content/deploy/openshift.md#L56

[Vale.Terms] Use 'Bitnami' instead of 'bitnami'.
Raw output
{"message": "[Vale.Terms] Use 'Bitnami' instead of 'bitnami'.", "location": {"path": "content/deploy/openshift.md", "range": {"start": {"line": 56, "column": 20}}}, "severity": "ERROR"}

Check failure on line 56 in content/deploy/openshift.md

View workflow job for this annotation

GitHub Actions / vale

[vale] content/deploy/openshift.md#L56

[Vale.Terms] Use 'Bitnami' instead of 'bitnami'.
Raw output
{"message": "[Vale.Terms] Use 'Bitnami' instead of 'bitnami'.", "location": {"path": "content/deploy/openshift.md", "range": {"start": {"line": 56, "column": 43}}}, "severity": "ERROR"}
| Cluster Scoped | codecentric | codecentric | | https://codecentric.github.io/helm-charts |

Check failure on line 57 in content/deploy/openshift.md

View workflow job for this annotation

GitHub Actions / vale

[vale] content/deploy/openshift.md#L57

[Vale.Spelling] Did you really mean 'codecentric'?
Raw output
{"message": "[Vale.Spelling] Did you really mean 'codecentric'?", "location": {"path": "content/deploy/openshift.md", "range": {"start": {"line": 57, "column": 20}}}, "severity": "ERROR"}

Check failure on line 57 in content/deploy/openshift.md

View workflow job for this annotation

GitHub Actions / vale

[vale] content/deploy/openshift.md#L57

[Vale.Spelling] Did you really mean 'codecentric'?
Raw output
{"message": "[Vale.Spelling] Did you really mean 'codecentric'?", "location": {"path": "content/deploy/openshift.md", "range": {"start": {"line": 57, "column": 43}}}, "severity": "ERROR"}
| Cluster Scoped | grafana | grafana | | https://grafana.github.io/helm-charts |

Check failure on line 58 in content/deploy/openshift.md

View workflow job for this annotation

GitHub Actions / vale

[vale] content/deploy/openshift.md#L58

[Vale.Terms] Use 'Grafana' instead of 'grafana'.
Raw output
{"message": "[Vale.Terms] Use 'Grafana' instead of 'grafana'.", "location": {"path": "content/deploy/openshift.md", "range": {"start": {"line": 58, "column": 20}}}, "severity": "ERROR"}

Check failure on line 58 in content/deploy/openshift.md

View workflow job for this annotation

GitHub Actions / vale

[vale] content/deploy/openshift.md#L58

[Vale.Terms] Use 'Grafana' instead of 'grafana'.
Raw output
{"message": "[Vale.Terms] Use 'Grafana' instead of 'grafana'.", "location": {"path": "content/deploy/openshift.md", "range": {"start": {"line": 58, "column": 43}}}, "severity": "ERROR"}
| Cluster Scoped | libre | libre | | https://gitlab.com/api/v4/projects/42214456/packages/helm/stable |
| Cluster Scoped | prometheus-community | prometheus-community | | https://prometheus-community.github.io/helm-charts |
| Cluster Scoped | questdb | questdb | | https://helm.questdb.io |

Check failure on line 61 in content/deploy/openshift.md

View workflow job for this annotation

GitHub Actions / vale

[vale] content/deploy/openshift.md#L61

[Vale.Spelling] Did you really mean 'questdb'?
Raw output
{"message": "[Vale.Spelling] Did you really mean 'questdb'?", "location": {"path": "content/deploy/openshift.md", "range": {"start": {"line": 61, "column": 20}}}, "severity": "ERROR"}

Check failure on line 61 in content/deploy/openshift.md

View workflow job for this annotation

GitHub Actions / vale

[vale] content/deploy/openshift.md#L61

[Vale.Spelling] Did you really mean 'questdb'?
Raw output
{"message": "[Vale.Spelling] Did you really mean 'questdb'?", "location": {"path": "content/deploy/openshift.md", "range": {"start": {"line": 61, "column": 43}}}, "severity": "ERROR"}
| Cluster Scoped | redpanda | redpanda | | https://charts.redpanda.com |

Check failure on line 62 in content/deploy/openshift.md

View workflow job for this annotation

GitHub Actions / vale

[vale] content/deploy/openshift.md#L62

[Vale.Spelling] Did you really mean 'redpanda'?
Raw output
{"message": "[Vale.Spelling] Did you really mean 'redpanda'?", "location": {"path": "content/deploy/openshift.md", "range": {"start": {"line": 62, "column": 20}}}, "severity": "ERROR"}

Check failure on line 62 in content/deploy/openshift.md

View workflow job for this annotation

GitHub Actions / vale

[vale] content/deploy/openshift.md#L62

[Vale.Spelling] Did you really mean 'redpanda'?
Raw output
{"message": "[Vale.Spelling] Did you really mean 'redpanda'?", "location": {"path": "content/deploy/openshift.md", "range": {"start": {"line": 62, "column": 43}}}, "severity": "ERROR"}

Example configured helm repositories:
![redhat-openshift-console-helm-repositories](./images/helm-chart-repositories.png)

## 3. Install Monitoring Applications

| Rhize recommends a separate namespace for monitoring¹

With the Red Hat OpenShift Console:
1. Login using your existing credentials.
1. Using the left hand menu, navigate to _Administration_ and _Namespaces_.

Check failure on line 73 in content/deploy/openshift.md

View workflow job for this annotation

GitHub Actions / vale

[vale] content/deploy/openshift.md#L73

[Vale.Spelling] Did you really mean 'Namespaces'?
Raw output
{"message": "[Vale.Spelling] Did you really mean 'Namespaces'?", "location": {"path": "content/deploy/openshift.md", "range": {"start": {"line": 73, "column": 64}}}, "severity": "ERROR"}
1. Click _Create Namespace_ and enter name 'monitoring'

Check failure on line 74 in content/deploy/openshift.md

View workflow job for this annotation

GitHub Actions / vale

[vale] content/deploy/openshift.md#L74

[Vale.Terms] Use 'namespace' instead of 'Namespace'.
Raw output
{"message": "[Vale.Terms] Use 'namespace' instead of 'Namespace'.", "location": {"path": "content/deploy/openshift.md", "range": {"start": {"line": 74, "column": 18}}}, "severity": "ERROR"}
1. Click _Create_

> The monitoring and rhize namespace has now been created.

1. Using the left hand menu, navigate to _Helm_ and _Releases_.
1. Using the project selector, click the down arrow and ensure 'monitoring' is selected.

### 3.1 Install loki-distributed
1. Click _Create Helm Release_
1. Using the filter, select _Chart Repository_: 'grafana'

Check failure on line 84 in content/deploy/openshift.md

View workflow job for this annotation

GitHub Actions / vale

[vale] content/deploy/openshift.md#L84

[Vale.Terms] Use 'Grafana' instead of 'grafana'.
Raw output
{"message": "[Vale.Terms] Use 'Grafana' instead of 'grafana'.", "location": {"path": "content/deploy/openshift.md", "range": {"start": {"line": 84, "column": 50}}}, "severity": "ERROR"}
1. In the search filter for 'loki distributed'

Check failure on line 85 in content/deploy/openshift.md

View workflow job for this annotation

GitHub Actions / vale

[vale] content/deploy/openshift.md#L85

[Vale.Spelling] Did you really mean 'loki'?
Raw output
{"message": "[Vale.Spelling] Did you really mean 'loki'?", "location": {"path": "content/deploy/openshift.md", "range": {"start": {"line": 85, "column": 30}}}, "severity": "ERROR"}
1. Click the 'Loki Distributed' helm chart
1. Click the _Create_ button
1. Click the _Chart Version_ dropdown and wait for it to finish loading
1. Select version '0.80.6' from the drop down.
1. Make any environmental specific changes in the _YAML view_
1. Click the _Create_ button

> Loki has now been installed

### 3.2 Install tempo-distributed
1. Click _Create Helm Release_
1. Using the filter, select _Chart Repository_: 'grafana'

Check failure on line 97 in content/deploy/openshift.md

View workflow job for this annotation

GitHub Actions / vale

[vale] content/deploy/openshift.md#L97

[Vale.Terms] Use 'Grafana' instead of 'grafana'.
Raw output
{"message": "[Vale.Terms] Use 'Grafana' instead of 'grafana'.", "location": {"path": "content/deploy/openshift.md", "range": {"start": {"line": 97, "column": 50}}}, "severity": "ERROR"}
1. In the search filter for 'tempo distributed'
1. Click the 'Tempo Distributed' helm chart
1. Click the _Create_ button
1. Click the _Chart Version_ dropdown and wait for it to finish loading
1. Select version '1.57.1' from the drop down.
1. Make any environmental specific changes in the _YAML view_
1. Click the _Create_ button

> Tempo has now been installed

### 3.3 Install prometheus

Check failure on line 108 in content/deploy/openshift.md

View workflow job for this annotation

GitHub Actions / vale

[vale] content/deploy/openshift.md#L108

[Vale.Spelling] Did you really mean 'prometheus'?
Raw output
{"message": "[Vale.Spelling] Did you really mean 'prometheus'?", "location": {"path": "content/deploy/openshift.md", "range": {"start": {"line": 108, "column": 17}}}, "severity": "ERROR"}
1. Click _Create Helm Release_
1. Using the filter, select _Chart Repository_: 'prometheus-community'
1. In the search filter for 'prometheus'

Check failure on line 111 in content/deploy/openshift.md

View workflow job for this annotation

GitHub Actions / vale

[vale] content/deploy/openshift.md#L111

[Vale.Spelling] Did you really mean 'prometheus'?
Raw output
{"message": "[Vale.Spelling] Did you really mean 'prometheus'?", "location": {"path": "content/deploy/openshift.md", "range": {"start": {"line": 111, "column": 30}}}, "severity": "ERROR"}
1. Click the 'prometheus' helm chart

Check failure on line 112 in content/deploy/openshift.md

View workflow job for this annotation

GitHub Actions / vale

[vale] content/deploy/openshift.md#L112

[Vale.Spelling] Did you really mean 'prometheus'?
Raw output
{"message": "[Vale.Spelling] Did you really mean 'prometheus'?", "location": {"path": "content/deploy/openshift.md", "range": {"start": {"line": 112, "column": 15}}}, "severity": "ERROR"}
1. Click the _Create_ button
1. Click the _Chart Version_ dropdown and wait for it to finish loading
1. Select version '27.50.1' from the drop down.
1. Make any environmental specific changes in the _YAML view_, including
- Change the replicas to 2
1. Click the _Create_ button

> Prometheus has now been installed

### 3.4 Install Grafana
<todo>

Example running releases in the 'monitoring' namespace:
![redhat-openshift-console-helm-repositories](./image/helm-chart-repositories.png)

## 4. Install and configure Keycloak

### 4.1 Install Postgres (High Availability) for Keycloak
<todo>

### 4.3 Install Keycloak
<todo>

#### 4.3.1 Keycloak Configuration
<todo>

## 5. Install Rhize Applications
<todo>

### 5.1 Install Redpanda, including Redpanda Console

Check failure on line 142 in content/deploy/openshift.md

View workflow job for this annotation

GitHub Actions / vale

[vale] content/deploy/openshift.md#L142

[Vale.Spelling] Did you really mean 'Redpanda'?
Raw output
{"message": "[Vale.Spelling] Did you really mean 'Redpanda'?", "location": {"path": "content/deploy/openshift.md", "range": {"start": {"line": 142, "column": 17}}}, "severity": "ERROR"}

Check failure on line 142 in content/deploy/openshift.md

View workflow job for this annotation

GitHub Actions / vale

[vale] content/deploy/openshift.md#L142

[Vale.Spelling] Did you really mean 'Redpanda'?
Raw output
{"message": "[Vale.Spelling] Did you really mean 'Redpanda'?", "location": {"path": "content/deploy/openshift.md", "range": {"start": {"line": 142, "column": 37}}}, "severity": "ERROR"}
<todo>

### 5.2 Install QuestDB
<todo>

### 3.3 Install Restate
<todo>

### 3.4 Install AppSmith-EE

Check failure on line 151 in content/deploy/openshift.md

View workflow job for this annotation

GitHub Actions / vale

[vale] content/deploy/openshift.md#L151

[Vale.Terms] Use 'Appsmith' instead of 'AppSmith'.
Raw output
{"message": "[Vale.Terms] Use 'Appsmith' instead of 'AppSmith'.", "location": {"path": "content/deploy/openshift.md", "range": {"start": {"line": 151, "column": 17}}}, "severity": "ERROR"}
<todo>

### 3.5 Install Rhize Typescript Host Service
<todo>

### 3.6 Install Rhize BaaS
<todo>

### 3.7 Install Rhize ISA-95
<todo>

### 3.8 Install Rhize Workflow
<todo>

### 3.9 Install Rhize Admin UI
<todo>

### 3. Install Rhize Audit (Optional)
<todo>

### 4.2 Install Postgres (High Availability) for Rhize Audit
<todo>

# Footnotes

¹ - The 'monitoring' namespace is optional. The monitoring applications can be installed into the same namespace however these applications are typically used by other deployments and namespaces. Separating them into their own allows for better control and centralization of application services.

Check failure on line 177 in content/deploy/openshift.md

View workflow job for this annotation

GitHub Actions / vale

[vale] content/deploy/openshift.md#L177

[Vale.Spelling] Did you really mean 'namespaces'?
Raw output
{"message": "[Vale.Spelling] Did you really mean 'namespaces'?", "location": {"path": "content/deploy/openshift.md", "range": {"start": {"line": 177, "column": 185}}}, "severity": "ERROR"}
Loading