{"id":26454556,"url":"https://github.com/arkime/helm","last_synced_at":"2025-06-13T08:37:18.907Z","repository":{"id":277180494,"uuid":"928371009","full_name":"arkime/helm","owner":"arkime","description":"Arkime Helm Chart","archived":false,"fork":false,"pushed_at":"2025-02-13T21:37:26.000Z","size":17,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-04T15:04:26.074Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Mustache","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/arkime.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-02-06T14:26:15.000Z","updated_at":"2025-03-05T19:40:14.000Z","dependencies_parsed_at":"2025-02-12T15:49:57.158Z","dependency_job_id":null,"html_url":"https://github.com/arkime/helm","commit_stats":null,"previous_names":["arkime/helm"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/arkime/helm","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arkime%2Fhelm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arkime%2Fhelm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arkime%2Fhelm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arkime%2Fhelm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/arkime","download_url":"https://codeload.github.com/arkime/helm/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arkime%2Fhelm/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259610830,"owners_count":22884329,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-03-18T19:59:24.953Z","updated_at":"2025-06-13T08:37:18.870Z","avatar_url":"https://github.com/arkime.png","language":"Mustache","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Arkime Helm Chart\n\n## Prereq: K8s Cluster (Kind):\n\nYou'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). \n\n### 1. Install Docker\n\nIf you are running Mac or Windows, install Docker Desktop [here](https://docs.docker.com/desktop/).\nIf you are running Linux, install Docker through your normal package manager. [Docs](https://docs.docker.com/engine/install/)\n\n### 1a: Install KinD\n\n[Homebrew](https://brew.sh/) is the simplest installation method.\n\n```\nbrew install kind\n```\n\nIf you do not want to use Homebrew, follow the [KinD Quick Start Docs](https://kind.sigs.k8s.io/docs/user/quick-start/#installation).\n\n### 1b: Start a KinD Cluster\n\nNow start a 3 node KinD cluster locally using the provided configuration file in this repo:\n\n```\nkind create cluster --config arkime-kind.yaml\n```\n\n## Prereq: OpenSearch / ElasticSearch\n\nFirst, you'll need an OpenSearch or ElasticSearch cluster for Arkime to store data in. \n\nWe'll setup a simple OpenSearch cluster in Kubernetes that will work well for Development or small deployments. \n\n### 2. Install the OpenSearch K8s Operator\n\nYou 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. \n\n#### 2a. Install the OpenSearch K8s Operator Helm Chart\n\n```\nhelm repo add opensearch-operator https://opensearch-project.github.io/opensearch-k8s-operator/\nhelm upgrade --install opensearch-operator opensearch-operator/opensearch-operator --wait --create-namespace -n opensearch-dev\n```\n\n####  2b. Create an OpenSearchCluster\n\n** NOTE: if you are running on Apple Silicon, you will need to use version \u003c= 2.11.1 **\n\n```\nkubectl create namespace arkime\nkubectl apply -f - \u003c\u003cEOF\napiVersion: opensearch.opster.io/v1\nkind: OpenSearchCluster\nmetadata:\n  name: arkime-opensearch\n  namespace: arkime\nspec:\n  security:\n    config:\n    tls:\n       http:\n         generate: true \n       transport:\n         generate: true\n         perNode: true\n  general:\n    httpPort: 9200\n    serviceName: arkime-opensearch\n    version: 2.11.1\n    pluginsList: [\"repository-s3\"]\n    drainDataNodes: true\n  dashboards:\n    enable: false\n    replicas: 0\n    version: 2.11.1\n  nodePools:\n    - component: data\n      replicas: 3\n      resources:\n         requests:\n            memory: \"512Mi\"\n            cpu: \"500m\"\n      roles:\n        - \"data\"\n        - \"cluster_manager\"\n      persistence:\n         emptyDir: {}\nEOF\n```\n\nIt can take ~5 minutes for the cluster to come online.\n\n### 3. Install the Arkime Helm Chart\n\n#### 3a: Configure Credentials to ElasticSearch / OpenSearch\n\nIf you are using the development setup, you can run the following to grab the credentials from the Kubernetes Secrets created by the OpenSearch Operator:\n\n```\nes_user=$(kubectl get secret arkime-opensearch-admin-password -n arkime -o jsonpath=\"{.data.username}\" | base64 --decode)\nes_pass=$(kubectl get secret arkime-opensearch-admin-password -n arkime -o jsonpath=\"{.data.password}\" | base64 --decode)\n\nkubectl create secret generic arkime-elasticsearch-basic-auth -n arkime \\\n  --from-literal=elasticsearchBasicAuth=${es_user}:${es_pass}\n```\n\nIf you are using some other installation of ElasticSearch / OpenSearch, place basic auth credentials in a Kubernetes secret like below:\n\n```\nkubectl create secret generic arkime-elasticsearch-basic-auth -n arkime \\\n  --from-literal=elasticsearchBasicAuth=${es_user}:${es_pass}\n```\n\n** NOTE: it must be under `data.elasticsearchBasicAuth` and in the form `\u003cusername\u003e:\u003cpassword\u003e` **\n\n\n#### 3b: Configure Arkime\n\nIn values.yaml:\n* Verify the environment variable [ARKIME__elasticsearch](https://arkime.com/settings#elasticsearch) is set to the correct endpoint for your OpenSearch / ElasticSearch cluster.\n* Set the [passwordSecret](https://arkime.com/settings#passwordSecret)\n```\nkubectl create secret generic arkime-password-secret -n arkime --from-literal=passwordSecret=THE_PASSWORD\n```\n* Optionally set the [serverSecret](https://arkime.com/settings#serverSecret)\n```\nkubectl create secret generic arkime-server-secret -n arkime --from-literal=serverSecret=THE_PASSWORD\n```\n\n\n#### 3c: Install Arkime\n\n```\nhelm upgrade --install arkime . --create-namespace -n arkime --wait\n```\n\n### 4: Create an Arkime User\n\nCreate an Arkime user:\n\n```\nkubectl exec -it -n arkime deployment/arkime-central-viewer -- /opt/arkime/bin/arkime_add_user.sh --insecure admin \"Admin User\" changeme --admin\n```\n\n### 5: Access Arkime Central Viewer\n\n#### 5a: Port-Forward directly to central-viewer\n\n```\nkubectl port-forward -n arkime svc/arkime-central-viewer 8005:8005\n```\n\n#### 5b: Install an Ingress Controller\n\nWe'll install the nginx-ingress controller, but you can use any ingress controller. \n\n```\nhelm upgrade --install ingress-nginx ingress-nginx \\\n  --repo https://kubernetes.github.io/ingress-nginx \\\n  --namespace ingress-nginx --create-namespace\n```\n\n#### 5c: Access Arkime Central-Viewer through the Ingress\n\nIf you are running locally in a KinD cluster, you can port-forward from the ingress controller:\n\n```\nkubectl port-forward --namespace=ingress-nginx service/ingress-nginx-controller 8443:443\n```\n\nNow you can access it locally:\n\n```\ncurl -k --digest -u admin:changeme https://localhost:8443\n```\n\nIf you have a real cluster deployment, grab the EXTERNAL-IP from the ingress service:\n\n```\nkubectl get service ingress-nginx-controller --namespace=ingress-nginx\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farkime%2Fhelm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farkime%2Fhelm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farkime%2Fhelm/lists"}