diff --git a/.github/workflows/pr_cockpit.yml b/.github/workflows/pr_cockpit.yml index 26c1d7b1..1c532a72 100644 --- a/.github/workflows/pr_cockpit.yml +++ b/.github/workflows/pr_cockpit.yml @@ -15,7 +15,7 @@ on: - "go.sum" env: - RUST_VERSION: 1.80.1 + RUST_VERSION: 1.83.0 GO_VERSION: '^1.22.5' CARGO_TERM_COLOR: always CARGO_INCREMENTAL: "0" diff --git a/.github/workflows/pr_general.yml b/.github/workflows/pr_general.yml index e5fd8350..dde22fb7 100644 --- a/.github/workflows/pr_general.yml +++ b/.github/workflows/pr_general.yml @@ -4,7 +4,7 @@ name: Pull Request General on: workflow_call env: - RUST_VERSION: 1.80.1 + RUST_VERSION: 1.83.0 GO_VERSION: '^1.22.5' CARGO_TERM_COLOR: always CARGO_INCREMENTAL: "0" diff --git a/.github/workflows/pr_pre-commit.yml b/.github/workflows/pr_pre-commit.yml index c255b089..d60842da 100644 --- a/.github/workflows/pr_pre-commit.yml +++ b/.github/workflows/pr_pre-commit.yml @@ -6,7 +6,7 @@ on: env: CARGO_TERM_COLOR: always - RUST_TOOLCHAIN_VERSION: "1.80.1" + RUST_TOOLCHAIN_VERSION: "1.83.0" HADOLINT_VERSION: "v1.17.6" NIX_VERSION: "2.25.2" diff --git a/.github/workflows/pr_stackablectl.yml b/.github/workflows/pr_stackablectl.yml index bc173c31..6f9510d0 100644 --- a/.github/workflows/pr_stackablectl.yml +++ b/.github/workflows/pr_stackablectl.yml @@ -14,7 +14,7 @@ on: - "extra/**" env: - RUST_VERSION: 1.80.1 + RUST_VERSION: 1.83.0 GO_VERSION: '^1.22.5' CARGO_TERM_COLOR: always CARGO_INCREMENTAL: "0" diff --git a/.github/workflows/release_stackablectl.yml b/.github/workflows/release_stackablectl.yml index d0da9cef..7eaa112d 100644 --- a/.github/workflows/release_stackablectl.yml +++ b/.github/workflows/release_stackablectl.yml @@ -7,7 +7,7 @@ on: - "stackablectl-[0-9]+.[0-9]+.[0-9]+**" env: - RUST_VERSION: 1.80.1 + RUST_VERSION: 1.83.0 CARGO_TERM_COLOR: always CARGO_INCREMENTAL: "0" CARGO_PROFILE_DEV_DEBUG: "0" diff --git a/Cargo.lock b/Cargo.lock index 7520a1a7..a76967f4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,6 +1,6 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] name = "addr2line" @@ -3049,6 +3049,7 @@ dependencies = [ "tokio", "tracing", "url", + "urlencoding", "utoipa", "which", ] @@ -3159,6 +3160,7 @@ dependencies = [ "tokio", "tracing", "tracing-subscriber", + "urlencoding", ] [[package]] @@ -3762,6 +3764,12 @@ dependencies = [ "serde", ] +[[package]] +name = "urlencoding" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" + [[package]] name = "utf-8" version = "0.7.6" diff --git a/Cargo.nix b/Cargo.nix index f75709e9..fd1f0060 100644 --- a/Cargo.nix +++ b/Cargo.nix @@ -8052,7 +8052,7 @@ rec { "stream" = [ "tokio/fs" "dep:tokio-util" "dep:wasm-streams" ]; "zstd" = [ "dep:async-compression" "async-compression?/zstd" "dep:tokio-util" ]; }; - resolvedDefaultFeatures = [ "__rustls" "__rustls-ring" "__tls" "blocking" "rustls-tls" "rustls-tls-webpki-roots" ]; + resolvedDefaultFeatures = [ "__rustls" "__rustls-ring" "__tls" "blocking" "json" "rustls-tls" "rustls-tls-webpki-roots" ]; }; "ring" = rec { crateName = "ring"; @@ -9672,7 +9672,7 @@ rec { name = "reqwest"; packageId = "reqwest"; usesDefaultFeatures = false; - features = [ "rustls-tls" ]; + features = [ "json" "rustls-tls" ]; } { name = "semver"; @@ -9722,6 +9722,10 @@ rec { name = "url"; packageId = "url"; } + { + name = "urlencoding"; + packageId = "urlencoding"; + } { name = "utoipa"; packageId = "utoipa"; @@ -10122,7 +10126,7 @@ rec { name = "reqwest"; packageId = "reqwest"; usesDefaultFeatures = false; - features = [ "rustls-tls" ]; + features = [ "json" "rustls-tls" ]; } { name = "semver"; @@ -10177,6 +10181,10 @@ rec { name = "tracing-subscriber"; packageId = "tracing-subscriber"; } + { + name = "urlencoding"; + packageId = "urlencoding"; + } ]; }; @@ -12197,6 +12205,17 @@ rec { }; resolvedDefaultFeatures = [ "default" "serde" ]; }; + "urlencoding" = rec { + crateName = "urlencoding"; + version = "2.1.3"; + edition = "2021"; + sha256 = "1nj99jp37k47n0hvaz5fvz7z6jd0sb4ppvfy3nphr1zbnyixpy6s"; + authors = [ + "Kornel " + "Bertram Truong " + ]; + + }; "utf-8" = rec { crateName = "utf-8"; version = "0.7.6"; diff --git a/Cargo.toml b/Cargo.toml index b0cef9a1..66b79cdb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -38,7 +38,7 @@ phf = "0.11" phf_codegen = "0.11" rand = "0.8" regex = "1.10" -reqwest = { version = "0.12", default-features = false, features = ["rustls-tls"] } +reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls"] } rstest = "0.22" semver = { version = "1.0", features = ["serde"] } serde = { version = "1.0", features = ["derive"] } @@ -54,6 +54,7 @@ tower-http = { version = "0.5", features = ["validate-request"] } tracing = "0.1" tracing-subscriber = "0.3" url = "2.5" +urlencoding = "2.1.3" utoipa = { version = "4.2", features = ["indexmap"] } utoipa-swagger-ui = { version = "7.1", features = ["axum"] } uuid = { version = "1.10", features = ["v4"] } diff --git a/docs/modules/stackablectl/partials/commands/cache.adoc b/docs/modules/stackablectl/partials/commands/cache.adoc index 7b99a00f..511c26f0 100644 --- a/docs/modules/stackablectl/partials/commands/cache.adoc +++ b/docs/modules/stackablectl/partials/commands/cache.adoc @@ -76,4 +76,13 @@ Helm repository options: Provide a custom Helm dev repository URL [default: https://repo.stackable.tech/repository/helm-dev/] + + --chart-source + Source the charts from either a OCI registry or from index.yaml-based repositories. + + [default: oci] + + Possible values: + - oci: OCI registry + - repo: index.yaml-based repositories: resolution (dev, test, stable) is based on the version and thus will be operator-specific ---- diff --git a/docs/modules/stackablectl/partials/commands/completions.adoc b/docs/modules/stackablectl/partials/commands/completions.adoc index ab89cd08..e9213ef0 100644 --- a/docs/modules/stackablectl/partials/commands/completions.adoc +++ b/docs/modules/stackablectl/partials/commands/completions.adoc @@ -79,4 +79,13 @@ Helm repository options: Provide a custom Helm dev repository URL [default: https://repo.stackable.tech/repository/helm-dev/] + + --chart-source + Source the charts from either a OCI registry or from index.yaml-based repositories. + + [default: oci] + + Possible values: + - oci: OCI registry + - repo: index.yaml-based repositories: resolution (dev, test, stable) is based on the version and thus will be operator-specific ---- diff --git a/docs/modules/stackablectl/partials/commands/demo.adoc b/docs/modules/stackablectl/partials/commands/demo.adoc index 521cc726..f796f3e6 100644 --- a/docs/modules/stackablectl/partials/commands/demo.adoc +++ b/docs/modules/stackablectl/partials/commands/demo.adoc @@ -80,4 +80,13 @@ Helm repository options: Provide a custom Helm dev repository URL [default: https://repo.stackable.tech/repository/helm-dev/] + + --chart-source + Source the charts from either a OCI registry or from index.yaml-based repositories. + + [default: oci] + + Possible values: + - oci: OCI registry + - repo: index.yaml-based repositories: resolution (dev, test, stable) is based on the version and thus will be operator-specific ---- diff --git a/docs/modules/stackablectl/partials/commands/experimental-debug.adoc b/docs/modules/stackablectl/partials/commands/experimental-debug.adoc index 7b80020f..69beb787 100644 --- a/docs/modules/stackablectl/partials/commands/experimental-debug.adoc +++ b/docs/modules/stackablectl/partials/commands/experimental-debug.adoc @@ -93,4 +93,13 @@ Helm repository options: Provide a custom Helm dev repository URL [default: https://repo.stackable.tech/repository/helm-dev/] + + --chart-source + Source the charts from either a OCI registry or from index.yaml-based repositories. + + [default: oci] + + Possible values: + - oci: OCI registry + - repo: index.yaml-based repositories: resolution (dev, test, stable) is based on the version and thus will be operator-specific ---- diff --git a/docs/modules/stackablectl/partials/commands/index.adoc b/docs/modules/stackablectl/partials/commands/index.adoc index e880f3c5..a83def02 100644 --- a/docs/modules/stackablectl/partials/commands/index.adoc +++ b/docs/modules/stackablectl/partials/commands/index.adoc @@ -82,4 +82,13 @@ Helm repository options: Provide a custom Helm dev repository URL [default: https://repo.stackable.tech/repository/helm-dev/] + + --chart-source + Source the charts from either a OCI registry or from index.yaml-based repositories. + + [default: oci] + + Possible values: + - oci: OCI registry + - repo: index.yaml-based repositories: resolution (dev, test, stable) is based on the version and thus will be operator-specific ---- diff --git a/docs/modules/stackablectl/partials/commands/operator.adoc b/docs/modules/stackablectl/partials/commands/operator.adoc index f0d061a3..0d97ae6d 100644 --- a/docs/modules/stackablectl/partials/commands/operator.adoc +++ b/docs/modules/stackablectl/partials/commands/operator.adoc @@ -79,4 +79,13 @@ Helm repository options: Provide a custom Helm dev repository URL [default: https://repo.stackable.tech/repository/helm-dev/] + + --chart-source + Source the charts from either a OCI registry or from index.yaml-based repositories. + + [default: oci] + + Possible values: + - oci: OCI registry + - repo: index.yaml-based repositories: resolution (dev, test, stable) is based on the version and thus will be operator-specific ---- diff --git a/docs/modules/stackablectl/partials/commands/release.adoc b/docs/modules/stackablectl/partials/commands/release.adoc index 7f36769f..63941ea3 100644 --- a/docs/modules/stackablectl/partials/commands/release.adoc +++ b/docs/modules/stackablectl/partials/commands/release.adoc @@ -78,4 +78,13 @@ Helm repository options: Provide a custom Helm dev repository URL [default: https://repo.stackable.tech/repository/helm-dev/] + + --chart-source + Source the charts from either a OCI registry or from index.yaml-based repositories. + + [default: oci] + + Possible values: + - oci: OCI registry + - repo: index.yaml-based repositories: resolution (dev, test, stable) is based on the version and thus will be operator-specific ---- diff --git a/docs/modules/stackablectl/partials/commands/stack.adoc b/docs/modules/stackablectl/partials/commands/stack.adoc index 8af1b466..f92156ec 100644 --- a/docs/modules/stackablectl/partials/commands/stack.adoc +++ b/docs/modules/stackablectl/partials/commands/stack.adoc @@ -80,4 +80,13 @@ Helm repository options: Provide a custom Helm dev repository URL [default: https://repo.stackable.tech/repository/helm-dev/] + + --chart-source + Source the charts from either a OCI registry or from index.yaml-based repositories. + + [default: oci] + + Possible values: + - oci: OCI registry + - repo: index.yaml-based repositories: resolution (dev, test, stable) is based on the version and thus will be operator-specific ---- diff --git a/docs/modules/stackablectl/partials/commands/stacklet.adoc b/docs/modules/stackablectl/partials/commands/stacklet.adoc index 55a10aed..9b7f9ad3 100644 --- a/docs/modules/stackablectl/partials/commands/stacklet.adoc +++ b/docs/modules/stackablectl/partials/commands/stacklet.adoc @@ -81,4 +81,13 @@ Helm repository options: Provide a custom Helm dev repository URL [default: https://repo.stackable.tech/repository/helm-dev/] + + --chart-source + Source the charts from either a OCI registry or from index.yaml-based repositories. + + [default: oci] + + Possible values: + - oci: OCI registry + - repo: index.yaml-based repositories: resolution (dev, test, stable) is based on the version and thus will be operator-specific ---- diff --git a/extra/completions/_stackablectl b/extra/completions/_stackablectl index 2786659a..77f090de 100644 --- a/extra/completions/_stackablectl +++ b/extra/completions/_stackablectl @@ -26,6 +26,8 @@ _stackablectl() { '--helm-repo-stable=[Provide a custom Helm stable repository URL]:URL:_urls' \ '--helm-repo-test=[Provide a custom Helm test repository URL]:URL:_urls' \ '--helm-repo-dev=[Provide a custom Helm dev repository URL]:URL:_urls' \ +'--chart-source=[Source the charts from either a OCI registry or from index.yaml-based repositories]:CHART_SOURCE:((oci\:"OCI registry" +repo\:"index.yaml-based repositories\: resolution (dev, test, stable) is based on the version and thus will be operator-specific"))' \ '--no-cache[Do not cache the remote (default) demo, stack and release files]' \ '-h[Print help (see more with '\''--help'\'')]' \ '--help[Print help (see more with '\''--help'\'')]' \ @@ -53,6 +55,8 @@ _arguments "${_arguments_options[@]}" : \ '--helm-repo-stable=[Provide a custom Helm stable repository URL]:URL:_urls' \ '--helm-repo-test=[Provide a custom Helm test repository URL]:URL:_urls' \ '--helm-repo-dev=[Provide a custom Helm dev repository URL]:URL:_urls' \ +'--chart-source=[Source the charts from either a OCI registry or from index.yaml-based repositories]:CHART_SOURCE:((oci\:"OCI registry" +repo\:"index.yaml-based repositories\: resolution (dev, test, stable) is based on the version and thus will be operator-specific"))' \ '--no-cache[Do not cache the remote (default) demo, stack and release files]' \ '-h[Print help (see more with '\''--help'\'')]' \ '--help[Print help (see more with '\''--help'\'')]' \ @@ -89,6 +93,8 @@ yaml\:"Print output formatted as YAML"))' \ '--helm-repo-stable=[Provide a custom Helm stable repository URL]:URL:_urls' \ '--helm-repo-test=[Provide a custom Helm test repository URL]:URL:_urls' \ '--helm-repo-dev=[Provide a custom Helm dev repository URL]:URL:_urls' \ +'--chart-source=[Source the charts from either a OCI registry or from index.yaml-based repositories]:CHART_SOURCE:((oci\:"OCI registry" +repo\:"index.yaml-based repositories\: resolution (dev, test, stable) is based on the version and thus will be operator-specific"))' \ '--no-cache[Do not cache the remote (default) demo, stack and release files]' \ '-h[Print help (see more with '\''--help'\'')]' \ '--help[Print help (see more with '\''--help'\'')]' \ @@ -117,6 +123,8 @@ yaml\:"Print output formatted as YAML"))' \ '--helm-repo-stable=[Provide a custom Helm stable repository URL]:URL:_urls' \ '--helm-repo-test=[Provide a custom Helm test repository URL]:URL:_urls' \ '--helm-repo-dev=[Provide a custom Helm dev repository URL]:URL:_urls' \ +'--chart-source=[Source the charts from either a OCI registry or from index.yaml-based repositories]:CHART_SOURCE:((oci\:"OCI registry" +repo\:"index.yaml-based repositories\: resolution (dev, test, stable) is based on the version and thus will be operator-specific"))' \ '--no-cache[Do not cache the remote (default) demo, stack and release files]' \ '-h[Print help (see more with '\''--help'\'')]' \ '--help[Print help (see more with '\''--help'\'')]' \ @@ -147,6 +155,8 @@ minikube\:"Use a minikube cluster"))' \ '--helm-repo-stable=[Provide a custom Helm stable repository URL]:URL:_urls' \ '--helm-repo-test=[Provide a custom Helm test repository URL]:URL:_urls' \ '--helm-repo-dev=[Provide a custom Helm dev repository URL]:URL:_urls' \ +'--chart-source=[Source the charts from either a OCI registry or from index.yaml-based repositories]:CHART_SOURCE:((oci\:"OCI registry" +repo\:"index.yaml-based repositories\: resolution (dev, test, stable) is based on the version and thus will be operator-specific"))' \ '--no-cache[Do not cache the remote (default) demo, stack and release files]' \ '-h[Print help (see more with '\''--help'\'')]' \ '--help[Print help (see more with '\''--help'\'')]' \ @@ -170,6 +180,8 @@ _arguments "${_arguments_options[@]}" : \ '--helm-repo-stable=[Provide a custom Helm stable repository URL]:URL:_urls' \ '--helm-repo-test=[Provide a custom Helm test repository URL]:URL:_urls' \ '--helm-repo-dev=[Provide a custom Helm dev repository URL]:URL:_urls' \ +'--chart-source=[Source the charts from either a OCI registry or from index.yaml-based repositories]:CHART_SOURCE:((oci\:"OCI registry" +repo\:"index.yaml-based repositories\: resolution (dev, test, stable) is based on the version and thus will be operator-specific"))' \ '--no-cache[Do not cache the remote (default) demo, stack and release files]' \ '-h[Print help (see more with '\''--help'\'')]' \ '--help[Print help (see more with '\''--help'\'')]' \ @@ -201,6 +213,8 @@ yaml\:"Print output formatted as YAML"))' \ '--helm-repo-stable=[Provide a custom Helm stable repository URL]:URL:_urls' \ '--helm-repo-test=[Provide a custom Helm test repository URL]:URL:_urls' \ '--helm-repo-dev=[Provide a custom Helm dev repository URL]:URL:_urls' \ +'--chart-source=[Source the charts from either a OCI registry or from index.yaml-based repositories]:CHART_SOURCE:((oci\:"OCI registry" +repo\:"index.yaml-based repositories\: resolution (dev, test, stable) is based on the version and thus will be operator-specific"))' \ '--no-cache[Do not cache the remote (default) demo, stack and release files]' \ '-h[Print help (see more with '\''--help'\'')]' \ '--help[Print help (see more with '\''--help'\'')]' \ @@ -265,6 +279,8 @@ _arguments "${_arguments_options[@]}" : \ '--helm-repo-stable=[Provide a custom Helm stable repository URL]:URL:_urls' \ '--helm-repo-test=[Provide a custom Helm test repository URL]:URL:_urls' \ '--helm-repo-dev=[Provide a custom Helm dev repository URL]:URL:_urls' \ +'--chart-source=[Source the charts from either a OCI registry or from index.yaml-based repositories]:CHART_SOURCE:((oci\:"OCI registry" +repo\:"index.yaml-based repositories\: resolution (dev, test, stable) is based on the version and thus will be operator-specific"))' \ '--no-cache[Do not cache the remote (default) demo, stack and release files]' \ '-h[Print help (see more with '\''--help'\'')]' \ '--help[Print help (see more with '\''--help'\'')]' \ @@ -301,6 +317,8 @@ yaml\:"Print output formatted as YAML"))' \ '--helm-repo-stable=[Provide a custom Helm stable repository URL]:URL:_urls' \ '--helm-repo-test=[Provide a custom Helm test repository URL]:URL:_urls' \ '--helm-repo-dev=[Provide a custom Helm dev repository URL]:URL:_urls' \ +'--chart-source=[Source the charts from either a OCI registry or from index.yaml-based repositories]:CHART_SOURCE:((oci\:"OCI registry" +repo\:"index.yaml-based repositories\: resolution (dev, test, stable) is based on the version and thus will be operator-specific"))' \ '--no-cache[Do not cache the remote (default) demo, stack and release files]' \ '-h[Print help (see more with '\''--help'\'')]' \ '--help[Print help (see more with '\''--help'\'')]' \ @@ -329,6 +347,8 @@ yaml\:"Print output formatted as YAML"))' \ '--helm-repo-stable=[Provide a custom Helm stable repository URL]:URL:_urls' \ '--helm-repo-test=[Provide a custom Helm test repository URL]:URL:_urls' \ '--helm-repo-dev=[Provide a custom Helm dev repository URL]:URL:_urls' \ +'--chart-source=[Source the charts from either a OCI registry or from index.yaml-based repositories]:CHART_SOURCE:((oci\:"OCI registry" +repo\:"index.yaml-based repositories\: resolution (dev, test, stable) is based on the version and thus will be operator-specific"))' \ '--no-cache[Do not cache the remote (default) demo, stack and release files]' \ '-h[Print help (see more with '\''--help'\'')]' \ '--help[Print help (see more with '\''--help'\'')]' \ @@ -363,6 +383,8 @@ minikube\:"Use a minikube cluster"))' \ '--helm-repo-stable=[Provide a custom Helm stable repository URL]:URL:_urls' \ '--helm-repo-test=[Provide a custom Helm test repository URL]:URL:_urls' \ '--helm-repo-dev=[Provide a custom Helm dev repository URL]:URL:_urls' \ +'--chart-source=[Source the charts from either a OCI registry or from index.yaml-based repositories]:CHART_SOURCE:((oci\:"OCI registry" +repo\:"index.yaml-based repositories\: resolution (dev, test, stable) is based on the version and thus will be operator-specific"))' \ '--no-cache[Do not cache the remote (default) demo, stack and release files]' \ '-h[Print help (see more with '\''--help'\'')]' \ '--help[Print help (see more with '\''--help'\'')]' \ @@ -386,6 +408,8 @@ _arguments "${_arguments_options[@]}" : \ '--helm-repo-stable=[Provide a custom Helm stable repository URL]:URL:_urls' \ '--helm-repo-test=[Provide a custom Helm test repository URL]:URL:_urls' \ '--helm-repo-dev=[Provide a custom Helm dev repository URL]:URL:_urls' \ +'--chart-source=[Source the charts from either a OCI registry or from index.yaml-based repositories]:CHART_SOURCE:((oci\:"OCI registry" +repo\:"index.yaml-based repositories\: resolution (dev, test, stable) is based on the version and thus will be operator-specific"))' \ '--no-cache[Do not cache the remote (default) demo, stack and release files]' \ '-h[Print help (see more with '\''--help'\'')]' \ '--help[Print help (see more with '\''--help'\'')]' \ @@ -448,6 +472,8 @@ _arguments "${_arguments_options[@]}" : \ '--helm-repo-stable=[Provide a custom Helm stable repository URL]:URL:_urls' \ '--helm-repo-test=[Provide a custom Helm test repository URL]:URL:_urls' \ '--helm-repo-dev=[Provide a custom Helm dev repository URL]:URL:_urls' \ +'--chart-source=[Source the charts from either a OCI registry or from index.yaml-based repositories]:CHART_SOURCE:((oci\:"OCI registry" +repo\:"index.yaml-based repositories\: resolution (dev, test, stable) is based on the version and thus will be operator-specific"))' \ '--no-cache[Do not cache the remote (default) demo, stack and release files]' \ '-h[Print help (see more with '\''--help'\'')]' \ '--help[Print help (see more with '\''--help'\'')]' \ @@ -485,6 +511,8 @@ yaml\:"Print output formatted as YAML"))' \ '--helm-repo-stable=[Provide a custom Helm stable repository URL]:URL:_urls' \ '--helm-repo-test=[Provide a custom Helm test repository URL]:URL:_urls' \ '--helm-repo-dev=[Provide a custom Helm dev repository URL]:URL:_urls' \ +'--chart-source=[Source the charts from either a OCI registry or from index.yaml-based repositories]:CHART_SOURCE:((oci\:"OCI registry" +repo\:"index.yaml-based repositories\: resolution (dev, test, stable) is based on the version and thus will be operator-specific"))' \ '--no-cache[Do not cache the remote (default) demo, stack and release files]' \ '-h[Print help (see more with '\''--help'\'')]' \ '--help[Print help (see more with '\''--help'\'')]' \ @@ -514,6 +542,8 @@ yaml\:"Print output formatted as YAML"))' \ '--helm-repo-stable=[Provide a custom Helm stable repository URL]:URL:_urls' \ '--helm-repo-test=[Provide a custom Helm test repository URL]:URL:_urls' \ '--helm-repo-dev=[Provide a custom Helm dev repository URL]:URL:_urls' \ +'--chart-source=[Source the charts from either a OCI registry or from index.yaml-based repositories]:CHART_SOURCE:((oci\:"OCI registry" +repo\:"index.yaml-based repositories\: resolution (dev, test, stable) is based on the version and thus will be operator-specific"))' \ '--no-cache[Do not cache the remote (default) demo, stack and release files]' \ '-h[Print help (see more with '\''--help'\'')]' \ '--help[Print help (see more with '\''--help'\'')]' \ @@ -550,6 +580,8 @@ minikube\:"Use a minikube cluster"))' \ '--helm-repo-stable=[Provide a custom Helm stable repository URL]:URL:_urls' \ '--helm-repo-test=[Provide a custom Helm test repository URL]:URL:_urls' \ '--helm-repo-dev=[Provide a custom Helm dev repository URL]:URL:_urls' \ +'--chart-source=[Source the charts from either a OCI registry or from index.yaml-based repositories]:CHART_SOURCE:((oci\:"OCI registry" +repo\:"index.yaml-based repositories\: resolution (dev, test, stable) is based on the version and thus will be operator-specific"))' \ '--skip-release[Skip the installation of the release during the stack install process]' \ '--no-cache[Do not cache the remote (default) demo, stack and release files]' \ '-h[Print help (see more with '\''--help'\'')]' \ @@ -608,6 +640,8 @@ _arguments "${_arguments_options[@]}" : \ '--helm-repo-stable=[Provide a custom Helm stable repository URL]:URL:_urls' \ '--helm-repo-test=[Provide a custom Helm test repository URL]:URL:_urls' \ '--helm-repo-dev=[Provide a custom Helm dev repository URL]:URL:_urls' \ +'--chart-source=[Source the charts from either a OCI registry or from index.yaml-based repositories]:CHART_SOURCE:((oci\:"OCI registry" +repo\:"index.yaml-based repositories\: resolution (dev, test, stable) is based on the version and thus will be operator-specific"))' \ '--no-cache[Do not cache the remote (default) demo, stack and release files]' \ '-h[Print help (see more with '\''--help'\'')]' \ '--help[Print help (see more with '\''--help'\'')]' \ @@ -639,6 +673,8 @@ _arguments "${_arguments_options[@]}" : \ '--helm-repo-stable=[Provide a custom Helm stable repository URL]:URL:_urls' \ '--helm-repo-test=[Provide a custom Helm test repository URL]:URL:_urls' \ '--helm-repo-dev=[Provide a custom Helm dev repository URL]:URL:_urls' \ +'--chart-source=[Source the charts from either a OCI registry or from index.yaml-based repositories]:CHART_SOURCE:((oci\:"OCI registry" +repo\:"index.yaml-based repositories\: resolution (dev, test, stable) is based on the version and thus will be operator-specific"))' \ '--no-cache[Do not cache the remote (default) demo, stack and release files]' \ '-h[Print help (see more with '\''--help'\'')]' \ '--help[Print help (see more with '\''--help'\'')]' \ @@ -674,6 +710,8 @@ yaml\:"Print output formatted as YAML"))' \ '--helm-repo-stable=[Provide a custom Helm stable repository URL]:URL:_urls' \ '--helm-repo-test=[Provide a custom Helm test repository URL]:URL:_urls' \ '--helm-repo-dev=[Provide a custom Helm dev repository URL]:URL:_urls' \ +'--chart-source=[Source the charts from either a OCI registry or from index.yaml-based repositories]:CHART_SOURCE:((oci\:"OCI registry" +repo\:"index.yaml-based repositories\: resolution (dev, test, stable) is based on the version and thus will be operator-specific"))' \ '--no-cache[Do not cache the remote (default) demo, stack and release files]' \ '-h[Print help (see more with '\''--help'\'')]' \ '--help[Print help (see more with '\''--help'\'')]' \ @@ -727,6 +765,8 @@ _arguments "${_arguments_options[@]}" : \ '--helm-repo-stable=[Provide a custom Helm stable repository URL]:URL:_urls' \ '--helm-repo-test=[Provide a custom Helm test repository URL]:URL:_urls' \ '--helm-repo-dev=[Provide a custom Helm dev repository URL]:URL:_urls' \ +'--chart-source=[Source the charts from either a OCI registry or from index.yaml-based repositories]:CHART_SOURCE:((oci\:"OCI registry" +repo\:"index.yaml-based repositories\: resolution (dev, test, stable) is based on the version and thus will be operator-specific"))' \ '--no-cache[Do not cache the remote (default) demo, stack and release files]' \ '-h[Print help (see more with '\''--help'\'')]' \ '--help[Print help (see more with '\''--help'\'')]' \ @@ -764,6 +804,8 @@ yaml\:"Print output formatted as YAML"))' \ '--helm-repo-stable=[Provide a custom Helm stable repository URL]:URL:_urls' \ '--helm-repo-test=[Provide a custom Helm test repository URL]:URL:_urls' \ '--helm-repo-dev=[Provide a custom Helm dev repository URL]:URL:_urls' \ +'--chart-source=[Source the charts from either a OCI registry or from index.yaml-based repositories]:CHART_SOURCE:((oci\:"OCI registry" +repo\:"index.yaml-based repositories\: resolution (dev, test, stable) is based on the version and thus will be operator-specific"))' \ '--no-cache[Do not cache the remote (default) demo, stack and release files]' \ '-h[Print help (see more with '\''--help'\'')]' \ '--help[Print help (see more with '\''--help'\'')]' \ @@ -793,6 +835,8 @@ yaml\:"Print output formatted as YAML"))' \ '--helm-repo-stable=[Provide a custom Helm stable repository URL]:URL:_urls' \ '--helm-repo-test=[Provide a custom Helm test repository URL]:URL:_urls' \ '--helm-repo-dev=[Provide a custom Helm dev repository URL]:URL:_urls' \ +'--chart-source=[Source the charts from either a OCI registry or from index.yaml-based repositories]:CHART_SOURCE:((oci\:"OCI registry" +repo\:"index.yaml-based repositories\: resolution (dev, test, stable) is based on the version and thus will be operator-specific"))' \ '--no-cache[Do not cache the remote (default) demo, stack and release files]' \ '-h[Print help (see more with '\''--help'\'')]' \ '--help[Print help (see more with '\''--help'\'')]' \ @@ -829,6 +873,8 @@ minikube\:"Use a minikube cluster"))' \ '--helm-repo-stable=[Provide a custom Helm stable repository URL]:URL:_urls' \ '--helm-repo-test=[Provide a custom Helm test repository URL]:URL:_urls' \ '--helm-repo-dev=[Provide a custom Helm dev repository URL]:URL:_urls' \ +'--chart-source=[Source the charts from either a OCI registry or from index.yaml-based repositories]:CHART_SOURCE:((oci\:"OCI registry" +repo\:"index.yaml-based repositories\: resolution (dev, test, stable) is based on the version and thus will be operator-specific"))' \ '--skip-release[Skip the installation of the release during the stack install process]' \ '--no-cache[Do not cache the remote (default) demo, stack and release files]' \ '-h[Print help (see more with '\''--help'\'')]' \ @@ -887,6 +933,8 @@ _arguments "${_arguments_options[@]}" : \ '--helm-repo-stable=[Provide a custom Helm stable repository URL]:URL:_urls' \ '--helm-repo-test=[Provide a custom Helm test repository URL]:URL:_urls' \ '--helm-repo-dev=[Provide a custom Helm dev repository URL]:URL:_urls' \ +'--chart-source=[Source the charts from either a OCI registry or from index.yaml-based repositories]:CHART_SOURCE:((oci\:"OCI registry" +repo\:"index.yaml-based repositories\: resolution (dev, test, stable) is based on the version and thus will be operator-specific"))' \ '--no-cache[Do not cache the remote (default) demo, stack and release files]' \ '-h[Print help (see more with '\''--help'\'')]' \ '--help[Print help (see more with '\''--help'\'')]' \ @@ -915,6 +963,8 @@ _arguments "${_arguments_options[@]}" : \ '--helm-repo-stable=[Provide a custom Helm stable repository URL]:URL:_urls' \ '--helm-repo-test=[Provide a custom Helm test repository URL]:URL:_urls' \ '--helm-repo-dev=[Provide a custom Helm dev repository URL]:URL:_urls' \ +'--chart-source=[Source the charts from either a OCI registry or from index.yaml-based repositories]:CHART_SOURCE:((oci\:"OCI registry" +repo\:"index.yaml-based repositories\: resolution (dev, test, stable) is based on the version and thus will be operator-specific"))' \ '--no-cache[Do not cache the remote (default) demo, stack and release files]' \ '-h[Print help (see more with '\''--help'\'')]' \ '--help[Print help (see more with '\''--help'\'')]' \ @@ -935,6 +985,8 @@ _arguments "${_arguments_options[@]}" : \ '--helm-repo-stable=[Provide a custom Helm stable repository URL]:URL:_urls' \ '--helm-repo-test=[Provide a custom Helm test repository URL]:URL:_urls' \ '--helm-repo-dev=[Provide a custom Helm dev repository URL]:URL:_urls' \ +'--chart-source=[Source the charts from either a OCI registry or from index.yaml-based repositories]:CHART_SOURCE:((oci\:"OCI registry" +repo\:"index.yaml-based repositories\: resolution (dev, test, stable) is based on the version and thus will be operator-specific"))' \ '--no-cache[Do not cache the remote (default) demo, stack and release files]' \ '-h[Print help (see more with '\''--help'\'')]' \ '--help[Print help (see more with '\''--help'\'')]' \ @@ -955,6 +1007,8 @@ _arguments "${_arguments_options[@]}" : \ '--helm-repo-stable=[Provide a custom Helm stable repository URL]:URL:_urls' \ '--helm-repo-test=[Provide a custom Helm test repository URL]:URL:_urls' \ '--helm-repo-dev=[Provide a custom Helm dev repository URL]:URL:_urls' \ +'--chart-source=[Source the charts from either a OCI registry or from index.yaml-based repositories]:CHART_SOURCE:((oci\:"OCI registry" +repo\:"index.yaml-based repositories\: resolution (dev, test, stable) is based on the version and thus will be operator-specific"))' \ '--no-cache[Do not cache the remote (default) demo, stack and release files]' \ '-h[Print help (see more with '\''--help'\'')]' \ '--help[Print help (see more with '\''--help'\'')]' \ @@ -975,6 +1029,8 @@ _arguments "${_arguments_options[@]}" : \ '--helm-repo-stable=[Provide a custom Helm stable repository URL]:URL:_urls' \ '--helm-repo-test=[Provide a custom Helm test repository URL]:URL:_urls' \ '--helm-repo-dev=[Provide a custom Helm dev repository URL]:URL:_urls' \ +'--chart-source=[Source the charts from either a OCI registry or from index.yaml-based repositories]:CHART_SOURCE:((oci\:"OCI registry" +repo\:"index.yaml-based repositories\: resolution (dev, test, stable) is based on the version and thus will be operator-specific"))' \ '--no-cache[Do not cache the remote (default) demo, stack and release files]' \ '-h[Print help (see more with '\''--help'\'')]' \ '--help[Print help (see more with '\''--help'\'')]' \ @@ -995,6 +1051,8 @@ _arguments "${_arguments_options[@]}" : \ '--helm-repo-stable=[Provide a custom Helm stable repository URL]:URL:_urls' \ '--helm-repo-test=[Provide a custom Helm test repository URL]:URL:_urls' \ '--helm-repo-dev=[Provide a custom Helm dev repository URL]:URL:_urls' \ +'--chart-source=[Source the charts from either a OCI registry or from index.yaml-based repositories]:CHART_SOURCE:((oci\:"OCI registry" +repo\:"index.yaml-based repositories\: resolution (dev, test, stable) is based on the version and thus will be operator-specific"))' \ '--no-cache[Do not cache the remote (default) demo, stack and release files]' \ '-h[Print help (see more with '\''--help'\'')]' \ '--help[Print help (see more with '\''--help'\'')]' \ @@ -1059,6 +1117,8 @@ _arguments "${_arguments_options[@]}" : \ '--helm-repo-stable=[Provide a custom Helm stable repository URL]:URL:_urls' \ '--helm-repo-test=[Provide a custom Helm test repository URL]:URL:_urls' \ '--helm-repo-dev=[Provide a custom Helm dev repository URL]:URL:_urls' \ +'--chart-source=[Source the charts from either a OCI registry or from index.yaml-based repositories]:CHART_SOURCE:((oci\:"OCI registry" +repo\:"index.yaml-based repositories\: resolution (dev, test, stable) is based on the version and thus will be operator-specific"))' \ '--no-cache[Do not cache the remote (default) demo, stack and release files]' \ '-h[Print help (see more with '\''--help'\'')]' \ '--help[Print help (see more with '\''--help'\'')]' \ @@ -1087,6 +1147,8 @@ _arguments "${_arguments_options[@]}" : \ '--helm-repo-stable=[Provide a custom Helm stable repository URL]:URL:_urls' \ '--helm-repo-test=[Provide a custom Helm test repository URL]:URL:_urls' \ '--helm-repo-dev=[Provide a custom Helm dev repository URL]:URL:_urls' \ +'--chart-source=[Source the charts from either a OCI registry or from index.yaml-based repositories]:CHART_SOURCE:((oci\:"OCI registry" +repo\:"index.yaml-based repositories\: resolution (dev, test, stable) is based on the version and thus will be operator-specific"))' \ '--no-cache[Do not cache the remote (default) demo, stack and release files]' \ '-h[Print help (see more with '\''--help'\'')]' \ '--help[Print help (see more with '\''--help'\'')]' \ @@ -1107,6 +1169,8 @@ _arguments "${_arguments_options[@]}" : \ '--helm-repo-stable=[Provide a custom Helm stable repository URL]:URL:_urls' \ '--helm-repo-test=[Provide a custom Helm test repository URL]:URL:_urls' \ '--helm-repo-dev=[Provide a custom Helm dev repository URL]:URL:_urls' \ +'--chart-source=[Source the charts from either a OCI registry or from index.yaml-based repositories]:CHART_SOURCE:((oci\:"OCI registry" +repo\:"index.yaml-based repositories\: resolution (dev, test, stable) is based on the version and thus will be operator-specific"))' \ '--old[Only remove outdated files in the cache]' \ '--outdated[Only remove outdated files in the cache]' \ '--no-cache[Do not cache the remote (default) demo, stack and release files]' \ @@ -1166,6 +1230,8 @@ _arguments "${_arguments_options[@]}" : \ '--helm-repo-stable=[Provide a custom Helm stable repository URL]:URL:_urls' \ '--helm-repo-test=[Provide a custom Helm test repository URL]:URL:_urls' \ '--helm-repo-dev=[Provide a custom Helm dev repository URL]:URL:_urls' \ +'--chart-source=[Source the charts from either a OCI registry or from index.yaml-based repositories]:CHART_SOURCE:((oci\:"OCI registry" +repo\:"index.yaml-based repositories\: resolution (dev, test, stable) is based on the version and thus will be operator-specific"))' \ '--no-cache[Do not cache the remote (default) demo, stack and release files]' \ '-h[Print help (see more with '\''--help'\'')]' \ '--help[Print help (see more with '\''--help'\'')]' \ diff --git a/extra/completions/stackablectl.bash b/extra/completions/stackablectl.bash index b218bb20..6e066ef2 100644 --- a/extra/completions/stackablectl.bash +++ b/extra/completions/stackablectl.bash @@ -331,7 +331,7 @@ _stackablectl() { case "${cmd}" in stackablectl) - opts="-l -d -s -r -h -V --log-level --no-cache --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --help --version operator release stack stacklet demo completions cache experimental-debug help" + opts="-l -d -s -r -h -V --log-level --no-cache --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --chart-source --help --version operator release stack stacklet demo completions cache experimental-debug help" if [[ ${cur} == -* || ${COMP_CWORD} -eq 1 ]] ; then COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) return 0 @@ -447,6 +447,10 @@ _stackablectl() { COMPREPLY=($(compgen -f "${cur}")) return 0 ;; + --chart-source) + COMPREPLY=($(compgen -W "oci repo" -- "${cur}")) + return 0 + ;; *) COMPREPLY=() ;; @@ -455,7 +459,7 @@ _stackablectl() { return 0 ;; stackablectl__cache) - opts="-l -d -s -r -h -V --log-level --no-cache --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --help --version list clean help" + opts="-l -d -s -r -h -V --log-level --no-cache --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --chart-source --help --version list clean help" if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) return 0 @@ -571,6 +575,10 @@ _stackablectl() { COMPREPLY=($(compgen -f "${cur}")) return 0 ;; + --chart-source) + COMPREPLY=($(compgen -W "oci repo" -- "${cur}")) + return 0 + ;; *) COMPREPLY=() ;; @@ -579,7 +587,7 @@ _stackablectl() { return 0 ;; stackablectl__cache__clean) - opts="-l -d -s -r -h -V --outdated --old --log-level --no-cache --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --help --version" + opts="-l -d -s -r -h -V --outdated --old --log-level --no-cache --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --chart-source --help --version" if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) return 0 @@ -695,6 +703,10 @@ _stackablectl() { COMPREPLY=($(compgen -f "${cur}")) return 0 ;; + --chart-source) + COMPREPLY=($(compgen -W "oci repo" -- "${cur}")) + return 0 + ;; *) COMPREPLY=() ;; @@ -759,7 +771,7 @@ _stackablectl() { return 0 ;; stackablectl__cache__list) - opts="-l -d -s -r -h -V --log-level --no-cache --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --help --version" + opts="-l -d -s -r -h -V --log-level --no-cache --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --chart-source --help --version" if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) return 0 @@ -875,6 +887,10 @@ _stackablectl() { COMPREPLY=($(compgen -f "${cur}")) return 0 ;; + --chart-source) + COMPREPLY=($(compgen -W "oci repo" -- "${cur}")) + return 0 + ;; *) COMPREPLY=() ;; @@ -883,7 +899,7 @@ _stackablectl() { return 0 ;; stackablectl__completions) - opts="-l -d -s -r -h -V --log-level --no-cache --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --help --version bash elvish fish nushell zsh help" + opts="-l -d -s -r -h -V --log-level --no-cache --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --chart-source --help --version bash elvish fish nushell zsh help" if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) return 0 @@ -999,6 +1015,10 @@ _stackablectl() { COMPREPLY=($(compgen -f "${cur}")) return 0 ;; + --chart-source) + COMPREPLY=($(compgen -W "oci repo" -- "${cur}")) + return 0 + ;; *) COMPREPLY=() ;; @@ -1007,7 +1027,7 @@ _stackablectl() { return 0 ;; stackablectl__completions__bash) - opts="-l -d -s -r -h -V --log-level --no-cache --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --help --version" + opts="-l -d -s -r -h -V --log-level --no-cache --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --chart-source --help --version" if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) return 0 @@ -1123,6 +1143,10 @@ _stackablectl() { COMPREPLY=($(compgen -f "${cur}")) return 0 ;; + --chart-source) + COMPREPLY=($(compgen -W "oci repo" -- "${cur}")) + return 0 + ;; *) COMPREPLY=() ;; @@ -1131,7 +1155,7 @@ _stackablectl() { return 0 ;; stackablectl__completions__elvish) - opts="-l -d -s -r -h -V --log-level --no-cache --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --help --version" + opts="-l -d -s -r -h -V --log-level --no-cache --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --chart-source --help --version" if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) return 0 @@ -1247,6 +1271,10 @@ _stackablectl() { COMPREPLY=($(compgen -f "${cur}")) return 0 ;; + --chart-source) + COMPREPLY=($(compgen -W "oci repo" -- "${cur}")) + return 0 + ;; *) COMPREPLY=() ;; @@ -1255,7 +1283,7 @@ _stackablectl() { return 0 ;; stackablectl__completions__fish) - opts="-l -d -s -r -h -V --log-level --no-cache --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --help --version" + opts="-l -d -s -r -h -V --log-level --no-cache --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --chart-source --help --version" if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) return 0 @@ -1371,6 +1399,10 @@ _stackablectl() { COMPREPLY=($(compgen -f "${cur}")) return 0 ;; + --chart-source) + COMPREPLY=($(compgen -W "oci repo" -- "${cur}")) + return 0 + ;; *) COMPREPLY=() ;; @@ -1477,7 +1509,7 @@ _stackablectl() { return 0 ;; stackablectl__completions__nushell) - opts="-l -d -s -r -h -V --log-level --no-cache --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --help --version" + opts="-l -d -s -r -h -V --log-level --no-cache --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --chart-source --help --version" if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) return 0 @@ -1593,6 +1625,10 @@ _stackablectl() { COMPREPLY=($(compgen -f "${cur}")) return 0 ;; + --chart-source) + COMPREPLY=($(compgen -W "oci repo" -- "${cur}")) + return 0 + ;; *) COMPREPLY=() ;; @@ -1601,7 +1637,7 @@ _stackablectl() { return 0 ;; stackablectl__completions__zsh) - opts="-l -d -s -r -h -V --log-level --no-cache --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --help --version" + opts="-l -d -s -r -h -V --log-level --no-cache --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --chart-source --help --version" if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) return 0 @@ -1717,6 +1753,10 @@ _stackablectl() { COMPREPLY=($(compgen -f "${cur}")) return 0 ;; + --chart-source) + COMPREPLY=($(compgen -W "oci repo" -- "${cur}")) + return 0 + ;; *) COMPREPLY=() ;; @@ -1725,7 +1765,7 @@ _stackablectl() { return 0 ;; stackablectl__demo) - opts="-l -d -s -r -h -V --release --log-level --no-cache --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --help --version list describe install help" + opts="-l -d -s -r -h -V --release --log-level --no-cache --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --chart-source --help --version list describe install help" if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) return 0 @@ -1845,6 +1885,10 @@ _stackablectl() { COMPREPLY=($(compgen -f "${cur}")) return 0 ;; + --chart-source) + COMPREPLY=($(compgen -W "oci repo" -- "${cur}")) + return 0 + ;; *) COMPREPLY=() ;; @@ -1853,7 +1897,7 @@ _stackablectl() { return 0 ;; stackablectl__demo__describe) - opts="-o -l -d -s -r -h -V --output --release --log-level --no-cache --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --help --version " + opts="-o -l -d -s -r -h -V --output --release --log-level --no-cache --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --chart-source --help --version " if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) return 0 @@ -1981,6 +2025,10 @@ _stackablectl() { COMPREPLY=($(compgen -f "${cur}")) return 0 ;; + --chart-source) + COMPREPLY=($(compgen -W "oci repo" -- "${cur}")) + return 0 + ;; *) COMPREPLY=() ;; @@ -2059,7 +2107,7 @@ _stackablectl() { return 0 ;; stackablectl__demo__install) - opts="-c -n -l -d -s -r -h -V --skip-release --stack-parameters --parameters --cluster --cluster-name --cluster-nodes --cluster-cp-nodes --operator-ns --operator-namespace --product-ns --product-namespace --release --log-level --no-cache --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --help --version " + opts="-c -n -l -d -s -r -h -V --skip-release --stack-parameters --parameters --cluster --cluster-name --cluster-nodes --cluster-cp-nodes --operator-ns --operator-namespace --product-ns --product-namespace --release --log-level --no-cache --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --chart-source --help --version " if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) return 0 @@ -2227,6 +2275,10 @@ _stackablectl() { COMPREPLY=($(compgen -f "${cur}")) return 0 ;; + --chart-source) + COMPREPLY=($(compgen -W "oci repo" -- "${cur}")) + return 0 + ;; *) COMPREPLY=() ;; @@ -2235,7 +2287,7 @@ _stackablectl() { return 0 ;; stackablectl__demo__list) - opts="-o -l -d -s -r -h -V --output --release --log-level --no-cache --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --help --version" + opts="-o -l -d -s -r -h -V --output --release --log-level --no-cache --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --chart-source --help --version" if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) return 0 @@ -2363,6 +2415,10 @@ _stackablectl() { COMPREPLY=($(compgen -f "${cur}")) return 0 ;; + --chart-source) + COMPREPLY=($(compgen -W "oci repo" -- "${cur}")) + return 0 + ;; *) COMPREPLY=() ;; @@ -2371,7 +2427,7 @@ _stackablectl() { return 0 ;; stackablectl__experimental__debug) - opts="-n -c -l -d -s -r -h -V --namespace --container --image --log-level --no-cache --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --help --version [CMD]..." + opts="-n -c -l -d -s -r -h -V --namespace --container --image --log-level --no-cache --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --chart-source --help --version [CMD]..." if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) return 0 @@ -2507,6 +2563,10 @@ _stackablectl() { COMPREPLY=($(compgen -f "${cur}")) return 0 ;; + --chart-source) + COMPREPLY=($(compgen -W "oci repo" -- "${cur}")) + return 0 + ;; *) COMPREPLY=() ;; @@ -2991,7 +3051,7 @@ _stackablectl() { return 0 ;; stackablectl__operator) - opts="-l -d -s -r -h -V --log-level --no-cache --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --help --version list describe install uninstall installed help" + opts="-l -d -s -r -h -V --log-level --no-cache --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --chart-source --help --version list describe install uninstall installed help" if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) return 0 @@ -3107,6 +3167,10 @@ _stackablectl() { COMPREPLY=($(compgen -f "${cur}")) return 0 ;; + --chart-source) + COMPREPLY=($(compgen -W "oci repo" -- "${cur}")) + return 0 + ;; *) COMPREPLY=() ;; @@ -3115,7 +3179,7 @@ _stackablectl() { return 0 ;; stackablectl__operator__describe) - opts="-o -l -d -s -r -h -V --output --log-level --no-cache --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --help --version " + opts="-o -l -d -s -r -h -V --output --log-level --no-cache --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --chart-source --help --version " if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) return 0 @@ -3239,6 +3303,10 @@ _stackablectl() { COMPREPLY=($(compgen -f "${cur}")) return 0 ;; + --chart-source) + COMPREPLY=($(compgen -W "oci repo" -- "${cur}")) + return 0 + ;; *) COMPREPLY=() ;; @@ -3345,7 +3413,7 @@ _stackablectl() { return 0 ;; stackablectl__operator__install) - opts="-c -l -d -s -r -h -V --operator-ns --operator-namespace --cluster --cluster-name --cluster-nodes --cluster-cp-nodes --log-level --no-cache --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --help --version ..." + opts="-c -l -d -s -r -h -V --operator-ns --operator-namespace --cluster --cluster-name --cluster-nodes --cluster-cp-nodes --log-level --no-cache --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --chart-source --help --version ..." if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) return 0 @@ -3489,6 +3557,10 @@ _stackablectl() { COMPREPLY=($(compgen -f "${cur}")) return 0 ;; + --chart-source) + COMPREPLY=($(compgen -W "oci repo" -- "${cur}")) + return 0 + ;; *) COMPREPLY=() ;; @@ -3497,7 +3569,7 @@ _stackablectl() { return 0 ;; stackablectl__operator__installed) - opts="-o -l -d -s -r -h -V --output --operator-ns --operator-namespace --log-level --no-cache --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --help --version" + opts="-o -l -d -s -r -h -V --output --operator-ns --operator-namespace --log-level --no-cache --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --chart-source --help --version" if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) return 0 @@ -3629,6 +3701,10 @@ _stackablectl() { COMPREPLY=($(compgen -f "${cur}")) return 0 ;; + --chart-source) + COMPREPLY=($(compgen -W "oci repo" -- "${cur}")) + return 0 + ;; *) COMPREPLY=() ;; @@ -3637,7 +3713,7 @@ _stackablectl() { return 0 ;; stackablectl__operator__list) - opts="-o -l -d -s -r -h -V --output --log-level --no-cache --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --help --version" + opts="-o -l -d -s -r -h -V --output --log-level --no-cache --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --chart-source --help --version" if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) return 0 @@ -3761,6 +3837,10 @@ _stackablectl() { COMPREPLY=($(compgen -f "${cur}")) return 0 ;; + --chart-source) + COMPREPLY=($(compgen -W "oci repo" -- "${cur}")) + return 0 + ;; *) COMPREPLY=() ;; @@ -3769,7 +3849,7 @@ _stackablectl() { return 0 ;; stackablectl__operator__uninstall) - opts="-l -d -s -r -h -V --operator-ns --operator-namespace --log-level --no-cache --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --help --version ..." + opts="-l -d -s -r -h -V --operator-ns --operator-namespace --log-level --no-cache --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --chart-source --help --version ..." if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) return 0 @@ -3893,6 +3973,10 @@ _stackablectl() { COMPREPLY=($(compgen -f "${cur}")) return 0 ;; + --chart-source) + COMPREPLY=($(compgen -W "oci repo" -- "${cur}")) + return 0 + ;; *) COMPREPLY=() ;; @@ -3901,7 +3985,7 @@ _stackablectl() { return 0 ;; stackablectl__release) - opts="-l -d -s -r -h -V --log-level --no-cache --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --help --version list describe install uninstall help" + opts="-l -d -s -r -h -V --log-level --no-cache --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --chart-source --help --version list describe install uninstall help" if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) return 0 @@ -4017,6 +4101,10 @@ _stackablectl() { COMPREPLY=($(compgen -f "${cur}")) return 0 ;; + --chart-source) + COMPREPLY=($(compgen -W "oci repo" -- "${cur}")) + return 0 + ;; *) COMPREPLY=() ;; @@ -4025,7 +4113,7 @@ _stackablectl() { return 0 ;; stackablectl__release__describe) - opts="-o -l -d -s -r -h -V --output --log-level --no-cache --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --help --version " + opts="-o -l -d -s -r -h -V --output --log-level --no-cache --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --chart-source --help --version " if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) return 0 @@ -4149,6 +4237,10 @@ _stackablectl() { COMPREPLY=($(compgen -f "${cur}")) return 0 ;; + --chart-source) + COMPREPLY=($(compgen -W "oci repo" -- "${cur}")) + return 0 + ;; *) COMPREPLY=() ;; @@ -4241,7 +4333,7 @@ _stackablectl() { return 0 ;; stackablectl__release__install) - opts="-i -e -c -l -d -s -r -h -V --include --exclude --operator-ns --operator-namespace --cluster --cluster-name --cluster-nodes --cluster-cp-nodes --log-level --no-cache --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --help --version " + opts="-i -e -c -l -d -s -r -h -V --include --exclude --operator-ns --operator-namespace --cluster --cluster-name --cluster-nodes --cluster-cp-nodes --log-level --no-cache --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --chart-source --help --version " if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) return 0 @@ -4401,6 +4493,10 @@ _stackablectl() { COMPREPLY=($(compgen -f "${cur}")) return 0 ;; + --chart-source) + COMPREPLY=($(compgen -W "oci repo" -- "${cur}")) + return 0 + ;; *) COMPREPLY=() ;; @@ -4409,7 +4505,7 @@ _stackablectl() { return 0 ;; stackablectl__release__list) - opts="-o -l -d -s -r -h -V --output --log-level --no-cache --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --help --version" + opts="-o -l -d -s -r -h -V --output --log-level --no-cache --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --chart-source --help --version" if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) return 0 @@ -4533,6 +4629,10 @@ _stackablectl() { COMPREPLY=($(compgen -f "${cur}")) return 0 ;; + --chart-source) + COMPREPLY=($(compgen -W "oci repo" -- "${cur}")) + return 0 + ;; *) COMPREPLY=() ;; @@ -4541,7 +4641,7 @@ _stackablectl() { return 0 ;; stackablectl__release__uninstall) - opts="-l -d -s -r -h -V --operator-ns --operator-namespace --log-level --no-cache --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --help --version " + opts="-l -d -s -r -h -V --operator-ns --operator-namespace --log-level --no-cache --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --chart-source --help --version " if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) return 0 @@ -4665,6 +4765,10 @@ _stackablectl() { COMPREPLY=($(compgen -f "${cur}")) return 0 ;; + --chart-source) + COMPREPLY=($(compgen -W "oci repo" -- "${cur}")) + return 0 + ;; *) COMPREPLY=() ;; @@ -4673,7 +4777,7 @@ _stackablectl() { return 0 ;; stackablectl__stack) - opts="-l -d -s -r -h -V --release --log-level --no-cache --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --help --version list describe install help" + opts="-l -d -s -r -h -V --release --log-level --no-cache --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --chart-source --help --version list describe install help" if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) return 0 @@ -4793,6 +4897,10 @@ _stackablectl() { COMPREPLY=($(compgen -f "${cur}")) return 0 ;; + --chart-source) + COMPREPLY=($(compgen -W "oci repo" -- "${cur}")) + return 0 + ;; *) COMPREPLY=() ;; @@ -4801,7 +4909,7 @@ _stackablectl() { return 0 ;; stackablectl__stack__describe) - opts="-o -l -d -s -r -h -V --output --release --log-level --no-cache --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --help --version " + opts="-o -l -d -s -r -h -V --output --release --log-level --no-cache --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --chart-source --help --version " if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) return 0 @@ -4929,6 +5037,10 @@ _stackablectl() { COMPREPLY=($(compgen -f "${cur}")) return 0 ;; + --chart-source) + COMPREPLY=($(compgen -W "oci repo" -- "${cur}")) + return 0 + ;; *) COMPREPLY=() ;; @@ -5007,7 +5119,7 @@ _stackablectl() { return 0 ;; stackablectl__stack__install) - opts="-c -n -l -d -s -r -h -V --skip-release --stack-parameters --parameters --cluster --cluster-name --cluster-nodes --cluster-cp-nodes --operator-ns --operator-namespace --product-ns --product-namespace --release --log-level --no-cache --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --help --version " + opts="-c -n -l -d -s -r -h -V --skip-release --stack-parameters --parameters --cluster --cluster-name --cluster-nodes --cluster-cp-nodes --operator-ns --operator-namespace --product-ns --product-namespace --release --log-level --no-cache --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --chart-source --help --version " if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) return 0 @@ -5175,6 +5287,10 @@ _stackablectl() { COMPREPLY=($(compgen -f "${cur}")) return 0 ;; + --chart-source) + COMPREPLY=($(compgen -W "oci repo" -- "${cur}")) + return 0 + ;; *) COMPREPLY=() ;; @@ -5183,7 +5299,7 @@ _stackablectl() { return 0 ;; stackablectl__stack__list) - opts="-o -l -d -s -r -h -V --output --release --log-level --no-cache --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --help --version" + opts="-o -l -d -s -r -h -V --output --release --log-level --no-cache --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --chart-source --help --version" if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) return 0 @@ -5311,6 +5427,10 @@ _stackablectl() { COMPREPLY=($(compgen -f "${cur}")) return 0 ;; + --chart-source) + COMPREPLY=($(compgen -W "oci repo" -- "${cur}")) + return 0 + ;; *) COMPREPLY=() ;; @@ -5319,7 +5439,7 @@ _stackablectl() { return 0 ;; stackablectl__stacklet) - opts="-l -d -s -r -h -V --log-level --no-cache --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --help --version credentials list help" + opts="-l -d -s -r -h -V --log-level --no-cache --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --chart-source --help --version credentials list help" if [[ ${cur} == -* || ${COMP_CWORD} -eq 2 ]] ; then COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) return 0 @@ -5435,6 +5555,10 @@ _stackablectl() { COMPREPLY=($(compgen -f "${cur}")) return 0 ;; + --chart-source) + COMPREPLY=($(compgen -W "oci repo" -- "${cur}")) + return 0 + ;; *) COMPREPLY=() ;; @@ -5443,7 +5567,7 @@ _stackablectl() { return 0 ;; stackablectl__stacklet__credentials) - opts="-n -l -d -s -r -h -V --product-ns --product-namespace --log-level --no-cache --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --help --version " + opts="-n -l -d -s -r -h -V --product-ns --product-namespace --log-level --no-cache --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --chart-source --help --version " if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) return 0 @@ -5571,6 +5695,10 @@ _stackablectl() { COMPREPLY=($(compgen -f "${cur}")) return 0 ;; + --chart-source) + COMPREPLY=($(compgen -W "oci repo" -- "${cur}")) + return 0 + ;; *) COMPREPLY=() ;; @@ -5635,7 +5763,7 @@ _stackablectl() { return 0 ;; stackablectl__stacklet__list) - opts="-o -n -l -d -s -r -h -V --output --operator-ns --operator-namespace --product-ns --product-namespace --log-level --no-cache --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --help --version" + opts="-o -n -l -d -s -r -h -V --output --operator-ns --operator-namespace --product-ns --product-namespace --log-level --no-cache --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --chart-source --help --version" if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) return 0 @@ -5779,6 +5907,10 @@ _stackablectl() { COMPREPLY=($(compgen -f "${cur}")) return 0 ;; + --chart-source) + COMPREPLY=($(compgen -W "oci repo" -- "${cur}")) + return 0 + ;; *) COMPREPLY=() ;; diff --git a/extra/completions/stackablectl.elv b/extra/completions/stackablectl.elv index f237a783..a15e2228 100644 --- a/extra/completions/stackablectl.elv +++ b/extra/completions/stackablectl.elv @@ -29,6 +29,7 @@ set edit:completion:arg-completer[stackablectl] = {|@words| cand --helm-repo-stable 'Provide a custom Helm stable repository URL' cand --helm-repo-test 'Provide a custom Helm test repository URL' cand --helm-repo-dev 'Provide a custom Helm dev repository URL' + cand --chart-source 'Source the charts from either a OCI registry or from index.yaml-based repositories' cand --no-cache 'Do not cache the remote (default) demo, stack and release files' cand -h 'Print help (see more with ''--help'')' cand --help 'Print help (see more with ''--help'')' @@ -56,6 +57,7 @@ set edit:completion:arg-completer[stackablectl] = {|@words| cand --helm-repo-stable 'Provide a custom Helm stable repository URL' cand --helm-repo-test 'Provide a custom Helm test repository URL' cand --helm-repo-dev 'Provide a custom Helm dev repository URL' + cand --chart-source 'Source the charts from either a OCI registry or from index.yaml-based repositories' cand --no-cache 'Do not cache the remote (default) demo, stack and release files' cand -h 'Print help (see more with ''--help'')' cand --help 'Print help (see more with ''--help'')' @@ -82,6 +84,7 @@ set edit:completion:arg-completer[stackablectl] = {|@words| cand --helm-repo-stable 'Provide a custom Helm stable repository URL' cand --helm-repo-test 'Provide a custom Helm test repository URL' cand --helm-repo-dev 'Provide a custom Helm dev repository URL' + cand --chart-source 'Source the charts from either a OCI registry or from index.yaml-based repositories' cand --no-cache 'Do not cache the remote (default) demo, stack and release files' cand -h 'Print help (see more with ''--help'')' cand --help 'Print help (see more with ''--help'')' @@ -102,6 +105,7 @@ set edit:completion:arg-completer[stackablectl] = {|@words| cand --helm-repo-stable 'Provide a custom Helm stable repository URL' cand --helm-repo-test 'Provide a custom Helm test repository URL' cand --helm-repo-dev 'Provide a custom Helm dev repository URL' + cand --chart-source 'Source the charts from either a OCI registry or from index.yaml-based repositories' cand --no-cache 'Do not cache the remote (default) demo, stack and release files' cand -h 'Print help (see more with ''--help'')' cand --help 'Print help (see more with ''--help'')' @@ -127,6 +131,7 @@ set edit:completion:arg-completer[stackablectl] = {|@words| cand --helm-repo-stable 'Provide a custom Helm stable repository URL' cand --helm-repo-test 'Provide a custom Helm test repository URL' cand --helm-repo-dev 'Provide a custom Helm dev repository URL' + cand --chart-source 'Source the charts from either a OCI registry or from index.yaml-based repositories' cand --no-cache 'Do not cache the remote (default) demo, stack and release files' cand -h 'Print help (see more with ''--help'')' cand --help 'Print help (see more with ''--help'')' @@ -147,6 +152,7 @@ set edit:completion:arg-completer[stackablectl] = {|@words| cand --helm-repo-stable 'Provide a custom Helm stable repository URL' cand --helm-repo-test 'Provide a custom Helm test repository URL' cand --helm-repo-dev 'Provide a custom Helm dev repository URL' + cand --chart-source 'Source the charts from either a OCI registry or from index.yaml-based repositories' cand --no-cache 'Do not cache the remote (default) demo, stack and release files' cand -h 'Print help (see more with ''--help'')' cand --help 'Print help (see more with ''--help'')' @@ -169,6 +175,7 @@ set edit:completion:arg-completer[stackablectl] = {|@words| cand --helm-repo-stable 'Provide a custom Helm stable repository URL' cand --helm-repo-test 'Provide a custom Helm test repository URL' cand --helm-repo-dev 'Provide a custom Helm dev repository URL' + cand --chart-source 'Source the charts from either a OCI registry or from index.yaml-based repositories' cand --no-cache 'Do not cache the remote (default) demo, stack and release files' cand -h 'Print help (see more with ''--help'')' cand --help 'Print help (see more with ''--help'')' @@ -207,6 +214,7 @@ set edit:completion:arg-completer[stackablectl] = {|@words| cand --helm-repo-stable 'Provide a custom Helm stable repository URL' cand --helm-repo-test 'Provide a custom Helm test repository URL' cand --helm-repo-dev 'Provide a custom Helm dev repository URL' + cand --chart-source 'Source the charts from either a OCI registry or from index.yaml-based repositories' cand --no-cache 'Do not cache the remote (default) demo, stack and release files' cand -h 'Print help (see more with ''--help'')' cand --help 'Print help (see more with ''--help'')' @@ -232,6 +240,7 @@ set edit:completion:arg-completer[stackablectl] = {|@words| cand --helm-repo-stable 'Provide a custom Helm stable repository URL' cand --helm-repo-test 'Provide a custom Helm test repository URL' cand --helm-repo-dev 'Provide a custom Helm dev repository URL' + cand --chart-source 'Source the charts from either a OCI registry or from index.yaml-based repositories' cand --no-cache 'Do not cache the remote (default) demo, stack and release files' cand -h 'Print help (see more with ''--help'')' cand --help 'Print help (see more with ''--help'')' @@ -252,6 +261,7 @@ set edit:completion:arg-completer[stackablectl] = {|@words| cand --helm-repo-stable 'Provide a custom Helm stable repository URL' cand --helm-repo-test 'Provide a custom Helm test repository URL' cand --helm-repo-dev 'Provide a custom Helm dev repository URL' + cand --chart-source 'Source the charts from either a OCI registry or from index.yaml-based repositories' cand --no-cache 'Do not cache the remote (default) demo, stack and release files' cand -h 'Print help (see more with ''--help'')' cand --help 'Print help (see more with ''--help'')' @@ -281,6 +291,7 @@ set edit:completion:arg-completer[stackablectl] = {|@words| cand --helm-repo-stable 'Provide a custom Helm stable repository URL' cand --helm-repo-test 'Provide a custom Helm test repository URL' cand --helm-repo-dev 'Provide a custom Helm dev repository URL' + cand --chart-source 'Source the charts from either a OCI registry or from index.yaml-based repositories' cand --no-cache 'Do not cache the remote (default) demo, stack and release files' cand -h 'Print help (see more with ''--help'')' cand --help 'Print help (see more with ''--help'')' @@ -301,6 +312,7 @@ set edit:completion:arg-completer[stackablectl] = {|@words| cand --helm-repo-stable 'Provide a custom Helm stable repository URL' cand --helm-repo-test 'Provide a custom Helm test repository URL' cand --helm-repo-dev 'Provide a custom Helm dev repository URL' + cand --chart-source 'Source the charts from either a OCI registry or from index.yaml-based repositories' cand --no-cache 'Do not cache the remote (default) demo, stack and release files' cand -h 'Print help (see more with ''--help'')' cand --help 'Print help (see more with ''--help'')' @@ -337,6 +349,7 @@ set edit:completion:arg-completer[stackablectl] = {|@words| cand --helm-repo-stable 'Provide a custom Helm stable repository URL' cand --helm-repo-test 'Provide a custom Helm test repository URL' cand --helm-repo-dev 'Provide a custom Helm dev repository URL' + cand --chart-source 'Source the charts from either a OCI registry or from index.yaml-based repositories' cand --no-cache 'Do not cache the remote (default) demo, stack and release files' cand -h 'Print help (see more with ''--help'')' cand --help 'Print help (see more with ''--help'')' @@ -362,6 +375,7 @@ set edit:completion:arg-completer[stackablectl] = {|@words| cand --helm-repo-stable 'Provide a custom Helm stable repository URL' cand --helm-repo-test 'Provide a custom Helm test repository URL' cand --helm-repo-dev 'Provide a custom Helm dev repository URL' + cand --chart-source 'Source the charts from either a OCI registry or from index.yaml-based repositories' cand --no-cache 'Do not cache the remote (default) demo, stack and release files' cand -h 'Print help (see more with ''--help'')' cand --help 'Print help (see more with ''--help'')' @@ -383,6 +397,7 @@ set edit:completion:arg-completer[stackablectl] = {|@words| cand --helm-repo-stable 'Provide a custom Helm stable repository URL' cand --helm-repo-test 'Provide a custom Helm test repository URL' cand --helm-repo-dev 'Provide a custom Helm dev repository URL' + cand --chart-source 'Source the charts from either a OCI registry or from index.yaml-based repositories' cand --no-cache 'Do not cache the remote (default) demo, stack and release files' cand -h 'Print help (see more with ''--help'')' cand --help 'Print help (see more with ''--help'')' @@ -414,6 +429,7 @@ set edit:completion:arg-completer[stackablectl] = {|@words| cand --helm-repo-stable 'Provide a custom Helm stable repository URL' cand --helm-repo-test 'Provide a custom Helm test repository URL' cand --helm-repo-dev 'Provide a custom Helm dev repository URL' + cand --chart-source 'Source the charts from either a OCI registry or from index.yaml-based repositories' cand --skip-release 'Skip the installation of the release during the stack install process' cand --no-cache 'Do not cache the remote (default) demo, stack and release files' cand -h 'Print help (see more with ''--help'')' @@ -447,6 +463,7 @@ set edit:completion:arg-completer[stackablectl] = {|@words| cand --helm-repo-stable 'Provide a custom Helm stable repository URL' cand --helm-repo-test 'Provide a custom Helm test repository URL' cand --helm-repo-dev 'Provide a custom Helm dev repository URL' + cand --chart-source 'Source the charts from either a OCI registry or from index.yaml-based repositories' cand --no-cache 'Do not cache the remote (default) demo, stack and release files' cand -h 'Print help (see more with ''--help'')' cand --help 'Print help (see more with ''--help'')' @@ -471,6 +488,7 @@ set edit:completion:arg-completer[stackablectl] = {|@words| cand --helm-repo-stable 'Provide a custom Helm stable repository URL' cand --helm-repo-test 'Provide a custom Helm test repository URL' cand --helm-repo-dev 'Provide a custom Helm dev repository URL' + cand --chart-source 'Source the charts from either a OCI registry or from index.yaml-based repositories' cand --no-cache 'Do not cache the remote (default) demo, stack and release files' cand -h 'Print help (see more with ''--help'')' cand --help 'Print help (see more with ''--help'')' @@ -496,6 +514,7 @@ set edit:completion:arg-completer[stackablectl] = {|@words| cand --helm-repo-stable 'Provide a custom Helm stable repository URL' cand --helm-repo-test 'Provide a custom Helm test repository URL' cand --helm-repo-dev 'Provide a custom Helm dev repository URL' + cand --chart-source 'Source the charts from either a OCI registry or from index.yaml-based repositories' cand --no-cache 'Do not cache the remote (default) demo, stack and release files' cand -h 'Print help (see more with ''--help'')' cand --help 'Print help (see more with ''--help'')' @@ -526,6 +545,7 @@ set edit:completion:arg-completer[stackablectl] = {|@words| cand --helm-repo-stable 'Provide a custom Helm stable repository URL' cand --helm-repo-test 'Provide a custom Helm test repository URL' cand --helm-repo-dev 'Provide a custom Helm dev repository URL' + cand --chart-source 'Source the charts from either a OCI registry or from index.yaml-based repositories' cand --no-cache 'Do not cache the remote (default) demo, stack and release files' cand -h 'Print help (see more with ''--help'')' cand --help 'Print help (see more with ''--help'')' @@ -551,6 +571,7 @@ set edit:completion:arg-completer[stackablectl] = {|@words| cand --helm-repo-stable 'Provide a custom Helm stable repository URL' cand --helm-repo-test 'Provide a custom Helm test repository URL' cand --helm-repo-dev 'Provide a custom Helm dev repository URL' + cand --chart-source 'Source the charts from either a OCI registry or from index.yaml-based repositories' cand --no-cache 'Do not cache the remote (default) demo, stack and release files' cand -h 'Print help (see more with ''--help'')' cand --help 'Print help (see more with ''--help'')' @@ -572,6 +593,7 @@ set edit:completion:arg-completer[stackablectl] = {|@words| cand --helm-repo-stable 'Provide a custom Helm stable repository URL' cand --helm-repo-test 'Provide a custom Helm test repository URL' cand --helm-repo-dev 'Provide a custom Helm dev repository URL' + cand --chart-source 'Source the charts from either a OCI registry or from index.yaml-based repositories' cand --no-cache 'Do not cache the remote (default) demo, stack and release files' cand -h 'Print help (see more with ''--help'')' cand --help 'Print help (see more with ''--help'')' @@ -603,6 +625,7 @@ set edit:completion:arg-completer[stackablectl] = {|@words| cand --helm-repo-stable 'Provide a custom Helm stable repository URL' cand --helm-repo-test 'Provide a custom Helm test repository URL' cand --helm-repo-dev 'Provide a custom Helm dev repository URL' + cand --chart-source 'Source the charts from either a OCI registry or from index.yaml-based repositories' cand --skip-release 'Skip the installation of the release during the stack install process' cand --no-cache 'Do not cache the remote (default) demo, stack and release files' cand -h 'Print help (see more with ''--help'')' @@ -636,6 +659,7 @@ set edit:completion:arg-completer[stackablectl] = {|@words| cand --helm-repo-stable 'Provide a custom Helm stable repository URL' cand --helm-repo-test 'Provide a custom Helm test repository URL' cand --helm-repo-dev 'Provide a custom Helm dev repository URL' + cand --chart-source 'Source the charts from either a OCI registry or from index.yaml-based repositories' cand --no-cache 'Do not cache the remote (default) demo, stack and release files' cand -h 'Print help (see more with ''--help'')' cand --help 'Print help (see more with ''--help'')' @@ -660,6 +684,7 @@ set edit:completion:arg-completer[stackablectl] = {|@words| cand --helm-repo-stable 'Provide a custom Helm stable repository URL' cand --helm-repo-test 'Provide a custom Helm test repository URL' cand --helm-repo-dev 'Provide a custom Helm dev repository URL' + cand --chart-source 'Source the charts from either a OCI registry or from index.yaml-based repositories' cand --no-cache 'Do not cache the remote (default) demo, stack and release files' cand -h 'Print help (see more with ''--help'')' cand --help 'Print help (see more with ''--help'')' @@ -678,6 +703,7 @@ set edit:completion:arg-completer[stackablectl] = {|@words| cand --helm-repo-stable 'Provide a custom Helm stable repository URL' cand --helm-repo-test 'Provide a custom Helm test repository URL' cand --helm-repo-dev 'Provide a custom Helm dev repository URL' + cand --chart-source 'Source the charts from either a OCI registry or from index.yaml-based repositories' cand --no-cache 'Do not cache the remote (default) demo, stack and release files' cand -h 'Print help (see more with ''--help'')' cand --help 'Print help (see more with ''--help'')' @@ -696,6 +722,7 @@ set edit:completion:arg-completer[stackablectl] = {|@words| cand --helm-repo-stable 'Provide a custom Helm stable repository URL' cand --helm-repo-test 'Provide a custom Helm test repository URL' cand --helm-repo-dev 'Provide a custom Helm dev repository URL' + cand --chart-source 'Source the charts from either a OCI registry or from index.yaml-based repositories' cand --no-cache 'Do not cache the remote (default) demo, stack and release files' cand -h 'Print help (see more with ''--help'')' cand --help 'Print help (see more with ''--help'')' @@ -714,6 +741,7 @@ set edit:completion:arg-completer[stackablectl] = {|@words| cand --helm-repo-stable 'Provide a custom Helm stable repository URL' cand --helm-repo-test 'Provide a custom Helm test repository URL' cand --helm-repo-dev 'Provide a custom Helm dev repository URL' + cand --chart-source 'Source the charts from either a OCI registry or from index.yaml-based repositories' cand --no-cache 'Do not cache the remote (default) demo, stack and release files' cand -h 'Print help (see more with ''--help'')' cand --help 'Print help (see more with ''--help'')' @@ -732,6 +760,7 @@ set edit:completion:arg-completer[stackablectl] = {|@words| cand --helm-repo-stable 'Provide a custom Helm stable repository URL' cand --helm-repo-test 'Provide a custom Helm test repository URL' cand --helm-repo-dev 'Provide a custom Helm dev repository URL' + cand --chart-source 'Source the charts from either a OCI registry or from index.yaml-based repositories' cand --no-cache 'Do not cache the remote (default) demo, stack and release files' cand -h 'Print help (see more with ''--help'')' cand --help 'Print help (see more with ''--help'')' @@ -770,6 +799,7 @@ set edit:completion:arg-completer[stackablectl] = {|@words| cand --helm-repo-stable 'Provide a custom Helm stable repository URL' cand --helm-repo-test 'Provide a custom Helm test repository URL' cand --helm-repo-dev 'Provide a custom Helm dev repository URL' + cand --chart-source 'Source the charts from either a OCI registry or from index.yaml-based repositories' cand --no-cache 'Do not cache the remote (default) demo, stack and release files' cand -h 'Print help (see more with ''--help'')' cand --help 'Print help (see more with ''--help'')' @@ -791,6 +821,7 @@ set edit:completion:arg-completer[stackablectl] = {|@words| cand --helm-repo-stable 'Provide a custom Helm stable repository URL' cand --helm-repo-test 'Provide a custom Helm test repository URL' cand --helm-repo-dev 'Provide a custom Helm dev repository URL' + cand --chart-source 'Source the charts from either a OCI registry or from index.yaml-based repositories' cand --no-cache 'Do not cache the remote (default) demo, stack and release files' cand -h 'Print help (see more with ''--help'')' cand --help 'Print help (see more with ''--help'')' @@ -809,6 +840,7 @@ set edit:completion:arg-completer[stackablectl] = {|@words| cand --helm-repo-stable 'Provide a custom Helm stable repository URL' cand --helm-repo-test 'Provide a custom Helm test repository URL' cand --helm-repo-dev 'Provide a custom Helm dev repository URL' + cand --chart-source 'Source the charts from either a OCI registry or from index.yaml-based repositories' cand --old 'Only remove outdated files in the cache' cand --outdated 'Only remove outdated files in the cache' cand --no-cache 'Do not cache the remote (default) demo, stack and release files' @@ -845,6 +877,7 @@ set edit:completion:arg-completer[stackablectl] = {|@words| cand --helm-repo-stable 'Provide a custom Helm stable repository URL' cand --helm-repo-test 'Provide a custom Helm test repository URL' cand --helm-repo-dev 'Provide a custom Helm dev repository URL' + cand --chart-source 'Source the charts from either a OCI registry or from index.yaml-based repositories' cand --no-cache 'Do not cache the remote (default) demo, stack and release files' cand -h 'Print help (see more with ''--help'')' cand --help 'Print help (see more with ''--help'')' diff --git a/extra/completions/stackablectl.fish b/extra/completions/stackablectl.fish index 99eb4781..12782682 100644 --- a/extra/completions/stackablectl.fish +++ b/extra/completions/stackablectl.fish @@ -1,6 +1,6 @@ # Print an optspec for argparse to handle cmd's options that are independent of any subcommand. function __fish_stackablectl_global_optspecs - string join \n l/log-level= no-cache d/demo-file= s/stack-file= r/release-file= helm-repo-stable= helm-repo-test= helm-repo-dev= h/help V/version + string join \n l/log-level= no-cache d/demo-file= s/stack-file= r/release-file= helm-repo-stable= helm-repo-test= helm-repo-dev= chart-source= h/help V/version end function __fish_stackablectl_needs_command @@ -31,6 +31,7 @@ complete -c stackablectl -n "__fish_stackablectl_needs_command" -s r -l release- complete -c stackablectl -n "__fish_stackablectl_needs_command" -l helm-repo-stable -d 'Provide a custom Helm stable repository URL' -r -f complete -c stackablectl -n "__fish_stackablectl_needs_command" -l helm-repo-test -d 'Provide a custom Helm test repository URL' -r -f complete -c stackablectl -n "__fish_stackablectl_needs_command" -l helm-repo-dev -d 'Provide a custom Helm dev repository URL' -r -f +complete -c stackablectl -n "__fish_stackablectl_needs_command" -l chart-source -d 'Source the charts from either a OCI registry or from index.yaml-based repositories' -r -f -a "{oci\t'OCI registry',repo\t'index.yaml-based repositories: resolution (dev, test, stable) is based on the version and thus will be operator-specific'}" complete -c stackablectl -n "__fish_stackablectl_needs_command" -l no-cache -d 'Do not cache the remote (default) demo, stack and release files' complete -c stackablectl -n "__fish_stackablectl_needs_command" -s h -l help -d 'Print help (see more with \'--help\')' complete -c stackablectl -n "__fish_stackablectl_needs_command" -s V -l version -d 'Print version' @@ -50,6 +51,7 @@ complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and not __fish_seen_subcommand_from list describe install uninstall installed help" -l helm-repo-stable -d 'Provide a custom Helm stable repository URL' -r -f complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and not __fish_seen_subcommand_from list describe install uninstall installed help" -l helm-repo-test -d 'Provide a custom Helm test repository URL' -r -f complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and not __fish_seen_subcommand_from list describe install uninstall installed help" -l helm-repo-dev -d 'Provide a custom Helm dev repository URL' -r -f +complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and not __fish_seen_subcommand_from list describe install uninstall installed help" -l chart-source -d 'Source the charts from either a OCI registry or from index.yaml-based repositories' -r -f -a "{oci\t'OCI registry',repo\t'index.yaml-based repositories: resolution (dev, test, stable) is based on the version and thus will be operator-specific'}" complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and not __fish_seen_subcommand_from list describe install uninstall installed help" -l no-cache -d 'Do not cache the remote (default) demo, stack and release files' complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and not __fish_seen_subcommand_from list describe install uninstall installed help" -s h -l help -d 'Print help (see more with \'--help\')' complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and not __fish_seen_subcommand_from list describe install uninstall installed help" -s V -l version -d 'Print version' @@ -67,6 +69,7 @@ complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from list" -l helm-repo-stable -d 'Provide a custom Helm stable repository URL' -r -f complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from list" -l helm-repo-test -d 'Provide a custom Helm test repository URL' -r -f complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from list" -l helm-repo-dev -d 'Provide a custom Helm dev repository URL' -r -f +complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from list" -l chart-source -d 'Source the charts from either a OCI registry or from index.yaml-based repositories' -r -f -a "{oci\t'OCI registry',repo\t'index.yaml-based repositories: resolution (dev, test, stable) is based on the version and thus will be operator-specific'}" complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from list" -l no-cache -d 'Do not cache the remote (default) demo, stack and release files' complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from list" -s h -l help -d 'Print help (see more with \'--help\')' complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from list" -s V -l version -d 'Print version' @@ -78,6 +81,7 @@ complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from describe" -l helm-repo-stable -d 'Provide a custom Helm stable repository URL' -r -f complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from describe" -l helm-repo-test -d 'Provide a custom Helm test repository URL' -r -f complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from describe" -l helm-repo-dev -d 'Provide a custom Helm dev repository URL' -r -f +complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from describe" -l chart-source -d 'Source the charts from either a OCI registry or from index.yaml-based repositories' -r -f -a "{oci\t'OCI registry',repo\t'index.yaml-based repositories: resolution (dev, test, stable) is based on the version and thus will be operator-specific'}" complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from describe" -l no-cache -d 'Do not cache the remote (default) demo, stack and release files' complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from describe" -s h -l help -d 'Print help (see more with \'--help\')' complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from describe" -s V -l version -d 'Print version' @@ -93,6 +97,7 @@ complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from install" -l helm-repo-stable -d 'Provide a custom Helm stable repository URL' -r -f complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from install" -l helm-repo-test -d 'Provide a custom Helm test repository URL' -r -f complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from install" -l helm-repo-dev -d 'Provide a custom Helm dev repository URL' -r -f +complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from install" -l chart-source -d 'Source the charts from either a OCI registry or from index.yaml-based repositories' -r -f -a "{oci\t'OCI registry',repo\t'index.yaml-based repositories: resolution (dev, test, stable) is based on the version and thus will be operator-specific'}" complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from install" -l no-cache -d 'Do not cache the remote (default) demo, stack and release files' complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from install" -s h -l help -d 'Print help (see more with \'--help\')' complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from install" -s V -l version -d 'Print version' @@ -104,6 +109,7 @@ complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from uninstall" -l helm-repo-stable -d 'Provide a custom Helm stable repository URL' -r -f complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from uninstall" -l helm-repo-test -d 'Provide a custom Helm test repository URL' -r -f complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from uninstall" -l helm-repo-dev -d 'Provide a custom Helm dev repository URL' -r -f +complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from uninstall" -l chart-source -d 'Source the charts from either a OCI registry or from index.yaml-based repositories' -r -f -a "{oci\t'OCI registry',repo\t'index.yaml-based repositories: resolution (dev, test, stable) is based on the version and thus will be operator-specific'}" complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from uninstall" -l no-cache -d 'Do not cache the remote (default) demo, stack and release files' complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from uninstall" -s h -l help -d 'Print help (see more with \'--help\')' complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from uninstall" -s V -l version -d 'Print version' @@ -116,6 +122,7 @@ complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from installed" -l helm-repo-stable -d 'Provide a custom Helm stable repository URL' -r -f complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from installed" -l helm-repo-test -d 'Provide a custom Helm test repository URL' -r -f complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from installed" -l helm-repo-dev -d 'Provide a custom Helm dev repository URL' -r -f +complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from installed" -l chart-source -d 'Source the charts from either a OCI registry or from index.yaml-based repositories' -r -f -a "{oci\t'OCI registry',repo\t'index.yaml-based repositories: resolution (dev, test, stable) is based on the version and thus will be operator-specific'}" complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from installed" -l no-cache -d 'Do not cache the remote (default) demo, stack and release files' complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from installed" -s h -l help -d 'Print help (see more with \'--help\')' complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from installed" -s V -l version -d 'Print version' @@ -132,6 +139,7 @@ complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and n complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and not __fish_seen_subcommand_from list describe install uninstall help" -l helm-repo-stable -d 'Provide a custom Helm stable repository URL' -r -f complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and not __fish_seen_subcommand_from list describe install uninstall help" -l helm-repo-test -d 'Provide a custom Helm test repository URL' -r -f complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and not __fish_seen_subcommand_from list describe install uninstall help" -l helm-repo-dev -d 'Provide a custom Helm dev repository URL' -r -f +complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and not __fish_seen_subcommand_from list describe install uninstall help" -l chart-source -d 'Source the charts from either a OCI registry or from index.yaml-based repositories' -r -f -a "{oci\t'OCI registry',repo\t'index.yaml-based repositories: resolution (dev, test, stable) is based on the version and thus will be operator-specific'}" complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and not __fish_seen_subcommand_from list describe install uninstall help" -l no-cache -d 'Do not cache the remote (default) demo, stack and release files' complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and not __fish_seen_subcommand_from list describe install uninstall help" -s h -l help -d 'Print help (see more with \'--help\')' complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and not __fish_seen_subcommand_from list describe install uninstall help" -s V -l version -d 'Print version' @@ -148,6 +156,7 @@ complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and _ complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and __fish_seen_subcommand_from list" -l helm-repo-stable -d 'Provide a custom Helm stable repository URL' -r -f complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and __fish_seen_subcommand_from list" -l helm-repo-test -d 'Provide a custom Helm test repository URL' -r -f complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and __fish_seen_subcommand_from list" -l helm-repo-dev -d 'Provide a custom Helm dev repository URL' -r -f +complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and __fish_seen_subcommand_from list" -l chart-source -d 'Source the charts from either a OCI registry or from index.yaml-based repositories' -r -f -a "{oci\t'OCI registry',repo\t'index.yaml-based repositories: resolution (dev, test, stable) is based on the version and thus will be operator-specific'}" complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and __fish_seen_subcommand_from list" -l no-cache -d 'Do not cache the remote (default) demo, stack and release files' complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and __fish_seen_subcommand_from list" -s h -l help -d 'Print help (see more with \'--help\')' complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and __fish_seen_subcommand_from list" -s V -l version -d 'Print version' @@ -159,6 +168,7 @@ complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and _ complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and __fish_seen_subcommand_from describe" -l helm-repo-stable -d 'Provide a custom Helm stable repository URL' -r -f complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and __fish_seen_subcommand_from describe" -l helm-repo-test -d 'Provide a custom Helm test repository URL' -r -f complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and __fish_seen_subcommand_from describe" -l helm-repo-dev -d 'Provide a custom Helm dev repository URL' -r -f +complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and __fish_seen_subcommand_from describe" -l chart-source -d 'Source the charts from either a OCI registry or from index.yaml-based repositories' -r -f -a "{oci\t'OCI registry',repo\t'index.yaml-based repositories: resolution (dev, test, stable) is based on the version and thus will be operator-specific'}" complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and __fish_seen_subcommand_from describe" -l no-cache -d 'Do not cache the remote (default) demo, stack and release files' complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and __fish_seen_subcommand_from describe" -s h -l help -d 'Print help (see more with \'--help\')' complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and __fish_seen_subcommand_from describe" -s V -l version -d 'Print version' @@ -176,6 +186,7 @@ complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and _ complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and __fish_seen_subcommand_from install" -l helm-repo-stable -d 'Provide a custom Helm stable repository URL' -r -f complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and __fish_seen_subcommand_from install" -l helm-repo-test -d 'Provide a custom Helm test repository URL' -r -f complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and __fish_seen_subcommand_from install" -l helm-repo-dev -d 'Provide a custom Helm dev repository URL' -r -f +complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and __fish_seen_subcommand_from install" -l chart-source -d 'Source the charts from either a OCI registry or from index.yaml-based repositories' -r -f -a "{oci\t'OCI registry',repo\t'index.yaml-based repositories: resolution (dev, test, stable) is based on the version and thus will be operator-specific'}" complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and __fish_seen_subcommand_from install" -l no-cache -d 'Do not cache the remote (default) demo, stack and release files' complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and __fish_seen_subcommand_from install" -s h -l help -d 'Print help (see more with \'--help\')' complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and __fish_seen_subcommand_from install" -s V -l version -d 'Print version' @@ -187,6 +198,7 @@ complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and _ complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and __fish_seen_subcommand_from uninstall" -l helm-repo-stable -d 'Provide a custom Helm stable repository URL' -r -f complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and __fish_seen_subcommand_from uninstall" -l helm-repo-test -d 'Provide a custom Helm test repository URL' -r -f complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and __fish_seen_subcommand_from uninstall" -l helm-repo-dev -d 'Provide a custom Helm dev repository URL' -r -f +complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and __fish_seen_subcommand_from uninstall" -l chart-source -d 'Source the charts from either a OCI registry or from index.yaml-based repositories' -r -f -a "{oci\t'OCI registry',repo\t'index.yaml-based repositories: resolution (dev, test, stable) is based on the version and thus will be operator-specific'}" complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and __fish_seen_subcommand_from uninstall" -l no-cache -d 'Do not cache the remote (default) demo, stack and release files' complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and __fish_seen_subcommand_from uninstall" -s h -l help -d 'Print help (see more with \'--help\')' complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and __fish_seen_subcommand_from uninstall" -s V -l version -d 'Print version' @@ -203,6 +215,7 @@ complete -c stackablectl -n "__fish_stackablectl_using_subcommand stack; and not complete -c stackablectl -n "__fish_stackablectl_using_subcommand stack; and not __fish_seen_subcommand_from list describe install help" -l helm-repo-stable -d 'Provide a custom Helm stable repository URL' -r -f complete -c stackablectl -n "__fish_stackablectl_using_subcommand stack; and not __fish_seen_subcommand_from list describe install help" -l helm-repo-test -d 'Provide a custom Helm test repository URL' -r -f complete -c stackablectl -n "__fish_stackablectl_using_subcommand stack; and not __fish_seen_subcommand_from list describe install help" -l helm-repo-dev -d 'Provide a custom Helm dev repository URL' -r -f +complete -c stackablectl -n "__fish_stackablectl_using_subcommand stack; and not __fish_seen_subcommand_from list describe install help" -l chart-source -d 'Source the charts from either a OCI registry or from index.yaml-based repositories' -r -f -a "{oci\t'OCI registry',repo\t'index.yaml-based repositories: resolution (dev, test, stable) is based on the version and thus will be operator-specific'}" complete -c stackablectl -n "__fish_stackablectl_using_subcommand stack; and not __fish_seen_subcommand_from list describe install help" -l no-cache -d 'Do not cache the remote (default) demo, stack and release files' complete -c stackablectl -n "__fish_stackablectl_using_subcommand stack; and not __fish_seen_subcommand_from list describe install help" -s h -l help -d 'Print help (see more with \'--help\')' complete -c stackablectl -n "__fish_stackablectl_using_subcommand stack; and not __fish_seen_subcommand_from list describe install help" -s V -l version -d 'Print version' @@ -219,6 +232,7 @@ complete -c stackablectl -n "__fish_stackablectl_using_subcommand stack; and __f complete -c stackablectl -n "__fish_stackablectl_using_subcommand stack; and __fish_seen_subcommand_from list" -l helm-repo-stable -d 'Provide a custom Helm stable repository URL' -r -f complete -c stackablectl -n "__fish_stackablectl_using_subcommand stack; and __fish_seen_subcommand_from list" -l helm-repo-test -d 'Provide a custom Helm test repository URL' -r -f complete -c stackablectl -n "__fish_stackablectl_using_subcommand stack; and __fish_seen_subcommand_from list" -l helm-repo-dev -d 'Provide a custom Helm dev repository URL' -r -f +complete -c stackablectl -n "__fish_stackablectl_using_subcommand stack; and __fish_seen_subcommand_from list" -l chart-source -d 'Source the charts from either a OCI registry or from index.yaml-based repositories' -r -f -a "{oci\t'OCI registry',repo\t'index.yaml-based repositories: resolution (dev, test, stable) is based on the version and thus will be operator-specific'}" complete -c stackablectl -n "__fish_stackablectl_using_subcommand stack; and __fish_seen_subcommand_from list" -l no-cache -d 'Do not cache the remote (default) demo, stack and release files' complete -c stackablectl -n "__fish_stackablectl_using_subcommand stack; and __fish_seen_subcommand_from list" -s h -l help -d 'Print help (see more with \'--help\')' complete -c stackablectl -n "__fish_stackablectl_using_subcommand stack; and __fish_seen_subcommand_from list" -s V -l version -d 'Print version' @@ -231,6 +245,7 @@ complete -c stackablectl -n "__fish_stackablectl_using_subcommand stack; and __f complete -c stackablectl -n "__fish_stackablectl_using_subcommand stack; and __fish_seen_subcommand_from describe" -l helm-repo-stable -d 'Provide a custom Helm stable repository URL' -r -f complete -c stackablectl -n "__fish_stackablectl_using_subcommand stack; and __fish_seen_subcommand_from describe" -l helm-repo-test -d 'Provide a custom Helm test repository URL' -r -f complete -c stackablectl -n "__fish_stackablectl_using_subcommand stack; and __fish_seen_subcommand_from describe" -l helm-repo-dev -d 'Provide a custom Helm dev repository URL' -r -f +complete -c stackablectl -n "__fish_stackablectl_using_subcommand stack; and __fish_seen_subcommand_from describe" -l chart-source -d 'Source the charts from either a OCI registry or from index.yaml-based repositories' -r -f -a "{oci\t'OCI registry',repo\t'index.yaml-based repositories: resolution (dev, test, stable) is based on the version and thus will be operator-specific'}" complete -c stackablectl -n "__fish_stackablectl_using_subcommand stack; and __fish_seen_subcommand_from describe" -l no-cache -d 'Do not cache the remote (default) demo, stack and release files' complete -c stackablectl -n "__fish_stackablectl_using_subcommand stack; and __fish_seen_subcommand_from describe" -s h -l help -d 'Print help (see more with \'--help\')' complete -c stackablectl -n "__fish_stackablectl_using_subcommand stack; and __fish_seen_subcommand_from describe" -s V -l version -d 'Print version' @@ -250,6 +265,7 @@ complete -c stackablectl -n "__fish_stackablectl_using_subcommand stack; and __f complete -c stackablectl -n "__fish_stackablectl_using_subcommand stack; and __fish_seen_subcommand_from install" -l helm-repo-stable -d 'Provide a custom Helm stable repository URL' -r -f complete -c stackablectl -n "__fish_stackablectl_using_subcommand stack; and __fish_seen_subcommand_from install" -l helm-repo-test -d 'Provide a custom Helm test repository URL' -r -f complete -c stackablectl -n "__fish_stackablectl_using_subcommand stack; and __fish_seen_subcommand_from install" -l helm-repo-dev -d 'Provide a custom Helm dev repository URL' -r -f +complete -c stackablectl -n "__fish_stackablectl_using_subcommand stack; and __fish_seen_subcommand_from install" -l chart-source -d 'Source the charts from either a OCI registry or from index.yaml-based repositories' -r -f -a "{oci\t'OCI registry',repo\t'index.yaml-based repositories: resolution (dev, test, stable) is based on the version and thus will be operator-specific'}" complete -c stackablectl -n "__fish_stackablectl_using_subcommand stack; and __fish_seen_subcommand_from install" -l skip-release -d 'Skip the installation of the release during the stack install process' complete -c stackablectl -n "__fish_stackablectl_using_subcommand stack; and __fish_seen_subcommand_from install" -l no-cache -d 'Do not cache the remote (default) demo, stack and release files' complete -c stackablectl -n "__fish_stackablectl_using_subcommand stack; and __fish_seen_subcommand_from install" -s h -l help -d 'Print help (see more with \'--help\')' @@ -265,6 +281,7 @@ complete -c stackablectl -n "__fish_stackablectl_using_subcommand stacklet; and complete -c stackablectl -n "__fish_stackablectl_using_subcommand stacklet; and not __fish_seen_subcommand_from credentials list help" -l helm-repo-stable -d 'Provide a custom Helm stable repository URL' -r -f complete -c stackablectl -n "__fish_stackablectl_using_subcommand stacklet; and not __fish_seen_subcommand_from credentials list help" -l helm-repo-test -d 'Provide a custom Helm test repository URL' -r -f complete -c stackablectl -n "__fish_stackablectl_using_subcommand stacklet; and not __fish_seen_subcommand_from credentials list help" -l helm-repo-dev -d 'Provide a custom Helm dev repository URL' -r -f +complete -c stackablectl -n "__fish_stackablectl_using_subcommand stacklet; and not __fish_seen_subcommand_from credentials list help" -l chart-source -d 'Source the charts from either a OCI registry or from index.yaml-based repositories' -r -f -a "{oci\t'OCI registry',repo\t'index.yaml-based repositories: resolution (dev, test, stable) is based on the version and thus will be operator-specific'}" complete -c stackablectl -n "__fish_stackablectl_using_subcommand stacklet; and not __fish_seen_subcommand_from credentials list help" -l no-cache -d 'Do not cache the remote (default) demo, stack and release files' complete -c stackablectl -n "__fish_stackablectl_using_subcommand stacklet; and not __fish_seen_subcommand_from credentials list help" -s h -l help -d 'Print help (see more with \'--help\')' complete -c stackablectl -n "__fish_stackablectl_using_subcommand stacklet; and not __fish_seen_subcommand_from credentials list help" -s V -l version -d 'Print version' @@ -279,6 +296,7 @@ complete -c stackablectl -n "__fish_stackablectl_using_subcommand stacklet; and complete -c stackablectl -n "__fish_stackablectl_using_subcommand stacklet; and __fish_seen_subcommand_from credentials" -l helm-repo-stable -d 'Provide a custom Helm stable repository URL' -r -f complete -c stackablectl -n "__fish_stackablectl_using_subcommand stacklet; and __fish_seen_subcommand_from credentials" -l helm-repo-test -d 'Provide a custom Helm test repository URL' -r -f complete -c stackablectl -n "__fish_stackablectl_using_subcommand stacklet; and __fish_seen_subcommand_from credentials" -l helm-repo-dev -d 'Provide a custom Helm dev repository URL' -r -f +complete -c stackablectl -n "__fish_stackablectl_using_subcommand stacklet; and __fish_seen_subcommand_from credentials" -l chart-source -d 'Source the charts from either a OCI registry or from index.yaml-based repositories' -r -f -a "{oci\t'OCI registry',repo\t'index.yaml-based repositories: resolution (dev, test, stable) is based on the version and thus will be operator-specific'}" complete -c stackablectl -n "__fish_stackablectl_using_subcommand stacklet; and __fish_seen_subcommand_from credentials" -l no-cache -d 'Do not cache the remote (default) demo, stack and release files' complete -c stackablectl -n "__fish_stackablectl_using_subcommand stacklet; and __fish_seen_subcommand_from credentials" -s h -l help -d 'Print help (see more with \'--help\')' complete -c stackablectl -n "__fish_stackablectl_using_subcommand stacklet; and __fish_seen_subcommand_from credentials" -s V -l version -d 'Print version' @@ -292,6 +310,7 @@ complete -c stackablectl -n "__fish_stackablectl_using_subcommand stacklet; and complete -c stackablectl -n "__fish_stackablectl_using_subcommand stacklet; and __fish_seen_subcommand_from list" -l helm-repo-stable -d 'Provide a custom Helm stable repository URL' -r -f complete -c stackablectl -n "__fish_stackablectl_using_subcommand stacklet; and __fish_seen_subcommand_from list" -l helm-repo-test -d 'Provide a custom Helm test repository URL' -r -f complete -c stackablectl -n "__fish_stackablectl_using_subcommand stacklet; and __fish_seen_subcommand_from list" -l helm-repo-dev -d 'Provide a custom Helm dev repository URL' -r -f +complete -c stackablectl -n "__fish_stackablectl_using_subcommand stacklet; and __fish_seen_subcommand_from list" -l chart-source -d 'Source the charts from either a OCI registry or from index.yaml-based repositories' -r -f -a "{oci\t'OCI registry',repo\t'index.yaml-based repositories: resolution (dev, test, stable) is based on the version and thus will be operator-specific'}" complete -c stackablectl -n "__fish_stackablectl_using_subcommand stacklet; and __fish_seen_subcommand_from list" -l no-cache -d 'Do not cache the remote (default) demo, stack and release files' complete -c stackablectl -n "__fish_stackablectl_using_subcommand stacklet; and __fish_seen_subcommand_from list" -s h -l help -d 'Print help (see more with \'--help\')' complete -c stackablectl -n "__fish_stackablectl_using_subcommand stacklet; and __fish_seen_subcommand_from list" -s V -l version -d 'Print version' @@ -306,6 +325,7 @@ complete -c stackablectl -n "__fish_stackablectl_using_subcommand demo; and not complete -c stackablectl -n "__fish_stackablectl_using_subcommand demo; and not __fish_seen_subcommand_from list describe install help" -l helm-repo-stable -d 'Provide a custom Helm stable repository URL' -r -f complete -c stackablectl -n "__fish_stackablectl_using_subcommand demo; and not __fish_seen_subcommand_from list describe install help" -l helm-repo-test -d 'Provide a custom Helm test repository URL' -r -f complete -c stackablectl -n "__fish_stackablectl_using_subcommand demo; and not __fish_seen_subcommand_from list describe install help" -l helm-repo-dev -d 'Provide a custom Helm dev repository URL' -r -f +complete -c stackablectl -n "__fish_stackablectl_using_subcommand demo; and not __fish_seen_subcommand_from list describe install help" -l chart-source -d 'Source the charts from either a OCI registry or from index.yaml-based repositories' -r -f -a "{oci\t'OCI registry',repo\t'index.yaml-based repositories: resolution (dev, test, stable) is based on the version and thus will be operator-specific'}" complete -c stackablectl -n "__fish_stackablectl_using_subcommand demo; and not __fish_seen_subcommand_from list describe install help" -l no-cache -d 'Do not cache the remote (default) demo, stack and release files' complete -c stackablectl -n "__fish_stackablectl_using_subcommand demo; and not __fish_seen_subcommand_from list describe install help" -s h -l help -d 'Print help (see more with \'--help\')' complete -c stackablectl -n "__fish_stackablectl_using_subcommand demo; and not __fish_seen_subcommand_from list describe install help" -s V -l version -d 'Print version' @@ -322,6 +342,7 @@ complete -c stackablectl -n "__fish_stackablectl_using_subcommand demo; and __fi complete -c stackablectl -n "__fish_stackablectl_using_subcommand demo; and __fish_seen_subcommand_from list" -l helm-repo-stable -d 'Provide a custom Helm stable repository URL' -r -f complete -c stackablectl -n "__fish_stackablectl_using_subcommand demo; and __fish_seen_subcommand_from list" -l helm-repo-test -d 'Provide a custom Helm test repository URL' -r -f complete -c stackablectl -n "__fish_stackablectl_using_subcommand demo; and __fish_seen_subcommand_from list" -l helm-repo-dev -d 'Provide a custom Helm dev repository URL' -r -f +complete -c stackablectl -n "__fish_stackablectl_using_subcommand demo; and __fish_seen_subcommand_from list" -l chart-source -d 'Source the charts from either a OCI registry or from index.yaml-based repositories' -r -f -a "{oci\t'OCI registry',repo\t'index.yaml-based repositories: resolution (dev, test, stable) is based on the version and thus will be operator-specific'}" complete -c stackablectl -n "__fish_stackablectl_using_subcommand demo; and __fish_seen_subcommand_from list" -l no-cache -d 'Do not cache the remote (default) demo, stack and release files' complete -c stackablectl -n "__fish_stackablectl_using_subcommand demo; and __fish_seen_subcommand_from list" -s h -l help -d 'Print help (see more with \'--help\')' complete -c stackablectl -n "__fish_stackablectl_using_subcommand demo; and __fish_seen_subcommand_from list" -s V -l version -d 'Print version' @@ -334,6 +355,7 @@ complete -c stackablectl -n "__fish_stackablectl_using_subcommand demo; and __fi complete -c stackablectl -n "__fish_stackablectl_using_subcommand demo; and __fish_seen_subcommand_from describe" -l helm-repo-stable -d 'Provide a custom Helm stable repository URL' -r -f complete -c stackablectl -n "__fish_stackablectl_using_subcommand demo; and __fish_seen_subcommand_from describe" -l helm-repo-test -d 'Provide a custom Helm test repository URL' -r -f complete -c stackablectl -n "__fish_stackablectl_using_subcommand demo; and __fish_seen_subcommand_from describe" -l helm-repo-dev -d 'Provide a custom Helm dev repository URL' -r -f +complete -c stackablectl -n "__fish_stackablectl_using_subcommand demo; and __fish_seen_subcommand_from describe" -l chart-source -d 'Source the charts from either a OCI registry or from index.yaml-based repositories' -r -f -a "{oci\t'OCI registry',repo\t'index.yaml-based repositories: resolution (dev, test, stable) is based on the version and thus will be operator-specific'}" complete -c stackablectl -n "__fish_stackablectl_using_subcommand demo; and __fish_seen_subcommand_from describe" -l no-cache -d 'Do not cache the remote (default) demo, stack and release files' complete -c stackablectl -n "__fish_stackablectl_using_subcommand demo; and __fish_seen_subcommand_from describe" -s h -l help -d 'Print help (see more with \'--help\')' complete -c stackablectl -n "__fish_stackablectl_using_subcommand demo; and __fish_seen_subcommand_from describe" -s V -l version -d 'Print version' @@ -353,6 +375,7 @@ complete -c stackablectl -n "__fish_stackablectl_using_subcommand demo; and __fi complete -c stackablectl -n "__fish_stackablectl_using_subcommand demo; and __fish_seen_subcommand_from install" -l helm-repo-stable -d 'Provide a custom Helm stable repository URL' -r -f complete -c stackablectl -n "__fish_stackablectl_using_subcommand demo; and __fish_seen_subcommand_from install" -l helm-repo-test -d 'Provide a custom Helm test repository URL' -r -f complete -c stackablectl -n "__fish_stackablectl_using_subcommand demo; and __fish_seen_subcommand_from install" -l helm-repo-dev -d 'Provide a custom Helm dev repository URL' -r -f +complete -c stackablectl -n "__fish_stackablectl_using_subcommand demo; and __fish_seen_subcommand_from install" -l chart-source -d 'Source the charts from either a OCI registry or from index.yaml-based repositories' -r -f -a "{oci\t'OCI registry',repo\t'index.yaml-based repositories: resolution (dev, test, stable) is based on the version and thus will be operator-specific'}" complete -c stackablectl -n "__fish_stackablectl_using_subcommand demo; and __fish_seen_subcommand_from install" -l skip-release -d 'Skip the installation of the release during the stack install process' complete -c stackablectl -n "__fish_stackablectl_using_subcommand demo; and __fish_seen_subcommand_from install" -l no-cache -d 'Do not cache the remote (default) demo, stack and release files' complete -c stackablectl -n "__fish_stackablectl_using_subcommand demo; and __fish_seen_subcommand_from install" -s h -l help -d 'Print help (see more with \'--help\')' @@ -368,6 +391,7 @@ complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; a complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and not __fish_seen_subcommand_from bash elvish fish nushell zsh help" -l helm-repo-stable -d 'Provide a custom Helm stable repository URL' -r -f complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and not __fish_seen_subcommand_from bash elvish fish nushell zsh help" -l helm-repo-test -d 'Provide a custom Helm test repository URL' -r -f complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and not __fish_seen_subcommand_from bash elvish fish nushell zsh help" -l helm-repo-dev -d 'Provide a custom Helm dev repository URL' -r -f +complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and not __fish_seen_subcommand_from bash elvish fish nushell zsh help" -l chart-source -d 'Source the charts from either a OCI registry or from index.yaml-based repositories' -r -f -a "{oci\t'OCI registry',repo\t'index.yaml-based repositories: resolution (dev, test, stable) is based on the version and thus will be operator-specific'}" complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and not __fish_seen_subcommand_from bash elvish fish nushell zsh help" -l no-cache -d 'Do not cache the remote (default) demo, stack and release files' complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and not __fish_seen_subcommand_from bash elvish fish nushell zsh help" -s h -l help -d 'Print help (see more with \'--help\')' complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and not __fish_seen_subcommand_from bash elvish fish nushell zsh help" -s V -l version -d 'Print version' @@ -384,6 +408,7 @@ complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; a complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from bash" -l helm-repo-stable -d 'Provide a custom Helm stable repository URL' -r -f complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from bash" -l helm-repo-test -d 'Provide a custom Helm test repository URL' -r -f complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from bash" -l helm-repo-dev -d 'Provide a custom Helm dev repository URL' -r -f +complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from bash" -l chart-source -d 'Source the charts from either a OCI registry or from index.yaml-based repositories' -r -f -a "{oci\t'OCI registry',repo\t'index.yaml-based repositories: resolution (dev, test, stable) is based on the version and thus will be operator-specific'}" complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from bash" -l no-cache -d 'Do not cache the remote (default) demo, stack and release files' complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from bash" -s h -l help -d 'Print help (see more with \'--help\')' complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from bash" -s V -l version -d 'Print version' @@ -394,6 +419,7 @@ complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; a complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from elvish" -l helm-repo-stable -d 'Provide a custom Helm stable repository URL' -r -f complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from elvish" -l helm-repo-test -d 'Provide a custom Helm test repository URL' -r -f complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from elvish" -l helm-repo-dev -d 'Provide a custom Helm dev repository URL' -r -f +complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from elvish" -l chart-source -d 'Source the charts from either a OCI registry or from index.yaml-based repositories' -r -f -a "{oci\t'OCI registry',repo\t'index.yaml-based repositories: resolution (dev, test, stable) is based on the version and thus will be operator-specific'}" complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from elvish" -l no-cache -d 'Do not cache the remote (default) demo, stack and release files' complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from elvish" -s h -l help -d 'Print help (see more with \'--help\')' complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from elvish" -s V -l version -d 'Print version' @@ -404,6 +430,7 @@ complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; a complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from fish" -l helm-repo-stable -d 'Provide a custom Helm stable repository URL' -r -f complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from fish" -l helm-repo-test -d 'Provide a custom Helm test repository URL' -r -f complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from fish" -l helm-repo-dev -d 'Provide a custom Helm dev repository URL' -r -f +complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from fish" -l chart-source -d 'Source the charts from either a OCI registry or from index.yaml-based repositories' -r -f -a "{oci\t'OCI registry',repo\t'index.yaml-based repositories: resolution (dev, test, stable) is based on the version and thus will be operator-specific'}" complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from fish" -l no-cache -d 'Do not cache the remote (default) demo, stack and release files' complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from fish" -s h -l help -d 'Print help (see more with \'--help\')' complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from fish" -s V -l version -d 'Print version' @@ -414,6 +441,7 @@ complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; a complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from nushell" -l helm-repo-stable -d 'Provide a custom Helm stable repository URL' -r -f complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from nushell" -l helm-repo-test -d 'Provide a custom Helm test repository URL' -r -f complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from nushell" -l helm-repo-dev -d 'Provide a custom Helm dev repository URL' -r -f +complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from nushell" -l chart-source -d 'Source the charts from either a OCI registry or from index.yaml-based repositories' -r -f -a "{oci\t'OCI registry',repo\t'index.yaml-based repositories: resolution (dev, test, stable) is based on the version and thus will be operator-specific'}" complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from nushell" -l no-cache -d 'Do not cache the remote (default) demo, stack and release files' complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from nushell" -s h -l help -d 'Print help (see more with \'--help\')' complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from nushell" -s V -l version -d 'Print version' @@ -424,6 +452,7 @@ complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; a complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from zsh" -l helm-repo-stable -d 'Provide a custom Helm stable repository URL' -r -f complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from zsh" -l helm-repo-test -d 'Provide a custom Helm test repository URL' -r -f complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from zsh" -l helm-repo-dev -d 'Provide a custom Helm dev repository URL' -r -f +complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from zsh" -l chart-source -d 'Source the charts from either a OCI registry or from index.yaml-based repositories' -r -f -a "{oci\t'OCI registry',repo\t'index.yaml-based repositories: resolution (dev, test, stable) is based on the version and thus will be operator-specific'}" complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from zsh" -l no-cache -d 'Do not cache the remote (default) demo, stack and release files' complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from zsh" -s h -l help -d 'Print help (see more with \'--help\')' complete -c stackablectl -n "__fish_stackablectl_using_subcommand completions; and __fish_seen_subcommand_from zsh" -s V -l version -d 'Print version' @@ -440,6 +469,7 @@ complete -c stackablectl -n "__fish_stackablectl_using_subcommand cache; and not complete -c stackablectl -n "__fish_stackablectl_using_subcommand cache; and not __fish_seen_subcommand_from list clean help" -l helm-repo-stable -d 'Provide a custom Helm stable repository URL' -r -f complete -c stackablectl -n "__fish_stackablectl_using_subcommand cache; and not __fish_seen_subcommand_from list clean help" -l helm-repo-test -d 'Provide a custom Helm test repository URL' -r -f complete -c stackablectl -n "__fish_stackablectl_using_subcommand cache; and not __fish_seen_subcommand_from list clean help" -l helm-repo-dev -d 'Provide a custom Helm dev repository URL' -r -f +complete -c stackablectl -n "__fish_stackablectl_using_subcommand cache; and not __fish_seen_subcommand_from list clean help" -l chart-source -d 'Source the charts from either a OCI registry or from index.yaml-based repositories' -r -f -a "{oci\t'OCI registry',repo\t'index.yaml-based repositories: resolution (dev, test, stable) is based on the version and thus will be operator-specific'}" complete -c stackablectl -n "__fish_stackablectl_using_subcommand cache; and not __fish_seen_subcommand_from list clean help" -l no-cache -d 'Do not cache the remote (default) demo, stack and release files' complete -c stackablectl -n "__fish_stackablectl_using_subcommand cache; and not __fish_seen_subcommand_from list clean help" -s h -l help -d 'Print help (see more with \'--help\')' complete -c stackablectl -n "__fish_stackablectl_using_subcommand cache; and not __fish_seen_subcommand_from list clean help" -s V -l version -d 'Print version' @@ -453,6 +483,7 @@ complete -c stackablectl -n "__fish_stackablectl_using_subcommand cache; and __f complete -c stackablectl -n "__fish_stackablectl_using_subcommand cache; and __fish_seen_subcommand_from list" -l helm-repo-stable -d 'Provide a custom Helm stable repository URL' -r -f complete -c stackablectl -n "__fish_stackablectl_using_subcommand cache; and __fish_seen_subcommand_from list" -l helm-repo-test -d 'Provide a custom Helm test repository URL' -r -f complete -c stackablectl -n "__fish_stackablectl_using_subcommand cache; and __fish_seen_subcommand_from list" -l helm-repo-dev -d 'Provide a custom Helm dev repository URL' -r -f +complete -c stackablectl -n "__fish_stackablectl_using_subcommand cache; and __fish_seen_subcommand_from list" -l chart-source -d 'Source the charts from either a OCI registry or from index.yaml-based repositories' -r -f -a "{oci\t'OCI registry',repo\t'index.yaml-based repositories: resolution (dev, test, stable) is based on the version and thus will be operator-specific'}" complete -c stackablectl -n "__fish_stackablectl_using_subcommand cache; and __fish_seen_subcommand_from list" -l no-cache -d 'Do not cache the remote (default) demo, stack and release files' complete -c stackablectl -n "__fish_stackablectl_using_subcommand cache; and __fish_seen_subcommand_from list" -s h -l help -d 'Print help (see more with \'--help\')' complete -c stackablectl -n "__fish_stackablectl_using_subcommand cache; and __fish_seen_subcommand_from list" -s V -l version -d 'Print version' @@ -463,6 +494,7 @@ complete -c stackablectl -n "__fish_stackablectl_using_subcommand cache; and __f complete -c stackablectl -n "__fish_stackablectl_using_subcommand cache; and __fish_seen_subcommand_from clean" -l helm-repo-stable -d 'Provide a custom Helm stable repository URL' -r -f complete -c stackablectl -n "__fish_stackablectl_using_subcommand cache; and __fish_seen_subcommand_from clean" -l helm-repo-test -d 'Provide a custom Helm test repository URL' -r -f complete -c stackablectl -n "__fish_stackablectl_using_subcommand cache; and __fish_seen_subcommand_from clean" -l helm-repo-dev -d 'Provide a custom Helm dev repository URL' -r -f +complete -c stackablectl -n "__fish_stackablectl_using_subcommand cache; and __fish_seen_subcommand_from clean" -l chart-source -d 'Source the charts from either a OCI registry or from index.yaml-based repositories' -r -f -a "{oci\t'OCI registry',repo\t'index.yaml-based repositories: resolution (dev, test, stable) is based on the version and thus will be operator-specific'}" complete -c stackablectl -n "__fish_stackablectl_using_subcommand cache; and __fish_seen_subcommand_from clean" -l old -l outdated -d 'Only remove outdated files in the cache' complete -c stackablectl -n "__fish_stackablectl_using_subcommand cache; and __fish_seen_subcommand_from clean" -l no-cache -d 'Do not cache the remote (default) demo, stack and release files' complete -c stackablectl -n "__fish_stackablectl_using_subcommand cache; and __fish_seen_subcommand_from clean" -s h -l help -d 'Print help (see more with \'--help\')' @@ -480,6 +512,7 @@ complete -c stackablectl -n "__fish_stackablectl_using_subcommand experimental-d complete -c stackablectl -n "__fish_stackablectl_using_subcommand experimental-debug" -l helm-repo-stable -d 'Provide a custom Helm stable repository URL' -r -f complete -c stackablectl -n "__fish_stackablectl_using_subcommand experimental-debug" -l helm-repo-test -d 'Provide a custom Helm test repository URL' -r -f complete -c stackablectl -n "__fish_stackablectl_using_subcommand experimental-debug" -l helm-repo-dev -d 'Provide a custom Helm dev repository URL' -r -f +complete -c stackablectl -n "__fish_stackablectl_using_subcommand experimental-debug" -l chart-source -d 'Source the charts from either a OCI registry or from index.yaml-based repositories' -r -f -a "{oci\t'OCI registry',repo\t'index.yaml-based repositories: resolution (dev, test, stable) is based on the version and thus will be operator-specific'}" complete -c stackablectl -n "__fish_stackablectl_using_subcommand experimental-debug" -l no-cache -d 'Do not cache the remote (default) demo, stack and release files' complete -c stackablectl -n "__fish_stackablectl_using_subcommand experimental-debug" -s h -l help -d 'Print help (see more with \'--help\')' complete -c stackablectl -n "__fish_stackablectl_using_subcommand experimental-debug" -s V -l version -d 'Print version' diff --git a/extra/completions/stackablectl.nu b/extra/completions/stackablectl.nu index 02e9ef04..6b19ee18 100644 --- a/extra/completions/stackablectl.nu +++ b/extra/completions/stackablectl.nu @@ -1,5 +1,9 @@ module completions { + def "nu-complete stackablectl chart_source" [] { + [ "oci" "repo" ] + } + # Command line tool to interact with the Stackable Data Platform export extern stackablectl [ --log-level(-l): string # Log level this application uses @@ -10,10 +14,15 @@ module completions { --helm-repo-stable: string # Provide a custom Helm stable repository URL --helm-repo-test: string # Provide a custom Helm test repository URL --helm-repo-dev: string # Provide a custom Helm dev repository URL + --chart-source: string@"nu-complete stackablectl chart_source" # Source the charts from either a OCI registry or from index.yaml-based repositories --help(-h) # Print help (see more with '--help') --version(-V) # Print version ] + def "nu-complete stackablectl operator chart_source" [] { + [ "oci" "repo" ] + } + # Interact with single operator instead of the full platform export extern "stackablectl operator" [ --log-level(-l): string # Log level this application uses @@ -24,6 +33,7 @@ module completions { --helm-repo-stable: string # Provide a custom Helm stable repository URL --helm-repo-test: string # Provide a custom Helm test repository URL --helm-repo-dev: string # Provide a custom Helm dev repository URL + --chart-source: string@"nu-complete stackablectl operator chart_source" # Source the charts from either a OCI registry or from index.yaml-based repositories --help(-h) # Print help (see more with '--help') --version(-V) # Print version ] @@ -32,6 +42,10 @@ module completions { [ "plain" "table" "json" "yaml" ] } + def "nu-complete stackablectl operator list chart_source" [] { + [ "oci" "repo" ] + } + # List available operators export extern "stackablectl operator list" [ --output(-o): string@"nu-complete stackablectl operator list output_type" @@ -43,6 +57,7 @@ module completions { --helm-repo-stable: string # Provide a custom Helm stable repository URL --helm-repo-test: string # Provide a custom Helm test repository URL --helm-repo-dev: string # Provide a custom Helm dev repository URL + --chart-source: string@"nu-complete stackablectl operator list chart_source" # Source the charts from either a OCI registry or from index.yaml-based repositories --help(-h) # Print help (see more with '--help') --version(-V) # Print version ] @@ -51,6 +66,10 @@ module completions { [ "plain" "table" "json" "yaml" ] } + def "nu-complete stackablectl operator describe chart_source" [] { + [ "oci" "repo" ] + } + # Print out detailed operator information export extern "stackablectl operator describe" [ OPERATOR: string # Operator to describe @@ -63,6 +82,7 @@ module completions { --helm-repo-stable: string # Provide a custom Helm stable repository URL --helm-repo-test: string # Provide a custom Helm test repository URL --helm-repo-dev: string # Provide a custom Helm dev repository URL + --chart-source: string@"nu-complete stackablectl operator describe chart_source" # Source the charts from either a OCI registry or from index.yaml-based repositories --help(-h) # Print help (see more with '--help') --version(-V) # Print version ] @@ -71,6 +91,10 @@ module completions { [ "kind" "minikube" ] } + def "nu-complete stackablectl operator install chart_source" [] { + [ "oci" "repo" ] + } + # Install one or more operators export extern "stackablectl operator install" [ ...OPERATORS: string # Operator(s) to install @@ -88,10 +112,15 @@ module completions { --helm-repo-stable: string # Provide a custom Helm stable repository URL --helm-repo-test: string # Provide a custom Helm test repository URL --helm-repo-dev: string # Provide a custom Helm dev repository URL + --chart-source: string@"nu-complete stackablectl operator install chart_source" # Source the charts from either a OCI registry or from index.yaml-based repositories --help(-h) # Print help (see more with '--help') --version(-V) # Print version ] + def "nu-complete stackablectl operator uninstall chart_source" [] { + [ "oci" "repo" ] + } + # Uninstall one or more operators export extern "stackablectl operator uninstall" [ ...operators: string # One or more operators to uninstall @@ -105,6 +134,7 @@ module completions { --helm-repo-stable: string # Provide a custom Helm stable repository URL --helm-repo-test: string # Provide a custom Helm test repository URL --helm-repo-dev: string # Provide a custom Helm dev repository URL + --chart-source: string@"nu-complete stackablectl operator uninstall chart_source" # Source the charts from either a OCI registry or from index.yaml-based repositories --help(-h) # Print help (see more with '--help') --version(-V) # Print version ] @@ -113,6 +143,10 @@ module completions { [ "plain" "table" "json" "yaml" ] } + def "nu-complete stackablectl operator installed chart_source" [] { + [ "oci" "repo" ] + } + # List installed operators export extern "stackablectl operator installed" [ --output(-o): string@"nu-complete stackablectl operator installed output_type" @@ -126,6 +160,7 @@ module completions { --helm-repo-stable: string # Provide a custom Helm stable repository URL --helm-repo-test: string # Provide a custom Helm test repository URL --helm-repo-dev: string # Provide a custom Helm dev repository URL + --chart-source: string@"nu-complete stackablectl operator installed chart_source" # Source the charts from either a OCI registry or from index.yaml-based repositories --help(-h) # Print help (see more with '--help') --version(-V) # Print version ] @@ -158,6 +193,10 @@ module completions { export extern "stackablectl operator help help" [ ] + def "nu-complete stackablectl release chart_source" [] { + [ "oci" "repo" ] + } + # Interact with all operators of the platform which are released together export extern "stackablectl release" [ --log-level(-l): string # Log level this application uses @@ -168,6 +207,7 @@ module completions { --helm-repo-stable: string # Provide a custom Helm stable repository URL --helm-repo-test: string # Provide a custom Helm test repository URL --helm-repo-dev: string # Provide a custom Helm dev repository URL + --chart-source: string@"nu-complete stackablectl release chart_source" # Source the charts from either a OCI registry or from index.yaml-based repositories --help(-h) # Print help (see more with '--help') --version(-V) # Print version ] @@ -176,6 +216,10 @@ module completions { [ "plain" "table" "json" "yaml" ] } + def "nu-complete stackablectl release list chart_source" [] { + [ "oci" "repo" ] + } + # List available releases export extern "stackablectl release list" [ --output(-o): string@"nu-complete stackablectl release list output_type" @@ -187,6 +231,7 @@ module completions { --helm-repo-stable: string # Provide a custom Helm stable repository URL --helm-repo-test: string # Provide a custom Helm test repository URL --helm-repo-dev: string # Provide a custom Helm dev repository URL + --chart-source: string@"nu-complete stackablectl release list chart_source" # Source the charts from either a OCI registry or from index.yaml-based repositories --help(-h) # Print help (see more with '--help') --version(-V) # Print version ] @@ -195,6 +240,10 @@ module completions { [ "plain" "table" "json" "yaml" ] } + def "nu-complete stackablectl release describe chart_source" [] { + [ "oci" "repo" ] + } + # Print out detailed release information export extern "stackablectl release describe" [ RELEASE: string @@ -207,6 +256,7 @@ module completions { --helm-repo-stable: string # Provide a custom Helm stable repository URL --helm-repo-test: string # Provide a custom Helm test repository URL --helm-repo-dev: string # Provide a custom Helm dev repository URL + --chart-source: string@"nu-complete stackablectl release describe chart_source" # Source the charts from either a OCI registry or from index.yaml-based repositories --help(-h) # Print help (see more with '--help') --version(-V) # Print version ] @@ -215,6 +265,10 @@ module completions { [ "kind" "minikube" ] } + def "nu-complete stackablectl release install chart_source" [] { + [ "oci" "repo" ] + } + # Install a specific release export extern "stackablectl release install" [ RELEASE: string # Release to install @@ -234,10 +288,15 @@ module completions { --helm-repo-stable: string # Provide a custom Helm stable repository URL --helm-repo-test: string # Provide a custom Helm test repository URL --helm-repo-dev: string # Provide a custom Helm dev repository URL + --chart-source: string@"nu-complete stackablectl release install chart_source" # Source the charts from either a OCI registry or from index.yaml-based repositories --help(-h) # Print help (see more with '--help') --version(-V) # Print version ] + def "nu-complete stackablectl release uninstall chart_source" [] { + [ "oci" "repo" ] + } + # Uninstall a release export extern "stackablectl release uninstall" [ RELEASE: string # Name of the release to uninstall @@ -251,6 +310,7 @@ module completions { --helm-repo-stable: string # Provide a custom Helm stable repository URL --helm-repo-test: string # Provide a custom Helm test repository URL --helm-repo-dev: string # Provide a custom Helm dev repository URL + --chart-source: string@"nu-complete stackablectl release uninstall chart_source" # Source the charts from either a OCI registry or from index.yaml-based repositories --help(-h) # Print help (see more with '--help') --version(-V) # Print version ] @@ -279,6 +339,10 @@ module completions { export extern "stackablectl release help help" [ ] + def "nu-complete stackablectl stack chart_source" [] { + [ "oci" "repo" ] + } + # Interact with stacks, which are ready-to-use product combinations export extern "stackablectl stack" [ --release: string # Target a specific Stackable release @@ -290,6 +354,7 @@ module completions { --helm-repo-stable: string # Provide a custom Helm stable repository URL --helm-repo-test: string # Provide a custom Helm test repository URL --helm-repo-dev: string # Provide a custom Helm dev repository URL + --chart-source: string@"nu-complete stackablectl stack chart_source" # Source the charts from either a OCI registry or from index.yaml-based repositories --help(-h) # Print help (see more with '--help') --version(-V) # Print version ] @@ -298,6 +363,10 @@ module completions { [ "plain" "table" "json" "yaml" ] } + def "nu-complete stackablectl stack list chart_source" [] { + [ "oci" "repo" ] + } + # List available stacks export extern "stackablectl stack list" [ --output(-o): string@"nu-complete stackablectl stack list output_type" @@ -310,6 +379,7 @@ module completions { --helm-repo-stable: string # Provide a custom Helm stable repository URL --helm-repo-test: string # Provide a custom Helm test repository URL --helm-repo-dev: string # Provide a custom Helm dev repository URL + --chart-source: string@"nu-complete stackablectl stack list chart_source" # Source the charts from either a OCI registry or from index.yaml-based repositories --help(-h) # Print help (see more with '--help') --version(-V) # Print version ] @@ -318,6 +388,10 @@ module completions { [ "plain" "table" "json" "yaml" ] } + def "nu-complete stackablectl stack describe chart_source" [] { + [ "oci" "repo" ] + } + # Describe a specific stack export extern "stackablectl stack describe" [ stack_name: string # Name of the stack to describe @@ -331,6 +405,7 @@ module completions { --helm-repo-stable: string # Provide a custom Helm stable repository URL --helm-repo-test: string # Provide a custom Helm test repository URL --helm-repo-dev: string # Provide a custom Helm dev repository URL + --chart-source: string@"nu-complete stackablectl stack describe chart_source" # Source the charts from either a OCI registry or from index.yaml-based repositories --help(-h) # Print help (see more with '--help') --version(-V) # Print version ] @@ -339,6 +414,10 @@ module completions { [ "kind" "minikube" ] } + def "nu-complete stackablectl stack install chart_source" [] { + [ "oci" "repo" ] + } + # Install a specific stack export extern "stackablectl stack install" [ stack_name: string # Name of the stack to describe @@ -362,6 +441,7 @@ module completions { --helm-repo-stable: string # Provide a custom Helm stable repository URL --helm-repo-test: string # Provide a custom Helm test repository URL --helm-repo-dev: string # Provide a custom Helm dev repository URL + --chart-source: string@"nu-complete stackablectl stack install chart_source" # Source the charts from either a OCI registry or from index.yaml-based repositories --help(-h) # Print help (see more with '--help') --version(-V) # Print version ] @@ -386,6 +466,10 @@ module completions { export extern "stackablectl stack help help" [ ] + def "nu-complete stackablectl stacklet chart_source" [] { + [ "oci" "repo" ] + } + # Interact with deployed stacklets, which are bundles of resources and containers required to run the product export extern "stackablectl stacklet" [ --log-level(-l): string # Log level this application uses @@ -396,10 +480,15 @@ module completions { --helm-repo-stable: string # Provide a custom Helm stable repository URL --helm-repo-test: string # Provide a custom Helm test repository URL --helm-repo-dev: string # Provide a custom Helm dev repository URL + --chart-source: string@"nu-complete stackablectl stacklet chart_source" # Source the charts from either a OCI registry or from index.yaml-based repositories --help(-h) # Print help (see more with '--help') --version(-V) # Print version ] + def "nu-complete stackablectl stacklet credentials chart_source" [] { + [ "oci" "repo" ] + } + # Display credentials for a stacklet export extern "stackablectl stacklet credentials" [ product_name: string # The name of the product, for example 'superset' @@ -414,6 +503,7 @@ module completions { --helm-repo-stable: string # Provide a custom Helm stable repository URL --helm-repo-test: string # Provide a custom Helm test repository URL --helm-repo-dev: string # Provide a custom Helm dev repository URL + --chart-source: string@"nu-complete stackablectl stacklet credentials chart_source" # Source the charts from either a OCI registry or from index.yaml-based repositories --help(-h) # Print help (see more with '--help') --version(-V) # Print version ] @@ -422,6 +512,10 @@ module completions { [ "plain" "table" "json" "yaml" ] } + def "nu-complete stackablectl stacklet list chart_source" [] { + [ "oci" "repo" ] + } + # List deployed stacklets export extern "stackablectl stacklet list" [ --output(-o): string@"nu-complete stackablectl stacklet list output_type" @@ -437,6 +531,7 @@ module completions { --helm-repo-stable: string # Provide a custom Helm stable repository URL --helm-repo-test: string # Provide a custom Helm test repository URL --helm-repo-dev: string # Provide a custom Helm dev repository URL + --chart-source: string@"nu-complete stackablectl stacklet list chart_source" # Source the charts from either a OCI registry or from index.yaml-based repositories --help(-h) # Print help (see more with '--help') --version(-V) # Print version ] @@ -457,6 +552,10 @@ module completions { export extern "stackablectl stacklet help help" [ ] + def "nu-complete stackablectl demo chart_source" [] { + [ "oci" "repo" ] + } + # Interact with demos, which are end-to-end usage demonstrations of the Stackable data platform export extern "stackablectl demo" [ --release: string # Target a specific Stackable release @@ -468,6 +567,7 @@ module completions { --helm-repo-stable: string # Provide a custom Helm stable repository URL --helm-repo-test: string # Provide a custom Helm test repository URL --helm-repo-dev: string # Provide a custom Helm dev repository URL + --chart-source: string@"nu-complete stackablectl demo chart_source" # Source the charts from either a OCI registry or from index.yaml-based repositories --help(-h) # Print help (see more with '--help') --version(-V) # Print version ] @@ -476,6 +576,10 @@ module completions { [ "plain" "table" "json" "yaml" ] } + def "nu-complete stackablectl demo list chart_source" [] { + [ "oci" "repo" ] + } + # List available demos export extern "stackablectl demo list" [ --output(-o): string@"nu-complete stackablectl demo list output_type" @@ -488,6 +592,7 @@ module completions { --helm-repo-stable: string # Provide a custom Helm stable repository URL --helm-repo-test: string # Provide a custom Helm test repository URL --helm-repo-dev: string # Provide a custom Helm dev repository URL + --chart-source: string@"nu-complete stackablectl demo list chart_source" # Source the charts from either a OCI registry or from index.yaml-based repositories --help(-h) # Print help (see more with '--help') --version(-V) # Print version ] @@ -496,6 +601,10 @@ module completions { [ "plain" "table" "json" "yaml" ] } + def "nu-complete stackablectl demo describe chart_source" [] { + [ "oci" "repo" ] + } + # Print out detailed demo information export extern "stackablectl demo describe" [ DEMO: string # Demo to describe @@ -509,6 +618,7 @@ module completions { --helm-repo-stable: string # Provide a custom Helm stable repository URL --helm-repo-test: string # Provide a custom Helm test repository URL --helm-repo-dev: string # Provide a custom Helm dev repository URL + --chart-source: string@"nu-complete stackablectl demo describe chart_source" # Source the charts from either a OCI registry or from index.yaml-based repositories --help(-h) # Print help (see more with '--help') --version(-V) # Print version ] @@ -517,6 +627,10 @@ module completions { [ "kind" "minikube" ] } + def "nu-complete stackablectl demo install chart_source" [] { + [ "oci" "repo" ] + } + # Install a specific demo export extern "stackablectl demo install" [ DEMO: string # Demo to install @@ -540,6 +654,7 @@ module completions { --helm-repo-stable: string # Provide a custom Helm stable repository URL --helm-repo-test: string # Provide a custom Helm test repository URL --helm-repo-dev: string # Provide a custom Helm dev repository URL + --chart-source: string@"nu-complete stackablectl demo install chart_source" # Source the charts from either a OCI registry or from index.yaml-based repositories --help(-h) # Print help (see more with '--help') --version(-V) # Print version ] @@ -564,6 +679,10 @@ module completions { export extern "stackablectl demo help help" [ ] + def "nu-complete stackablectl completions chart_source" [] { + [ "oci" "repo" ] + } + # Generate shell completions for this tool export extern "stackablectl completions" [ --log-level(-l): string # Log level this application uses @@ -574,10 +693,15 @@ module completions { --helm-repo-stable: string # Provide a custom Helm stable repository URL --helm-repo-test: string # Provide a custom Helm test repository URL --helm-repo-dev: string # Provide a custom Helm dev repository URL + --chart-source: string@"nu-complete stackablectl completions chart_source" # Source the charts from either a OCI registry or from index.yaml-based repositories --help(-h) # Print help (see more with '--help') --version(-V) # Print version ] + def "nu-complete stackablectl completions bash chart_source" [] { + [ "oci" "repo" ] + } + # Generate shell completions for Bash export extern "stackablectl completions bash" [ --log-level(-l): string # Log level this application uses @@ -588,10 +712,15 @@ module completions { --helm-repo-stable: string # Provide a custom Helm stable repository URL --helm-repo-test: string # Provide a custom Helm test repository URL --helm-repo-dev: string # Provide a custom Helm dev repository URL + --chart-source: string@"nu-complete stackablectl completions bash chart_source" # Source the charts from either a OCI registry or from index.yaml-based repositories --help(-h) # Print help (see more with '--help') --version(-V) # Print version ] + def "nu-complete stackablectl completions elvish chart_source" [] { + [ "oci" "repo" ] + } + # Generate shell completions for Elvish export extern "stackablectl completions elvish" [ --log-level(-l): string # Log level this application uses @@ -602,10 +731,15 @@ module completions { --helm-repo-stable: string # Provide a custom Helm stable repository URL --helm-repo-test: string # Provide a custom Helm test repository URL --helm-repo-dev: string # Provide a custom Helm dev repository URL + --chart-source: string@"nu-complete stackablectl completions elvish chart_source" # Source the charts from either a OCI registry or from index.yaml-based repositories --help(-h) # Print help (see more with '--help') --version(-V) # Print version ] + def "nu-complete stackablectl completions fish chart_source" [] { + [ "oci" "repo" ] + } + # Generate shell completions for Fish export extern "stackablectl completions fish" [ --log-level(-l): string # Log level this application uses @@ -616,10 +750,15 @@ module completions { --helm-repo-stable: string # Provide a custom Helm stable repository URL --helm-repo-test: string # Provide a custom Helm test repository URL --helm-repo-dev: string # Provide a custom Helm dev repository URL + --chart-source: string@"nu-complete stackablectl completions fish chart_source" # Source the charts from either a OCI registry or from index.yaml-based repositories --help(-h) # Print help (see more with '--help') --version(-V) # Print version ] + def "nu-complete stackablectl completions nushell chart_source" [] { + [ "oci" "repo" ] + } + # Generate shell completions for Nushell export extern "stackablectl completions nushell" [ --log-level(-l): string # Log level this application uses @@ -630,10 +769,15 @@ module completions { --helm-repo-stable: string # Provide a custom Helm stable repository URL --helm-repo-test: string # Provide a custom Helm test repository URL --helm-repo-dev: string # Provide a custom Helm dev repository URL + --chart-source: string@"nu-complete stackablectl completions nushell chart_source" # Source the charts from either a OCI registry or from index.yaml-based repositories --help(-h) # Print help (see more with '--help') --version(-V) # Print version ] + def "nu-complete stackablectl completions zsh chart_source" [] { + [ "oci" "repo" ] + } + # Generate shell completions for ZSH export extern "stackablectl completions zsh" [ --log-level(-l): string # Log level this application uses @@ -644,6 +788,7 @@ module completions { --helm-repo-stable: string # Provide a custom Helm stable repository URL --helm-repo-test: string # Provide a custom Helm test repository URL --helm-repo-dev: string # Provide a custom Helm dev repository URL + --chart-source: string@"nu-complete stackablectl completions zsh chart_source" # Source the charts from either a OCI registry or from index.yaml-based repositories --help(-h) # Print help (see more with '--help') --version(-V) # Print version ] @@ -676,6 +821,10 @@ module completions { export extern "stackablectl completions help help" [ ] + def "nu-complete stackablectl cache chart_source" [] { + [ "oci" "repo" ] + } + # Interact with locally cached files export extern "stackablectl cache" [ --log-level(-l): string # Log level this application uses @@ -686,10 +835,15 @@ module completions { --helm-repo-stable: string # Provide a custom Helm stable repository URL --helm-repo-test: string # Provide a custom Helm test repository URL --helm-repo-dev: string # Provide a custom Helm dev repository URL + --chart-source: string@"nu-complete stackablectl cache chart_source" # Source the charts from either a OCI registry or from index.yaml-based repositories --help(-h) # Print help (see more with '--help') --version(-V) # Print version ] + def "nu-complete stackablectl cache list chart_source" [] { + [ "oci" "repo" ] + } + # List cached files export extern "stackablectl cache list" [ --log-level(-l): string # Log level this application uses @@ -700,10 +854,15 @@ module completions { --helm-repo-stable: string # Provide a custom Helm stable repository URL --helm-repo-test: string # Provide a custom Helm test repository URL --helm-repo-dev: string # Provide a custom Helm dev repository URL + --chart-source: string@"nu-complete stackablectl cache list chart_source" # Source the charts from either a OCI registry or from index.yaml-based repositories --help(-h) # Print help (see more with '--help') --version(-V) # Print version ] + def "nu-complete stackablectl cache clean chart_source" [] { + [ "oci" "repo" ] + } + # Clean cached files export extern "stackablectl cache clean" [ --old # Only remove outdated files in the cache @@ -716,6 +875,7 @@ module completions { --helm-repo-stable: string # Provide a custom Helm stable repository URL --helm-repo-test: string # Provide a custom Helm test repository URL --helm-repo-dev: string # Provide a custom Helm dev repository URL + --chart-source: string@"nu-complete stackablectl cache clean chart_source" # Source the charts from either a OCI registry or from index.yaml-based repositories --help(-h) # Print help (see more with '--help') --version(-V) # Print version ] @@ -736,6 +896,10 @@ module completions { export extern "stackablectl cache help help" [ ] + def "nu-complete stackablectl experimental-debug chart_source" [] { + [ "oci" "repo" ] + } + # EXPERIMENTAL: Launch a debug container for a Pod export extern "stackablectl experimental-debug" [ --namespace(-n): string # The namespace of the Pod being debugged @@ -751,6 +915,7 @@ module completions { --helm-repo-stable: string # Provide a custom Helm stable repository URL --helm-repo-test: string # Provide a custom Helm test repository URL --helm-repo-dev: string # Provide a custom Helm dev repository URL + --chart-source: string@"nu-complete stackablectl experimental-debug chart_source" # Source the charts from either a OCI registry or from index.yaml-based repositories --help(-h) # Print help (see more with '--help') --version(-V) # Print version ] diff --git a/extra/man/stackablectl.1 b/extra/man/stackablectl.1 index 7007d7f7..05c83c93 100644 --- a/extra/man/stackablectl.1 +++ b/extra/man/stackablectl.1 @@ -4,7 +4,7 @@ .SH NAME stackablectl \- Command line tool to interact with the Stackable Data Platform .SH SYNOPSIS -\fBstackablectl\fR [\fB\-l\fR|\fB\-\-log\-level\fR] [\fB\-\-no\-cache\fR] [\fB\-d\fR|\fB\-\-demo\-file\fR] [\fB\-s\fR|\fB\-\-stack\-file\fR] [\fB\-r\fR|\fB\-\-release\-file\fR] [\fB\-\-helm\-repo\-stable\fR] [\fB\-\-helm\-repo\-test\fR] [\fB\-\-helm\-repo\-dev\fR] [\fB\-h\fR|\fB\-\-help\fR] [\fB\-V\fR|\fB\-\-version\fR] <\fIsubcommands\fR> +\fBstackablectl\fR [\fB\-l\fR|\fB\-\-log\-level\fR] [\fB\-\-no\-cache\fR] [\fB\-d\fR|\fB\-\-demo\-file\fR] [\fB\-s\fR|\fB\-\-stack\-file\fR] [\fB\-r\fR|\fB\-\-release\-file\fR] [\fB\-\-helm\-repo\-stable\fR] [\fB\-\-helm\-repo\-test\fR] [\fB\-\-helm\-repo\-dev\fR] [\fB\-\-chart\-source\fR] [\fB\-h\fR|\fB\-\-help\fR] [\fB\-V\fR|\fB\-\-version\fR] <\fIsubcommands\fR> .SH DESCRIPTION Command line tool to interact with the Stackable Data Platform .SH OPTIONS @@ -61,6 +61,19 @@ Provide a custom Helm test repository URL \fB\-\-helm\-repo\-dev\fR=\fIURL\fR [default: https://repo.stackable.tech/repository/helm\-dev/] Provide a custom Helm dev repository URL .TP +\fB\-\-chart\-source\fR=\fICHART_SOURCE\fR [default: oci] +Source the charts from either a OCI registry or from index.yaml\-based repositories. +.br + +.br +\fIPossible values:\fR +.RS 14 +.IP \(bu 2 +oci: OCI registry +.IP \(bu 2 +repo: index.yaml\-based repositories: resolution (dev, test, stable) is based on the version and thus will be operator\-specific +.RE +.TP \fB\-h\fR, \fB\-\-help\fR Print help (see a summary with \*(Aq\-h\*(Aq) .TP diff --git a/rust-toolchain.toml b/rust-toolchain.toml index a56a283d..0193dee3 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,2 +1,2 @@ [toolchain] -channel = "1.80.1" +channel = "1.83.0" diff --git a/rust/stackable-cockpit/Cargo.toml b/rust/stackable-cockpit/Cargo.toml index 6a83a80d..87380fb8 100644 --- a/rust/stackable-cockpit/Cargo.toml +++ b/rust/stackable-cockpit/Cargo.toml @@ -32,6 +32,7 @@ tera.workspace = true tokio.workspace = true tracing.workspace = true url.workspace = true +urlencoding.workspace = true utoipa = { workspace = true, optional = true } which.workspace = true futures.workspace = true diff --git a/rust/stackable-cockpit/src/constants.rs b/rust/stackable-cockpit/src/constants.rs index f7ad785d..cf03e4c5 100644 --- a/rust/stackable-cockpit/src/constants.rs +++ b/rust/stackable-cockpit/src/constants.rs @@ -22,6 +22,9 @@ pub const HELM_REPO_NAME_TEST: &str = "stackable-test"; pub const HELM_REPO_NAME_DEV: &str = "stackable-dev"; pub const HELM_REPO_INDEX_FILE: &str = "index.yaml"; +pub const HELM_OCI_BASE: &str = "oci.stackable.tech"; +pub const HELM_OCI_REGISTRY: &str = "oci://oci.stackable.tech/sdp-charts"; + pub const HELM_DEFAULT_CHART_VERSION: &str = ">0.0.0-0"; pub const PRODUCT_NAMES: &[&str] = &[ @@ -38,3 +41,5 @@ pub const PRODUCT_NAMES: &[&str] = &[ "trino", "zookeeper", ]; + +pub const OCI_INDEX_PAGE_SIZE: usize = 20; diff --git a/rust/stackable-cockpit/src/helm.rs b/rust/stackable-cockpit/src/helm.rs index 0e8eb193..25bca566 100644 --- a/rust/stackable-cockpit/src/helm.rs +++ b/rust/stackable-cockpit/src/helm.rs @@ -1,4 +1,3 @@ -use std::collections::HashMap; use std::fmt::Display; use serde::{Deserialize, Serialize}; @@ -7,7 +6,10 @@ use tokio::task::block_in_place; use tracing::{debug, error, info, instrument}; use url::Url; -use crate::constants::{HELM_DEFAULT_CHART_VERSION, HELM_REPO_INDEX_FILE}; +use crate::{ + constants::{HELM_DEFAULT_CHART_VERSION, HELM_REPO_INDEX_FILE}, + utils::chartsource::ChartSourceMetadata, +}; #[derive(Debug, Deserialize, Serialize)] #[serde(rename_all = "camelCase")] @@ -35,17 +37,6 @@ pub struct ChartRepo { pub url: String, } -#[derive(Clone, Debug, Deserialize)] -pub struct Repository { - pub entries: HashMap>, -} - -#[derive(Clone, Debug, Deserialize)] -pub struct RepositoryEntry { - pub name: String, - pub version: String, -} - #[derive(Debug, Snafu)] pub enum Error { #[snafu(display("failed to parse URL"))] @@ -182,20 +173,20 @@ impl Display for UninstallReleaseStatus { } pub struct ChartVersion<'a> { - pub repo_name: &'a str, + pub chart_source: &'a str, pub chart_name: &'a str, pub chart_version: Option<&'a str>, } -/// Installs a Helm release from a repo. +/// Installs a Helm release from a repo or registry. /// /// This function expects the fully qualified Helm release name. In case of our /// operators this is: `-operator`. #[instrument] -pub fn install_release_from_repo( +pub fn install_release_from_repo_or_registry( release_name: &str, ChartVersion { - repo_name, + chart_source, chart_name, chart_version, }: ChartVersion, @@ -244,7 +235,7 @@ pub fn install_release_from_repo( } } - let full_chart_name = format!("{repo_name}/{chart_name}"); + let full_chart_name = format!("{chart_source}/{chart_name}"); let chart_version = chart_version.unwrap_or(HELM_DEFAULT_CHART_VERSION); debug!( @@ -398,7 +389,7 @@ pub fn add_repo(repository_name: &str, repository_url: &str) -> Result<(), Error /// Retrieves the Helm index file from the repository URL. #[instrument] -pub async fn get_helm_index(repo_url: T) -> Result +pub async fn get_helm_index(repo_url: T) -> Result where T: AsRef + std::fmt::Debug, { diff --git a/rust/stackable-cockpit/src/lib.rs b/rust/stackable-cockpit/src/lib.rs index 14220780..e572b560 100644 --- a/rust/stackable-cockpit/src/lib.rs +++ b/rust/stackable-cockpit/src/lib.rs @@ -2,6 +2,7 @@ pub mod common; pub mod constants; pub mod engine; pub mod helm; +pub mod oci; pub mod platform; pub mod utils; pub mod xfer; diff --git a/rust/stackable-cockpit/src/oci.rs b/rust/stackable-cockpit/src/oci.rs new file mode 100644 index 00000000..0c8eea63 --- /dev/null +++ b/rust/stackable-cockpit/src/oci.rs @@ -0,0 +1,246 @@ +use std::collections::HashMap; + +use serde::Deserialize; +use snafu::{OptionExt, ResultExt, Snafu}; +use tracing::debug; +use url::Url; +use urlencoding::encode; + +use crate::{ + constants::{ + HELM_OCI_BASE, HELM_REPO_NAME_DEV, HELM_REPO_NAME_STABLE, HELM_REPO_NAME_TEST, + OCI_INDEX_PAGE_SIZE, + }, + utils::chartsource::{ChartSourceEntry, ChartSourceMetadata}, +}; + +#[derive(Debug, Snafu)] +pub enum Error { + #[snafu(display("cannot get repositories"))] + GetRepositories { source: reqwest::Error }, + + #[snafu(display("cannot parse repositories"))] + ParseRepositories { source: reqwest::Error }, + + #[snafu(display("cannot get artifacts"))] + GetArtifacts { source: reqwest::Error }, + + #[snafu(display("cannot parse artifacts"))] + ParseArtifacts { source: reqwest::Error }, + + #[snafu(display("unexpected OCI repository name"))] + UnexpectedOciRepositoryName, + + #[snafu(display("cannot resolve path segments"))] + GetPathSegments, + + #[snafu(display("failed to parse URL"))] + UrlParse { source: url::ParseError }, +} + +/// Identifies an operator-specific root folder in the repository e.g. +/// ```json +/// { +/// name: "sdp-charts/airflow-operator" +/// } +/// ``` +#[derive(Deserialize, Debug)] +struct OciRepository { + pub name: String, +} + +/// Identifies an image tag e.g. +/// ```json +/// { +/// name: "24.11.1-rc1" +/// } +/// ``` +#[derive(Deserialize, Debug)] +pub struct Tag { + pub name: String, +} + +/// Identifies an image artifact with its digest and tags e.g. +/// ```json +/// { +/// digest: "sha256:e80a4b1e004f90dee0321f817871c4a225369b89efdc17c319595263139364b5", +/// tags: [ +/// { +/// name: "0.0.0-pr569" +/// } +/// ]) +/// } +/// ``` +#[derive(Deserialize, Debug)] +pub struct Artifact { + pub digest: String, + pub tags: Option>, +} + +trait OciUrlExt { + fn oci_artifacts_page( + &self, + project_name: &str, + repository_name: &str, + page_size: usize, + page: usize, + ) -> Result; +} + +impl OciUrlExt for Url { + fn oci_artifacts_page( + &self, + project_name: &str, + repository_name: &str, + page_size: usize, + page: usize, + ) -> Result { + let encoded_project = encode(project_name); + let encoded_repo = encode(repository_name); + + let mut url = self.clone(); + url.path_segments_mut() + .map_err(|_| Error::GetPathSegments)? + .extend(&[ + "projects", + &encoded_project, + "repositories", + &encoded_repo, + "artifacts", + ]); + + url.query_pairs_mut() + .append_pair("page_size", &page_size.to_string()) + .append_pair("page", &page.to_string()); + + Ok(url) + } +} + +pub async fn get_oci_index<'a>() -> Result, Error> { + let mut source_index_files: HashMap<&str, ChartSourceMetadata> = HashMap::new(); + + // initialize map + for repo_name in [ + HELM_REPO_NAME_STABLE, + HELM_REPO_NAME_TEST, + HELM_REPO_NAME_DEV, + ] { + source_index_files.insert( + repo_name, + ChartSourceMetadata { + entries: HashMap::new(), + }, + ); + } + let base_url = format!("https://{}/api/v2.0", HELM_OCI_BASE); + + // fetch all operators + let url = format!( + "{}/repositories?page_size={}&q=name=~sdp-charts/", + base_url, 100 + ); + + // reuse connections + let client = reqwest::Client::new(); + + let repositories: Vec = client + .get(&url) + .send() + .await + .context(GetRepositoriesSnafu)? + .json() + .await + .context(ParseRepositoriesSnafu)?; + + debug!("OCI repos {:?}", repositories); + + for repository in &repositories { + // fetch all artifacts pro operator + let (project_name, repository_name) = repository + .name + .split_once('/') + .context(UnexpectedOciRepositoryNameSnafu)?; + + debug!("OCI repo parts {} and {}", project_name, repository_name); + + let mut artifacts = Vec::new(); + let mut page = 1; + + loop { + let root = Url::parse(base_url.as_str()).context(UrlParseSnafu)?; + let url = + root.oci_artifacts_page(project_name, repository_name, OCI_INDEX_PAGE_SIZE, page)?; + let artifacts_page = client + .get(url) + .send() + .await + .context(GetArtifactsSnafu)? + .json::>() + .await + .context(ParseArtifactsSnafu)?; + let count = artifacts_page.len(); + artifacts.extend(artifacts_page); + if count < OCI_INDEX_PAGE_SIZE { + break; + } + page += 1; + } + + for artifact in &artifacts { + if let Some(release_artifact) = + artifact.tags.as_ref().and_then(|tags| tags.iter().next()) + { + let release_version = release_artifact + .name + .replace("-arm64", "") + .replace("-amd64", ""); + + debug!( + "OCI resolved artifact {}, {}, {}", + release_version.to_string(), + repository_name.to_string(), + release_artifact.name.to_string() + ); + + debug!( + "Repo/Artifact/Tag: {:?} / {:?} / {:?}", + repository, artifact, release_artifact + ); + + let entry = ChartSourceEntry { + name: repository_name.to_string(), + version: release_version.to_string(), + }; + + match release_version.as_str() { + "0.0.0-dev" => { + if let Some(repo) = source_index_files.get_mut(HELM_REPO_NAME_DEV) { + repo.entries + .entry(repository_name.to_string()) + .or_default() + .push(entry) + } + } + version if version.contains("-pr") => { + if let Some(repo) = source_index_files.get_mut(HELM_REPO_NAME_TEST) { + repo.entries + .entry(repository_name.to_string()) + .or_default() + .push(entry) + } + } + _ => { + if let Some(repo) = source_index_files.get_mut(HELM_REPO_NAME_STABLE) { + repo.entries + .entry(repository_name.to_string()) + .or_default() + .push(entry) + } + } + } + } + } + } + Ok(source_index_files) +} diff --git a/rust/stackable-cockpit/src/platform/demo/params.rs b/rust/stackable-cockpit/src/platform/demo/params.rs index f2bfb111..b5f613fa 100644 --- a/rust/stackable-cockpit/src/platform/demo/params.rs +++ b/rust/stackable-cockpit/src/platform/demo/params.rs @@ -1,5 +1,7 @@ use stackable_operator::kvp::Labels; +use crate::platform::operator::ChartSourceType; + pub struct DemoInstallParameters { pub operator_namespace: String, pub product_namespace: String, @@ -10,4 +12,5 @@ pub struct DemoInstallParameters { pub stack_labels: Labels, pub labels: Labels, + pub chart_source: ChartSourceType, } diff --git a/rust/stackable-cockpit/src/platform/demo/spec.rs b/rust/stackable-cockpit/src/platform/demo/spec.rs index 68741e87..59aaa8d9 100644 --- a/rust/stackable-cockpit/src/platform/demo/spec.rs +++ b/rust/stackable-cockpit/src/platform/demo/spec.rs @@ -159,6 +159,7 @@ impl DemoSpec { skip_release: install_parameters.skip_release, stack_name: self.stack.clone(), demo_name: None, + chart_source: install_parameters.chart_source.clone(), }; stack diff --git a/rust/stackable-cockpit/src/platform/manifests.rs b/rust/stackable-cockpit/src/platform/manifests.rs index 882533e0..86b604f4 100644 --- a/rust/stackable-cockpit/src/platform/manifests.rs +++ b/rust/stackable-cockpit/src/platform/manifests.rs @@ -94,6 +94,7 @@ pub trait InstallManifestsExt { helm_chart.name, helm_chart.version ); + // Assumption: that all manifest helm charts refer to repos not registries helm::add_repo(&helm_chart.repo.name, &helm_chart.repo.url).context( AddHelmRepositorySnafu { repo_name: helm_chart.repo.name.clone(), @@ -105,10 +106,10 @@ pub trait InstallManifestsExt { .context(SerializeOptionsSnafu)?; // Install the Helm chart using the Helm wrapper - helm::install_release_from_repo( + helm::install_release_from_repo_or_registry( &helm_chart.release_name, helm::ChartVersion { - repo_name: &helm_chart.repo.name, + chart_source: &helm_chart.repo.name, chart_name: &helm_chart.name, chart_version: Some(&helm_chart.version), }, diff --git a/rust/stackable-cockpit/src/platform/operator/mod.rs b/rust/stackable-cockpit/src/platform/operator/mod.rs index ca0d4d64..eedcf9f9 100644 --- a/rust/stackable-cockpit/src/platform/operator/mod.rs +++ b/rust/stackable-cockpit/src/platform/operator/mod.rs @@ -1,11 +1,14 @@ use std::{fmt::Display, str::FromStr}; use semver::Version; +use serde::Serialize; use snafu::{ensure, ResultExt, Snafu}; use tracing::{info, instrument}; use crate::{ - constants::{HELM_REPO_NAME_DEV, HELM_REPO_NAME_STABLE, HELM_REPO_NAME_TEST}, + constants::{ + HELM_OCI_REGISTRY, HELM_REPO_NAME_DEV, HELM_REPO_NAME_STABLE, HELM_REPO_NAME_TEST, + }, helm, utils::operator_chart_name, }; @@ -176,20 +179,30 @@ impl OperatorSpec { /// Installs the operator using Helm. #[instrument(skip_all)] - pub fn install(&self, namespace: &str) -> Result<(), helm::Error> { + pub fn install( + &self, + namespace: &str, + chart_source: &ChartSourceType, + ) -> Result<(), helm::Error> { info!("Installing operator {}", self); let version = self.version.as_ref().map(|v| v.to_string()); - let helm_repo = self.helm_repo_name(); let helm_name = self.helm_name(); + // we can't resolve this any earlier as, for the repository case, + // this will be dependent on the operator version. + let chart_source = match chart_source { + ChartSourceType::OCI => HELM_OCI_REGISTRY.to_string(), + ChartSourceType::Repo => self.helm_repo_name(), + }; + // Install using Helm - helm::install_release_from_repo( + helm::install_release_from_repo_or_registry( &helm_name, helm::ChartVersion { chart_version: version.as_deref(), chart_name: &helm_name, - repo_name: &helm_repo, + chart_source: &chart_source, }, None, namespace, @@ -215,6 +228,16 @@ impl OperatorSpec { } } +#[derive(Clone, Debug, Serialize)] +#[serde(rename_all = "lowercase")] +pub enum ChartSourceType { + /// OCI registry + OCI, + + /// index.yaml-based repositories: resolution (dev, test, stable) is based on the version and thus may be operator-specific + Repo, +} + #[cfg(test)] mod test { use rstest::rstest; diff --git a/rust/stackable-cockpit/src/platform/release/spec.rs b/rust/stackable-cockpit/src/platform/release/spec.rs index ec0199a4..cf4bb8cd 100644 --- a/rust/stackable-cockpit/src/platform/release/spec.rs +++ b/rust/stackable-cockpit/src/platform/release/spec.rs @@ -11,7 +11,7 @@ use utoipa::ToSchema; use crate::{ helm, platform::{ - operator::{self, OperatorSpec}, + operator::{self, ChartSourceType, OperatorSpec}, product, }, }; @@ -56,6 +56,7 @@ impl ReleaseSpec { include_products: &[String], exclude_products: &[String], namespace: &str, + chart_source: &ChartSourceType, ) -> Result<()> { info!("Installing release"); @@ -63,6 +64,7 @@ impl ReleaseSpec { futures::stream::iter(self.filter_products(include_products, exclude_products)) .map(|(product_name, product)| { let namespace = namespace.clone(); + let chart_source = chart_source.clone(); // Helm installs currently `block_in_place`, so we need to spawn each job onto a separate task to // get useful parallelism. tokio::spawn(async move { @@ -73,7 +75,9 @@ impl ReleaseSpec { .context(OperatorSpecParseSnafu)?; // Install operator - operator.install(&namespace).context(HelmInstallSnafu)?; + operator + .install(&namespace, &chart_source) + .context(HelmInstallSnafu)?; info!("Installed {product_name}-operator"); diff --git a/rust/stackable-cockpit/src/platform/stack/params.rs b/rust/stackable-cockpit/src/platform/stack/params.rs index 27197fbc..9268409d 100644 --- a/rust/stackable-cockpit/src/platform/stack/params.rs +++ b/rust/stackable-cockpit/src/platform/stack/params.rs @@ -1,5 +1,7 @@ use stackable_operator::kvp::Labels; +use crate::platform::operator::ChartSourceType; + #[derive(Debug)] pub struct StackInstallParameters { pub demo_name: Option, @@ -11,4 +13,5 @@ pub struct StackInstallParameters { pub parameters: Vec, pub skip_release: bool, pub labels: Labels, + pub chart_source: ChartSourceType, } diff --git a/rust/stackable-cockpit/src/platform/stack/spec.rs b/rust/stackable-cockpit/src/platform/stack/spec.rs index 499c08b0..2a20ba5d 100644 --- a/rust/stackable-cockpit/src/platform/stack/spec.rs +++ b/rust/stackable-cockpit/src/platform/stack/spec.rs @@ -10,7 +10,9 @@ use crate::{ platform::{ cluster::{ResourceRequests, ResourceRequestsError}, manifests::{self, InstallManifestsExt}, - namespace, release, + namespace, + operator::ChartSourceType, + release, stack::StackInstallParameters, }, utils::{ @@ -173,6 +175,7 @@ impl StackSpec { release_list, &install_parameters.operator_namespace, &install_parameters.product_namespace, + &install_parameters.chart_source, ) .await?; } @@ -195,6 +198,7 @@ impl StackSpec { release_list: release::ReleaseList, operator_namespace: &str, product_namespace: &str, + chart_source: &ChartSourceType, ) -> Result<(), Error> { info!("Trying to install release {}", self.release); @@ -207,7 +211,7 @@ impl StackSpec { // Install the release release - .install(&self.operators, &[], operator_namespace) + .install(&self.operators, &[], operator_namespace, chart_source) .await .context(InstallReleaseSnafu) } diff --git a/rust/stackable-cockpit/src/utils/chartsource.rs b/rust/stackable-cockpit/src/utils/chartsource.rs new file mode 100644 index 00000000..5a829e04 --- /dev/null +++ b/rust/stackable-cockpit/src/utils/chartsource.rs @@ -0,0 +1,14 @@ +use std::collections::HashMap; + +use serde::Deserialize; + +#[derive(Clone, Debug, Deserialize)] +pub struct ChartSourceMetadata { + pub entries: HashMap>, +} + +#[derive(Clone, Debug, Deserialize)] +pub struct ChartSourceEntry { + pub name: String, + pub version: String, +} diff --git a/rust/stackable-cockpit/src/utils/mod.rs b/rust/stackable-cockpit/src/utils/mod.rs index cad8fa40..a42bcc0d 100644 --- a/rust/stackable-cockpit/src/utils/mod.rs +++ b/rust/stackable-cockpit/src/utils/mod.rs @@ -1,3 +1,4 @@ +pub mod chartsource; pub mod check; pub mod k8s; pub mod params; diff --git a/rust/stackable-cockpit/src/xfer/processor.rs b/rust/stackable-cockpit/src/xfer/processor.rs index e6b0252e..c2f705ba 100644 --- a/rust/stackable-cockpit/src/xfer/processor.rs +++ b/rust/stackable-cockpit/src/xfer/processor.rs @@ -91,7 +91,7 @@ impl Yaml { #[derive(Debug)] pub struct Template<'a>(&'a HashMap); -impl<'a> Processor for Template<'a> { +impl Processor for Template<'_> { type Input = String; type Output = String; diff --git a/rust/stackablectl/CHANGELOG.md b/rust/stackablectl/CHANGELOG.md index 49678eff..464b2f26 100644 --- a/rust/stackablectl/CHANGELOG.md +++ b/rust/stackablectl/CHANGELOG.md @@ -4,6 +4,12 @@ All notable changes to this project will be documented in this file. ## [Unreleased] +### Added + +- Add new argument `--chart-source` so that operator charts can be pulled either from an OCI registry (the default) or from a index.yaml-based repository ([#344]). + +[#344]: https://github.com/stackabletech/stackable-cockpit/pull/344 + ## [24.11.2] - 2025-01-15 ### Added diff --git a/rust/stackablectl/Cargo.toml b/rust/stackablectl/Cargo.toml index eeeab2ed..c07e4046 100644 --- a/rust/stackablectl/Cargo.toml +++ b/rust/stackablectl/Cargo.toml @@ -34,4 +34,5 @@ tracing-subscriber.workspace = true tracing.workspace = true futures.workspace = true termion.workspace = true +urlencoding.workspace = true libc.workspace = true diff --git a/rust/stackablectl/README.md b/rust/stackablectl/README.md index 70cbf740..bb4d37d5 100644 --- a/rust/stackablectl/README.md +++ b/rust/stackablectl/README.md @@ -91,6 +91,15 @@ Helm repository options: Provide a custom Helm dev repository URL [default: https://repo.stackable.tech/repository/helm-dev/] + + --chart-source + Source the charts from either a OCI registry or from index.yaml-based repositories. + + [default: oci] + + Possible values: + - oci: OCI registry + - repo: index.yaml-based repositories: resolution (dev, test, stable) is based on the version and thus will be operator-specific ``` ## Dev Setup diff --git a/rust/stackablectl/src/args/repo.rs b/rust/stackablectl/src/args/repo.rs index 9dbcb449..c2ab4447 100644 --- a/rust/stackablectl/src/args/repo.rs +++ b/rust/stackablectl/src/args/repo.rs @@ -1,19 +1,48 @@ use clap::{Args, ValueHint}; -use crate::constants::{HELM_REPO_URL_DEV, HELM_REPO_URL_STABLE, HELM_REPO_URL_TEST}; +use crate::{ + cli::ChartSourceTypeArg, + constants::{HELM_REPO_URL_DEV, HELM_REPO_URL_STABLE, HELM_REPO_URL_TEST}, +}; #[derive(Debug, Args)] #[command(next_help_heading = "Helm repository options")] pub struct CommonRepoArgs { /// Provide a custom Helm stable repository URL - #[arg(long, value_name = "URL", value_hint = ValueHint::Url, default_value = HELM_REPO_URL_STABLE, global = true)] + #[arg( + long, value_name = "URL", + value_hint = ValueHint::Url, + default_value = HELM_REPO_URL_STABLE, + global = true + )] pub helm_repo_stable: String, /// Provide a custom Helm test repository URL - #[arg(long, value_name = "URL", value_hint = ValueHint::Url, default_value = HELM_REPO_URL_TEST, global = true)] + #[arg( + long, value_name = "URL", + value_hint = ValueHint::Url, + default_value = HELM_REPO_URL_TEST, + global = true + )] pub helm_repo_test: String, /// Provide a custom Helm dev repository URL - #[arg(long, value_name = "URL", value_hint = ValueHint::Url, default_value = HELM_REPO_URL_DEV, global = true)] + #[arg( + long, + value_name = "URL", + value_hint = ValueHint::Url, + default_value = HELM_REPO_URL_DEV, + global = true + )] pub helm_repo_dev: String, + + /// Source the charts from either a OCI registry or from index.yaml-based repositories. + #[arg( + long, + long_help = "Source the charts from either a OCI registry or from index.yaml-based repositories.", + value_enum, + default_value_t = Default::default(), + global = true + )] + pub chart_source: ChartSourceTypeArg, } diff --git a/rust/stackablectl/src/cli/mod.rs b/rust/stackablectl/src/cli/mod.rs index 1f9ec1ef..6ac718b1 100644 --- a/rust/stackablectl/src/cli/mod.rs +++ b/rust/stackablectl/src/cli/mod.rs @@ -8,6 +8,7 @@ use tracing::{debug, instrument, Level}; use stackable_cockpit::{ constants::{HELM_REPO_NAME_DEV, HELM_REPO_NAME_STABLE, HELM_REPO_NAME_TEST}, helm, + platform::operator::ChartSourceType, utils::path::{ IntoPathOrUrl, IntoPathsOrUrls, ParsePathsOrUrls, PathOrUrl, PathOrUrlParseError, }, @@ -208,6 +209,10 @@ impl Cli { pub fn error(&self) -> Output { Output::new(ErrorContext::default(), true).expect("Failed to create output renderer") } + + pub fn chart_type(&self) -> ChartSourceTypeArg { + self.repos.chart_source.clone() + } } #[derive(Debug, Subcommand)] @@ -290,3 +295,31 @@ fn get_files(default_file: &str, env_key: &str) -> Result, PathOr Ok(files) } + +/// Enum used for resolving the argument for chart source type. This will be +/// mapped to ChartSourceType (see below): the reason why we don't have one +/// enum is to avoid having to add clap dependencies to stackable-cockpit +/// for the ValueEnum macro. +#[derive(Clone, Debug, Default, ValueEnum)] +pub enum ChartSourceTypeArg { + /// OCI registry + #[default] + OCI, + + /// index.yaml-based repositories: resolution (dev, test, stable) is based on the version and thus will be operator-specific + Repo, +} + +impl From for ChartSourceType { + /// Resolves the enum used by clap/arg-resolution to the core type used in + /// stackable-cockpit. For the (index.yaml-based) repo case this core type cannot be + /// decorated with meaningful information as that would be operator-specific + /// i.e. we cannot resolve *which* (index.yaml-based) repo to use until we have inspected + /// the operator version. Hence just a simple mapping. + fn from(cli_enum: ChartSourceTypeArg) -> Self { + match cli_enum { + ChartSourceTypeArg::OCI => ChartSourceType::OCI, + ChartSourceTypeArg::Repo => ChartSourceType::Repo, + } + } +} diff --git a/rust/stackablectl/src/cmds/demo.rs b/rust/stackablectl/src/cmds/demo.rs index 0fbb2b76..437977a6 100644 --- a/rust/stackablectl/src/cmds/demo.rs +++ b/rust/stackablectl/src/cmds/demo.rs @@ -12,6 +12,7 @@ use stackable_cockpit::{ constants::{DEFAULT_OPERATOR_NAMESPACE, DEFAULT_PRODUCT_NAMESPACE}, platform::{ demo::{self, DemoInstallParameters}, + operator::ChartSourceType, release, stack, }, utils::{ @@ -285,7 +286,11 @@ async fn describe_cmd( .add_row(vec!["DESCRIPTION", &demo.description]) .add_row_if( |_, _| demo.documentation.is_some(), - vec!["DOCUMENTATION", demo.documentation.as_ref().unwrap()], + // The simple unwrap() may be called despite the condition, if add_row_if evaluates its arguments eagerly, so make sure to avoid a panic + demo.documentation + .as_ref() + .map(|doc| vec!["DOCUMENTATION", doc]) + .unwrap_or_else(Vec::new), ) .add_row(vec!["STACK", &demo.stack]) .add_row(vec!["LABELS", &demo.labels.join(", ")]); @@ -370,6 +375,7 @@ async fn install_cmd( skip_release: args.skip_release, stack_labels, labels, + chart_source: ChartSourceType::from(cli.chart_type()), }; demo.install( diff --git a/rust/stackablectl/src/cmds/operator.rs b/rust/stackablectl/src/cmds/operator.rs index 7e955b10..3f10b869 100644 --- a/rust/stackablectl/src/cmds/operator.rs +++ b/rust/stackablectl/src/cmds/operator.rs @@ -15,10 +15,15 @@ use stackable_cockpit::{ constants::{ DEFAULT_OPERATOR_NAMESPACE, HELM_REPO_NAME_DEV, HELM_REPO_NAME_STABLE, HELM_REPO_NAME_TEST, }, - helm::{self, Release, Repository}, - platform::{namespace, operator}, + helm::{self, Release}, + oci, + platform::{ + namespace, + operator::{self, ChartSourceType}, + }, utils::{ self, + chartsource::ChartSourceMetadata, k8s::{self, Client}, }, }; @@ -159,6 +164,9 @@ pub enum CmdError { source: namespace::Error, namespace: String, }, + + #[snafu(display("OCI error"))] + OciError { source: oci::Error }, } /// This list contains a list of operator version grouped by stable, test and @@ -183,12 +191,13 @@ impl OperatorArgs { async fn list_cmd(args: &OperatorListArgs, cli: &Cli) -> Result { debug!("Listing operators"); - // Build map which maps Helm repo name to Helm repo URL - let helm_index_files = build_helm_index_file_list().await?; + // Build map which maps artifacts to a chart source + let source_index_files = + build_source_index_file_list(&ChartSourceType::from(cli.chart_type())).await?; // Iterate over all valid operators and create a list of versions grouped // by stable, test and dev lines - let versions_list = build_versions_list(&helm_index_files)?; + let versions_list = build_versions_list(&source_index_files)?; match args.output_type { OutputType::Plain | OutputType::Table => { @@ -239,11 +248,12 @@ async fn list_cmd(args: &OperatorListArgs, cli: &Cli) -> Result Result { debug!("Describing operator {}", args.operator_name); - // Build map which maps Helm repo name to Helm repo URL - let helm_index_files = build_helm_index_file_list().await?; + // Build map which maps artifacts to a chart source + let source_index_files = + build_source_index_file_list(&ChartSourceType::from(cli.chart_type())).await?; // Create a list of versions for this operator - let versions_list = build_versions_list_for_operator(&args.operator_name, &helm_index_files)?; + let versions_list = build_versions_list_for_operator(&args.operator_name, &source_index_files)?; match args.output_type { OutputType::Plain | OutputType::Table => { @@ -312,7 +322,10 @@ async fn install_cmd(args: &OperatorInstallArgs, cli: &Cli) -> Result Result() -> Result, CmdError> { - debug!("Building Helm index file list"); - - let mut helm_index_files = HashMap::new(); - - for helm_repo_name in [ - HELM_REPO_NAME_STABLE, - HELM_REPO_NAME_TEST, - HELM_REPO_NAME_DEV, - ] { - let helm_repo_url = - helm_repo_name_to_repo_url(helm_repo_name).context(InvalidRepoNameSnafu)?; - - helm_index_files.insert( - helm_repo_name, - helm::get_helm_index(helm_repo_url) - .await - .context(HelmSnafu)?, - ); - } +async fn build_source_index_file_list<'a>( + chart_source: &ChartSourceType, +) -> Result, CmdError> { + debug!("Building source index file list"); + + let mut source_index_files: HashMap<&str, ChartSourceMetadata> = HashMap::new(); + + match chart_source { + ChartSourceType::OCI => { + source_index_files = oci::get_oci_index().await.context(OciSnafu)?; + + debug!("OCI Repository entries: {:?}", source_index_files); + } + ChartSourceType::Repo => { + for helm_repo_name in [ + HELM_REPO_NAME_STABLE, + HELM_REPO_NAME_TEST, + HELM_REPO_NAME_DEV, + ] { + let helm_repo_url = + helm_repo_name_to_repo_url(helm_repo_name).context(InvalidRepoNameSnafu)?; + + source_index_files.insert( + helm_repo_name, + helm::get_helm_index(helm_repo_url) + .await + .context(HelmSnafu)?, + ); + + debug!("Helm Repository entries: {:?}", source_index_files); + } + } + }; - Ok(helm_index_files) + Ok(source_index_files) } /// Iterates over all valid operators and creates a list of versions grouped /// by stable, test and dev lines based on the list of Helm repo index files. #[instrument] fn build_versions_list( - helm_index_files: &HashMap<&str, Repository>, + helm_index_files: &HashMap<&str, ChartSourceMetadata>, ) -> Result, CmdError> { debug!("Building versions list"); @@ -492,7 +518,7 @@ fn build_versions_list( #[instrument] fn build_versions_list_for_operator( operator_name: T, - helm_index_files: &HashMap<&str, Repository>, + helm_index_files: &HashMap<&str, ChartSourceMetadata>, ) -> Result where T: AsRef + std::fmt::Debug, @@ -517,7 +543,7 @@ where #[instrument] fn list_operator_versions_from_repo( operator_name: T, - helm_repo: &Repository, + helm_repo: &ChartSourceMetadata, ) -> Result, CmdError> where T: AsRef + std::fmt::Debug, diff --git a/rust/stackablectl/src/cmds/release.rs b/rust/stackablectl/src/cmds/release.rs index 5a22bfc6..e0dca6fd 100644 --- a/rust/stackablectl/src/cmds/release.rs +++ b/rust/stackablectl/src/cmds/release.rs @@ -9,7 +9,7 @@ use tracing::{debug, info, instrument}; use stackable_cockpit::{ common::list, constants::DEFAULT_OPERATOR_NAMESPACE, - platform::{namespace, release}, + platform::{namespace, operator::ChartSourceType, release}, utils::{ k8s::{self, Client}, path::PathOrUrlParseError, @@ -296,6 +296,7 @@ async fn install_cmd( &args.included_products, &args.excluded_products, &args.operator_namespace, + &ChartSourceType::from(cli.chart_type()), ) .await .context(ReleaseInstallSnafu)?; diff --git a/rust/stackablectl/src/cmds/stack.rs b/rust/stackablectl/src/cmds/stack.rs index a2ca9423..7391f1f9 100644 --- a/rust/stackablectl/src/cmds/stack.rs +++ b/rust/stackablectl/src/cmds/stack.rs @@ -11,6 +11,7 @@ use stackable_cockpit::{ common::list, constants::{DEFAULT_OPERATOR_NAMESPACE, DEFAULT_PRODUCT_NAMESPACE}, platform::{ + operator::ChartSourceType, release, stack::{self, StackInstallParameters}, }, @@ -347,6 +348,7 @@ async fn install_cmd( skip_release: args.skip_release, demo_name: None, labels, + chart_source: ChartSourceType::from(cli.chart_type()), }; stack_spec