Deployment on MicroK8S
GeoNode Cloud can be deployed on various Kubernetes platforms. Here are the steps for deploying it on MicroK8S.
Requirements
- MicroK8S:
- Ingress module
- DNS module
- Cert-manager module
Install MicroK8S with Snap
sudo snap install microk8s --classic
Enable Required MicroK8S Modules
microk8s enable ingress
microk8s enable cert-manager
Create Cert-Manager Configuration for Let's Encrypt
Replace YOUREMAIL@DOMAIN.com
with your own email address.
microk8s kubectl apply -f - <<EOF
---
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: letsencrypt
spec:
acme:
email: YOUREMAIL@DOMAIN.com
server: https://acme-v02.api.letsencrypt.org/directory
privateKeySecretRef:
# Secret resource that will be used to store the account's private key.
name: letsencrypt-account-key
# Add a single challenge solver, HTTP01 using nginx
solvers:
- http01:
ingress:
class: public
EOF
Deployment
Clone the Repository
git clone https://github.com/Kan-T-IT/geonode-cloud.git && cd geonode-cloud
Configure the Environment Variables
Edit the .env
file with the necessary information:
KUBERNETES_SITE_URL=GEONODE_CLOUD_FINAL_URL # i.e.: cloud.mygeonode.com
KUBERNETES_NODE_NAME=YOUR_CLUSTER_NAME_NAME # usually host machine name
KUBERNETES_VOL_DIR=YOUR_DESIRED_LOCATION # this path shold exist
CLUSTER_ISSUER_NAME=YOUR_CLUSTER_ISSUER_NAME # created earlier in this guide
SERVER_PUBLIC_IP=YOU.RPU.BLI.CIP # the public ipv4 of the server
GEONODE_PASSWORD=admin # password for geonode admin user
GEOSERVER_PASSWORD=geoserver # password for geoserver admin user
Run the Installation Script
./install.sh
GeoNode Cloud should now be ready to use.