⚠ This page is served via a proxy. Original site: https://github.com
This service does not collect credentials or authentication data.
Skip to content

Command Line Interface to work with Deckhouse Kubernetes Platform

License

Notifications You must be signed in to change notification settings

deckhouse/deckhouse-cli

Repository files navigation

🚀 D8 - Deckhouse CLI

Command-line client for Deckhouse Kubernetes Platform

GitHub Release FeaturesInstallationQuick StartDocumentationContributing


📖 Overview

D8 (Deckhouse CLI) is a powerful command-line client for managing and interacting with the Deckhouse Kubernetes Platform. It provides essential tools for cluster operations, module management, backup/restore, and system administration.

Why D8?

  • Cluster Management: Comprehensive cluster status and control
  • 🚀 Module Operations: Mirror, backup, and manage Deckhouse modules
  • 🔧 System Tools: Debug info collection and system diagnostics
  • 🎯 CI/CD Ready: Perfect for automated deployment pipelines
  • 📦 Multi-platform: Native binaries for Linux, macOS, and Windows

🎯 Features

🔍 Cluster Operations

D8 provides comprehensive cluster management capabilities:

Command Purpose Key Features
backup Backup operations ETCD snapshots, configuration backups, data export
mirror Module mirroring Registry operations, image synchronization, air-gapped deployments
system System diagnostics Debug info collection, logs analysis, troubleshooting

🚀 Module Management

Advanced tools for Deckhouse module lifecycle management:

  • Mirror Operations: Copy modules to local registries or air-gapped environments
  • Backup/Restore: Full cluster and module backup capabilities
  • Data Export: Extract and export cluster data for migration or analysis
  • Virtualization: Manage virtual machines in Kubernetes clusters

⚙️ System Administration

Essential tools for system administrators:

  • Debug Collection: Automated system information gathering
  • Log Analysis: Centralized logging and troubleshooting
  • Platform Updates: Safe update management for Deckhouse installations
  • Security Tools: Stronghold integration for secure operations

📦 Installation

Method 1: Install Script (Recommended)

Quick one-line installation for Linux and macOS:

sh -c "$(curl -fsSL https://raw.githubusercontent.com/deckhouse/deckhouse-cli/main/tools/install.sh)"
Alternative installation commands

Using wget:

sh -c "$(wget -qO- https://raw.githubusercontent.com/deckhouse/deckhouse-cli/main/tools/install.sh)"

Install specific version:

sh -c "$(curl -fsSL https://raw.githubusercontent.com/deckhouse/deckhouse-cli/main/tools/install.sh)" "" --version v1.0.0

Install to custom directory:

sh -c "$(curl -fsSL https://raw.githubusercontent.com/deckhouse/deckhouse-cli/main/tools/install.sh)" "" --install-dir ~/bin

See installation guide for more options.

Method 2: Download Binary

Download the latest release for your platform from the releases page.

Supported Platforms:

  • Linux (amd64, arm64)
  • macOS (amd64, arm64)
  • Windows (amd64)

Method 3: Using trdl (Recommended for Updates)

trdl is a tool release delivery system that provides automatic updates and channel management:

URL=https://deckhouse.ru/downloads/deckhouse-cli-trdl
ROOT_VERSION=1
ROOT_SHA512=343bd5f0d8811254e5f0b6fe292372a7b7eda08d276ff255229200f84e58a8151ab2729df3515cb11372dc3899c70df172a4e54c8a596a73d67ae790466a0491
REPO=d8

trdl add $REPO $URL $ROOT_VERSION $ROOT_SHA512

Validate that the d8 binary is installed:

. $(trdl use d8 0 stable) && d8 --version

If you don't want to call . $(trdl use d8 0 stable) every time you need to use d8, consider adding alias d8='trdl exec d8 0 stable -- "$@"' to your shell RC file.

Method 4: Go Install

If you have Go installed:

go install github.com/deckhouse/deckhouse-cli@main

Note: Ensure ~/go/bin is in your PATH after installation.

Verify Installation

d8 --version

🤝 Contributing

We welcome contributions! Here's how you can help:

  1. Report Bugs: Open an issue describing the problem
  2. Suggest Features: Share your ideas for improvements
  3. Submit PRs: Fix bugs or add features
  4. Improve Docs: Help make documentation better

Building from Source

You need to have access to private repositories for pulling dependencies.

Install Task with any suitable method:

go install github.com/go-task/task/v3/cmd/task@latest

To correctly access private repository run:

export PRIVATE_REPO=private.repo.com # replace with correct domain
git config --global url."ssh://git@${PRIVATE_REPO}/".insteadOf "https://flant.internal/"
export GOPRIVATE="flant.internal"
go mod tidy

To build for all platforms run: task build:dist:all

For any specific platform: task build:dist:linux:amd64 task build:dist:darwin:amd64 task build:dist:darwin:arm64 task build:dist:windows:amd64


🔗 Links


🌟 Support

If you find D8 helpful, please consider:

  • ⭐ Starring the repository
  • 🐛 Reporting bugs
  • 💡 Suggesting features
  • 📖 Contributing to documentation
  • 🔀 Submitting pull requests

About

Command Line Interface to work with Deckhouse Kubernetes Platform

Resources

License

Stars

Watchers

Forks

Contributors 39