Apache Guacamole is a clientless remote desktop gateway. It supports standard protocols like VNC, RDP, and SSH. We call it clientless because no plugins or client software are required. Thanks to HTML5, once Guacamole is installed on a server, all you need to access your desktops is a web browser.
The Apache Guacamole Operator needs relations mysql
and guacd
. All the charms may be deployed using the Juju command line as in
# Create a Juju Model
juju add-model apache-guacamole
# Deploy database and guacd
juju deploy charmed-osm-mariadb-k8s db
juju deploy apache-guacd guacd
# Deploy Apache Guacamole Operator
juju deploy apache-guacamole guacamole --trust
# Add relations
juju relate guacamole db
juju relate guacamole guacd
Execute the command watch -c juju status --color
to check the status of the deployment. When the deployment is done, the guacamole
charm will show a status log to the URL you need to go to access guacamole.
Default credentials are guacadmin
/guacadmin
.
Exposing the Apache Guacamole charm though ingress is really simple thanks to the nginx-ingress-integrator
charm, which takes care of the communication with K8s to create the right Ingress Resource.
First, let's deploy ingress and relate it with guacamole:
juju deploy nginx-ingress-integrator --trust ingress
juju relate guacamole ingress
The Apache Guacamole charm has an external-hostname
configuration option that must be set in order to expose the service through ingress. The hostname must resolved to an IP that points to the kubernetes worker(s) where the guacamole application lives. The simplest way of achiving that without any DNS setup is by using a Wildcard DNS like nip.io
.
juju config guacamole external-hostname=guacamole.127.0.0.1.nip.io
Replace 127.0.0.1
in the external hostname with the external IP of the Kubernetes worker in order to expose the service to the outside world.
Now check the juju status guacamole
output again, and find the new URL to access the UI through ingress.
Please see the Juju SDK docs for guidelines
on enhancements to this charm following best practice guidelines, and
CONTRIBUTING.md
for developer guidance.