Skip to content

[EPIC cloudctl] - Migrate internal tooling from u8s to cloudctl #70

Description

@onuryilmaz

Description

u8s is an internal SAP CLI that bundles kubectl, helm, kubelogin, and other utilities with version-pinned downloads, OIDC logon, context management, and fleet-wide operations. As cloudctl becomes the public OSS successor, the relevant functionality should be migrated so external users get the same experience without needing the internal tool.

Objectives

  • Port the tool download infrastructure (kubectl, helm, kubelogin) with SHA-256 verification and XDG cache management
  • Add kubectl and helm subcommands that auto-inject context/namespace/kubeconfig
  • Add OIDC logon subcommand backed by version-pinned kubelogin
  • Add foreach for fleet-wide parallel kubectl execution with context selectors
  • Add doctor, set/env, and prompt for local state management and shell integration

Acceptance Criteria

  • Tool download infrastructure ported with checksum verification and progress output
  • cloudctl kubectl downloads version-matched kubectl and execs with injected flags
  • cloudctl helm downloads pinned helm and execs with injected flags
  • cloudctl logon detects auth type and invokes kubelogin appropriately
  • cloudctl foreach runs kubectl in parallel across selected contexts
  • cloudctl doctor resets local cache and config state
  • cloudctl set / cloudctl env persist and print session config
  • cloudctl prompt prints colored context/namespace for shell prompt integration

Dependencies

  • Existing cluster-version command (used by kubectl subcommand to select correct binary version)
  • Existing sync command (invoked before kubectl/helm execution)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    backlogReady for sprint planning; triggers project addition

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions