Application Installation Guide
This document summarizes the requirements for installing the application using Helm chart and basic configurations only. Installation details for dependencies such as databases and MinIO are out of scope; only how the application will communicate with these services is described.
Prerequisites
Application image and Helm chart are on the private registry: https://registry.cognipeer.com that's why you have to adjust your egress firewall rules to access there.
- Kubernetes cluster access: The cluster should be accessible by the client within the proper permissions to install the helm packages.
- MongoDB: Mongodb database instance should be accessible by the cognipeer API services.
- Redis: Redis instance should be accessible by the cognipeer API services.
- Vector DB: Vector database instance should be accessible by the cognipeer API services.
- MinIO/S3: Minio instance should be accessible by the cognipeer API services.
Note: These endpoints can be Kubernetes internal Service DNS (like mongodb.app.svc.cluster.local) or external VM/IP.
If the existing infrastructure does not have the necessary CSI driver definitions and controllers for running stateful applications in the Kubernetes environment, it is recommended to run critical dependencies such as databases in virtual servers rather than inside the cluster.
Installation
Docker
To install on Docker, after logging into the relevant cognipeer registry address, the image should be downloaded and then the shared docker-compose.yaml file should be run as follows:
docker compose up -f docker-compose.yaml -dKubernetes
Since the application currently supports Kubernetes environment, it can be installed in the Kubernetes environment with the helm chart developed by the Cognipeer team. For installation, first add your username and password provided to you as follows to access the cognipeer docker registry.
The current application is running on Kubernetes v1.33.2 version in the cloud environment and is continuously updated according to current Kubernetes versions. Kubernetes clusters to be installed are expected to follow this version tracking as well.
kubectl create secret docker-registry regcred \
--docker-server=https://registry.cognipeer.com \
--docker-username=<USERNAME> \
--docker-password=<PASSWORD>Before installing the Kubernetes environment, the relevant helm repository must be added.
helm repo add cognipeer https://registry.cognipeer.com/cognipeer/cognipeer-api
helm repo update
helm upgrade --install cognipeer-api cognipeer/cognipeer-api -n cognipeer -f values.yamlThe relevant cognipeer helm chart can be installed with the following command.
helm upgrade --install cognipeer-api \
oci://registry.cognipeer.com/cognipeer/cognipeer-api \
-n cognipeer-api -f values.yamlFor the interface application, it is installed as follows:
helm upgrade --install cognipeer-web \
oci://registry.cognipeer.com/cognipeer/cognipeer-web \
-n cognipeer-api -f values.yamlApplication Access Methods (Summary)
Kubernetes
The helm charts of cognipeer-web, which is the interface application, and cognipeer-api application required for API access can be accessed in the Kubernetes environment through two different methods. These methods are as follows;
- NodePort
- Ingress
NodePort provides an accessible structure for the relevant service and assigns a port number between 30000-32767 to the service. You can access your service through the assigned nodeport number and meet requirements such as traffic routing and TLS termination with the load balancer in the existing on-premise network.
Please check the NodePort based network topology details on the sketch at below.

When you provide accessibility to application services through Ingress, the ingress controller class installed on the Kubernetes environment must be specified through the following value on the helm chart and necessary DNS redirections must be made.
Please check the Ingress based network topology details on the sketch at below.

In Figure 1.2, the ingress network topology is defined. If you want to manage this network topology and use customized configuration data, the ingress section in the helm chart should be examined.
For the necessary annotation definitions on the ingress controller side, the definitions in the helm chart can be updated to make it compatible with the environment.
ingress:
annotations:
nginx.org/proxy-connect-timeout: "30s"
nginx.org/proxy-read-timeout: "20s"
nginx.org/client-max-body-size: "4m"Verify your installation
To test your installation setup:
- Check your domain addresses on both of the application that you have routed to origin host (Kubernetes or docker instances)

