Git Product home page Git Product logo

simple-k8s-guacamole's Introduction

simple-k8s-guacamole

A simple kubernetes deployment for a guacamole remote access gateway.

This project works well for a simple deployment, such as a DIY homelab setup, where you'd like to provision a simple remote access gateway on a kubernetes cluster. This deploys Appache Guacamole which enables remote access to machines on your home network. By running this remote access gateway in containers, it offers better isolation from it's host at the file system and network levels. And by running it on kubernetes, it provides declartative deployments and rohbustness features, such as liveness probes.

This guacamole setup has 3 deployments:

  • guacamole - The web-client frontend
  • guacd - The server backend
  • guac-postgres - A postgres database instance to hold user and connection information

Before first use, the postgres database must be seeded. This can be done simply by running the init.sh script:

./init.sh

Note, this script and the guac-postgres deployment currenlty assumes the persistent data for postgres is simply kept in a /volumes/guac-postgres host directory.

Then, to provision the guacamole deployments on the kubernetes cluster, simply:

kubectl apply -f simple-k8s-guacamole.yaml

Note, The guacamole web-client is currently explosed through a cluster nodePort: 9080

Once each guacamole pod is ready on the cluster, you can navigate to the web-client using the node-port specified above. Once the web-client is accessed, follow the documentation on the Appache Guacamole site to setup new users and connections.

simple-k8s-guacamole's People

Contributors

sfb103 avatar

Stargazers

Seder(方进) avatar JP avatar  avatar

Watchers

 avatar

simple-k8s-guacamole's Issues

Postgres volume mount

Currently postgres persistent data simply uses a hostPath volume mount. Consider if setting up a formal PV/PVC for this would be a better approach.

Save/load postegres volume

Currently the vol-save/load-guac-postgres-data.sh scripts operate on a docker volume rather than the hostPath volume mount used by the guac-postgres deployment. Consider whether these scripts should be modified or even simply removed all together.

Provide additional instructions

Consider providing some additional instruction that helps identify:

  • The various use cases this works best for
  • The different ways this can be customized, for example:
    -- modified secrets
    -- modified ways of persisting postgres data
    -- modified node port for the web-client
    -- attaching to an existing postgres db rather than deploying a specific one
  • Better directions for finding the web-client once deployed, e.g. which ip to use, firewall forwarding rules on home routers, etc.
  • Troubleshooting guide.

Secrets for guac-postgres

Currently the password for postgres access is passed to guacamole as an env and stored in the simple-k8s-guacamole.yaml file. Using a configmap or some other mechanism would be preferred.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.