Uploaded image for project: 'Red Hat Workload Availability'
  1. Red Hat Workload Availability
  2. RHWA-404

Kubectl Plugin for Medik8s Operators (medik8s CLI)

XMLWordPrintable

    • Icon: Feature Feature
    • Resolution: Unresolved
    • Icon: Major Major
    • None
    • None
    • None
    • False
    • Hide

      None

      Show
      None
    • False

      Feature Overview

      Develop a new official kubectl plugin (Krew-indexed) that provides a guided, opinionated experience for discovering, installing, and configuring Medik8s self-node-remediation, fence-agents-remediation, node-healthcheck, and related operators.

      The plugin will follow the interactive and declarative style of tools like openshift-install and oc adm must-gather, offering customers an easy on-ramp to Medik8s capabilities without requiring deep knowledge of each individual operator’s CRDs and configuration options.

      Key capabilities:

      • Interactive wizard or declarative YAML-driven mode
      • Discovery of which Medik8s operators/remediation strategies are applicable to the current cluster environment
      • Automated installation/upgrade of selected Medik8s operators via OLM
      • Generation and application of pre-filled, best-practice configuration templates (CRs) with only the user-specific variables requested up-front
      • Validation of the final configuration before apply
      • Safe, controlled testing of the remediation flow created by the plugin.
      • Recommendations for the best-fitting remediation strategy based on detected infrastructure (bare-metal, cloud, fencing hardware, etc.)

      Goals

      • The plugin is published to Krew index as kubectl medik8s (or kubectl <?> if naming conflicts arise).
      • Running kubectl medik8s install without arguments starts an interactive wizard that:
        • Detects cluster type, node labels, available fencing agents, cloud provider, etc.
        • Recommends one or more suitable Medik8s operators/remediation paths.
        • Explains why each option is (or isn’t) recommended.
      • Supports non-interactive mode via a declarative YAML input file for CI/CD and gitops use cases.
      • Generates ready-to-apply manifests with sensible defaults; prompts only for required user inputs (e.g., APIVIP, fence-agent details, unsafe flags, excluded remediators, etc.).
      • Installs or upgrades the selected operators using OLM (supports both bundled catalog and external catalog sources).
      • Performs pre-flight checks and post-apply validation (e.g., operator pods running, webhooks registered, remediation CRs valid).
      • The plugin provides a dedicated command kubectl medik8s test remediation (or integrated as kubectl medik8s install --test) that allows safe, controlled testing of the remediation flow created by the plugin.
      • Provides a kubectl medik8s recommend command that outputs a report of current remediation coverage and gaps.
      • Includes comprehensive --help, examples, and built-in documentation.
      • Unit and e2e tests covering major cloud and bare-metal scenarios.
      • Documentation: README with quick-start, architecture diagram, and comparison to manual installation.

       

      Requirements (mandatory -_ Complete while in Refinement status):
      A list of specific needs, capabilities, or objectives that a Feature must deliver to satisfy the Feature. Some requirements will be flagged as MVP. If an MVP gets shifted, the Feature shifts. If a non MVP requirement slips, it does not shift the feature.

      Requirement Notes isMVP?
          Y
          Y
          Y
          Y
          ?
          N

       

      Documentation Considerations {}{}(Initial completion while in Refinement status):
      Provide information that needs to be considered and planned so that documentation will meet customer needs. If the feature extends existing functionality, provide a link to its current documentation..
      <your text here>

       

      Questions to Answer {}{}(Initial completion while in Refinement status):
      Include a list of refinement / architectural questions that may need to be answered before coding can begin.
      <your text here>

       

      Customer Considerations {}{}(Initial completion while in Refinement status):
      Provide any additional customer-specific considerations that must be made when designing and delivering the Feature.
      <your text here>

      Team Sign Off (Completion while in Planning status)

      • All required Epics (known at the time) are linked to the this Feature
      • All required Stories, Tasks (known at the time) for the most immediate Epics have been created and estimated
      • Add - Reviewers name, Team Name
      • Acceptance == Feature as “Ready” - well understood and scope is clear - Acceptance Criteria (scope) is elaborated, well defined, and understood
      • Note: Only set FixVersion/s: on a Feature if the delivery team agrees they have the capacity and have committed that capability for that milestone
      Reviewed By Team Name Accepted Notes
             
             
             
             

       

              Unassigned Unassigned
              ushkalim@redhat.com Ehud Shkalim
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated: