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