🛹 A version management tool for kusion

Introduction

GitHub release Go Report Card license Go Reference Coverage Status

💡 kusionup is a version management tool for kusion. It is heavily inspired by goup.

📜️ Language

English | 简体中文

Functional Overview

  • support one-click installation kusionup through Homebrew, go install, etc.
  • kusionup switches to selected kusion version.
  • kusionup default switches to selected kusion version.
  • kusionup init initialize the kusionup environment file.
  • kusionup install downloads specified version of kusion to $HOME/.kusionup/$SPECIFY_VERSION/ and symlinks it to $HOME/.kusionup/current.
  • kusionup uninstall uninstalls the specified kusion version.
  • kusionup reinstall reinstalls the specified kusion version.
  • kusionup ls-ver lists all available kusion versions from all Release Source.
  • kusionup show shows the activated kusion version located at $HOME/.kusionup/current.
  • kusionup version shows the current kusionup version.

🛠️ Installation

Binary (Cross-platform: windows, linux, mac ...)

To get the binary just download the latest release for your OS/Arch from the release page and put the binary somewhere convenient.

Homebrew

The KusionStack/tap has macOS and GNU/Linux pre-built binaries available:

brew install KusionStack/tap/kusionup

Build from Source

Starting with Go 1.17, you can install kusionup from source using go install:

go install github.com/KusionStack/kusionup/cmd@latest

Docker

Docker users can use the following commands to pull the latest image of the kusionup:

docker pull KusionStack/kusionup

Usage

$ kusionup install
Downloaded   0.0% (     2426 / 139988826 bytes) ...
Downloaded  11.4% ( 16003466 / 139988826 bytes) ...
Downloaded  21.0% ( 29433014 / 139988826 bytes) ...
Downloaded  32.2% ( 45077686 / 139988826 bytes) ...
Downloaded  41.9% ( 58642898 / 139988826 bytes) ...
Downloaded  51.2% ( 71647010 / 139988826 bytes) ...
Downloaded  61.6% ( 86258486 / 139988826 bytes) ...
Downloaded  71.2% ( 99667706 / 139988826 bytes) ...
Downloaded  81.5% (114078806 / 139988826 bytes) ...
Downloaded  91.5% (128134166 / 139988826 bytes) ...
Downloaded 100.0% (139988826 / 139988826 bytes)
INFO[0053] Unpacking ~/.kusionup/kusion-open@latest/kusion-darwin.tgz ... 
INFO[0059] Success: latest downloaded in ~/.kusionup/kusion-open@latest 
INFO[0059] Default Kusion is set to 'open@latest'

$ kusionup show
|    VERSION    | ACTIVE |
|---------------|--------|
|     latest    |   *    |

$ kusion version

For details, please refer to the documentation

🙏 Thanks

  • goup - Elegant Go installer
Comments
  • refactor: adjust ./cmd/main.go to ./main.go

    refactor: adjust ./cmd/main.go to ./main.go

    1. Does this PR affect any open issues?(Y/N) and add issue references (e.g. "fix #123", "re #123".):

    • [x] N
    • [ ] Y

    2. What is the scope of this PR (e.g. component or file name):

    3. Provide a description of the PR(e.g. more details, effects, motivations or doc link):

    • [ ] Affects user behaviors
    • [ ] Contains syntax changes
    • [ ] Contains variable changes
    • [ ] Contains experimental features
    • [ ] Performance regression: Consumes more CPU
    • [ ] Performance regression: Consumes more Memory
    • [x] Other

    4. Are there any breaking changes?(Y/N) and describe the breaking changes(e.g. more details, motivations or doc link):

    • [x] N
    • [ ] Y

    5. Are there test cases for these changes?(Y/N) select and add more details, references or doc links:

    • [ ] Unit test
    • [ ] Integration test
    • [ ] Benchmark (add benchmark stats below)
    • [ ] Manual test (add detailed scripts or steps below)
    • [x] Other

    6. Release note

    Please refer to Release Notes Language Style Guide to write a quality release note.

    None
    
  • Add script install

    Add script install

    1. Does this PR affect any open issues?(Y/N) and add issue references (e.g. "fix #123", "re #123".):

    • [x] N
    • [ ] Y

    2. What is the scope of this PR (e.g. component or file name):

    3. Provide a description of the PR(e.g. more details, effects, motivations or doc link):

    • [ ] Affects user behaviors
    • [ ] Contains syntax changes
    • [ ] Contains variable changes
    • [ ] Contains experimental features
    • [ ] Performance regression: Consumes more CPU
    • [ ] Performance regression: Consumes more Memory
    • [x] Other

    4. Are there any breaking changes?(Y/N) and describe the breaking changes(e.g. more details, motivations or doc link):

    • [x] N
    • [ ] Y

    5. Are there test cases for these changes?(Y/N) select and add more details, references or doc links:

    • [ ] Unit test
    • [ ] Integration test
    • [ ] Benchmark (add benchmark stats below)
    • [ ] Manual test (add detailed scripts or steps below)
    • [x] Other

    6. Release note

    Please refer to Release Notes Language Style Guide to write a quality release note.

    None
    
  • fix: npe problem in cdn source and refine docs

    fix: npe problem in cdn source and refine docs

    1. Does this PR affect any open issues?(Y/N) and add issue references (e.g. "fix #123", "re #123".):

    • [x] N
    • [ ] Y

    2. What is the scope of this PR (e.g. component or file name):

    kusionup install

    3. Provide a description of the PR(e.g. more details, effects, motivations or doc link):

    • [ ] Affects user behaviors
    • [ ] Contains syntax changes
    • [ ] Contains variable changes
    • [ ] Contains experimental features
    • [ ] Performance regression: Consumes more CPU
    • [ ] Performance regression: Consumes more Memory
    • [x] Other

    4. Are there any breaking changes?(Y/N) and describe the breaking changes(e.g. more details, motivations or doc link):

    • [x] N
    • [ ] Y

    5. Are there test cases for these changes?(Y/N) select and add more details, references or doc links:

    • [ ] Unit test
    • [ ] Integration test
    • [ ] Benchmark (add benchmark stats below)
    • [ ] Manual test (add detailed scripts or steps below)
    • [x] Other

    6. Release note

    Please refer to Release Notes Language Style Guide to write a quality release note.

    None
    
  • feat: add default environment KCLVM_CLANG=/usr/bin/clang when kusionu…

    feat: add default environment KCLVM_CLANG=/usr/bin/clang when kusionu…

    1. Does this PR affect any open issues?(Y/N) and add issue references (e.g. "fix #123", "re #123".):

    • [x] N
    • [ ] Y

    2. What is the scope of this PR (e.g. component or file name):

    kusionup init

    3. Provide a description of the PR(e.g. more details, effects, motivations or doc link):

    • [ ] Affects user behaviors
    • [ ] Contains syntax changes
    • [x] Contains variable changes
    • [ ] Contains experimental features
    • [ ] Performance regression: Consumes more CPU
    • [ ] Performance regression: Consumes more Memory
    • [ ] Other

    4. Are there any breaking changes?(Y/N) and describe the breaking changes(e.g. more details, motivations or doc link):

    • [x] N
    • [ ] Y

    5. Are there test cases for these changes?(Y/N) select and add more details, references or doc links:

    • [ ] Unit test
    • [ ] Integration test
    • [ ] Benchmark (add benchmark stats below)
    • [ ] Manual test (add detailed scripts or steps below)
    • [x] Other

    6. Release note

    Please refer to Release Notes Language Style Guide to write a quality release note.

    None
    
  • How to get the download url of the latest version when fetch tags fails

    How to get the download url of the latest version when fetch tags fails

    Enhancement

    How to get the download url of the latest version when fetch tags fails?

    Fetching tags of kusion may fail when the network is poor or git version is relatively lower ...

    Consider:

    • Compatible with lower version Git
    • Add error hint

    Screenshot:

    image

    image

    image

  • Support the disable-custom-source flag

    Support the disable-custom-source flag

Kstone is an etcd management platform, providing cluster management, monitoring, backup, inspection, data migration, visual viewing of etcd data, and intelligent diagnosis.
Kstone is an etcd management platform, providing cluster management, monitoring, backup, inspection, data migration, visual viewing of etcd data, and intelligent diagnosis.

Kstone 中文 Kstone is an etcd management platform, providing cluster management, monitoring, backup, inspection, data migration, visual viewing of etcd

Dec 27, 2022
Go version manager. Super simple tool to install and manage Go versions. Install go without root. Gobrew doesn't require shell rehash.

gobrew Go version manager Install or update With curl $ curl -sLk https://git.io/gobrew | sh - or with go $ go get -u github.com/kevincobain2000/gobre

Jan 5, 2023
A tool to restart a Docker container with a newer version of the image

repull A tool to restart a Docker container with a newer version of an image used by the container Often you may need to pull a newer version of an im

Nov 28, 2022
A tool to bring existing Azure resources under Terraform's management

Azure Terrafy A tool to bring your existing Azure resources under the management of Terraform. Install go install github.com/magodo/aztfy@latest Usage

Dec 9, 2021
Helmsman repository management tool

Richman A tool to manage helmsman specification toml files. Install go get -u github.com/kronostechnologies/richman # OR go install Usage Update char

Oct 7, 2021
A tool to bring existing Azure resources under Terraform's management

Azure Terrafy A tool to bring your existing Azure resources under the management of Terraform. Goal Azure Terrafy imports the resources inside a resou

Jan 1, 2023
Metrics go: CudgX indicator management tool, which integrates monitoring and data analysis indicator capabilities

Metrics-Go metrics-go 是cudgx指标打点工具,它集成了监控和数据分析指标能力。 数据流程 指标数据流程为: 用户代码调用打点 SDK指标

Oct 13, 2022
"go build" wrapper to add version info to Golang applications

govvv The simple Go binary versioning tool that wraps the go build command. Stop worrying about -ldflags and go get github.com/ahmetb/govvv now. Build

Dec 16, 2022
Go Version Manager

gvm By Josh Bussdieker (jbuss, jaja, jbussdieker) while working at Moovweb Currently lovingly maintained by Benjamin Knigge Pull requests and other an

Jan 2, 2023
A live-updating version of the UNIX wc command.
A live-updating version of the UNIX wc command.

lwc A live-updating version of the UNIX wc command. Installation You can get a prebuilt binary for every major platform from the Releases page. Just e

Jul 26, 2022
"go build" wrapper to add version info to Golang applications

govvv The simple Go binary versioning tool that wraps the go build command. Stop worrying about -ldflags and go get github.com/ahmetb/govvv now. Build

Dec 16, 2022
Semantic version generator using git commit keywords and overrides

Semantic version generator Project created overnight, to prove that management of semantic versioning is NOT painful and do not require arguments and

Jan 1, 2023
Mutagen Compose is a modified version of Docker Compose that offers automated integration with Mutagen.

Mutagen Compose Mutagen Compose is a (minimally) modified version of Docker Compose that offers automated integration with Mutagen. This allows you to

Dec 22, 2022
Transform latin letters to runes & vice versa. Go version.

Riimut Transform latin letters to runes & vice versa. Go version. Includes transformers for four main runic alphabets: Elder Futhark Younger Futhark M

Aug 2, 2022
Minified version of Project Sherlock written in GO

Minified version of Project Sherlock written in GO

Dec 19, 2022
UpdatedFlowtbag - An updated version of Flowtbag

License Copyright 2011 Daniel Arndt Licensed under the Apache License, Version 2

Jan 5, 2022
Valse is an kubernetes exporter application that discovers resources such as version
Valse is an kubernetes exporter application that discovers resources such as version

What is the Valse? Valse is an kubernetes exporter application that discovers resources such as version, namespaces, node, pod, deployment, daemonset,

Jul 22, 2022
Golangver - Go's distributives version manager

golangver Go's distributive version manager (knitted myself with love :) Require

Sep 20, 2022
A golang package for comparing and working with k0s version numbers

version A go-language package for managing k0s version numbers. It is based on hashicorp/go-version but adds sorting and comparison capabilities for t

Feb 7, 2022