44 lines
2.1 KiB
Markdown
44 lines
2.1 KiB
Markdown
# Helm chart deployment on OpenShift K8S clusters
|
|
|
|
This helm chart can be used on a OpenShift Code Ready Container environment or an OpenShift Cloud Container environment.
|
|
|
|
With the OpenShift CRC (Code Ready Container) cluster you run an entire environment on your local machine. (> 4 vCPU, >8GB mem)
|
|
|
|
See the Red Hat documentation for general understanding of OpenShift. Make sure helm is installed as well.
|
|
## CRC commands
|
|
|
|
crc config set cpus 6
|
|
crc config set memory 12288
|
|
crc setup
|
|
crc start
|
|
eval $(crc oc-env)
|
|
oc login -u developer https://api.crc.testing:6443
|
|
oc new-project demo-project
|
|
|
|
The example without modification uses *demo-project* as the project/namespace for installing WebGoat and WebWolf.
|
|
|
|
|
|
## Helm install this example on your local Code Ready Container environment
|
|
|
|
helm install goat1 ./webgoat
|
|
|
|
## uninstall
|
|
|
|
helm uninstall goat1
|
|
|
|
The URL on a Code Ready Container is build from router name + namespace + default extension .apps-crc.testing:
|
|
|
|
+ [https://webgoat-1-goat-demo-project.apps-crc.testing/WebGoat](https://webgoat-1-goat-demo-project.apps-crc.testing/WebGoat)
|
|
+ [http://webwolf-1-wolf-demo-project.apps-crc.testing/WebWolf](http://webwolf-1-wolf-demo-project.apps-crc.testing/WebWolf)
|
|
|
|
## Explanation
|
|
|
|
deployment.yaml contains two K8S deployment elements. Both use the same Persistent Volume Claim and use the same Volume mapping.
|
|
They both use the same image but with other entrypoint and command arguments. The java.io.dir is also mapped to this persistent volume mapping. The number of pods is 1 for both WebGoat and WebWolf. WebGoat uses the WEBWOLF_HOST parameter to know where the external address of WebWolf is defined. WebWolf uses WEBGOAT_HOST to define the internal service address to WebGoat for connecting to the HSQL database
|
|
|
|
persistent-storage-claim.yaml contains the OpenShift K8S extension for requestig a volume with Read-Write access that will survive any pod replacements.
|
|
|
|
service.yaml defines the service ports for both WebGoat and WebWolf
|
|
|
|
route-goat defines an https endpoint toward the 8080 port. route-wolf defines an http port towards the 9090 port.
|