> ## Documentation Index
> Fetch the complete documentation index at: https://docs.raven.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Started

> Deploy Raven Sensor

## Welcome

This documentation will guide you through the process of deploying Raven, a powerful platform designed to drastically deprioritize vulnerabilities, stop application attacks early in the kill chain and prevent vulnerabilities in the first place with runtime patching.

## Setting Up

Welcome to the getting started guide for deploying Raven Sensor on your Kubernetes cluster.
Estimated installation time - 5 minutes.
Raven Sensor provides powerful monitoring and profiling capabilities for your Kubernetes nodes. In this guide, we'll walk you through the process of deploying Raven Sensor using a Helm chart.

Before you begin, ensure you have the following:

* A running Kubernetes cluster.
* Helm installed on your local machine.
* Access to your Kubernetes cluster with kubectl.

## Prerequesites and Requirements

In order to deploy Raven Sensor you need to make sure you are running a k8s cluster

1. **Environment** AWS EKS, GCP GKE, Azure AKS
2. **Required Skills:** Deploying helm charts to a k8s cluster.
3. **Required OS:** Linux
4. **Minimum supported Linux kernel versions:** 4.18 for amd64/x86\_64 and 5.5 for arm64/aarch64
5. **Supported Programming Languages:** Java (and any JVM based programming language), JavaScript (Node.js), Python, Go, Ruby, C++, C, Rust, PHP, Scala, Kotlin
6. **Ensure outbound communication to the following addresses**
   1. [cloud.raven.io](http://cloud.raven.io)
   2. [releases.cloud.raven.io](http://releases.cloud.raven.io)
   3. [operator-helm.cloud.raven.io](http://operator-helm.cloud.raven.io)
   4. [operator-backend.cloud.raven.io](http://operator-backend.cloud.raven.io)
   5. [upload.cloud.raven.io](http://upload.cloud.raven.io)

## Step 1: Add Raven Operator Helm Repository

First, add the Raven Profiler Helm repository to your Helm configuration.

```bash theme={null}
helm repo add raven-operator https://operator-helm.cloud.raven.io
helm repo update
```

## Step 2: Install Raven Operator

By default the sensor sends data to Raven AWS Tenant on us-east-1.
To install Raven Operator using the Helm chart, run the following command:

```bash theme={null}
 helm install raven-operator raven-operator/raven-operator -n raven-operator  --set "client.token=YOUR RAVEN TOKEN" --set "sensor.spec.clusterName=YOUR CLUSTER NAME"
```

This command deploys an operator that creates a DaemonSet, which runs the Raven Sensor on all nodes in your Kubernetes cluster.

Refer to the [Kubernetes Cluster name](https://docs.raven.io/sensor-setup/cluster-name) for setting Kubernetes Cluster Name instructions.

## Step 3: Verify Installation

To verify that the Raven Sensor is running, use the following command:

```bash theme={null}
kubectl get daemonset -n raven-operator
```

You should see an output indicating that the Raven Sensor DaemonSet is running on all nodes.

### Configuration Options

The Helm chart for Raven Sensor supports several configuration options. You can customize the deployment by creating a values.yaml file and passing it to the helm install command.

Example `values.yaml`:

```yaml theme={null}
# Raven Helm Chart will create a Kubernetes Secret for the Raven Token in your Kubernetes Cluster. If you want to deploy the Kubernetes Secret by yourself, please remove/comment out the next two lines "client.token", and use the Custom Kubernetes Secret specified in the sensor.spec.auth section
client:
  token: YOUR RAVEN TOKEN
  
# Raven Sensor daemonset configuration  
sensor:
  # The sensor.serviceAccount section is needed to automatically discover the Kubernetes cluster name. You can optionally use the sensor.spec.clusterName section and manually enter the Kubernetes cluster name without needing to provide a service account to Raven.
  serviceAccount:
    annotations:
      eks.amazonaws.com/role-arn: arn:aws:iam::XXXXXXXXXXXX:role/raven-sensor
  spec:
    name: "raven-sensor"
    image: "726055948281.dkr.ecr.us-east-1.amazonaws.com/raven-sensor:latest"
    clusterName: YOUR CLUSTER NAME

    # Optionally specify the Kubernetes Secret which contains the Raven Token. Use this if you don't want Raven Helm Chart to create a Kubernetes Secret. If you want to deploy the Kubernetes Secret by yourself, use the sensor.spec.auth section as follows and remove/comment out the "client.token" section
    # auth:
    #   clientTokenSecret:
    #     name: "raven-sensor"
    #     key: "raven-client-token"

    # Optionally specify resources limits and requests for sensor daemonset
    # resources:
    #   limits:
    #     memory: 
    #   requests:
    #     memory: 

    # Optionally specify tolerations for sensor daemonset
    # tolerations:
    #   - key: ""
    #     operator: ""
    #     value: ""
    #     effect: ""

    # Optionally specify node selector for sensor daemonset
    # nodeSelector:
    #   kubernetes.io/os: "linux"

# Raven Operator configuration
  controllerManager:
    manager:
      # Optionally specify if you want to choose the europe site
      # apiAddr: "operator-backend.eu.cloud.raven.io"
      image:
        repository: releases.cloud.raven.io/raven-public/raven-operator
        tag: latest
      resources:
        limits:
          cpu: 500m
          memory: 128Mi
        requests:
          cpu: 10m        
          memory: 64Mi
```

<Note>
  On Azure AKS, the Kubernetes Cluster Name Automatic Detection feature is currently not supported. Please specify the cluster name manually via the sensor.spec.clusterName section in the values.yaml
</Note>

**Install Raven Sensor with custom values:**

```sh theme={null}
helm install -f values.yaml my-raven-operator raven-operator/raven-operator
```

## Step 4: Accessing Raven Sensor

Once the Raven Sensor is deployed, it will automatically start collecting data from your Kubernetes nodes. You can access the collected data through the cloud.raven.io dashboard.
