Rook configuration reference for Lokomotive

Introduction

Rook is an open-source cloud native storage orchestrator for Kubernetes, providing the platform, framework, and support for a diverse set of storage solutions to natively integrate with cloud-native environments.

This component installs the Rook operator.

Prerequisites

  • A Lokomotive cluster accessible via kubectl.

Configuration

Rook component configuration example:

component "rook" {
  # Optional arguments
  namespace = "rook-test"

  node_selector = {
    "storage.lokomotive.io" = "ceph"
  }

  toleration {
    key      = "storage.lokomotive.io"
    operator = "Equal"
    value    = "rook-ceph"
    effect   = "NoSchedule"
  }

  agent_toleration_key    = "storage.lokomotive.io"
  agent_toleration_effect = "NoSchedule"

  discover_toleration_key    = "storage.lokomotive.io"
  discover_toleration_effect = "NoSchedule"

  enable_monitoring = true
}

Attribute reference

Table of all the arguments accepted by the component.

Argument Description Default Type Required
namespace Namespace to deploy the rook operator into. “rook” string false
node_selector A map with specific labels to run Rook pods selectively on a group of nodes. - map(string) false
toleration Tolerations that the operator’s pods will tolerate. - list(object({key = string, effect = string, operator = string, value = string, toleration_seconds = string })) false
agent_toleration_key Toleration key for the rook agent pods. - string false
agent_toleration_effect Toleration effect for the rook agent pods. Needs to be specified if agent_toleration_key is set. - string false
discover_toleration_key Toleration key for the rook discover pods. - string false
discover_toleration_effect Toleration effect for the rook discover pods. Needs to be specified if discover_toleration_key is set. - string false
enable_monitoring Enable Monitoring for the Rook sub-systems. Make sure that the Prometheus Operator is installed. false bool false
csi_plugin_node_selector A map with specific labels to install Rook CSI plugins on a group of nodes. - map(string) false
csi_plugin_toleration Tolerations that the Rook CSI plugin installation pods will tolerate. - list(object({key = string, effect = string, operator = string, value = string, toleration_seconds = string })) false

Applying

To apply the Rook component:

lokoctl component apply rook

Deleting

To destroy the component:

lokoctl component delete rook --delete-namespace