Skip to main content

Run the Satellite container

Use Ingestion Satellites to integrate with on-premise tools and set up Custom integrations.

info

The recommended memory for one container is 4GB to 6GB.

  1. Requirements:

    • A running Kubernetes cluster.
    • kubectl command-line tool configured to communicate with your cluster.
    • Access to the levelops/ingestion-satellite Docker image.
  2. Use the following template to prepare the Kubernetes deployment.

    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
    name: levelops-satellite
    subjects:
    - kind: ServiceAccount
    name: levelops-satellite
    namespace: default
    apiGroup: ""
    roleRef:
    kind: ClusterRole
    name: edit
    apiGroup: rbac.authorization.k8s.io
    ---
    apiVersion: v1
    kind: ServiceAccount
    metadata:
    name: levelops-satellite
    namespace: default ## It is recommended to change this.
    labels:
    app: levelops
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
    name: levelops-satellite
    namespace: default ## It is recommended to change this.
    spec:
    selector:
    matchLabels:
    app: levelops-satellite
    template:
    metadata:
    labels:
    app: levelops-satellite
    spec:
    serviceAccountName: levelops-satellite
    containers:
    - name: levelops-satellite
    image: levelops/ingestion-satellite
    imagePullPolicy: Always
    resources:
    limits:
    memory: "5Gi"
    cpu: "1000m"
    volumeMounts:
    - name: config-volume
    mountPath: /levelops/config.yml
    subPath: config.yml
    volumes:
    - name: config-volume
    configMap:
    name: levelops-satellite-config
    ---
    apiVersion: v1
    kind: ConfigMap
    metadata:
    name: levelops-satellite-config
    namespace: default ## It is recommended to change this.
    data: ## This section comes from satellite.yml. If you copy and paste this section, you must fix the indentation.
    config.yml: |
    satellite:
    tenant: <TENANT>
    api_key: <API_KEY>
    url: <URL>
    integrations:
    - id: '<ID>'
  3. Apply the deployment to your cluster.

    kubectl apply --namespace=your-name-space -f satellite.yml
  4. Make sure the satellite is running correctly. You should see heartbeats being sent.

    kubectl get pods --namespace=your-name-space ## Use this to find the pod.
    kubectl logs <satellite pod> -f --namespace=your-name-space
  5. Because the template configured the deployment with imagePullPolicy: Always, you get the latest updates when the pod is restarted.

    kubectl rollout restart deployment levelops-satellite

    To force a pod restart and get the latest updates, use the following command:

    kubectl rollout restart deployment levelops-satellite

    This ensures that your Satellite container stays up to date with the latest changes. Make sure to monitor the logs regularly to ensure the proper functioning of the container.