extend admin docs on UI
This commit is contained in:
parent
bc04e92a3d
commit
7da6bd86a4
|
|
@ -486,29 +486,36 @@ A secret can be pre-provisioned in different ways:
|
||||||
|
|
||||||
## Setting up the Postgres Operator UI
|
## Setting up the Postgres Operator UI
|
||||||
|
|
||||||
With the v1.2 release the Postgres Operator is shipped with a browser-based
|
Since the v1.2 release the Postgres Operator is shipped with a browser-based
|
||||||
configuration user interface (UI) that simplifies managing Postgres clusters
|
configuration user interface (UI) that simplifies managing Postgres clusters
|
||||||
with the operator. It talks to the K8s API Server as well as the Postgres
|
with the operator.
|
||||||
Operator [REST API](developer.md#debugging-the-operator). URLs as well as parts
|
|
||||||
of the UI layout can be configured via environment variables in the
|
|
||||||
[deployment manifest](../ui/manifests/deployment.yaml#L40).
|
|
||||||
|
|
||||||
The UI runs with Node.js and comes with it's own Docker image. Run NPM to
|
### Building the UI image
|
||||||
continuously compile `tags/js` code. Basically, it creates an `app.js` file in:
|
|
||||||
`static/build/app.js`
|
|
||||||
|
|
||||||
```bash
|
The UI runs with Node.js and comes with it's own Docker
|
||||||
(cd ui/app && npm start)
|
image. However, installing Node.js to build the operator UI is not required. It
|
||||||
```
|
is handled via Docker containers when running:
|
||||||
|
|
||||||
To build operator UI and Docker image open a shell, change to the `ui` folder
|
|
||||||
and run:
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
make docker
|
make docker
|
||||||
```
|
```
|
||||||
|
|
||||||
Apply all manifests from the `ui/manifests` folder to deploy the Postgres
|
### Configure endpoints and options
|
||||||
|
|
||||||
|
The UI talks to the K8s API server as well as the Postgres Operator [REST API](developer.md#debugging-the-operator).
|
||||||
|
K8s API server URLs are loaded from the machine's kubeconfig environment by
|
||||||
|
default. Alternatively, a list can also be passed when starting the Python
|
||||||
|
application with the `--cluster` option.
|
||||||
|
|
||||||
|
The Operator API endpoint can be configured via the `OPERATOR_API_URL`
|
||||||
|
environment variables in the [deployment manifest](../ui/manifests/deployment.yaml#L40).
|
||||||
|
You can also expose the operator API through a [service](../manifests/api-service.yaml).
|
||||||
|
Some displayed options can be disabled from UI using simple flags under the
|
||||||
|
`OPERATOR_UI_CONFIG` field in the deployment.
|
||||||
|
|
||||||
|
### Deploy the UI on K8s
|
||||||
|
|
||||||
|
Now, apply all manifests from the `ui/manifests` folder to deploy the Postgres
|
||||||
Operator UI on K8s. Replace the image tag in the deployment manifest if you
|
Operator UI on K8s. Replace the image tag in the deployment manifest if you
|
||||||
want to test the image you've built with `make docker`. Make sure the pods for
|
want to test the image you've built with `make docker`. Make sure the pods for
|
||||||
the operator and the UI are both running.
|
the operator and the UI are both running.
|
||||||
|
|
@ -518,11 +525,17 @@ sed -e "s/\(image\:.*\:\).*$/\1$TAG/" manifests/deployment.yaml | kubectl apply
|
||||||
kubectl get all -l application=postgres-operator-ui
|
kubectl get all -l application=postgres-operator-ui
|
||||||
```
|
```
|
||||||
|
|
||||||
For local testing you need to apply proxying and port forwarding so that the UI
|
### Local testing
|
||||||
can talk to the K8s and Postgres Operator REST API. The Ingress resource is not
|
|
||||||
needed. You can use the provided `run_local.sh` script for this. Make sure
|
For local testing you need to apply K8s proxying and operator pod port
|
||||||
Python dependencies are installed on your machine and the correct K8s API server
|
forwarding so that the UI can talk to the K8s and Postgres Operator REST API.
|
||||||
URL is used, e.g. for minikube it would usually be `https://192.168.99.100:8443`.
|
The Ingress resource is not needed. You can use the provided `run_local.sh`
|
||||||
|
script for this. Make sure that:
|
||||||
|
|
||||||
|
* Python dependencies are installed on your machine
|
||||||
|
* the K8s API server URL is set for kubectl commands, e.g. for minikube it would usually be `https://192.168.99.100:8443`.
|
||||||
|
* the pod label selectors for port forwarding are correct
|
||||||
|
|
||||||
When testing with minikube you have to build the image in its docker environment
|
When testing with minikube you have to build the image in its docker environment
|
||||||
(running `make docker` doesn't do it for you). From the `ui` directory execute:
|
(running `make docker` doesn't do it for you). From the `ui` directory execute:
|
||||||
|
|
||||||
|
|
@ -537,7 +550,7 @@ docker build -t registry.opensource.zalan.do/acid/postgres-operator-ui:v1.3.0 .
|
||||||
# apply UI manifests next to a running Postgres Operator
|
# apply UI manifests next to a running Postgres Operator
|
||||||
kubectl apply -f manifests/
|
kubectl apply -f manifests/
|
||||||
|
|
||||||
# install python dependencies and run UI locally
|
# install python dependencies to run UI locally
|
||||||
pip3 install -r requirements
|
pip3 install -r requirements
|
||||||
./run_local.sh
|
./run_local.sh
|
||||||
```
|
```
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue