https://github.com/arkime/helm
Arkime Helm Chart
https://github.com/arkime/helm
Last synced: about 1 year ago
JSON representation
Arkime Helm Chart
- Host: GitHub
- URL: https://github.com/arkime/helm
- Owner: arkime
- License: apache-2.0
- Created: 2025-02-06T14:26:15.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-02-13T21:37:26.000Z (over 1 year ago)
- Last Synced: 2025-04-04T15:04:26.074Z (over 1 year ago)
- Language: Mustache
- Size: 16.6 KB
- Stars: 4
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Arkime Helm Chart
## Prereq: K8s Cluster (Kind):
You'll need a Kubernetes cluster. If you are developing or just want to try out Arkime, follow the steps here to standup a local Kubernetes cluster with KinD (Kubernetes in Docker).
### 1. Install Docker
If you are running Mac or Windows, install Docker Desktop [here](https://docs.docker.com/desktop/).
If you are running Linux, install Docker through your normal package manager. [Docs](https://docs.docker.com/engine/install/)
### 1a: Install KinD
[Homebrew](https://brew.sh/) is the simplest installation method.
```
brew install kind
```
If you do not want to use Homebrew, follow the [KinD Quick Start Docs](https://kind.sigs.k8s.io/docs/user/quick-start/#installation).
### 1b: Start a KinD Cluster
Now start a 3 node KinD cluster locally using the provided configuration file in this repo:
```
kind create cluster --config arkime-kind.yaml
```
## Prereq: OpenSearch / ElasticSearch
First, you'll need an OpenSearch or ElasticSearch cluster for Arkime to store data in.
We'll setup a simple OpenSearch cluster in Kubernetes that will work well for Development or small deployments.
### 2. Install the OpenSearch K8s Operator
You can follow the instructions [here](https://opensearch.org/docs/latest/tools/k8s-operator) to install the OpenSearch K8s operator. OR use the steps below for a minimal install for dev clusters.
#### 2a. Install the OpenSearch K8s Operator Helm Chart
```
helm repo add opensearch-operator https://opensearch-project.github.io/opensearch-k8s-operator/
helm upgrade --install opensearch-operator opensearch-operator/opensearch-operator --wait --create-namespace -n opensearch-dev
```
#### 2b. Create an OpenSearchCluster
** NOTE: if you are running on Apple Silicon, you will need to use version <= 2.11.1 **
```
kubectl create namespace arkime
kubectl apply -f - <:` **
#### 3b: Configure Arkime
In values.yaml:
* Verify the environment variable [ARKIME__elasticsearch](https://arkime.com/settings#elasticsearch) is set to the correct endpoint for your OpenSearch / ElasticSearch cluster.
* Set the [passwordSecret](https://arkime.com/settings#passwordSecret)
```
kubectl create secret generic arkime-password-secret -n arkime --from-literal=passwordSecret=THE_PASSWORD
```
* Optionally set the [serverSecret](https://arkime.com/settings#serverSecret)
```
kubectl create secret generic arkime-server-secret -n arkime --from-literal=serverSecret=THE_PASSWORD
```
#### 3c: Install Arkime
```
helm upgrade --install arkime . --create-namespace -n arkime --wait
```
### 4: Create an Arkime User
Create an Arkime user:
```
kubectl exec -it -n arkime deployment/arkime-central-viewer -- /opt/arkime/bin/arkime_add_user.sh --insecure admin "Admin User" changeme --admin
```
### 5: Access Arkime Central Viewer
#### 5a: Port-Forward directly to central-viewer
```
kubectl port-forward -n arkime svc/arkime-central-viewer 8005:8005
```
#### 5b: Install an Ingress Controller
We'll install the nginx-ingress controller, but you can use any ingress controller.
```
helm upgrade --install ingress-nginx ingress-nginx \
--repo https://kubernetes.github.io/ingress-nginx \
--namespace ingress-nginx --create-namespace
```
#### 5c: Access Arkime Central-Viewer through the Ingress
If you are running locally in a KinD cluster, you can port-forward from the ingress controller:
```
kubectl port-forward --namespace=ingress-nginx service/ingress-nginx-controller 8443:443
```
Now you can access it locally:
```
curl -k --digest -u admin:changeme https://localhost:8443
```
If you have a real cluster deployment, grab the EXTERNAL-IP from the ingress service:
```
kubectl get service ingress-nginx-controller --namespace=ingress-nginx
```