Installing Geocore OnPremise
Before proceeding with the Geocore installation, please ensure that you have satisfied the necessary prerequisites. For detailed information, consult the Software Requirements and Hardware Recommendations sections. Make sure you also have access to a Kubernetes cluster that suits your specific needs.
Our documentation includes guidance in two sections:
You can add a reference to the Centiloc repository by running the following command:
helm repo add --username <username> centiloc https://harbor.centiloc.com/chartrepo/centiloc
After completing the process, don’t forget to update your repository catalog with the following command:
helm repo update
The initial step to install Geocore using Helm is to create a configuration file (let’s name it myvalues.yaml
) where you specify your credentials for accessing the Centiloc Harbor repository. Below is an example:"
global:
imageCredentials:
registry: harbor.centiloc.com
email: <the email of your account>
password: <your password>
username: <your username>
After completing these steps, you can install the chart with the release name my-geocore-release
in the geocore
namespace using the following command:
helm install -n my-geocore-release --create-namespace geocore centiloc/geocore -f myvalues.yaml
After a few minutes, you can use the following kubectl
command to check the status of the installation in the geocore
namespace by listing the pods:
kubectl get pods -n geocore
To uninstall the my-geocore-release
deployment, use the following commmand:
helm delete my-geocore-release -n geocore
You may wish to customize the Geocore installation to suit your specific system. We highly recommend a thorough review of the chart documentation to ensure that the deployment of the Geocore solution aligns with your specific requirements and available resources.
Depending on your deployment environment and resource constraints, you may need to deploy infrastructure components. Below, you’ll find a table of recommendations:
Parameter | Development setup | Single machine setup | Multi Nodes Cluster |
---|---|---|---|
global.logLevel |
DEBUG |
INFO |
INFO |
global.configuration.persistence |
❌ | ✅ | ✅ |
global.configuration.redundancy |
❌ | ❌ | ✅ |
global.configuration.streamTech |
REDIS |
REDIS if only 8GB RAM, KAFKA with replicaCount=1 if more |
KAFKA |
global.configuration.autoCreate |
✅ | ✅ | ✅ |
global.postgresql |
❌ | Use geocore postgresql with external backup | Use an externally managed DB |
global.kafka |
❌ | replicaCount=1 if possible |
✅ |
global.emqx |
✅ with replicaCount=1 |
✅ with replicaCount=1 |
✅ |
global.redis |
no replica | no replica | Add 1 replica at least |
global.linkerd.enabled |
❌ | ❌ | ✅ |
global.prometheus.enabled |
❌ | ❌ | ✅ |
global.sentry.enabled |
❌ | ❌ | ✅ |
For guidance on Development and Single Machine setups, please refer to their respective sections:
Geocore relies on multiple entry points for seamless operation :
- MQTT broker for both TCP and TLS connections.
- NTP server configured to listen UDP on port 123.
- API gRPC server.
- Centui web server.
To ensure proper functionality, both MQTT and NTP entry points must be reachable via the same address. This can be either a basic IP address or a Fully Qualified Domain Name (FQDN).
While gRPC relies on the HTTP2 protocol, most web browsers do not natively support it. As a result, web applications cannot directly communicate with gRPC APIs. Instead, web browsers send requests in gRPC-Web format, which uses HTTP1 and is natively supported by all browsers. These requests are then routed to a reverse proxy, which extracts and reformats the data before forwarding it to the appropriate service.
Hence, the use of Centui requires a mandatory reverse proxy capable of handling gRPC-Web requests.
When it comes to managing incoming traffic with an Ingress Controller, it’s crucial to ensure that your chosen Ingress controller supports Geocore’s specific protocols, including HTTP1.1, HTTP2, UDP, TCP, and the gRPC-Web format. You have the flexibility to select an Ingress controller that best suits your infrastructure. As a result, the Geocore chart does not include predefined Ingress rules.
If you have not yet installed an Ingress Controller in your infrastructure, we strongly recommend utilizing the Contour Ingress Controller for a smooth Geocore deployment. Detailed instructions for setting up Contour can be found in the Ingress With Contour section.