KubeSnapIt is a PowerShell-based tool for Kubernetes that simplifies the management of Kubernetes resources by enabling users to take snapshots, compare configurations, and restore states efficiently. It is designed to help Kubernetes administrators and developers manage their cluster configurations effectively.
For complete installation, usage, and advanced configuration instructions, please visit the KubeSnapIt Documentation Site.
- Resource Snapshotting: Capture the current state of Kubernetes objects (Deployments, Services, ConfigMaps, etc.) in YAML format.
- Resource Diffing: Compare snapshots against live cluster states or between two local snapshots to identify changes.
- Resource Restoration: Restore Kubernetes configurations from snapshots quickly and easily.
- Automated Scheduled Snapshots: Schedule periodic snapshots for continuous configuration tracking.
- Snapshot by Labels: Specify labels to filter which Kubernetes objects are included in snapshots.
- Dry Run Mode: Simulate snapshotting or restoration processes without making any actual changes.
- Verbose Logging: Get detailed logs of all operations using the
-Verbose
flag.
To install KubeSnapIt via PowerShell Gallery:
Install-Module -Name KubeSnapIt -Repository PSGallery -Scope CurrentUser
To install KubeSnapIt as a kubectl plugin using Krew:
# Fetch the latest release tag using GitHub's API
LATEST_VERSION=$(curl -s https://api.github.com/repos/KubeDeckio/KubeSnapIt/releases/latest | grep '"tag_name"' | sed -E 's/.*"([^"]+)".*/\1/')
# Download the KubeSnapIt.yaml file from the latest release
curl -L -H "Cache-Control: no-cache" -O /~https://github.com/KubeDeckio/KubeSnapIt/releases/download/$LATEST_VERSION/KubeSnapIt.yaml
# Install the plugin using the downloaded KubeSnapIt.yaml file
kubectl krew install --manifest="./KubeSnapIt.yaml"
KubeSnapIt installed via Krew is supported on Linux and macOS. It does not support Windows at this time.
For additional instructions, refer to the KubeSnapIt Documentation Site.
All notable changes to this project are documented in the CHANGELOG.
This project is licensed under the MIT License. See the LICENSE file for more details.