From c6d532fd3ae5731d9a1a8a3d6f96c593955fbdb6 Mon Sep 17 00:00:00 2001 From: Andrew Kenworthy Date: Tue, 17 Dec 2024 17:08:12 +0100 Subject: [PATCH 01/20] feat: Support OCI registries --- rust/stackable-cockpit/src/constants.rs | 2 ++ rust/stackable-cockpit/src/helm.rs | 10 +++++----- .../src/platform/demo/params.rs | 1 + .../stackable-cockpit/src/platform/demo/spec.rs | 1 + .../stackable-cockpit/src/platform/manifests.rs | 6 ++++-- .../src/platform/operator/mod.rs | 17 ++++++++++++----- .../src/platform/release/spec.rs | 5 ++++- .../src/platform/stack/params.rs | 1 + .../src/platform/stack/spec.rs | 4 +++- rust/stackablectl/src/cmds/demo.rs | 5 +++++ rust/stackablectl/src/cmds/operator.rs | 6 +++++- rust/stackablectl/src/cmds/release.rs | 5 +++++ rust/stackablectl/src/cmds/stack.rs | 5 +++++ 13 files changed, 53 insertions(+), 15 deletions(-) diff --git a/rust/stackable-cockpit/src/constants.rs b/rust/stackable-cockpit/src/constants.rs index f7ad785d..82287e18 100644 --- a/rust/stackable-cockpit/src/constants.rs +++ b/rust/stackable-cockpit/src/constants.rs @@ -22,6 +22,8 @@ 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_REGISTRY: &str = "oci://oci.stackable.tech/sdp-charts"; + pub const HELM_DEFAULT_CHART_VERSION: &str = ">0.0.0-0"; pub const PRODUCT_NAMES: &[&str] = &[ diff --git a/rust/stackable-cockpit/src/helm.rs b/rust/stackable-cockpit/src/helm.rs index 0e8eb193..58aac1e0 100644 --- a/rust/stackable-cockpit/src/helm.rs +++ b/rust/stackable-cockpit/src/helm.rs @@ -182,20 +182,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 +244,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!( diff --git a/rust/stackable-cockpit/src/platform/demo/params.rs b/rust/stackable-cockpit/src/platform/demo/params.rs index f2bfb111..25b467f1 100644 --- a/rust/stackable-cockpit/src/platform/demo/params.rs +++ b/rust/stackable-cockpit/src/platform/demo/params.rs @@ -10,4 +10,5 @@ pub struct DemoInstallParameters { pub stack_labels: Labels, pub labels: Labels, + pub use_registry: bool, } diff --git a/rust/stackable-cockpit/src/platform/demo/spec.rs b/rust/stackable-cockpit/src/platform/demo/spec.rs index 68741e87..a94178c1 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, + use_registry: install_parameters.use_registry, }; stack diff --git a/rust/stackable-cockpit/src/platform/manifests.rs b/rust/stackable-cockpit/src/platform/manifests.rs index 882533e0..fa1e3ab6 100644 --- a/rust/stackable-cockpit/src/platform/manifests.rs +++ b/rust/stackable-cockpit/src/platform/manifests.rs @@ -62,6 +62,7 @@ pub enum Error { pub trait InstallManifestsExt { // TODO (Techassi): This step shouldn't care about templating the manifests nor fetching them from remote + // TODO aken: do we support helm charts from registries? #[instrument(skip_all)] #[allow(async_fn_in_trait)] async fn install_manifests( @@ -94,6 +95,7 @@ pub trait InstallManifestsExt { helm_chart.name, helm_chart.version ); + // TODO aken: assuming 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 +107,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..10340e40 100644 --- a/rust/stackable-cockpit/src/platform/operator/mod.rs +++ b/rust/stackable-cockpit/src/platform/operator/mod.rs @@ -5,7 +5,9 @@ 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 +178,25 @@ 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, use_registry: bool) -> 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(); + let chart_source = if use_registry { + HELM_OCI_REGISTRY.to_string() + } else { + 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, diff --git a/rust/stackable-cockpit/src/platform/release/spec.rs b/rust/stackable-cockpit/src/platform/release/spec.rs index ec0199a4..24f44bfe 100644 --- a/rust/stackable-cockpit/src/platform/release/spec.rs +++ b/rust/stackable-cockpit/src/platform/release/spec.rs @@ -56,6 +56,7 @@ impl ReleaseSpec { include_products: &[String], exclude_products: &[String], namespace: &str, + use_registry: bool, ) -> Result<()> { info!("Installing release"); @@ -73,7 +74,9 @@ impl ReleaseSpec { .context(OperatorSpecParseSnafu)?; // Install operator - operator.install(&namespace).context(HelmInstallSnafu)?; + operator + .install(&namespace, use_registry) + .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..aba86f92 100644 --- a/rust/stackable-cockpit/src/platform/stack/params.rs +++ b/rust/stackable-cockpit/src/platform/stack/params.rs @@ -11,4 +11,5 @@ pub struct StackInstallParameters { pub parameters: Vec, pub skip_release: bool, pub labels: Labels, + pub use_registry: bool, } diff --git a/rust/stackable-cockpit/src/platform/stack/spec.rs b/rust/stackable-cockpit/src/platform/stack/spec.rs index 499c08b0..c57835df 100644 --- a/rust/stackable-cockpit/src/platform/stack/spec.rs +++ b/rust/stackable-cockpit/src/platform/stack/spec.rs @@ -173,6 +173,7 @@ impl StackSpec { release_list, &install_parameters.operator_namespace, &install_parameters.product_namespace, + install_parameters.use_registry, ) .await?; } @@ -195,6 +196,7 @@ impl StackSpec { release_list: release::ReleaseList, operator_namespace: &str, product_namespace: &str, + use_registry: bool, ) -> Result<(), Error> { info!("Trying to install release {}", self.release); @@ -207,7 +209,7 @@ impl StackSpec { // Install the release release - .install(&self.operators, &[], operator_namespace) + .install(&self.operators, &[], operator_namespace, use_registry) .await .context(InstallReleaseSnafu) } diff --git a/rust/stackablectl/src/cmds/demo.rs b/rust/stackablectl/src/cmds/demo.rs index 023a6b5a..0d51de73 100644 --- a/rust/stackablectl/src/cmds/demo.rs +++ b/rust/stackablectl/src/cmds/demo.rs @@ -107,6 +107,10 @@ to specify operator versions." #[command(flatten)] namespaces: CommonNamespaceArgs, + + /// TODO + #[arg(long, long_help = "TODO")] + use_registry: bool, } #[derive(Debug, Args)] @@ -329,6 +333,7 @@ async fn install_cmd( skip_release: args.skip_release, stack_labels, labels, + use_registry: args.use_registry, }; demo.install( diff --git a/rust/stackablectl/src/cmds/operator.rs b/rust/stackablectl/src/cmds/operator.rs index 7e955b10..21d42338 100644 --- a/rust/stackablectl/src/cmds/operator.rs +++ b/rust/stackablectl/src/cmds/operator.rs @@ -102,6 +102,10 @@ Use \"stackablectl operator describe \" to get available versions for #[command(flatten)] local_cluster: CommonClusterArgs, + + /// TODO + #[arg(long, long_help = "TODO")] + use_registry: bool, } #[derive(Debug, Args)] @@ -312,7 +316,7 @@ async fn install_cmd(args: &OperatorInstallArgs, cli: &Cli) -> Result\" to list available parameters for eac #[command(flatten)] namespaces: CommonNamespaceArgs, + + /// TODO + #[arg(long, long_help = "TODO")] + use_registry: bool, } #[derive(Debug, Snafu)] @@ -310,6 +314,7 @@ async fn install_cmd( skip_release: args.skip_release, demo_name: None, labels, + use_registry: args.use_registry, }; stack_spec From a587d2b23e1cf0e377c0d504c6169bef7ec3ef08 Mon Sep 17 00:00:00 2001 From: Andrew Kenworthy Date: Tue, 17 Dec 2024 17:47:08 +0100 Subject: [PATCH 02/20] updated comments and completions --- extra/completions/_stackablectl | 4 ++++ extra/completions/stackablectl.bash | 8 ++++---- extra/completions/stackablectl.elv | 4 ++++ extra/completions/stackablectl.fish | 4 ++++ extra/completions/stackablectl.nu | 4 ++++ rust/stackablectl/src/cmds/demo.rs | 7 +++++-- rust/stackablectl/src/cmds/operator.rs | 7 +++++-- rust/stackablectl/src/cmds/release.rs | 7 +++++-- rust/stackablectl/src/cmds/stack.rs | 7 +++++-- 9 files changed, 40 insertions(+), 12 deletions(-) diff --git a/extra/completions/_stackablectl b/extra/completions/_stackablectl index 8397bb6c..119d64c8 100644 --- a/extra/completions/_stackablectl +++ b/extra/completions/_stackablectl @@ -151,6 +151,7 @@ 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' \ +'--use-registry[Indicates whether charts should be pulled from the OCI registry rather than the Nexus repositories]' \ '--no-cache[Do not cache the remote (default) demo, stack and release files]' \ '--offline[Do not request any remote files via the network]' \ '-h[Print help (see more with '\''--help'\'')]' \ @@ -373,6 +374,7 @@ 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' \ +'--use-registry[Indicates whether charts should be pulled from the OCI registry rather than the Nexus repositories]' \ '--no-cache[Do not cache the remote (default) demo, stack and release files]' \ '--offline[Do not request any remote files via the network]' \ '-h[Print help (see more with '\''--help'\'')]' \ @@ -562,6 +564,7 @@ minikube\:"Use a minikube cluster"))' \ '--helm-repo-test=[Provide a custom Helm test repository URL]:URL:_urls' \ '--helm-repo-dev=[Provide a custom Helm dev repository URL]:URL:_urls' \ '--skip-release[Skip the installation of the release during the stack install process]' \ +'--use-registry[Indicates whether charts should be pulled from the OCI registry rather than the Nexus repositories]' \ '--no-cache[Do not cache the remote (default) demo, stack and release files]' \ '--offline[Do not request any remote files via the network]' \ '-h[Print help (see more with '\''--help'\'')]' \ @@ -844,6 +847,7 @@ minikube\:"Use a minikube cluster"))' \ '--helm-repo-test=[Provide a custom Helm test repository URL]:URL:_urls' \ '--helm-repo-dev=[Provide a custom Helm dev repository URL]:URL:_urls' \ '--skip-release[Skip the installation of the release during the stack install process]' \ +'--use-registry[Indicates whether charts should be pulled from the OCI registry rather than the Nexus repositories]' \ '--no-cache[Do not cache the remote (default) demo, stack and release files]' \ '--offline[Do not request any remote files via the network]' \ '-h[Print help (see more with '\''--help'\'')]' \ diff --git a/extra/completions/stackablectl.bash b/extra/completions/stackablectl.bash index 9b44a4da..9ef336a4 100644 --- a/extra/completions/stackablectl.bash +++ b/extra/completions/stackablectl.bash @@ -2051,7 +2051,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 --log-level --no-cache --offline --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 --use-registry --log-level --no-cache --offline --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --help --version " if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) return 0 @@ -3329,7 +3329,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 --offline --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 --use-registry --log-level --no-cache --offline --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --help --version ..." if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) return 0 @@ -4225,7 +4225,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 --offline --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 --use-registry --log-level --no-cache --offline --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --help --version " if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) return 0 @@ -4983,7 +4983,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 --log-level --no-cache --offline --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 --use-registry --log-level --no-cache --offline --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --help --version " if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) return 0 diff --git a/extra/completions/stackablectl.elv b/extra/completions/stackablectl.elv index ecc11445..360bfca3 100644 --- a/extra/completions/stackablectl.elv +++ b/extra/completions/stackablectl.elv @@ -131,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 --use-registry 'Indicates whether charts should be pulled from the OCI registry rather than the Nexus repositories' cand --no-cache 'Do not cache the remote (default) demo, stack and release files' cand --offline 'Do not request any remote files via the network' cand -h 'Print help (see more with ''--help'')' @@ -291,6 +292,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 --use-registry 'Indicates whether charts should be pulled from the OCI registry rather than the Nexus repositories' cand --no-cache 'Do not cache the remote (default) demo, stack and release files' cand --offline 'Do not request any remote files via the network' cand -h 'Print help (see more with ''--help'')' @@ -426,6 +428,7 @@ set edit:completion:arg-completer[stackablectl] = {|@words| cand --helm-repo-test 'Provide a custom Helm test repository URL' cand --helm-repo-dev 'Provide a custom Helm dev repository URL' cand --skip-release 'Skip the installation of the release during the stack install process' + cand --use-registry 'Indicates whether charts should be pulled from the OCI registry rather than the Nexus repositories' cand --no-cache 'Do not cache the remote (default) demo, stack and release files' cand --offline 'Do not request any remote files via the network' cand -h 'Print help (see more with ''--help'')' @@ -618,6 +621,7 @@ set edit:completion:arg-completer[stackablectl] = {|@words| cand --helm-repo-test 'Provide a custom Helm test repository URL' cand --helm-repo-dev 'Provide a custom Helm dev repository URL' cand --skip-release 'Skip the installation of the release during the stack install process' + cand --use-registry 'Indicates whether charts should be pulled from the OCI registry rather than the Nexus repositories' cand --no-cache 'Do not cache the remote (default) demo, stack and release files' cand --offline 'Do not request any remote files via the network' cand -h 'Print help (see more with ''--help'')' diff --git a/extra/completions/stackablectl.fish b/extra/completions/stackablectl.fish index c0887c8f..a6102098 100644 --- a/extra/completions/stackablectl.fish +++ b/extra/completions/stackablectl.fish @@ -97,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 use-registry -d 'Indicates whether charts should be pulled from the OCI registry rather than the Nexus repositories' 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" -l offline -d 'Do not request any remote files via the network' 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\')' @@ -186,6 +187,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 use-registry -d 'Indicates whether charts should be pulled from the OCI registry rather than the Nexus repositories' 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" -l offline -d 'Do not request any remote files via the network' 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\')' @@ -262,6 +264,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-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 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 use-registry -d 'Indicates whether charts should be pulled from the OCI registry rather than the Nexus repositories' 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" -l offline -d 'Do not request any remote files via the network' 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\')' @@ -368,6 +371,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-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 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 use-registry -d 'Indicates whether charts should be pulled from the OCI registry rather than the Nexus repositories' 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" -l offline -d 'Do not request any remote files via the network' 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\')' diff --git a/extra/completions/stackablectl.nu b/extra/completions/stackablectl.nu index 2c29c765..1ff549d9 100644 --- a/extra/completions/stackablectl.nu +++ b/extra/completions/stackablectl.nu @@ -84,6 +84,7 @@ module completions { --cluster-name: string # Name of the local cluster --cluster-nodes: string # Number of total nodes in the local cluster --cluster-cp-nodes: string # Number of control plane nodes in the local cluster + --use-registry # Indicates whether charts should be pulled from the OCI registry rather than the Nexus repositories --log-level(-l): string # Log level this application uses --no-cache # Do not cache the remote (default) demo, stack and release files --offline # Do not request any remote files via the network @@ -236,6 +237,7 @@ module completions { --cluster-name: string # Name of the local cluster --cluster-nodes: string # Number of total nodes in the local cluster --cluster-cp-nodes: string # Number of control plane nodes in the local cluster + --use-registry # Indicates whether charts should be pulled from the OCI registry rather than the Nexus repositories --log-level(-l): string # Log level this application uses --no-cache # Do not cache the remote (default) demo, stack and release files --offline # Do not request any remote files via the network @@ -365,6 +367,7 @@ module completions { --operator-ns: string # Namespace where the operators are deployed --product-namespace(-n): string # Namespace where the products (e.g. stacks or demos) are deployed --product-ns: string # Namespace where the products (e.g. stacks or demos) are deployed + --use-registry # Indicates whether charts should be pulled from the OCI registry rather than the Nexus repositories --log-level(-l): string # Log level this application uses --no-cache # Do not cache the remote (default) demo, stack and release files --offline # Do not request any remote files via the network @@ -546,6 +549,7 @@ module completions { --operator-ns: string # Namespace where the operators are deployed --product-namespace(-n): string # Namespace where the products (e.g. stacks or demos) are deployed --product-ns: string # Namespace where the products (e.g. stacks or demos) are deployed + --use-registry # Indicates whether charts should be pulled from the OCI registry rather than the Nexus repositories --log-level(-l): string # Log level this application uses --no-cache # Do not cache the remote (default) demo, stack and release files --offline # Do not request any remote files via the network diff --git a/rust/stackablectl/src/cmds/demo.rs b/rust/stackablectl/src/cmds/demo.rs index 0d51de73..95c2e021 100644 --- a/rust/stackablectl/src/cmds/demo.rs +++ b/rust/stackablectl/src/cmds/demo.rs @@ -108,8 +108,11 @@ to specify operator versions." #[command(flatten)] namespaces: CommonNamespaceArgs, - /// TODO - #[arg(long, long_help = "TODO")] + /// Indicates whether charts should be pulled from the OCI registry rather than the Nexus repositories + #[arg( + long, + long_help = "Pull the charts from the OCI registry rather than the Nexus repositories." + )] use_registry: bool, } diff --git a/rust/stackablectl/src/cmds/operator.rs b/rust/stackablectl/src/cmds/operator.rs index 21d42338..77ba4c2d 100644 --- a/rust/stackablectl/src/cmds/operator.rs +++ b/rust/stackablectl/src/cmds/operator.rs @@ -103,8 +103,11 @@ Use \"stackablectl operator describe \" to get available versions for #[command(flatten)] local_cluster: CommonClusterArgs, - /// TODO - #[arg(long, long_help = "TODO")] + /// Indicates whether charts should be pulled from the OCI registry rather than the Nexus repositories + #[arg( + long, + long_help = "Pull the charts from the OCI registry rather than the Nexus repositories." + )] use_registry: bool, } diff --git a/rust/stackablectl/src/cmds/release.rs b/rust/stackablectl/src/cmds/release.rs index 8c1d40d0..faafb629 100644 --- a/rust/stackablectl/src/cmds/release.rs +++ b/rust/stackablectl/src/cmds/release.rs @@ -83,8 +83,11 @@ pub struct ReleaseInstallArgs { #[command(flatten)] local_cluster: CommonClusterArgs, - /// TODO - #[arg(long, long_help = "TODO")] + /// Indicates whether charts should be pulled from the OCI registry rather than the Nexus repositories + #[arg( + long, + long_help = "Pull the charts from the OCI registry rather than the Nexus repositories." + )] use_registry: bool, } diff --git a/rust/stackablectl/src/cmds/stack.rs b/rust/stackablectl/src/cmds/stack.rs index e33d69d8..9cfe0b44 100644 --- a/rust/stackablectl/src/cmds/stack.rs +++ b/rust/stackablectl/src/cmds/stack.rs @@ -104,8 +104,11 @@ Use \"stackablectl stack describe \" to list available parameters for eac #[command(flatten)] namespaces: CommonNamespaceArgs, - /// TODO - #[arg(long, long_help = "TODO")] + /// Indicates whether charts should be pulled from the OCI registry rather than the Nexus repositories + #[arg( + long, + long_help = "Pull the charts from the OCI registry rather than the Nexus repositories." + )] use_registry: bool, } From 3a374dad92a6a75ef53c5a6a27a02e7a3f7a8305 Mon Sep 17 00:00:00 2001 From: Andrew Kenworthy Date: Wed, 18 Dec 2024 10:31:18 +0100 Subject: [PATCH 03/20] try and avoid library conflicts --- .github/workflows/pr_cockpit.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pr_cockpit.yml b/.github/workflows/pr_cockpit.yml index 26c1d7b1..1a4ab385 100644 --- a/.github/workflows/pr_cockpit.yml +++ b/.github/workflows/pr_cockpit.yml @@ -118,7 +118,7 @@ jobs: - name: Update Version run: | - cargo install cargo-edit --version 0.11.11 + cargo install cargo-edit --version 0.11.11 --locked cargo set-version --offline --package stackable-cockpit 0.0.0-pr${{ github.event.pull_request.number }} # Recreate charts and publish charts and docker image. The "-e" is needed as we want to override the From 25d9ba87b6e661aca35b004445d6221862db25ed Mon Sep 17 00:00:00 2001 From: Andrew Kenworthy Date: Wed, 18 Dec 2024 10:55:39 +0100 Subject: [PATCH 04/20] bump rust 1.83.0 and revert --locked directive --- .github/workflows/pr_cockpit.yml | 4 ++-- .github/workflows/pr_general.yml | 2 +- .github/workflows/pr_pre-commit.yml | 2 +- .github/workflows/pr_stackablectl.yml | 2 +- .github/workflows/release_stackablectl.yml | 2 +- rust-toolchain.toml | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/pr_cockpit.yml b/.github/workflows/pr_cockpit.yml index 1a4ab385..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" @@ -118,7 +118,7 @@ jobs: - name: Update Version run: | - cargo install cargo-edit --version 0.11.11 --locked + cargo install cargo-edit --version 0.11.11 cargo set-version --offline --package stackable-cockpit 0.0.0-pr${{ github.event.pull_request.number }} # Recreate charts and publish charts and docker image. The "-e" is needed as we want to override the 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 d3e116fd..204b3cb0 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 33c061f5..51fd5468 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/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" From 33307902f6e1a73f59fe086f8e3b70576d8f00d6 Mon Sep 17 00:00:00 2001 From: Andrew Kenworthy Date: Wed, 18 Dec 2024 11:34:48 +0100 Subject: [PATCH 05/20] elide explicit lifetime --- rust/stackable-cockpit/src/xfer/processor.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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; From 99bbe807bbcfb2e9d0cc3a23cc86caf3d95d892b Mon Sep 17 00:00:00 2001 From: Andrew Kenworthy Date: Wed, 18 Dec 2024 18:00:36 +0100 Subject: [PATCH 06/20] replace bool with enum --- extra/completions/_stackablectl | 22 +++++++++--- extra/completions/stackablectl.bash | 36 +++++++++++++++---- extra/completions/stackablectl.elv | 10 +++--- extra/completions/stackablectl.fish | 10 +++--- extra/completions/stackablectl.nu | 34 +++++++++++++++--- .../src/platform/demo/params.rs | 4 ++- .../src/platform/demo/spec.rs | 2 +- .../src/platform/operator/mod.rs | 30 +++++++++++++--- .../src/platform/release/spec.rs | 7 ++-- .../src/platform/stack/params.rs | 4 ++- .../src/platform/stack/spec.rs | 10 +++--- rust/stackablectl/src/cli/mod.rs | 35 +++++++++++++++++- rust/stackablectl/src/cmds/demo.rs | 11 +++--- rust/stackablectl/src/cmds/operator.rs | 31 ++++++++++++---- rust/stackablectl/src/cmds/release.rs | 12 +++---- rust/stackablectl/src/cmds/stack.rs | 11 +++--- 16 files changed, 209 insertions(+), 60 deletions(-) diff --git a/extra/completions/_stackablectl b/extra/completions/_stackablectl index 119d64c8..69b1223a 100644 --- a/extra/completions/_stackablectl +++ b/extra/completions/_stackablectl @@ -80,6 +80,9 @@ yaml\:"Print output formatted as YAML"))' \ table\:"Print output formatted as a table" json\:"Print output formatted as JSON" yaml\:"Print output formatted as YAML"))' \ +'--chart-source=[]:CHART_SOURCE:((oci\:"OCI registry" +repo\:"Nexus repositories\: resolution (dev, test, stable) is based on the version and thus may be operator-specific" +tgz\:"Archive"))' \ '-l+[Log level this application uses]:LOG_LEVEL: ' \ '--log-level=[Log level this application uses]:LOG_LEVEL: ' \ '*-d+[Provide one or more additional (custom) demo file(s)]:DEMO_FILE:_files' \ @@ -109,6 +112,9 @@ yaml\:"Print output formatted as YAML"))' \ table\:"Print output formatted as a table" json\:"Print output formatted as JSON" yaml\:"Print output formatted as YAML"))' \ +'--chart-source=[]:CHART_SOURCE:((oci\:"OCI registry" +repo\:"Nexus repositories\: resolution (dev, test, stable) is based on the version and thus may be operator-specific" +tgz\:"Archive"))' \ '-l+[Log level this application uses]:LOG_LEVEL: ' \ '--log-level=[Log level this application uses]:LOG_LEVEL: ' \ '*-d+[Provide one or more additional (custom) demo file(s)]:DEMO_FILE:_files' \ @@ -140,6 +146,9 @@ minikube\:"Use a minikube cluster"))' \ '--cluster-name=[Name of the local cluster]:CLUSTER_NAME: ' \ '--cluster-nodes=[Number of total nodes in the local cluster]:CLUSTER_NODES: ' \ '--cluster-cp-nodes=[Number of control plane nodes in the local cluster]:CLUSTER_CP_NODES: ' \ +'--chart-source=[]:CHART_SOURCE:((oci\:"OCI registry" +repo\:"Nexus repositories\: resolution (dev, test, stable) is based on the version and thus may be operator-specific" +tgz\:"Archive"))' \ '-l+[Log level this application uses]:LOG_LEVEL: ' \ '--log-level=[Log level this application uses]:LOG_LEVEL: ' \ '*-d+[Provide one or more additional (custom) demo file(s)]:DEMO_FILE:_files' \ @@ -151,7 +160,6 @@ 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' \ -'--use-registry[Indicates whether charts should be pulled from the OCI registry rather than the Nexus repositories]' \ '--no-cache[Do not cache the remote (default) demo, stack and release files]' \ '--offline[Do not request any remote files via the network]' \ '-h[Print help (see more with '\''--help'\'')]' \ @@ -363,6 +371,9 @@ minikube\:"Use a minikube cluster"))' \ '--cluster-name=[Name of the local cluster]:CLUSTER_NAME: ' \ '--cluster-nodes=[Number of total nodes in the local cluster]:CLUSTER_NODES: ' \ '--cluster-cp-nodes=[Number of control plane nodes in the local cluster]:CLUSTER_CP_NODES: ' \ +'--chart-source=[]:CHART_SOURCE:((oci\:"OCI registry" +repo\:"Nexus repositories\: resolution (dev, test, stable) is based on the version and thus may be operator-specific" +tgz\:"Archive"))' \ '-l+[Log level this application uses]:LOG_LEVEL: ' \ '--log-level=[Log level this application uses]:LOG_LEVEL: ' \ '*-d+[Provide one or more additional (custom) demo file(s)]:DEMO_FILE:_files' \ @@ -374,7 +385,6 @@ 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' \ -'--use-registry[Indicates whether charts should be pulled from the OCI registry rather than the Nexus repositories]' \ '--no-cache[Do not cache the remote (default) demo, stack and release files]' \ '--offline[Do not request any remote files via the network]' \ '-h[Print help (see more with '\''--help'\'')]' \ @@ -552,6 +562,9 @@ minikube\:"Use a minikube cluster"))' \ '-n+[Namespace where the products (e.g. stacks or demos) are deployed]:PRODUCT_NAMESPACE: ' \ '--product-namespace=[Namespace where the products (e.g. stacks or demos) are deployed]:PRODUCT_NAMESPACE: ' \ '--product-ns=[Namespace where the products (e.g. stacks or demos) are deployed]:PRODUCT_NAMESPACE: ' \ +'--chart-source=[]:CHART_SOURCE:((oci\:"OCI registry" +repo\:"Nexus repositories\: resolution (dev, test, stable) is based on the version and thus may be operator-specific" +tgz\:"Archive"))' \ '-l+[Log level this application uses]:LOG_LEVEL: ' \ '--log-level=[Log level this application uses]:LOG_LEVEL: ' \ '*-d+[Provide one or more additional (custom) demo file(s)]:DEMO_FILE:_files' \ @@ -564,7 +577,6 @@ minikube\:"Use a minikube cluster"))' \ '--helm-repo-test=[Provide a custom Helm test repository URL]:URL:_urls' \ '--helm-repo-dev=[Provide a custom Helm dev repository URL]:URL:_urls' \ '--skip-release[Skip the installation of the release during the stack install process]' \ -'--use-registry[Indicates whether charts should be pulled from the OCI registry rather than the Nexus repositories]' \ '--no-cache[Do not cache the remote (default) demo, stack and release files]' \ '--offline[Do not request any remote files via the network]' \ '-h[Print help (see more with '\''--help'\'')]' \ @@ -835,6 +847,9 @@ minikube\:"Use a minikube cluster"))' \ '-n+[Namespace where the products (e.g. stacks or demos) are deployed]:PRODUCT_NAMESPACE: ' \ '--product-namespace=[Namespace where the products (e.g. stacks or demos) are deployed]:PRODUCT_NAMESPACE: ' \ '--product-ns=[Namespace where the products (e.g. stacks or demos) are deployed]:PRODUCT_NAMESPACE: ' \ +'--chart-source=[]:CHART_SOURCE:((oci\:"OCI registry" +repo\:"Nexus repositories\: resolution (dev, test, stable) is based on the version and thus may be operator-specific" +tgz\:"Archive"))' \ '-l+[Log level this application uses]:LOG_LEVEL: ' \ '--log-level=[Log level this application uses]:LOG_LEVEL: ' \ '*-d+[Provide one or more additional (custom) demo file(s)]:DEMO_FILE:_files' \ @@ -847,7 +862,6 @@ minikube\:"Use a minikube cluster"))' \ '--helm-repo-test=[Provide a custom Helm test repository URL]:URL:_urls' \ '--helm-repo-dev=[Provide a custom Helm dev repository URL]:URL:_urls' \ '--skip-release[Skip the installation of the release during the stack install process]' \ -'--use-registry[Indicates whether charts should be pulled from the OCI registry rather than the Nexus repositories]' \ '--no-cache[Do not cache the remote (default) demo, stack and release files]' \ '--offline[Do not request any remote files via the network]' \ '-h[Print help (see more with '\''--help'\'')]' \ diff --git a/extra/completions/stackablectl.bash b/extra/completions/stackablectl.bash index 9ef336a4..dfb536cb 100644 --- a/extra/completions/stackablectl.bash +++ b/extra/completions/stackablectl.bash @@ -2051,7 +2051,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 --use-registry --log-level --no-cache --offline --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 --chart-source --log-level --no-cache --offline --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --help --version " if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) return 0 @@ -2105,6 +2105,10 @@ _stackablectl() { COMPREPLY=($(compgen -f "${cur}")) return 0 ;; + --chart-source) + COMPREPLY=($(compgen -W "oci repo tgz" -- "${cur}")) + return 0 + ;; --log-level) COMPREPLY=($(compgen -f "${cur}")) return 0 @@ -3099,7 +3103,7 @@ _stackablectl() { return 0 ;; stackablectl__operator__describe) - opts="-o -l -d -s -r -h -V --output --log-level --no-cache --offline --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 --chart-source --log-level --no-cache --offline --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --help --version " if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) return 0 @@ -3113,6 +3117,10 @@ _stackablectl() { COMPREPLY=($(compgen -W "plain table json yaml" -- "${cur}")) return 0 ;; + --chart-source) + COMPREPLY=($(compgen -W "oci repo tgz" -- "${cur}")) + return 0 + ;; --log-level) COMPREPLY=($(compgen -f "${cur}")) return 0 @@ -3329,7 +3337,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 --use-registry --log-level --no-cache --offline --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 --chart-source --log-level --no-cache --offline --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --help --version ..." if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) return 0 @@ -3363,6 +3371,10 @@ _stackablectl() { COMPREPLY=($(compgen -f "${cur}")) return 0 ;; + --chart-source) + COMPREPLY=($(compgen -W "oci repo tgz" -- "${cur}")) + return 0 + ;; --log-level) COMPREPLY=($(compgen -f "${cur}")) return 0 @@ -3621,7 +3633,7 @@ _stackablectl() { return 0 ;; stackablectl__operator__list) - opts="-o -l -d -s -r -h -V --output --log-level --no-cache --offline --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 --chart-source --log-level --no-cache --offline --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --help --version" if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) return 0 @@ -3635,6 +3647,10 @@ _stackablectl() { COMPREPLY=($(compgen -W "plain table json yaml" -- "${cur}")) return 0 ;; + --chart-source) + COMPREPLY=($(compgen -W "oci repo tgz" -- "${cur}")) + return 0 + ;; --log-level) COMPREPLY=($(compgen -f "${cur}")) return 0 @@ -4225,7 +4241,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 --use-registry --log-level --no-cache --offline --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 --chart-source --log-level --no-cache --offline --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --help --version " if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) return 0 @@ -4275,6 +4291,10 @@ _stackablectl() { COMPREPLY=($(compgen -f "${cur}")) return 0 ;; + --chart-source) + COMPREPLY=($(compgen -W "oci repo tgz" -- "${cur}")) + return 0 + ;; --log-level) COMPREPLY=($(compgen -f "${cur}")) return 0 @@ -4983,7 +5003,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 --use-registry --log-level --no-cache --offline --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 --chart-source --log-level --no-cache --offline --demo-file --stack-file --release-file --helm-repo-stable --helm-repo-test --helm-repo-dev --help --version " if [[ ${cur} == -* || ${COMP_CWORD} -eq 3 ]] ; then COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") ) return 0 @@ -5037,6 +5057,10 @@ _stackablectl() { COMPREPLY=($(compgen -f "${cur}")) return 0 ;; + --chart-source) + COMPREPLY=($(compgen -W "oci repo tgz" -- "${cur}")) + return 0 + ;; --log-level) COMPREPLY=($(compgen -f "${cur}")) return 0 diff --git a/extra/completions/stackablectl.elv b/extra/completions/stackablectl.elv index 360bfca3..7e781c11 100644 --- a/extra/completions/stackablectl.elv +++ b/extra/completions/stackablectl.elv @@ -73,6 +73,7 @@ set edit:completion:arg-completer[stackablectl] = {|@words| &'stackablectl;operator;list'= { cand -o 'o' cand --output 'output' + cand --chart-source 'chart-source' cand -l 'Log level this application uses' cand --log-level 'Log level this application uses' cand -d 'Provide one or more additional (custom) demo file(s)' @@ -94,6 +95,7 @@ set edit:completion:arg-completer[stackablectl] = {|@words| &'stackablectl;operator;describe'= { cand -o 'o' cand --output 'output' + cand --chart-source 'chart-source' cand -l 'Log level this application uses' cand --log-level 'Log level this application uses' cand -d 'Provide one or more additional (custom) demo file(s)' @@ -120,6 +122,7 @@ set edit:completion:arg-completer[stackablectl] = {|@words| cand --cluster-name 'Name of the local cluster' cand --cluster-nodes 'Number of total nodes in the local cluster' cand --cluster-cp-nodes 'Number of control plane nodes in the local cluster' + cand --chart-source 'chart-source' cand -l 'Log level this application uses' cand --log-level 'Log level this application uses' cand -d 'Provide one or more additional (custom) demo file(s)' @@ -131,7 +134,6 @@ 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 --use-registry 'Indicates whether charts should be pulled from the OCI registry rather than the Nexus repositories' cand --no-cache 'Do not cache the remote (default) demo, stack and release files' cand --offline 'Do not request any remote files via the network' cand -h 'Print help (see more with ''--help'')' @@ -281,6 +283,7 @@ set edit:completion:arg-completer[stackablectl] = {|@words| cand --cluster-name 'Name of the local cluster' cand --cluster-nodes 'Number of total nodes in the local cluster' cand --cluster-cp-nodes 'Number of control plane nodes in the local cluster' + cand --chart-source 'chart-source' cand -l 'Log level this application uses' cand --log-level 'Log level this application uses' cand -d 'Provide one or more additional (custom) demo file(s)' @@ -292,7 +295,6 @@ 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 --use-registry 'Indicates whether charts should be pulled from the OCI registry rather than the Nexus repositories' cand --no-cache 'Do not cache the remote (default) demo, stack and release files' cand --offline 'Do not request any remote files via the network' cand -h 'Print help (see more with ''--help'')' @@ -416,6 +418,7 @@ set edit:completion:arg-completer[stackablectl] = {|@words| cand -n 'Namespace where the products (e.g. stacks or demos) are deployed' cand --product-namespace 'Namespace where the products (e.g. stacks or demos) are deployed' cand --product-ns 'Namespace where the products (e.g. stacks or demos) are deployed' + cand --chart-source 'chart-source' cand -l 'Log level this application uses' cand --log-level 'Log level this application uses' cand -d 'Provide one or more additional (custom) demo file(s)' @@ -428,7 +431,6 @@ set edit:completion:arg-completer[stackablectl] = {|@words| cand --helm-repo-test 'Provide a custom Helm test repository URL' cand --helm-repo-dev 'Provide a custom Helm dev repository URL' cand --skip-release 'Skip the installation of the release during the stack install process' - cand --use-registry 'Indicates whether charts should be pulled from the OCI registry rather than the Nexus repositories' cand --no-cache 'Do not cache the remote (default) demo, stack and release files' cand --offline 'Do not request any remote files via the network' cand -h 'Print help (see more with ''--help'')' @@ -609,6 +611,7 @@ set edit:completion:arg-completer[stackablectl] = {|@words| cand -n 'Namespace where the products (e.g. stacks or demos) are deployed' cand --product-namespace 'Namespace where the products (e.g. stacks or demos) are deployed' cand --product-ns 'Namespace where the products (e.g. stacks or demos) are deployed' + cand --chart-source 'chart-source' cand -l 'Log level this application uses' cand --log-level 'Log level this application uses' cand -d 'Provide one or more additional (custom) demo file(s)' @@ -621,7 +624,6 @@ set edit:completion:arg-completer[stackablectl] = {|@words| cand --helm-repo-test 'Provide a custom Helm test repository URL' cand --helm-repo-dev 'Provide a custom Helm dev repository URL' cand --skip-release 'Skip the installation of the release during the stack install process' - cand --use-registry 'Indicates whether charts should be pulled from the OCI registry rather than the Nexus repositories' cand --no-cache 'Do not cache the remote (default) demo, stack and release files' cand --offline 'Do not request any remote files via the network' cand -h 'Print help (see more with ''--help'')' diff --git a/extra/completions/stackablectl.fish b/extra/completions/stackablectl.fish index a6102098..72ba4dac 100644 --- a/extra/completions/stackablectl.fish +++ b/extra/completions/stackablectl.fish @@ -62,6 +62,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" -f -a "installed" -d 'List installed operators' complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and not __fish_seen_subcommand_from list describe install uninstall installed help" -f -a "help" -d 'Print this message or the help of the given subcommand(s)' complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from list" -s o -l output -r -f -a "{plain\t'Print output formatted as plain text',table\t'Print output formatted as a table',json\t'Print output formatted as JSON',yaml\t'Print output formatted as YAML'}" +complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from list" -l chart-source -r -f -a "{oci\t'OCI registry',repo\t'Nexus repositories: resolution (dev, test, stable) is based on the version and thus may be operator-specific',tgz\t'Archive'}" complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from list" -s l -l log-level -d 'Log level this application uses' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from list" -s d -l demo-file -d 'Provide one or more additional (custom) demo file(s)' -r -F complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from list" -s s -l stack-file -d 'Provide one or more additional (custom) stack file(s)' -r -F @@ -74,6 +75,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" -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' complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from describe" -s o -l output -r -f -a "{plain\t'Print output formatted as plain text',table\t'Print output formatted as a table',json\t'Print output formatted as JSON',yaml\t'Print output formatted as YAML'}" +complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from describe" -l chart-source -r -f -a "{oci\t'OCI registry',repo\t'Nexus repositories: resolution (dev, test, stable) is based on the version and thus may be operator-specific',tgz\t'Archive'}" complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from describe" -s l -l log-level -d 'Log level this application uses' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from describe" -s d -l demo-file -d 'Provide one or more additional (custom) demo file(s)' -r -F complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from describe" -s s -l stack-file -d 'Provide one or more additional (custom) stack file(s)' -r -F @@ -90,6 +92,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 cluster-name -d 'Name of the local cluster' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from install" -l cluster-nodes -d 'Number of total nodes in the local cluster' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from install" -l cluster-cp-nodes -d 'Number of control plane nodes in the local cluster' -r +complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from install" -l chart-source -r -f -a "{oci\t'OCI registry',repo\t'Nexus repositories: resolution (dev, test, stable) is based on the version and thus may be operator-specific',tgz\t'Archive'}" complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from install" -s l -l log-level -d 'Log level this application uses' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from install" -s d -l demo-file -d 'Provide one or more additional (custom) demo file(s)' -r -F complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from install" -s s -l stack-file -d 'Provide one or more additional (custom) stack file(s)' -r -F @@ -97,7 +100,6 @@ 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 use-registry -d 'Indicates whether charts should be pulled from the OCI registry rather than the Nexus repositories' 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" -l offline -d 'Do not request any remote files via the network' 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\')' @@ -180,6 +182,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 cluster-name -d 'Name of the local cluster' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and __fish_seen_subcommand_from install" -l cluster-nodes -d 'Number of total nodes in the local cluster' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and __fish_seen_subcommand_from install" -l cluster-cp-nodes -d 'Number of control plane nodes in the local cluster' -r +complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and __fish_seen_subcommand_from install" -l chart-source -r -f -a "{oci\t'OCI registry',repo\t'Nexus repositories: resolution (dev, test, stable) is based on the version and thus may be operator-specific',tgz\t'Archive'}" complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and __fish_seen_subcommand_from install" -s l -l log-level -d 'Log level this application uses' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and __fish_seen_subcommand_from install" -s d -l demo-file -d 'Provide one or more additional (custom) demo file(s)' -r -F complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and __fish_seen_subcommand_from install" -s s -l stack-file -d 'Provide one or more additional (custom) stack file(s)' -r -F @@ -187,7 +190,6 @@ 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 use-registry -d 'Indicates whether charts should be pulled from the OCI registry rather than the Nexus repositories' 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" -l offline -d 'Do not request any remote files via the network' 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\')' @@ -256,6 +258,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 cluster-cp-nodes -d 'Number of control plane nodes in the local cluster' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand stack; and __fish_seen_subcommand_from install" -l operator-namespace -l operator-ns -d 'Namespace where the operators are deployed' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand stack; and __fish_seen_subcommand_from install" -s n -l product-namespace -l product-ns -d 'Namespace where the products (e.g. stacks or demos) are deployed' -r +complete -c stackablectl -n "__fish_stackablectl_using_subcommand stack; and __fish_seen_subcommand_from install" -l chart-source -r -f -a "{oci\t'OCI registry',repo\t'Nexus repositories: resolution (dev, test, stable) is based on the version and thus may be operator-specific',tgz\t'Archive'}" complete -c stackablectl -n "__fish_stackablectl_using_subcommand stack; and __fish_seen_subcommand_from install" -s l -l log-level -d 'Log level this application uses' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand stack; and __fish_seen_subcommand_from install" -s d -l demo-file -d 'Provide one or more additional (custom) demo file(s)' -r -F complete -c stackablectl -n "__fish_stackablectl_using_subcommand stack; and __fish_seen_subcommand_from install" -s s -l stack-file -d 'Provide one or more additional (custom) stack file(s)' -r -F @@ -264,7 +267,6 @@ 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-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 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 use-registry -d 'Indicates whether charts should be pulled from the OCI registry rather than the Nexus repositories' 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" -l offline -d 'Do not request any remote files via the network' 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\')' @@ -363,6 +365,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 cluster-cp-nodes -d 'Number of control plane nodes in the local cluster' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand demo; and __fish_seen_subcommand_from install" -l operator-namespace -l operator-ns -d 'Namespace where the operators are deployed' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand demo; and __fish_seen_subcommand_from install" -s n -l product-namespace -l product-ns -d 'Namespace where the products (e.g. stacks or demos) are deployed' -r +complete -c stackablectl -n "__fish_stackablectl_using_subcommand demo; and __fish_seen_subcommand_from install" -l chart-source -r -f -a "{oci\t'OCI registry',repo\t'Nexus repositories: resolution (dev, test, stable) is based on the version and thus may be operator-specific',tgz\t'Archive'}" complete -c stackablectl -n "__fish_stackablectl_using_subcommand demo; and __fish_seen_subcommand_from install" -s l -l log-level -d 'Log level this application uses' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand demo; and __fish_seen_subcommand_from install" -s d -l demo-file -d 'Provide one or more additional (custom) demo file(s)' -r -F complete -c stackablectl -n "__fish_stackablectl_using_subcommand demo; and __fish_seen_subcommand_from install" -s s -l stack-file -d 'Provide one or more additional (custom) stack file(s)' -r -F @@ -371,7 +374,6 @@ 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-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 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 use-registry -d 'Indicates whether charts should be pulled from the OCI registry rather than the Nexus repositories' 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" -l offline -d 'Do not request any remote files via the network' 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\')' diff --git a/extra/completions/stackablectl.nu b/extra/completions/stackablectl.nu index 1ff549d9..a547c28f 100644 --- a/extra/completions/stackablectl.nu +++ b/extra/completions/stackablectl.nu @@ -34,9 +34,14 @@ module completions { [ "plain" "table" "json" "yaml" ] } + def "nu-complete stackablectl operator list chart_source" [] { + [ "oci" "repo" "tgz" ] + } + # List available operators export extern "stackablectl operator list" [ --output(-o): string@"nu-complete stackablectl operator list output_type" + --chart-source: string@"nu-complete stackablectl operator list chart_source" --log-level(-l): string # Log level this application uses --no-cache # Do not cache the remote (default) demo, stack and release files --offline # Do not request any remote files via the network @@ -54,10 +59,15 @@ module completions { [ "plain" "table" "json" "yaml" ] } + def "nu-complete stackablectl operator describe chart_source" [] { + [ "oci" "repo" "tgz" ] + } + # Print out detailed operator information export extern "stackablectl operator describe" [ OPERATOR: string # Operator to describe --output(-o): string@"nu-complete stackablectl operator describe output_type" + --chart-source: string@"nu-complete stackablectl operator describe chart_source" --log-level(-l): string # Log level this application uses --no-cache # Do not cache the remote (default) demo, stack and release files --offline # Do not request any remote files via the network @@ -75,6 +85,10 @@ module completions { [ "kind" "minikube" ] } + def "nu-complete stackablectl operator install chart_source" [] { + [ "oci" "repo" "tgz" ] + } + # Install one or more operators export extern "stackablectl operator install" [ ...OPERATORS: string # Operator(s) to install @@ -84,7 +98,7 @@ module completions { --cluster-name: string # Name of the local cluster --cluster-nodes: string # Number of total nodes in the local cluster --cluster-cp-nodes: string # Number of control plane nodes in the local cluster - --use-registry # Indicates whether charts should be pulled from the OCI registry rather than the Nexus repositories + --chart-source: string@"nu-complete stackablectl operator install chart_source" --log-level(-l): string # Log level this application uses --no-cache # Do not cache the remote (default) demo, stack and release files --offline # Do not request any remote files via the network @@ -226,6 +240,10 @@ module completions { [ "kind" "minikube" ] } + def "nu-complete stackablectl release install chart_source" [] { + [ "oci" "repo" "tgz" ] + } + # Install a specific release export extern "stackablectl release install" [ RELEASE: string # Release to install @@ -237,7 +255,7 @@ module completions { --cluster-name: string # Name of the local cluster --cluster-nodes: string # Number of total nodes in the local cluster --cluster-cp-nodes: string # Number of control plane nodes in the local cluster - --use-registry # Indicates whether charts should be pulled from the OCI registry rather than the Nexus repositories + --chart-source: string@"nu-complete stackablectl release install chart_source" --log-level(-l): string # Log level this application uses --no-cache # Do not cache the remote (default) demo, stack and release files --offline # Do not request any remote files via the network @@ -353,6 +371,10 @@ module completions { [ "kind" "minikube" ] } + def "nu-complete stackablectl stack install chart_source" [] { + [ "oci" "repo" "tgz" ] + } + # Install a specific stack export extern "stackablectl stack install" [ stack_name: string # Name of the stack to describe @@ -367,7 +389,7 @@ module completions { --operator-ns: string # Namespace where the operators are deployed --product-namespace(-n): string # Namespace where the products (e.g. stacks or demos) are deployed --product-ns: string # Namespace where the products (e.g. stacks or demos) are deployed - --use-registry # Indicates whether charts should be pulled from the OCI registry rather than the Nexus repositories + --chart-source: string@"nu-complete stackablectl stack install chart_source" --log-level(-l): string # Log level this application uses --no-cache # Do not cache the remote (default) demo, stack and release files --offline # Do not request any remote files via the network @@ -535,6 +557,10 @@ module completions { [ "kind" "minikube" ] } + def "nu-complete stackablectl demo install chart_source" [] { + [ "oci" "repo" "tgz" ] + } + # Install a specific demo export extern "stackablectl demo install" [ DEMO: string # Demo to install @@ -549,7 +575,7 @@ module completions { --operator-ns: string # Namespace where the operators are deployed --product-namespace(-n): string # Namespace where the products (e.g. stacks or demos) are deployed --product-ns: string # Namespace where the products (e.g. stacks or demos) are deployed - --use-registry # Indicates whether charts should be pulled from the OCI registry rather than the Nexus repositories + --chart-source: string@"nu-complete stackablectl demo install chart_source" --log-level(-l): string # Log level this application uses --no-cache # Do not cache the remote (default) demo, stack and release files --offline # Do not request any remote files via the network diff --git a/rust/stackable-cockpit/src/platform/demo/params.rs b/rust/stackable-cockpit/src/platform/demo/params.rs index 25b467f1..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,5 +12,5 @@ pub struct DemoInstallParameters { pub stack_labels: Labels, pub labels: Labels, - pub use_registry: bool, + 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 a94178c1..59aaa8d9 100644 --- a/rust/stackable-cockpit/src/platform/demo/spec.rs +++ b/rust/stackable-cockpit/src/platform/demo/spec.rs @@ -159,7 +159,7 @@ impl DemoSpec { skip_release: install_parameters.skip_release, stack_name: self.stack.clone(), demo_name: None, - use_registry: install_parameters.use_registry, + chart_source: install_parameters.chart_source.clone(), }; stack diff --git a/rust/stackable-cockpit/src/platform/operator/mod.rs b/rust/stackable-cockpit/src/platform/operator/mod.rs index 10340e40..4d403a7a 100644 --- a/rust/stackable-cockpit/src/platform/operator/mod.rs +++ b/rust/stackable-cockpit/src/platform/operator/mod.rs @@ -1,6 +1,7 @@ use std::{fmt::Display, str::FromStr}; use semver::Version; +use serde::Serialize; use snafu::{ensure, ResultExt, Snafu}; use tracing::{info, instrument}; @@ -178,16 +179,22 @@ impl OperatorSpec { /// Installs the operator using Helm. #[instrument(skip_all)] - pub fn install(&self, namespace: &str, use_registry: bool) -> 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_name = self.helm_name(); - let chart_source = if use_registry { - HELM_OCI_REGISTRY.to_string() - } else { - self.helm_repo_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(), + ChartSourceType::Tgz => "TODO".to_string(), }; // Install using Helm @@ -222,6 +229,19 @@ impl OperatorSpec { } } +#[derive(Clone, Debug, Serialize)] +#[serde(rename_all = "lowercase")] +pub enum ChartSourceType { + /// OCI registry + OCI, + + /// Nexus repositories: resolution (dev, test, stable) is based on the version and thus may be operator-specific + Repo, + + /// Archive + Tgz, +} + #[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 24f44bfe..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,7 +56,7 @@ impl ReleaseSpec { include_products: &[String], exclude_products: &[String], namespace: &str, - use_registry: bool, + chart_source: &ChartSourceType, ) -> Result<()> { info!("Installing release"); @@ -64,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 { @@ -75,7 +76,7 @@ impl ReleaseSpec { // Install operator operator - .install(&namespace, use_registry) + .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 aba86f92..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,5 +13,5 @@ pub struct StackInstallParameters { pub parameters: Vec, pub skip_release: bool, pub labels: Labels, - pub use_registry: bool, + 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 c57835df..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,7 +175,7 @@ impl StackSpec { release_list, &install_parameters.operator_namespace, &install_parameters.product_namespace, - install_parameters.use_registry, + &install_parameters.chart_source, ) .await?; } @@ -196,7 +198,7 @@ impl StackSpec { release_list: release::ReleaseList, operator_namespace: &str, product_namespace: &str, - use_registry: bool, + chart_source: &ChartSourceType, ) -> Result<(), Error> { info!("Trying to install release {}", self.release); @@ -209,7 +211,7 @@ impl StackSpec { // Install the release release - .install(&self.operators, &[], operator_namespace, use_registry) + .install(&self.operators, &[], operator_namespace, chart_source) .await .context(InstallReleaseSnafu) } diff --git a/rust/stackablectl/src/cli/mod.rs b/rust/stackablectl/src/cli/mod.rs index 268e1a1c..f12b15cb 100644 --- a/rust/stackablectl/src/cli/mod.rs +++ b/rust/stackablectl/src/cli/mod.rs @@ -8,7 +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::demo::List, + platform::{demo::List, operator::ChartSourceType}, utils::path::{ IntoPathOrUrl, IntoPathsOrUrls, ParsePathsOrUrls, PathOrUrl, PathOrUrlParseError, }, @@ -288,3 +288,36 @@ fn get_files(default_file: &str, env_key: &str) -> Result, PathOr Ok(files) } + +#[derive(Clone, Debug, Default, ValueEnum)] +pub enum ChartSourceTypeArg { + /// OCI registry + #[default] + OCI, + + /// Nexus repositories: resolution (dev, test, stable) is based on the version and thus may be operator-specific + Repo, + + /// Archive + Tgz, +} + +impl From for ChartSourceType { + fn from(cli_enum: ChartSourceTypeArg) -> Self { + match cli_enum { + ChartSourceTypeArg::OCI => ChartSourceType::OCI, + ChartSourceTypeArg::Repo => ChartSourceType::Repo, + ChartSourceTypeArg::Tgz => ChartSourceType::Tgz, + } + } +} + +impl From for ChartSourceTypeArg { + fn from(core_enum: ChartSourceType) -> Self { + match core_enum { + ChartSourceType::OCI => ChartSourceTypeArg::OCI, + ChartSourceType::Repo => ChartSourceTypeArg::Repo, + ChartSourceType::Tgz => ChartSourceTypeArg::Tgz, + } + } +} diff --git a/rust/stackablectl/src/cmds/demo.rs b/rust/stackablectl/src/cmds/demo.rs index 95c2e021..7eeaa1a6 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::{ @@ -23,7 +24,7 @@ use stackable_cockpit::{ use crate::{ args::{CommonClusterArgs, CommonClusterArgsError, CommonNamespaceArgs}, - cli::{Cli, OutputType}, + cli::{ChartSourceTypeArg, Cli, OutputType}, }; #[derive(Debug, Args)] @@ -108,12 +109,12 @@ to specify operator versions." #[command(flatten)] namespaces: CommonNamespaceArgs, - /// Indicates whether charts should be pulled from the OCI registry rather than the Nexus repositories #[arg( long, - long_help = "Pull the charts from the OCI registry rather than the Nexus repositories." + long_help = "Source the charts from either a OCI registry or from Nexus repositories or from an archive.", + value_enum, default_value_t = Default::default() )] - use_registry: bool, + chart_source: ChartSourceTypeArg, } #[derive(Debug, Args)] @@ -336,7 +337,7 @@ async fn install_cmd( skip_release: args.skip_release, stack_labels, labels, - use_registry: args.use_registry, + chart_source: ChartSourceType::from(args.chart_source.clone()), }; demo.install( diff --git a/rust/stackablectl/src/cmds/operator.rs b/rust/stackablectl/src/cmds/operator.rs index 77ba4c2d..328db884 100644 --- a/rust/stackablectl/src/cmds/operator.rs +++ b/rust/stackablectl/src/cmds/operator.rs @@ -16,7 +16,10 @@ use stackable_cockpit::{ DEFAULT_OPERATOR_NAMESPACE, HELM_REPO_NAME_DEV, HELM_REPO_NAME_STABLE, HELM_REPO_NAME_TEST, }, helm::{self, Release, Repository}, - platform::{namespace, operator}, + platform::{ + namespace, + operator::{self, ChartSourceType}, + }, utils::{ self, k8s::{self, Client}, @@ -25,7 +28,7 @@ use stackable_cockpit::{ use crate::{ args::{CommonClusterArgs, CommonClusterArgsError}, - cli::{Cli, OutputType}, + cli::{ChartSourceTypeArg, Cli, OutputType}, utils::{helm_repo_name_to_repo_url, InvalidRepoNameError}, }; @@ -65,6 +68,13 @@ pub enum OperatorCommands { pub struct OperatorListArgs { #[arg(short, long = "output", value_enum, default_value_t = Default::default())] output_type: OutputType, + + #[arg( + long, + long_help = "Source the charts from either a OCI registry or from Nexus repositories or from an archive.", + value_enum, default_value_t = Default::default() + )] + chart_source: ChartSourceTypeArg, } #[derive(Debug, Args)] @@ -75,6 +85,12 @@ pub struct OperatorDescribeArgs { #[arg(short, long = "output", value_enum, default_value_t = Default::default())] output_type: OutputType, + + #[arg( + long, + long_help = "Source the charts from either a OCI registry or from Nexus repositories or from an archive.", value_enum, default_value_t = Default::default() + )] + chart_source: ChartSourceTypeArg, } #[derive(Debug, Args)] @@ -103,12 +119,12 @@ Use \"stackablectl operator describe \" to get available versions for #[command(flatten)] local_cluster: CommonClusterArgs, - /// Indicates whether charts should be pulled from the OCI registry rather than the Nexus repositories #[arg( long, - long_help = "Pull the charts from the OCI registry rather than the Nexus repositories." + long_help = "Source the charts from either a OCI registry or from Nexus repositories or from an archive.", + value_enum, default_value_t = Default::default() )] - use_registry: bool, + chart_source: ChartSourceTypeArg, } #[derive(Debug, Args)] @@ -319,7 +335,10 @@ async fn install_cmd(args: &OperatorInstallArgs, cli: &Cli) -> Result\" to list available parameters for eac #[command(flatten)] namespaces: CommonNamespaceArgs, - /// Indicates whether charts should be pulled from the OCI registry rather than the Nexus repositories #[arg( long, - long_help = "Pull the charts from the OCI registry rather than the Nexus repositories." + long_help = "Source the charts from either a OCI registry or from Nexus repositories or from an archive.", + value_enum, default_value_t = Default::default() )] - use_registry: bool, + chart_source: ChartSourceTypeArg, } #[derive(Debug, Snafu)] @@ -317,7 +318,7 @@ async fn install_cmd( skip_release: args.skip_release, demo_name: None, labels, - use_registry: args.use_registry, + chart_source: ChartSourceType::from(args.chart_source.clone()), }; stack_spec From 3192ebe37925291459a06c880d745aae8692fbed Mon Sep 17 00:00:00 2001 From: Andrew Kenworthy Date: Thu, 19 Dec 2024 10:03:10 +0100 Subject: [PATCH 07/20] removed unused function --- rust/stackablectl/src/cli/mod.rs | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/rust/stackablectl/src/cli/mod.rs b/rust/stackablectl/src/cli/mod.rs index f12b15cb..b0e57a11 100644 --- a/rust/stackablectl/src/cli/mod.rs +++ b/rust/stackablectl/src/cli/mod.rs @@ -311,13 +311,3 @@ impl From for ChartSourceType { } } } - -impl From for ChartSourceTypeArg { - fn from(core_enum: ChartSourceType) -> Self { - match core_enum { - ChartSourceType::OCI => ChartSourceTypeArg::OCI, - ChartSourceType::Repo => ChartSourceTypeArg::Repo, - ChartSourceType::Tgz => ChartSourceTypeArg::Tgz, - } - } -} From b9b6100300dcafc70093dd21579c09906c0d0203 Mon Sep 17 00:00:00 2001 From: Andrew Kenworthy Date: Thu, 19 Dec 2024 10:27:17 +0100 Subject: [PATCH 08/20] cleaned up some comments, removed Tgz case --- extra/completions/_stackablectl | 18 ++++++------------ extra/completions/stackablectl.bash | 12 ++++++------ extra/completions/stackablectl.fish | 12 ++++++------ extra/completions/stackablectl.nu | 12 ++++++------ .../src/platform/manifests.rs | 3 +-- .../src/platform/operator/mod.rs | 4 ---- rust/stackablectl/src/cli/mod.rs | 4 ---- rust/stackablectl/src/cmds/demo.rs | 2 +- rust/stackablectl/src/cmds/operator.rs | 6 +++--- rust/stackablectl/src/cmds/release.rs | 2 +- rust/stackablectl/src/cmds/stack.rs | 2 +- 11 files changed, 31 insertions(+), 46 deletions(-) diff --git a/extra/completions/_stackablectl b/extra/completions/_stackablectl index bca06594..bfbbbcec 100644 --- a/extra/completions/_stackablectl +++ b/extra/completions/_stackablectl @@ -79,8 +79,7 @@ table\:"Print output formatted as a table" json\:"Print output formatted as JSON" yaml\:"Print output formatted as YAML"))' \ '--chart-source=[]:CHART_SOURCE:((oci\:"OCI registry" -repo\:"Nexus repositories\: resolution (dev, test, stable) is based on the version and thus may be operator-specific" -tgz\:"Archive"))' \ +repo\:"Nexus repositories\: resolution (dev, test, stable) is based on the version and thus may be operator-specific"))' \ '-l+[Log level this application uses]:LOG_LEVEL: ' \ '--log-level=[Log level this application uses]:LOG_LEVEL: ' \ '*-d+[Provide one or more additional (custom) demo file(s)]:DEMO_FILE:_files' \ @@ -110,8 +109,7 @@ table\:"Print output formatted as a table" json\:"Print output formatted as JSON" yaml\:"Print output formatted as YAML"))' \ '--chart-source=[]:CHART_SOURCE:((oci\:"OCI registry" -repo\:"Nexus repositories\: resolution (dev, test, stable) is based on the version and thus may be operator-specific" -tgz\:"Archive"))' \ +repo\:"Nexus repositories\: resolution (dev, test, stable) is based on the version and thus may be operator-specific"))' \ '-l+[Log level this application uses]:LOG_LEVEL: ' \ '--log-level=[Log level this application uses]:LOG_LEVEL: ' \ '*-d+[Provide one or more additional (custom) demo file(s)]:DEMO_FILE:_files' \ @@ -143,8 +141,7 @@ minikube\:"Use a minikube cluster"))' \ '--cluster-nodes=[Number of total nodes in the local cluster]:CLUSTER_NODES: ' \ '--cluster-cp-nodes=[Number of control plane nodes in the local cluster]:CLUSTER_CP_NODES: ' \ '--chart-source=[]:CHART_SOURCE:((oci\:"OCI registry" -repo\:"Nexus repositories\: resolution (dev, test, stable) is based on the version and thus may be operator-specific" -tgz\:"Archive"))' \ +repo\:"Nexus repositories\: resolution (dev, test, stable) is based on the version and thus may be operator-specific"))' \ '-l+[Log level this application uses]:LOG_LEVEL: ' \ '--log-level=[Log level this application uses]:LOG_LEVEL: ' \ '*-d+[Provide one or more additional (custom) demo file(s)]:DEMO_FILE:_files' \ @@ -362,8 +359,7 @@ minikube\:"Use a minikube cluster"))' \ '--cluster-nodes=[Number of total nodes in the local cluster]:CLUSTER_NODES: ' \ '--cluster-cp-nodes=[Number of control plane nodes in the local cluster]:CLUSTER_CP_NODES: ' \ '--chart-source=[]:CHART_SOURCE:((oci\:"OCI registry" -repo\:"Nexus repositories\: resolution (dev, test, stable) is based on the version and thus may be operator-specific" -tgz\:"Archive"))' \ +repo\:"Nexus repositories\: resolution (dev, test, stable) is based on the version and thus may be operator-specific"))' \ '-l+[Log level this application uses]:LOG_LEVEL: ' \ '--log-level=[Log level this application uses]:LOG_LEVEL: ' \ '*-d+[Provide one or more additional (custom) demo file(s)]:DEMO_FILE:_files' \ @@ -551,8 +547,7 @@ minikube\:"Use a minikube cluster"))' \ '--product-namespace=[Namespace where the products (e.g. stacks or demos) are deployed]:PRODUCT_NAMESPACE: ' \ '--product-ns=[Namespace where the products (e.g. stacks or demos) are deployed]:PRODUCT_NAMESPACE: ' \ '--chart-source=[]:CHART_SOURCE:((oci\:"OCI registry" -repo\:"Nexus repositories\: resolution (dev, test, stable) is based on the version and thus may be operator-specific" -tgz\:"Archive"))' \ +repo\:"Nexus repositories\: resolution (dev, test, stable) is based on the version and thus may be operator-specific"))' \ '--release=[Target a specific Stackable release]:RELEASE: ' \ '-l+[Log level this application uses]:LOG_LEVEL: ' \ '--log-level=[Log level this application uses]:LOG_LEVEL: ' \ @@ -833,8 +828,7 @@ minikube\:"Use a minikube cluster"))' \ '--product-namespace=[Namespace where the products (e.g. stacks or demos) are deployed]:PRODUCT_NAMESPACE: ' \ '--product-ns=[Namespace where the products (e.g. stacks or demos) are deployed]:PRODUCT_NAMESPACE: ' \ '--chart-source=[]:CHART_SOURCE:((oci\:"OCI registry" -repo\:"Nexus repositories\: resolution (dev, test, stable) is based on the version and thus may be operator-specific" -tgz\:"Archive"))' \ +repo\:"Nexus repositories\: resolution (dev, test, stable) is based on the version and thus may be operator-specific"))' \ '--release=[Target a specific Stackable release]:RELEASE: ' \ '-l+[Log level this application uses]:LOG_LEVEL: ' \ '--log-level=[Log level this application uses]:LOG_LEVEL: ' \ diff --git a/extra/completions/stackablectl.bash b/extra/completions/stackablectl.bash index 35790287..c7170de6 100644 --- a/extra/completions/stackablectl.bash +++ b/extra/completions/stackablectl.bash @@ -2114,7 +2114,7 @@ _stackablectl() { return 0 ;; --chart-source) - COMPREPLY=($(compgen -W "oci repo tgz" -- "${cur}")) + COMPREPLY=($(compgen -W "oci repo" -- "${cur}")) return 0 ;; --release) @@ -3134,7 +3134,7 @@ _stackablectl() { return 0 ;; --chart-source) - COMPREPLY=($(compgen -W "oci repo tgz" -- "${cur}")) + COMPREPLY=($(compgen -W "oci repo" -- "${cur}")) return 0 ;; --log-level) @@ -3388,7 +3388,7 @@ _stackablectl() { return 0 ;; --chart-source) - COMPREPLY=($(compgen -W "oci repo tgz" -- "${cur}")) + COMPREPLY=($(compgen -W "oci repo" -- "${cur}")) return 0 ;; --log-level) @@ -3664,7 +3664,7 @@ _stackablectl() { return 0 ;; --chart-source) - COMPREPLY=($(compgen -W "oci repo tgz" -- "${cur}")) + COMPREPLY=($(compgen -W "oci repo" -- "${cur}")) return 0 ;; --log-level) @@ -4308,7 +4308,7 @@ _stackablectl() { return 0 ;; --chart-source) - COMPREPLY=($(compgen -W "oci repo tgz" -- "${cur}")) + COMPREPLY=($(compgen -W "oci repo" -- "${cur}")) return 0 ;; --log-level) @@ -5082,7 +5082,7 @@ _stackablectl() { return 0 ;; --chart-source) - COMPREPLY=($(compgen -W "oci repo tgz" -- "${cur}")) + COMPREPLY=($(compgen -W "oci repo" -- "${cur}")) return 0 ;; --release) diff --git a/extra/completions/stackablectl.fish b/extra/completions/stackablectl.fish index d1498166..44c6f027 100644 --- a/extra/completions/stackablectl.fish +++ b/extra/completions/stackablectl.fish @@ -60,7 +60,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" -f -a "installed" -d 'List installed operators' complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and not __fish_seen_subcommand_from list describe install uninstall installed help" -f -a "help" -d 'Print this message or the help of the given subcommand(s)' complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from list" -s o -l output -r -f -a "{plain\t'Print output formatted as plain text',table\t'Print output formatted as a table',json\t'Print output formatted as JSON',yaml\t'Print output formatted as YAML'}" -complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from list" -l chart-source -r -f -a "{oci\t'OCI registry',repo\t'Nexus repositories: resolution (dev, test, stable) is based on the version and thus may be operator-specific',tgz\t'Archive'}" +complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from list" -l chart-source -r -f -a "{oci\t'OCI registry',repo\t'Nexus repositories: resolution (dev, test, stable) is based on the version and thus may be operator-specific'}" complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from list" -s l -l log-level -d 'Log level this application uses' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from list" -s d -l demo-file -d 'Provide one or more additional (custom) demo file(s)' -r -F complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from list" -s s -l stack-file -d 'Provide one or more additional (custom) stack file(s)' -r -F @@ -72,7 +72,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" -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' complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from describe" -s o -l output -r -f -a "{plain\t'Print output formatted as plain text',table\t'Print output formatted as a table',json\t'Print output formatted as JSON',yaml\t'Print output formatted as YAML'}" -complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from describe" -l chart-source -r -f -a "{oci\t'OCI registry',repo\t'Nexus repositories: resolution (dev, test, stable) is based on the version and thus may be operator-specific',tgz\t'Archive'}" +complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from describe" -l chart-source -r -f -a "{oci\t'OCI registry',repo\t'Nexus repositories: resolution (dev, test, stable) is based on the version and thus may be operator-specific'}" complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from describe" -s l -l log-level -d 'Log level this application uses' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from describe" -s d -l demo-file -d 'Provide one or more additional (custom) demo file(s)' -r -F complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from describe" -s s -l stack-file -d 'Provide one or more additional (custom) stack file(s)' -r -F @@ -88,7 +88,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 cluster-name -d 'Name of the local cluster' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from install" -l cluster-nodes -d 'Number of total nodes in the local cluster' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from install" -l cluster-cp-nodes -d 'Number of control plane nodes in the local cluster' -r -complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from install" -l chart-source -r -f -a "{oci\t'OCI registry',repo\t'Nexus repositories: resolution (dev, test, stable) is based on the version and thus may be operator-specific',tgz\t'Archive'}" +complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from install" -l chart-source -r -f -a "{oci\t'OCI registry',repo\t'Nexus repositories: resolution (dev, test, stable) is based on the version and thus may be operator-specific'}" complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from install" -s l -l log-level -d 'Log level this application uses' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from install" -s d -l demo-file -d 'Provide one or more additional (custom) demo file(s)' -r -F complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from install" -s s -l stack-file -d 'Provide one or more additional (custom) stack file(s)' -r -F @@ -172,7 +172,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 cluster-name -d 'Name of the local cluster' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and __fish_seen_subcommand_from install" -l cluster-nodes -d 'Number of total nodes in the local cluster' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and __fish_seen_subcommand_from install" -l cluster-cp-nodes -d 'Number of control plane nodes in the local cluster' -r -complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and __fish_seen_subcommand_from install" -l chart-source -r -f -a "{oci\t'OCI registry',repo\t'Nexus repositories: resolution (dev, test, stable) is based on the version and thus may be operator-specific',tgz\t'Archive'}" +complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and __fish_seen_subcommand_from install" -l chart-source -r -f -a "{oci\t'OCI registry',repo\t'Nexus repositories: resolution (dev, test, stable) is based on the version and thus may be operator-specific'}" complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and __fish_seen_subcommand_from install" -s l -l log-level -d 'Log level this application uses' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and __fish_seen_subcommand_from install" -s d -l demo-file -d 'Provide one or more additional (custom) demo file(s)' -r -F complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and __fish_seen_subcommand_from install" -s s -l stack-file -d 'Provide one or more additional (custom) stack file(s)' -r -F @@ -246,7 +246,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 cluster-cp-nodes -d 'Number of control plane nodes in the local cluster' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand stack; and __fish_seen_subcommand_from install" -l operator-namespace -l operator-ns -d 'Namespace where the operators are deployed' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand stack; and __fish_seen_subcommand_from install" -s n -l product-namespace -l product-ns -d 'Namespace where the products (e.g. stacks or demos) are deployed' -r -complete -c stackablectl -n "__fish_stackablectl_using_subcommand stack; and __fish_seen_subcommand_from install" -l chart-source -r -f -a "{oci\t'OCI registry',repo\t'Nexus repositories: resolution (dev, test, stable) is based on the version and thus may be operator-specific',tgz\t'Archive'}" +complete -c stackablectl -n "__fish_stackablectl_using_subcommand stack; and __fish_seen_subcommand_from install" -l chart-source -r -f -a "{oci\t'OCI registry',repo\t'Nexus repositories: resolution (dev, test, stable) is based on the version and thus may be operator-specific'}" complete -c stackablectl -n "__fish_stackablectl_using_subcommand stack; and __fish_seen_subcommand_from install" -l release -d 'Target a specific Stackable release' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand stack; and __fish_seen_subcommand_from install" -s l -l log-level -d 'Log level this application uses' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand stack; and __fish_seen_subcommand_from install" -s d -l demo-file -d 'Provide one or more additional (custom) demo file(s)' -r -F @@ -350,7 +350,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 cluster-cp-nodes -d 'Number of control plane nodes in the local cluster' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand demo; and __fish_seen_subcommand_from install" -l operator-namespace -l operator-ns -d 'Namespace where the operators are deployed' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand demo; and __fish_seen_subcommand_from install" -s n -l product-namespace -l product-ns -d 'Namespace where the products (e.g. stacks or demos) are deployed' -r -complete -c stackablectl -n "__fish_stackablectl_using_subcommand demo; and __fish_seen_subcommand_from install" -l chart-source -r -f -a "{oci\t'OCI registry',repo\t'Nexus repositories: resolution (dev, test, stable) is based on the version and thus may be operator-specific',tgz\t'Archive'}" +complete -c stackablectl -n "__fish_stackablectl_using_subcommand demo; and __fish_seen_subcommand_from install" -l chart-source -r -f -a "{oci\t'OCI registry',repo\t'Nexus repositories: resolution (dev, test, stable) is based on the version and thus may be operator-specific'}" complete -c stackablectl -n "__fish_stackablectl_using_subcommand demo; and __fish_seen_subcommand_from install" -l release -d 'Target a specific Stackable release' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand demo; and __fish_seen_subcommand_from install" -s l -l log-level -d 'Log level this application uses' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand demo; and __fish_seen_subcommand_from install" -s d -l demo-file -d 'Provide one or more additional (custom) demo file(s)' -r -F diff --git a/extra/completions/stackablectl.nu b/extra/completions/stackablectl.nu index 73ed2fc4..695a0bd3 100644 --- a/extra/completions/stackablectl.nu +++ b/extra/completions/stackablectl.nu @@ -33,7 +33,7 @@ module completions { } def "nu-complete stackablectl operator list chart_source" [] { - [ "oci" "repo" "tgz" ] + [ "oci" "repo" ] } # List available operators @@ -57,7 +57,7 @@ module completions { } def "nu-complete stackablectl operator describe chart_source" [] { - [ "oci" "repo" "tgz" ] + [ "oci" "repo" ] } # Print out detailed operator information @@ -82,7 +82,7 @@ module completions { } def "nu-complete stackablectl operator install chart_source" [] { - [ "oci" "repo" "tgz" ] + [ "oci" "repo" ] } # Install one or more operators @@ -231,7 +231,7 @@ module completions { } def "nu-complete stackablectl release install chart_source" [] { - [ "oci" "repo" "tgz" ] + [ "oci" "repo" ] } # Install a specific release @@ -360,7 +360,7 @@ module completions { } def "nu-complete stackablectl stack install chart_source" [] { - [ "oci" "repo" "tgz" ] + [ "oci" "repo" ] } # Install a specific stack @@ -543,7 +543,7 @@ module completions { } def "nu-complete stackablectl demo install chart_source" [] { - [ "oci" "repo" "tgz" ] + [ "oci" "repo" ] } # Install a specific demo diff --git a/rust/stackable-cockpit/src/platform/manifests.rs b/rust/stackable-cockpit/src/platform/manifests.rs index fa1e3ab6..86b604f4 100644 --- a/rust/stackable-cockpit/src/platform/manifests.rs +++ b/rust/stackable-cockpit/src/platform/manifests.rs @@ -62,7 +62,6 @@ pub enum Error { pub trait InstallManifestsExt { // TODO (Techassi): This step shouldn't care about templating the manifests nor fetching them from remote - // TODO aken: do we support helm charts from registries? #[instrument(skip_all)] #[allow(async_fn_in_trait)] async fn install_manifests( @@ -95,7 +94,7 @@ pub trait InstallManifestsExt { helm_chart.name, helm_chart.version ); - // TODO aken: assuming all manifest helm charts refer to repos not registries + // 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(), diff --git a/rust/stackable-cockpit/src/platform/operator/mod.rs b/rust/stackable-cockpit/src/platform/operator/mod.rs index 4d403a7a..e32ebc42 100644 --- a/rust/stackable-cockpit/src/platform/operator/mod.rs +++ b/rust/stackable-cockpit/src/platform/operator/mod.rs @@ -194,7 +194,6 @@ impl OperatorSpec { let chart_source = match chart_source { ChartSourceType::OCI => HELM_OCI_REGISTRY.to_string(), ChartSourceType::Repo => self.helm_repo_name(), - ChartSourceType::Tgz => "TODO".to_string(), }; // Install using Helm @@ -237,9 +236,6 @@ pub enum ChartSourceType { /// Nexus repositories: resolution (dev, test, stable) is based on the version and thus may be operator-specific Repo, - - /// Archive - Tgz, } #[cfg(test)] diff --git a/rust/stackablectl/src/cli/mod.rs b/rust/stackablectl/src/cli/mod.rs index 0e8fbcf6..66388ef6 100644 --- a/rust/stackablectl/src/cli/mod.rs +++ b/rust/stackablectl/src/cli/mod.rs @@ -300,9 +300,6 @@ pub enum ChartSourceTypeArg { /// Nexus repositories: resolution (dev, test, stable) is based on the version and thus may be operator-specific Repo, - - /// Archive - Tgz, } impl From for ChartSourceType { @@ -310,7 +307,6 @@ impl From for ChartSourceType { match cli_enum { ChartSourceTypeArg::OCI => ChartSourceType::OCI, ChartSourceTypeArg::Repo => ChartSourceType::Repo, - ChartSourceTypeArg::Tgz => ChartSourceType::Tgz, } } } diff --git a/rust/stackablectl/src/cmds/demo.rs b/rust/stackablectl/src/cmds/demo.rs index 977d28f8..600f4e91 100644 --- a/rust/stackablectl/src/cmds/demo.rs +++ b/rust/stackablectl/src/cmds/demo.rs @@ -115,7 +115,7 @@ to specify operator versions." #[arg( long, - long_help = "Source the charts from either a OCI registry or from Nexus repositories or from an archive.", + long_help = "Source the charts from either a OCI registry or from Nexus repositories.", value_enum, default_value_t = Default::default() )] chart_source: ChartSourceTypeArg, diff --git a/rust/stackablectl/src/cmds/operator.rs b/rust/stackablectl/src/cmds/operator.rs index 328db884..a848d874 100644 --- a/rust/stackablectl/src/cmds/operator.rs +++ b/rust/stackablectl/src/cmds/operator.rs @@ -71,7 +71,7 @@ pub struct OperatorListArgs { #[arg( long, - long_help = "Source the charts from either a OCI registry or from Nexus repositories or from an archive.", + long_help = "Source the charts from either a OCI registry or from Nexus repositories.", value_enum, default_value_t = Default::default() )] chart_source: ChartSourceTypeArg, @@ -88,7 +88,7 @@ pub struct OperatorDescribeArgs { #[arg( long, - long_help = "Source the charts from either a OCI registry or from Nexus repositories or from an archive.", value_enum, default_value_t = Default::default() + long_help = "Source the charts from either a OCI registry or from Nexus repositories.", value_enum, default_value_t = Default::default() )] chart_source: ChartSourceTypeArg, } @@ -121,7 +121,7 @@ Use \"stackablectl operator describe \" to get available versions for #[arg( long, - long_help = "Source the charts from either a OCI registry or from Nexus repositories or from an archive.", + long_help = "Source the charts from either a OCI registry or from Nexus repositories.", value_enum, default_value_t = Default::default() )] chart_source: ChartSourceTypeArg, diff --git a/rust/stackablectl/src/cmds/release.rs b/rust/stackablectl/src/cmds/release.rs index 6b3fdce4..a935d086 100644 --- a/rust/stackablectl/src/cmds/release.rs +++ b/rust/stackablectl/src/cmds/release.rs @@ -85,7 +85,7 @@ pub struct ReleaseInstallArgs { #[arg( long, - long_help = "Source the charts from either a OCI registry or from Nexus repositories or from an archive.", + long_help = "Source the charts from either a OCI registry or from Nexus repositories.", value_enum, default_value_t = Default::default() )] chart_source: ChartSourceTypeArg, diff --git a/rust/stackablectl/src/cmds/stack.rs b/rust/stackablectl/src/cmds/stack.rs index bd53e680..3dd0c9f5 100644 --- a/rust/stackablectl/src/cmds/stack.rs +++ b/rust/stackablectl/src/cmds/stack.rs @@ -111,7 +111,7 @@ Use \"stackablectl stack describe \" to list available parameters for eac #[arg( long, - long_help = "Source the charts from either a OCI registry or from Nexus repositories or from an archive.", + long_help = "Source the charts from either a OCI registry or from Nexus repositories.", value_enum, default_value_t = Default::default() )] chart_source: ChartSourceTypeArg, From 8af0471902418419a9b04dacc575f480ef17a23a Mon Sep 17 00:00:00 2001 From: Andrew Kenworthy Date: Thu, 19 Dec 2024 11:06:47 +0100 Subject: [PATCH 09/20] added comment and changelog entry --- extra/completions/_stackablectl | 12 ++++++------ extra/completions/stackablectl.fish | 12 ++++++------ rust/stackablectl/CHANGELOG.md | 2 ++ rust/stackablectl/src/cli/mod.rs | 7 ++++++- 4 files changed, 20 insertions(+), 13 deletions(-) diff --git a/extra/completions/_stackablectl b/extra/completions/_stackablectl index bfbbbcec..5916ae54 100644 --- a/extra/completions/_stackablectl +++ b/extra/completions/_stackablectl @@ -79,7 +79,7 @@ table\:"Print output formatted as a table" json\:"Print output formatted as JSON" yaml\:"Print output formatted as YAML"))' \ '--chart-source=[]:CHART_SOURCE:((oci\:"OCI registry" -repo\:"Nexus repositories\: resolution (dev, test, stable) is based on the version and thus may be operator-specific"))' \ +repo\:"Nexus repositories\: resolution (dev, test, stable) is based on the version and thus will be operator-specific"))' \ '-l+[Log level this application uses]:LOG_LEVEL: ' \ '--log-level=[Log level this application uses]:LOG_LEVEL: ' \ '*-d+[Provide one or more additional (custom) demo file(s)]:DEMO_FILE:_files' \ @@ -109,7 +109,7 @@ table\:"Print output formatted as a table" json\:"Print output formatted as JSON" yaml\:"Print output formatted as YAML"))' \ '--chart-source=[]:CHART_SOURCE:((oci\:"OCI registry" -repo\:"Nexus repositories\: resolution (dev, test, stable) is based on the version and thus may be operator-specific"))' \ +repo\:"Nexus repositories\: resolution (dev, test, stable) is based on the version and thus will be operator-specific"))' \ '-l+[Log level this application uses]:LOG_LEVEL: ' \ '--log-level=[Log level this application uses]:LOG_LEVEL: ' \ '*-d+[Provide one or more additional (custom) demo file(s)]:DEMO_FILE:_files' \ @@ -141,7 +141,7 @@ minikube\:"Use a minikube cluster"))' \ '--cluster-nodes=[Number of total nodes in the local cluster]:CLUSTER_NODES: ' \ '--cluster-cp-nodes=[Number of control plane nodes in the local cluster]:CLUSTER_CP_NODES: ' \ '--chart-source=[]:CHART_SOURCE:((oci\:"OCI registry" -repo\:"Nexus repositories\: resolution (dev, test, stable) is based on the version and thus may be operator-specific"))' \ +repo\:"Nexus repositories\: resolution (dev, test, stable) is based on the version and thus will be operator-specific"))' \ '-l+[Log level this application uses]:LOG_LEVEL: ' \ '--log-level=[Log level this application uses]:LOG_LEVEL: ' \ '*-d+[Provide one or more additional (custom) demo file(s)]:DEMO_FILE:_files' \ @@ -359,7 +359,7 @@ minikube\:"Use a minikube cluster"))' \ '--cluster-nodes=[Number of total nodes in the local cluster]:CLUSTER_NODES: ' \ '--cluster-cp-nodes=[Number of control plane nodes in the local cluster]:CLUSTER_CP_NODES: ' \ '--chart-source=[]:CHART_SOURCE:((oci\:"OCI registry" -repo\:"Nexus repositories\: resolution (dev, test, stable) is based on the version and thus may be operator-specific"))' \ +repo\:"Nexus repositories\: resolution (dev, test, stable) is based on the version and thus will be operator-specific"))' \ '-l+[Log level this application uses]:LOG_LEVEL: ' \ '--log-level=[Log level this application uses]:LOG_LEVEL: ' \ '*-d+[Provide one or more additional (custom) demo file(s)]:DEMO_FILE:_files' \ @@ -547,7 +547,7 @@ minikube\:"Use a minikube cluster"))' \ '--product-namespace=[Namespace where the products (e.g. stacks or demos) are deployed]:PRODUCT_NAMESPACE: ' \ '--product-ns=[Namespace where the products (e.g. stacks or demos) are deployed]:PRODUCT_NAMESPACE: ' \ '--chart-source=[]:CHART_SOURCE:((oci\:"OCI registry" -repo\:"Nexus repositories\: resolution (dev, test, stable) is based on the version and thus may be operator-specific"))' \ +repo\:"Nexus repositories\: resolution (dev, test, stable) is based on the version and thus will be operator-specific"))' \ '--release=[Target a specific Stackable release]:RELEASE: ' \ '-l+[Log level this application uses]:LOG_LEVEL: ' \ '--log-level=[Log level this application uses]:LOG_LEVEL: ' \ @@ -828,7 +828,7 @@ minikube\:"Use a minikube cluster"))' \ '--product-namespace=[Namespace where the products (e.g. stacks or demos) are deployed]:PRODUCT_NAMESPACE: ' \ '--product-ns=[Namespace where the products (e.g. stacks or demos) are deployed]:PRODUCT_NAMESPACE: ' \ '--chart-source=[]:CHART_SOURCE:((oci\:"OCI registry" -repo\:"Nexus repositories\: resolution (dev, test, stable) is based on the version and thus may be operator-specific"))' \ +repo\:"Nexus repositories\: resolution (dev, test, stable) is based on the version and thus will be operator-specific"))' \ '--release=[Target a specific Stackable release]:RELEASE: ' \ '-l+[Log level this application uses]:LOG_LEVEL: ' \ '--log-level=[Log level this application uses]:LOG_LEVEL: ' \ diff --git a/extra/completions/stackablectl.fish b/extra/completions/stackablectl.fish index 44c6f027..32bf8056 100644 --- a/extra/completions/stackablectl.fish +++ b/extra/completions/stackablectl.fish @@ -60,7 +60,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" -f -a "installed" -d 'List installed operators' complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and not __fish_seen_subcommand_from list describe install uninstall installed help" -f -a "help" -d 'Print this message or the help of the given subcommand(s)' complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from list" -s o -l output -r -f -a "{plain\t'Print output formatted as plain text',table\t'Print output formatted as a table',json\t'Print output formatted as JSON',yaml\t'Print output formatted as YAML'}" -complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from list" -l chart-source -r -f -a "{oci\t'OCI registry',repo\t'Nexus repositories: resolution (dev, test, stable) is based on the version and thus may be operator-specific'}" +complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from list" -l chart-source -r -f -a "{oci\t'OCI registry',repo\t'Nexus 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" -s l -l log-level -d 'Log level this application uses' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from list" -s d -l demo-file -d 'Provide one or more additional (custom) demo file(s)' -r -F complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from list" -s s -l stack-file -d 'Provide one or more additional (custom) stack file(s)' -r -F @@ -72,7 +72,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" -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' complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from describe" -s o -l output -r -f -a "{plain\t'Print output formatted as plain text',table\t'Print output formatted as a table',json\t'Print output formatted as JSON',yaml\t'Print output formatted as YAML'}" -complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from describe" -l chart-source -r -f -a "{oci\t'OCI registry',repo\t'Nexus repositories: resolution (dev, test, stable) is based on the version and thus may be operator-specific'}" +complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from describe" -l chart-source -r -f -a "{oci\t'OCI registry',repo\t'Nexus 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" -s l -l log-level -d 'Log level this application uses' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from describe" -s d -l demo-file -d 'Provide one or more additional (custom) demo file(s)' -r -F complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from describe" -s s -l stack-file -d 'Provide one or more additional (custom) stack file(s)' -r -F @@ -88,7 +88,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 cluster-name -d 'Name of the local cluster' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from install" -l cluster-nodes -d 'Number of total nodes in the local cluster' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from install" -l cluster-cp-nodes -d 'Number of control plane nodes in the local cluster' -r -complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from install" -l chart-source -r -f -a "{oci\t'OCI registry',repo\t'Nexus repositories: resolution (dev, test, stable) is based on the version and thus may be operator-specific'}" +complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from install" -l chart-source -r -f -a "{oci\t'OCI registry',repo\t'Nexus 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" -s l -l log-level -d 'Log level this application uses' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from install" -s d -l demo-file -d 'Provide one or more additional (custom) demo file(s)' -r -F complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from install" -s s -l stack-file -d 'Provide one or more additional (custom) stack file(s)' -r -F @@ -172,7 +172,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 cluster-name -d 'Name of the local cluster' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and __fish_seen_subcommand_from install" -l cluster-nodes -d 'Number of total nodes in the local cluster' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and __fish_seen_subcommand_from install" -l cluster-cp-nodes -d 'Number of control plane nodes in the local cluster' -r -complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and __fish_seen_subcommand_from install" -l chart-source -r -f -a "{oci\t'OCI registry',repo\t'Nexus repositories: resolution (dev, test, stable) is based on the version and thus may be operator-specific'}" +complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and __fish_seen_subcommand_from install" -l chart-source -r -f -a "{oci\t'OCI registry',repo\t'Nexus 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" -s l -l log-level -d 'Log level this application uses' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and __fish_seen_subcommand_from install" -s d -l demo-file -d 'Provide one or more additional (custom) demo file(s)' -r -F complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and __fish_seen_subcommand_from install" -s s -l stack-file -d 'Provide one or more additional (custom) stack file(s)' -r -F @@ -246,7 +246,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 cluster-cp-nodes -d 'Number of control plane nodes in the local cluster' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand stack; and __fish_seen_subcommand_from install" -l operator-namespace -l operator-ns -d 'Namespace where the operators are deployed' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand stack; and __fish_seen_subcommand_from install" -s n -l product-namespace -l product-ns -d 'Namespace where the products (e.g. stacks or demos) are deployed' -r -complete -c stackablectl -n "__fish_stackablectl_using_subcommand stack; and __fish_seen_subcommand_from install" -l chart-source -r -f -a "{oci\t'OCI registry',repo\t'Nexus repositories: resolution (dev, test, stable) is based on the version and thus may be operator-specific'}" +complete -c stackablectl -n "__fish_stackablectl_using_subcommand stack; and __fish_seen_subcommand_from install" -l chart-source -r -f -a "{oci\t'OCI registry',repo\t'Nexus 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 release -d 'Target a specific Stackable release' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand stack; and __fish_seen_subcommand_from install" -s l -l log-level -d 'Log level this application uses' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand stack; and __fish_seen_subcommand_from install" -s d -l demo-file -d 'Provide one or more additional (custom) demo file(s)' -r -F @@ -350,7 +350,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 cluster-cp-nodes -d 'Number of control plane nodes in the local cluster' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand demo; and __fish_seen_subcommand_from install" -l operator-namespace -l operator-ns -d 'Namespace where the operators are deployed' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand demo; and __fish_seen_subcommand_from install" -s n -l product-namespace -l product-ns -d 'Namespace where the products (e.g. stacks or demos) are deployed' -r -complete -c stackablectl -n "__fish_stackablectl_using_subcommand demo; and __fish_seen_subcommand_from install" -l chart-source -r -f -a "{oci\t'OCI registry',repo\t'Nexus repositories: resolution (dev, test, stable) is based on the version and thus may be operator-specific'}" +complete -c stackablectl -n "__fish_stackablectl_using_subcommand demo; and __fish_seen_subcommand_from install" -l chart-source -r -f -a "{oci\t'OCI registry',repo\t'Nexus 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 release -d 'Target a specific Stackable release' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand demo; and __fish_seen_subcommand_from install" -s l -l log-level -d 'Log level this application uses' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand demo; and __fish_seen_subcommand_from install" -s d -l demo-file -d 'Provide one or more additional (custom) demo file(s)' -r -F diff --git a/rust/stackablectl/CHANGELOG.md b/rust/stackablectl/CHANGELOG.md index 720507fc..8b0001c6 100644 --- a/rust/stackablectl/CHANGELOG.md +++ b/rust/stackablectl/CHANGELOG.md @@ -7,12 +7,14 @@ All notable changes to this project will be documented in this file. ### Added - Add new argument `--release` that allows installing a specific version of a demo or stack ([#340]). +- Add new argument `--chart-source` so that operator charts can be pulled either from an OCI registry (the default) or from a Nexus repository ([#344]). ### Removed - Remove argument `--offline` that was not implemented yet ([#340]). [#340]: https://github.com/stackabletech/stackable-cockpit/pull/340 +[#344]: https://github.com/stackabletech/stackable-cockpit/pull/344 ## [24.11.1] - 2024-11-20 diff --git a/rust/stackablectl/src/cli/mod.rs b/rust/stackablectl/src/cli/mod.rs index 66388ef6..103d04b6 100644 --- a/rust/stackablectl/src/cli/mod.rs +++ b/rust/stackablectl/src/cli/mod.rs @@ -298,11 +298,16 @@ pub enum ChartSourceTypeArg { #[default] OCI, - /// Nexus repositories: resolution (dev, test, stable) is based on the version and thus may be operator-specific + /// Nexus 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 (Nexus-)repo case this core type cannot be + /// decorated with meaningful information as that would be operator-specific + /// i.e. we cannot resolve *which* Nexus 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, From 8af2e01d6807308bb868be054cf19351414819f4 Mon Sep 17 00:00:00 2001 From: Andrew Kenworthy Date: Thu, 19 Dec 2024 13:15:46 +0100 Subject: [PATCH 10/20] fix panic when arguments evaluated eagerly --- rust/stackablectl/src/cmds/demo.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/rust/stackablectl/src/cmds/demo.rs b/rust/stackablectl/src/cmds/demo.rs index 600f4e91..452671fb 100644 --- a/rust/stackablectl/src/cmds/demo.rs +++ b/rust/stackablectl/src/cmds/demo.rs @@ -293,7 +293,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(", ")]); From 9e933efd4b3255c01b5ad08452093c926471d811 Mon Sep 17 00:00:00 2001 From: Andrew Kenworthy Date: Fri, 20 Dec 2024 15:58:05 +0100 Subject: [PATCH 11/20] list and describe metadata from oci --- Cargo.lock | 10 +- Cargo.nix | 25 ++- Cargo.toml | 3 +- rust/stackable-cockpit/Cargo.toml | 1 + rust/stackable-cockpit/src/constants.rs | 1 + rust/stackable-cockpit/src/helm.rs | 19 +- rust/stackable-cockpit/src/lib.rs | 1 + rust/stackable-cockpit/src/oci.rs | 173 ++++++++++++++++++ .../src/utils/chartsource.rs | 14 ++ rust/stackable-cockpit/src/utils/mod.rs | 1 + rust/stackablectl/Cargo.toml | 1 + rust/stackablectl/src/cmds/operator.rs | 84 +++++---- 12 files changed, 282 insertions(+), 51 deletions(-) create mode 100644 rust/stackable-cockpit/src/oci.rs create mode 100644 rust/stackable-cockpit/src/utils/chartsource.rs diff --git a/Cargo.lock b/Cargo.lock index e35fbd0a..639975e3 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 c6aa1843..fdaa24a7 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/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 82287e18..b0910607 100644 --- a/rust/stackable-cockpit/src/constants.rs +++ b/rust/stackable-cockpit/src/constants.rs @@ -22,6 +22,7 @@ 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"; diff --git a/rust/stackable-cockpit/src/helm.rs b/rust/stackable-cockpit/src/helm.rs index 58aac1e0..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"))] @@ -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..c6248a5b --- /dev/null +++ b/rust/stackable-cockpit/src/oci.rs @@ -0,0 +1,173 @@ +use std::collections::HashMap; + +use serde::Deserialize; +use snafu::{OptionExt, ResultExt, Snafu}; +use tracing::debug; +use urlencoding::encode; + +use crate::{ + constants::{HELM_OCI_BASE, HELM_REPO_NAME_DEV, HELM_REPO_NAME_STABLE, HELM_REPO_NAME_TEST}, + 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, +} + +#[derive(Deserialize, Debug)] +pub struct OciRepository { + pub name: String, +} + +#[derive(Deserialize, Debug)] +pub struct Tag { + pub name: String, +} + +#[derive(Deserialize, Debug)] +pub struct Artifact { + pub digest: String, + pub tags: Option>, +} + +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; + let page_size = 20; + + while let Ok(artifacts_page) = client + .get(format!( + "{}/projects/{}/repositories/{}/artifacts?page_size={}&page={}", + base_url, + encode(project_name), + encode(repository_name), + page_size, + page + )) + .send() + .await + .context(GetArtifactsSnafu)? + .json::>() + .await + .context(ParseArtifactsSnafu) + { + let count = artifacts_page.len(); + artifacts.extend(artifacts_page); + if count < 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() + ); + + 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/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/stackablectl/Cargo.toml b/rust/stackablectl/Cargo.toml index c635ceaa..279d93a5 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/src/cmds/operator.rs b/rust/stackablectl/src/cmds/operator.rs index a848d874..76010d45 100644 --- a/rust/stackablectl/src/cmds/operator.rs +++ b/rust/stackablectl/src/cmds/operator.rs @@ -15,13 +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}, + helm::{self, Release}, + oci, platform::{ namespace, operator::{self, ChartSourceType}, }, utils::{ self, + chartsource::ChartSourceMetadata, k8s::{self, Client}, }, }; @@ -182,6 +184,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 @@ -206,12 +211,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(args.chart_source.clone())).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 => { @@ -262,11 +268,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(args.chart_source.clone())).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 => { @@ -465,37 +472,50 @@ fn installed_cmd(args: &OperatorInstalledArgs, cli: &Cli) -> 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"); @@ -518,7 +538,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, @@ -543,7 +563,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, From 0243c3e53ef7d37237c4082c97eb99a047a68af8 Mon Sep 17 00:00:00 2001 From: Andrew Kenworthy <1712947+adwk67@users.noreply.github.com> Date: Thu, 23 Jan 2025 10:44:14 +0100 Subject: [PATCH 12/20] Update rust/stackablectl/src/cmds/demo.rs Co-authored-by: Techassi --- rust/stackablectl/src/cmds/demo.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/rust/stackablectl/src/cmds/demo.rs b/rust/stackablectl/src/cmds/demo.rs index 452671fb..562ade67 100644 --- a/rust/stackablectl/src/cmds/demo.rs +++ b/rust/stackablectl/src/cmds/demo.rs @@ -113,10 +113,11 @@ to specify operator versions." #[command(flatten)] namespaces: CommonNamespaceArgs, + /// 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 Nexus repositories.", - value_enum, default_value_t = Default::default() + value_enum, + default_value_t = Default::default() )] chart_source: ChartSourceTypeArg, } From d4e3b3282733d117c363c480f8bb44e7f6d41b80 Mon Sep 17 00:00:00 2001 From: Andrew Kenworthy Date: Thu, 23 Jan 2025 11:15:00 +0100 Subject: [PATCH 13/20] replace Nexus with index-based yaml refs --- extra/completions/_stackablectl | 14 +++++++------- extra/completions/stackablectl.elv | 2 +- extra/completions/stackablectl.fish | 12 ++++++------ extra/completions/stackablectl.nu | 2 +- .../stackable-cockpit/src/platform/operator/mod.rs | 2 +- rust/stackablectl/CHANGELOG.md | 2 +- rust/stackablectl/src/cli/mod.rs | 6 +++--- rust/stackablectl/src/cmds/operator.rs | 6 +++--- rust/stackablectl/src/cmds/release.rs | 2 +- rust/stackablectl/src/cmds/stack.rs | 2 +- 10 files changed, 25 insertions(+), 25 deletions(-) diff --git a/extra/completions/_stackablectl b/extra/completions/_stackablectl index 5916ae54..5234bb47 100644 --- a/extra/completions/_stackablectl +++ b/extra/completions/_stackablectl @@ -79,7 +79,7 @@ table\:"Print output formatted as a table" json\:"Print output formatted as JSON" yaml\:"Print output formatted as YAML"))' \ '--chart-source=[]:CHART_SOURCE:((oci\:"OCI registry" -repo\:"Nexus repositories\: resolution (dev, test, stable) is based on the version and thus will be operator-specific"))' \ +repo\:"index.yaml-based repositories\: resolution (dev, test, stable) is based on the version and thus will be operator-specific"))' \ '-l+[Log level this application uses]:LOG_LEVEL: ' \ '--log-level=[Log level this application uses]:LOG_LEVEL: ' \ '*-d+[Provide one or more additional (custom) demo file(s)]:DEMO_FILE:_files' \ @@ -109,7 +109,7 @@ table\:"Print output formatted as a table" json\:"Print output formatted as JSON" yaml\:"Print output formatted as YAML"))' \ '--chart-source=[]:CHART_SOURCE:((oci\:"OCI registry" -repo\:"Nexus repositories\: resolution (dev, test, stable) is based on the version and thus will be operator-specific"))' \ +repo\:"index.yaml-based repositories\: resolution (dev, test, stable) is based on the version and thus will be operator-specific"))' \ '-l+[Log level this application uses]:LOG_LEVEL: ' \ '--log-level=[Log level this application uses]:LOG_LEVEL: ' \ '*-d+[Provide one or more additional (custom) demo file(s)]:DEMO_FILE:_files' \ @@ -141,7 +141,7 @@ minikube\:"Use a minikube cluster"))' \ '--cluster-nodes=[Number of total nodes in the local cluster]:CLUSTER_NODES: ' \ '--cluster-cp-nodes=[Number of control plane nodes in the local cluster]:CLUSTER_CP_NODES: ' \ '--chart-source=[]:CHART_SOURCE:((oci\:"OCI registry" -repo\:"Nexus repositories\: resolution (dev, test, stable) is based on the version and thus will be operator-specific"))' \ +repo\:"index.yaml-based repositories\: resolution (dev, test, stable) is based on the version and thus will be operator-specific"))' \ '-l+[Log level this application uses]:LOG_LEVEL: ' \ '--log-level=[Log level this application uses]:LOG_LEVEL: ' \ '*-d+[Provide one or more additional (custom) demo file(s)]:DEMO_FILE:_files' \ @@ -359,7 +359,7 @@ minikube\:"Use a minikube cluster"))' \ '--cluster-nodes=[Number of total nodes in the local cluster]:CLUSTER_NODES: ' \ '--cluster-cp-nodes=[Number of control plane nodes in the local cluster]:CLUSTER_CP_NODES: ' \ '--chart-source=[]:CHART_SOURCE:((oci\:"OCI registry" -repo\:"Nexus repositories\: resolution (dev, test, stable) is based on the version and thus will be operator-specific"))' \ +repo\:"index.yaml-based repositories\: resolution (dev, test, stable) is based on the version and thus will be operator-specific"))' \ '-l+[Log level this application uses]:LOG_LEVEL: ' \ '--log-level=[Log level this application uses]:LOG_LEVEL: ' \ '*-d+[Provide one or more additional (custom) demo file(s)]:DEMO_FILE:_files' \ @@ -547,7 +547,7 @@ minikube\:"Use a minikube cluster"))' \ '--product-namespace=[Namespace where the products (e.g. stacks or demos) are deployed]:PRODUCT_NAMESPACE: ' \ '--product-ns=[Namespace where the products (e.g. stacks or demos) are deployed]:PRODUCT_NAMESPACE: ' \ '--chart-source=[]:CHART_SOURCE:((oci\:"OCI registry" -repo\:"Nexus repositories\: resolution (dev, test, stable) is based on the version and thus will be operator-specific"))' \ +repo\:"index.yaml-based repositories\: resolution (dev, test, stable) is based on the version and thus will be operator-specific"))' \ '--release=[Target a specific Stackable release]:RELEASE: ' \ '-l+[Log level this application uses]:LOG_LEVEL: ' \ '--log-level=[Log level this application uses]:LOG_LEVEL: ' \ @@ -827,8 +827,8 @@ minikube\:"Use a minikube cluster"))' \ '-n+[Namespace where the products (e.g. stacks or demos) are deployed]:PRODUCT_NAMESPACE: ' \ '--product-namespace=[Namespace where the products (e.g. stacks or demos) are deployed]:PRODUCT_NAMESPACE: ' \ '--product-ns=[Namespace where the products (e.g. stacks or demos) are deployed]:PRODUCT_NAMESPACE: ' \ -'--chart-source=[]:CHART_SOURCE:((oci\:"OCI registry" -repo\:"Nexus repositories\: resolution (dev, test, stable) is based on the version and thus will be operator-specific"))' \ +'--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"))' \ '--release=[Target a specific Stackable release]:RELEASE: ' \ '-l+[Log level this application uses]:LOG_LEVEL: ' \ '--log-level=[Log level this application uses]:LOG_LEVEL: ' \ diff --git a/extra/completions/stackablectl.elv b/extra/completions/stackablectl.elv index 1f818b3f..d4208ce3 100644 --- a/extra/completions/stackablectl.elv +++ b/extra/completions/stackablectl.elv @@ -596,7 +596,7 @@ set edit:completion:arg-completer[stackablectl] = {|@words| cand -n 'Namespace where the products (e.g. stacks or demos) are deployed' cand --product-namespace 'Namespace where the products (e.g. stacks or demos) are deployed' cand --product-ns 'Namespace where the products (e.g. stacks or demos) are deployed' - cand --chart-source 'chart-source' + cand --chart-source 'Source the charts from either a OCI registry or from index.yaml-based repositories' cand --release 'Target a specific Stackable release' cand -l 'Log level this application uses' cand --log-level 'Log level this application uses' diff --git a/extra/completions/stackablectl.fish b/extra/completions/stackablectl.fish index 32bf8056..91a5065c 100644 --- a/extra/completions/stackablectl.fish +++ b/extra/completions/stackablectl.fish @@ -60,7 +60,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" -f -a "installed" -d 'List installed operators' complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and not __fish_seen_subcommand_from list describe install uninstall installed help" -f -a "help" -d 'Print this message or the help of the given subcommand(s)' complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from list" -s o -l output -r -f -a "{plain\t'Print output formatted as plain text',table\t'Print output formatted as a table',json\t'Print output formatted as JSON',yaml\t'Print output formatted as YAML'}" -complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from list" -l chart-source -r -f -a "{oci\t'OCI registry',repo\t'Nexus 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 chart-source -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" -s l -l log-level -d 'Log level this application uses' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from list" -s d -l demo-file -d 'Provide one or more additional (custom) demo file(s)' -r -F complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from list" -s s -l stack-file -d 'Provide one or more additional (custom) stack file(s)' -r -F @@ -72,7 +72,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" -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' complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from describe" -s o -l output -r -f -a "{plain\t'Print output formatted as plain text',table\t'Print output formatted as a table',json\t'Print output formatted as JSON',yaml\t'Print output formatted as YAML'}" -complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from describe" -l chart-source -r -f -a "{oci\t'OCI registry',repo\t'Nexus 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 chart-source -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" -s l -l log-level -d 'Log level this application uses' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from describe" -s d -l demo-file -d 'Provide one or more additional (custom) demo file(s)' -r -F complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from describe" -s s -l stack-file -d 'Provide one or more additional (custom) stack file(s)' -r -F @@ -88,7 +88,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 cluster-name -d 'Name of the local cluster' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from install" -l cluster-nodes -d 'Number of total nodes in the local cluster' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from install" -l cluster-cp-nodes -d 'Number of control plane nodes in the local cluster' -r -complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from install" -l chart-source -r -f -a "{oci\t'OCI registry',repo\t'Nexus 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 chart-source -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" -s l -l log-level -d 'Log level this application uses' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from install" -s d -l demo-file -d 'Provide one or more additional (custom) demo file(s)' -r -F complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from install" -s s -l stack-file -d 'Provide one or more additional (custom) stack file(s)' -r -F @@ -172,7 +172,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 cluster-name -d 'Name of the local cluster' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and __fish_seen_subcommand_from install" -l cluster-nodes -d 'Number of total nodes in the local cluster' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and __fish_seen_subcommand_from install" -l cluster-cp-nodes -d 'Number of control plane nodes in the local cluster' -r -complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and __fish_seen_subcommand_from install" -l chart-source -r -f -a "{oci\t'OCI registry',repo\t'Nexus 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 chart-source -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" -s l -l log-level -d 'Log level this application uses' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and __fish_seen_subcommand_from install" -s d -l demo-file -d 'Provide one or more additional (custom) demo file(s)' -r -F complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and __fish_seen_subcommand_from install" -s s -l stack-file -d 'Provide one or more additional (custom) stack file(s)' -r -F @@ -246,7 +246,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 cluster-cp-nodes -d 'Number of control plane nodes in the local cluster' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand stack; and __fish_seen_subcommand_from install" -l operator-namespace -l operator-ns -d 'Namespace where the operators are deployed' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand stack; and __fish_seen_subcommand_from install" -s n -l product-namespace -l product-ns -d 'Namespace where the products (e.g. stacks or demos) are deployed' -r -complete -c stackablectl -n "__fish_stackablectl_using_subcommand stack; and __fish_seen_subcommand_from install" -l chart-source -r -f -a "{oci\t'OCI registry',repo\t'Nexus 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 chart-source -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 release -d 'Target a specific Stackable release' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand stack; and __fish_seen_subcommand_from install" -s l -l log-level -d 'Log level this application uses' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand stack; and __fish_seen_subcommand_from install" -s d -l demo-file -d 'Provide one or more additional (custom) demo file(s)' -r -F @@ -350,7 +350,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 cluster-cp-nodes -d 'Number of control plane nodes in the local cluster' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand demo; and __fish_seen_subcommand_from install" -l operator-namespace -l operator-ns -d 'Namespace where the operators are deployed' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand demo; and __fish_seen_subcommand_from install" -s n -l product-namespace -l product-ns -d 'Namespace where the products (e.g. stacks or demos) are deployed' -r -complete -c stackablectl -n "__fish_stackablectl_using_subcommand demo; and __fish_seen_subcommand_from install" -l chart-source -r -f -a "{oci\t'OCI registry',repo\t'Nexus 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 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 release -d 'Target a specific Stackable release' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand demo; and __fish_seen_subcommand_from install" -s l -l log-level -d 'Log level this application uses' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand demo; and __fish_seen_subcommand_from install" -s d -l demo-file -d 'Provide one or more additional (custom) demo file(s)' -r -F diff --git a/extra/completions/stackablectl.nu b/extra/completions/stackablectl.nu index 695a0bd3..a03f71f6 100644 --- a/extra/completions/stackablectl.nu +++ b/extra/completions/stackablectl.nu @@ -560,7 +560,7 @@ module completions { --operator-ns: string # Namespace where the operators are deployed --product-namespace(-n): string # Namespace where the products (e.g. stacks or demos) are deployed --product-ns: string # Namespace where the products (e.g. stacks or demos) are deployed - --chart-source: string@"nu-complete stackablectl demo install chart_source" + --chart-source: string@"nu-complete stackablectl demo install chart_source" # Source the charts from either a OCI registry or from index.yaml-based repositories --release: string # Target a specific Stackable release --log-level(-l): string # Log level this application uses --no-cache # Do not cache the remote (default) demo, stack and release files diff --git a/rust/stackable-cockpit/src/platform/operator/mod.rs b/rust/stackable-cockpit/src/platform/operator/mod.rs index e32ebc42..eedcf9f9 100644 --- a/rust/stackable-cockpit/src/platform/operator/mod.rs +++ b/rust/stackable-cockpit/src/platform/operator/mod.rs @@ -234,7 +234,7 @@ pub enum ChartSourceType { /// OCI registry OCI, - /// Nexus repositories: resolution (dev, test, stable) is based on the version and thus may be operator-specific + /// index.yaml-based repositories: resolution (dev, test, stable) is based on the version and thus may be operator-specific Repo, } diff --git a/rust/stackablectl/CHANGELOG.md b/rust/stackablectl/CHANGELOG.md index 8b0001c6..e5fa70e3 100644 --- a/rust/stackablectl/CHANGELOG.md +++ b/rust/stackablectl/CHANGELOG.md @@ -7,7 +7,7 @@ All notable changes to this project will be documented in this file. ### Added - Add new argument `--release` that allows installing a specific version of a demo or stack ([#340]). -- Add new argument `--chart-source` so that operator charts can be pulled either from an OCI registry (the default) or from a Nexus repository ([#344]). +- 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]). ### Removed diff --git a/rust/stackablectl/src/cli/mod.rs b/rust/stackablectl/src/cli/mod.rs index 103d04b6..fdba1d9b 100644 --- a/rust/stackablectl/src/cli/mod.rs +++ b/rust/stackablectl/src/cli/mod.rs @@ -298,15 +298,15 @@ pub enum ChartSourceTypeArg { #[default] OCI, - /// Nexus repositories: resolution (dev, test, stable) is based on the version and thus will be operator-specific + /// 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 (Nexus-)repo case this core type cannot be + /// 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* Nexus repo to use until we have inspected + /// 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 { diff --git a/rust/stackablectl/src/cmds/operator.rs b/rust/stackablectl/src/cmds/operator.rs index 76010d45..2191a6b2 100644 --- a/rust/stackablectl/src/cmds/operator.rs +++ b/rust/stackablectl/src/cmds/operator.rs @@ -73,7 +73,7 @@ pub struct OperatorListArgs { #[arg( long, - long_help = "Source the charts from either a OCI registry or from Nexus repositories.", + long_help = "Source the charts from either a OCI registry or from index.yaml-based repositories.", value_enum, default_value_t = Default::default() )] chart_source: ChartSourceTypeArg, @@ -90,7 +90,7 @@ pub struct OperatorDescribeArgs { #[arg( long, - long_help = "Source the charts from either a OCI registry or from Nexus repositories.", value_enum, default_value_t = Default::default() + long_help = "Source the charts from either a OCI registry or from index.yaml-based repositories.", value_enum, default_value_t = Default::default() )] chart_source: ChartSourceTypeArg, } @@ -123,7 +123,7 @@ Use \"stackablectl operator describe \" to get available versions for #[arg( long, - long_help = "Source the charts from either a OCI registry or from Nexus repositories.", + long_help = "Source the charts from either a OCI registry or from index.yaml-based repositories.", value_enum, default_value_t = Default::default() )] chart_source: ChartSourceTypeArg, diff --git a/rust/stackablectl/src/cmds/release.rs b/rust/stackablectl/src/cmds/release.rs index a935d086..1609f071 100644 --- a/rust/stackablectl/src/cmds/release.rs +++ b/rust/stackablectl/src/cmds/release.rs @@ -85,7 +85,7 @@ pub struct ReleaseInstallArgs { #[arg( long, - long_help = "Source the charts from either a OCI registry or from Nexus repositories.", + long_help = "Source the charts from either a OCI registry or from index.yaml-based repositories.", value_enum, default_value_t = Default::default() )] chart_source: ChartSourceTypeArg, diff --git a/rust/stackablectl/src/cmds/stack.rs b/rust/stackablectl/src/cmds/stack.rs index 3dd0c9f5..89f2f2ba 100644 --- a/rust/stackablectl/src/cmds/stack.rs +++ b/rust/stackablectl/src/cmds/stack.rs @@ -111,7 +111,7 @@ Use \"stackablectl stack describe \" to list available parameters for eac #[arg( long, - long_help = "Source the charts from either a OCI registry or from Nexus repositories.", + long_help = "Source the charts from either a OCI registry or from index.yaml-based repositories.", value_enum, default_value_t = Default::default() )] chart_source: ChartSourceTypeArg, From 39ca7ca61af1ca26a9f632fcd9e4dd5c924f7cee Mon Sep 17 00:00:00 2001 From: Andrew Kenworthy <1712947+adwk67@users.noreply.github.com> Date: Thu, 23 Jan 2025 11:16:24 +0100 Subject: [PATCH 14/20] Update rust/stackable-cockpit/src/oci.rs Co-authored-by: Techassi --- rust/stackable-cockpit/src/oci.rs | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/rust/stackable-cockpit/src/oci.rs b/rust/stackable-cockpit/src/oci.rs index c6248a5b..5e2299ef 100644 --- a/rust/stackable-cockpit/src/oci.rs +++ b/rust/stackable-cockpit/src/oci.rs @@ -95,22 +95,25 @@ pub async fn get_oci_index<'a>() -> Result let mut page = 1; let page_size = 20; - while let Ok(artifacts_page) = client - .get(format!( + loop { + let url = format!( "{}/projects/{}/repositories/{}/artifacts?page_size={}&page={}", base_url, encode(project_name), encode(repository_name), page_size, page - )) - .send() - .await - .context(GetArtifactsSnafu)? - .json::>() - .await - .context(ParseArtifactsSnafu) - { + ); + + let artifact_page = client + .get(url) + .send() + .await + .context(GetArtifactsSnafu)? + .json::>() + .await + .context(ParseArtifactsSnafu)?; + let count = artifacts_page.len(); artifacts.extend(artifacts_page); if count < page_size { From dce13201cba8b275f6ef184742fb2bfcb81c5a33 Mon Sep 17 00:00:00 2001 From: Andrew Kenworthy Date: Thu, 23 Jan 2025 12:57:08 +0100 Subject: [PATCH 15/20] introduce constant and doc comments --- rust/stackable-cockpit/src/constants.rs | 2 ++ rust/stackable-cockpit/src/oci.rs | 44 +++++++++++++++++++++---- 2 files changed, 39 insertions(+), 7 deletions(-) diff --git a/rust/stackable-cockpit/src/constants.rs b/rust/stackable-cockpit/src/constants.rs index b0910607..cf03e4c5 100644 --- a/rust/stackable-cockpit/src/constants.rs +++ b/rust/stackable-cockpit/src/constants.rs @@ -41,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/oci.rs b/rust/stackable-cockpit/src/oci.rs index 5e2299ef..28466131 100644 --- a/rust/stackable-cockpit/src/oci.rs +++ b/rust/stackable-cockpit/src/oci.rs @@ -6,7 +6,10 @@ use tracing::debug; use urlencoding::encode; use crate::{ - constants::{HELM_OCI_BASE, HELM_REPO_NAME_DEV, HELM_REPO_NAME_STABLE, HELM_REPO_NAME_TEST}, + constants::{ + HELM_OCI_BASE, HELM_REPO_NAME_DEV, HELM_REPO_NAME_STABLE, HELM_REPO_NAME_TEST, + OCI_INDEX_PAGE_SIZE, + }, utils::chartsource::{ChartSourceEntry, ChartSourceMetadata}, }; @@ -28,16 +31,39 @@ pub enum Error { UnexpectedOciRepositoryName, } +/// Identifies an operator-specific root folder in the repository e.g. +/// ``` +/// { +/// name: "sdp-charts/airflow-operator" +/// } +/// ``` #[derive(Deserialize, Debug)] -pub struct OciRepository { +struct OciRepository { pub name: String, } +/// Identifies an image tag e.g. +/// ``` +/// { +/// 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. +/// ``` +/// { +/// digest: "sha256:e80a4b1e004f90dee0321f817871c4a225369b89efdc17c319595263139364b5", +/// tags: [ +/// { +/// name: "0.0.0-pr569" +/// } +/// ]) +/// } +/// ``` #[derive(Deserialize, Debug)] pub struct Artifact { pub digest: String, @@ -93,7 +119,6 @@ pub async fn get_oci_index<'a>() -> Result let mut artifacts = Vec::new(); let mut page = 1; - let page_size = 20; loop { let url = format!( @@ -101,11 +126,11 @@ pub async fn get_oci_index<'a>() -> Result base_url, encode(project_name), encode(repository_name), - page_size, + OCI_INDEX_PAGE_SIZE, page ); - let artifact_page = client + let artifacts_page = client .get(url) .send() .await @@ -113,10 +138,10 @@ pub async fn get_oci_index<'a>() -> Result .json::>() .await .context(ParseArtifactsSnafu)?; - + let count = artifacts_page.len(); artifacts.extend(artifacts_page); - if count < page_size { + if count < OCI_INDEX_PAGE_SIZE { break; } page += 1; @@ -138,6 +163,11 @@ pub async fn get_oci_index<'a>() -> Result 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(), From c879f3fcc42ae94bb69b284b193881d1d86685a6 Mon Sep 17 00:00:00 2001 From: Andrew Kenworthy Date: Thu, 23 Jan 2025 16:17:37 +0100 Subject: [PATCH 16/20] move url def into a trait --- rust/stackable-cockpit/src/oci.rs | 60 +++++++++++++++++++++++++------ 1 file changed, 50 insertions(+), 10 deletions(-) diff --git a/rust/stackable-cockpit/src/oci.rs b/rust/stackable-cockpit/src/oci.rs index 28466131..d7ea9b4c 100644 --- a/rust/stackable-cockpit/src/oci.rs +++ b/rust/stackable-cockpit/src/oci.rs @@ -3,6 +3,7 @@ use std::collections::HashMap; use serde::Deserialize; use snafu::{OptionExt, ResultExt, Snafu}; use tracing::debug; +use url::Url; use urlencoding::encode; use crate::{ @@ -29,6 +30,12 @@ pub enum 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. @@ -70,6 +77,46 @@ pub struct Artifact { 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(); @@ -121,15 +168,9 @@ pub async fn get_oci_index<'a>() -> Result let mut page = 1; loop { - let url = format!( - "{}/projects/{}/repositories/{}/artifacts?page_size={}&page={}", - base_url, - encode(project_name), - encode(repository_name), - OCI_INDEX_PAGE_SIZE, - page - ); - + 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() @@ -138,7 +179,6 @@ pub async fn get_oci_index<'a>() -> Result .json::>() .await .context(ParseArtifactsSnafu)?; - let count = artifacts_page.len(); artifacts.extend(artifacts_page); if count < OCI_INDEX_PAGE_SIZE { From 8491ffd1b05c30e25de46e573848a690a244cebf Mon Sep 17 00:00:00 2001 From: Andrew Kenworthy Date: Thu, 23 Jan 2025 16:23:07 +0100 Subject: [PATCH 17/20] linting --- rust/stackable-cockpit/src/oci.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rust/stackable-cockpit/src/oci.rs b/rust/stackable-cockpit/src/oci.rs index d7ea9b4c..4f86f4ea 100644 --- a/rust/stackable-cockpit/src/oci.rs +++ b/rust/stackable-cockpit/src/oci.rs @@ -39,7 +39,7 @@ pub enum Error { } /// Identifies an operator-specific root folder in the repository e.g. -/// ``` +/// ```text /// { /// name: "sdp-charts/airflow-operator" /// } @@ -50,7 +50,7 @@ struct OciRepository { } /// Identifies an image tag e.g. -/// ``` +/// ```text /// { /// name: "24.11.1-rc1" /// } @@ -61,7 +61,7 @@ pub struct Tag { } /// Identifies an image artifact with its digest and tags e.g. -/// ``` +/// ```text /// { /// digest: "sha256:e80a4b1e004f90dee0321f817871c4a225369b89efdc17c319595263139364b5", /// tags: [ From 1e6947ea658e9f2fc3171e585dda37f7dba89843 Mon Sep 17 00:00:00 2001 From: Andrew Kenworthy Date: Fri, 24 Jan 2025 11:54:59 +0100 Subject: [PATCH 18/20] added comment --- rust/stackablectl/src/cli/mod.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/rust/stackablectl/src/cli/mod.rs b/rust/stackablectl/src/cli/mod.rs index fdba1d9b..34984d33 100644 --- a/rust/stackablectl/src/cli/mod.rs +++ b/rust/stackablectl/src/cli/mod.rs @@ -292,6 +292,10 @@ 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 From 32564c3b296ec6125e762bc9f6f4d94fe8f364c9 Mon Sep 17 00:00:00 2001 From: Andrew Kenworthy Date: Fri, 24 Jan 2025 14:27:17 +0100 Subject: [PATCH 19/20] moved chart-source to CommonRepoArgs --- .../stackablectl/partials/commands/cache.adoc | 9 + .../partials/commands/completions.adoc | 9 + .../stackablectl/partials/commands/demo.adoc | 9 + .../partials/commands/experimental-debug.adoc | 9 + .../stackablectl/partials/commands/index.adoc | 9 + .../partials/commands/operator.adoc | 9 + .../partials/commands/release.adoc | 9 + .../stackablectl/partials/commands/stack.adoc | 9 + .../partials/commands/stacklet.adoc | 9 + extra/completions/_stackablectl | 78 +++++- extra/completions/stackablectl.bash | 222 +++++++++++++----- extra/completions/stackablectl.elv | 39 ++- extra/completions/stackablectl.fish | 41 +++- extra/completions/stackablectl.nu | 147 +++++++++++- extra/man/stackablectl.1 | 15 +- rust/stackable-cockpit/src/oci.rs | 6 +- rust/stackablectl/README.md | 9 + rust/stackablectl/src/args/repo.rs | 37 ++- rust/stackablectl/src/cli/mod.rs | 4 + rust/stackablectl/src/cmds/demo.rs | 12 +- rust/stackablectl/src/cmds/operator.rs | 28 +-- rust/stackablectl/src/cmds/release.rs | 11 +- rust/stackablectl/src/cmds/stack.rs | 11 +- 23 files changed, 593 insertions(+), 148 deletions(-) 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 5234bb47..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'\'')]' \ @@ -78,8 +82,6 @@ yaml\:"Print output formatted as YAML"))' \ table\:"Print output formatted as a table" json\:"Print output formatted as JSON" yaml\:"Print output formatted as YAML"))' \ -'--chart-source=[]: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"))' \ '-l+[Log level this application uses]:LOG_LEVEL: ' \ '--log-level=[Log level this application uses]:LOG_LEVEL: ' \ '*-d+[Provide one or more additional (custom) demo file(s)]:DEMO_FILE:_files' \ @@ -91,6 +93,8 @@ repo\:"index.yaml-based repositories\: resolution (dev, test, stable) is based o '--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'\'')]' \ @@ -108,8 +112,6 @@ yaml\:"Print output formatted as YAML"))' \ table\:"Print output formatted as a table" json\:"Print output formatted as JSON" yaml\:"Print output formatted as YAML"))' \ -'--chart-source=[]: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"))' \ '-l+[Log level this application uses]:LOG_LEVEL: ' \ '--log-level=[Log level this application uses]:LOG_LEVEL: ' \ '*-d+[Provide one or more additional (custom) demo file(s)]:DEMO_FILE:_files' \ @@ -121,6 +123,8 @@ repo\:"index.yaml-based repositories\: resolution (dev, test, stable) is based o '--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'\'')]' \ @@ -140,8 +144,6 @@ minikube\:"Use a minikube cluster"))' \ '--cluster-name=[Name of the local cluster]:CLUSTER_NAME: ' \ '--cluster-nodes=[Number of total nodes in the local cluster]:CLUSTER_NODES: ' \ '--cluster-cp-nodes=[Number of control plane nodes in the local cluster]:CLUSTER_CP_NODES: ' \ -'--chart-source=[]: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"))' \ '-l+[Log level this application uses]:LOG_LEVEL: ' \ '--log-level=[Log level this application uses]:LOG_LEVEL: ' \ '*-d+[Provide one or more additional (custom) demo file(s)]:DEMO_FILE:_files' \ @@ -153,6 +155,8 @@ repo\:"index.yaml-based repositories\: resolution (dev, test, stable) is based o '--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'\'')]' \ @@ -176,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'\'')]' \ @@ -207,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'\'')]' \ @@ -271,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'\'')]' \ @@ -307,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'\'')]' \ @@ -335,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'\'')]' \ @@ -358,8 +372,6 @@ minikube\:"Use a minikube cluster"))' \ '--cluster-name=[Name of the local cluster]:CLUSTER_NAME: ' \ '--cluster-nodes=[Number of total nodes in the local cluster]:CLUSTER_NODES: ' \ '--cluster-cp-nodes=[Number of control plane nodes in the local cluster]:CLUSTER_CP_NODES: ' \ -'--chart-source=[]: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"))' \ '-l+[Log level this application uses]:LOG_LEVEL: ' \ '--log-level=[Log level this application uses]:LOG_LEVEL: ' \ '*-d+[Provide one or more additional (custom) demo file(s)]:DEMO_FILE:_files' \ @@ -371,6 +383,8 @@ repo\:"index.yaml-based repositories\: resolution (dev, test, stable) is based o '--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'\'')]' \ @@ -394,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'\'')]' \ @@ -456,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'\'')]' \ @@ -493,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'\'')]' \ @@ -522,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'\'')]' \ @@ -546,8 +568,6 @@ minikube\:"Use a minikube cluster"))' \ '-n+[Namespace where the products (e.g. stacks or demos) are deployed]:PRODUCT_NAMESPACE: ' \ '--product-namespace=[Namespace where the products (e.g. stacks or demos) are deployed]:PRODUCT_NAMESPACE: ' \ '--product-ns=[Namespace where the products (e.g. stacks or demos) are deployed]:PRODUCT_NAMESPACE: ' \ -'--chart-source=[]: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"))' \ '--release=[Target a specific Stackable release]:RELEASE: ' \ '-l+[Log level this application uses]:LOG_LEVEL: ' \ '--log-level=[Log level this application uses]:LOG_LEVEL: ' \ @@ -560,6 +580,8 @@ repo\:"index.yaml-based repositories\: resolution (dev, test, stable) is based o '--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'\'')]' \ @@ -618,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'\'')]' \ @@ -649,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'\'')]' \ @@ -684,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'\'')]' \ @@ -737,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'\'')]' \ @@ -774,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'\'')]' \ @@ -803,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'\'')]' \ @@ -827,8 +861,6 @@ minikube\:"Use a minikube cluster"))' \ '-n+[Namespace where the products (e.g. stacks or demos) are deployed]:PRODUCT_NAMESPACE: ' \ '--product-namespace=[Namespace where the products (e.g. stacks or demos) are deployed]:PRODUCT_NAMESPACE: ' \ '--product-ns=[Namespace where the products (e.g. stacks or demos) are deployed]:PRODUCT_NAMESPACE: ' \ -'--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"))' \ '--release=[Target a specific Stackable release]:RELEASE: ' \ '-l+[Log level this application uses]:LOG_LEVEL: ' \ '--log-level=[Log level this application uses]:LOG_LEVEL: ' \ @@ -841,6 +873,8 @@ repo\:"index.yaml-based repositories\: resolution (dev, test, stable) is based o '--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'\'')]' \ @@ -899,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'\'')]' \ @@ -927,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'\'')]' \ @@ -947,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'\'')]' \ @@ -967,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'\'')]' \ @@ -987,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'\'')]' \ @@ -1007,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'\'')]' \ @@ -1071,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'\'')]' \ @@ -1099,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'\'')]' \ @@ -1119,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]' \ @@ -1178,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 c7170de6..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 --chart-source --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 @@ -2113,10 +2161,6 @@ _stackablectl() { COMPREPLY=($(compgen -f "${cur}")) return 0 ;; - --chart-source) - COMPREPLY=($(compgen -W "oci repo" -- "${cur}")) - return 0 - ;; --release) COMPREPLY=($(compgen -f "${cur}")) return 0 @@ -2231,6 +2275,10 @@ _stackablectl() { COMPREPLY=($(compgen -f "${cur}")) return 0 ;; + --chart-source) + COMPREPLY=($(compgen -W "oci repo" -- "${cur}")) + return 0 + ;; *) COMPREPLY=() ;; @@ -2239,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 @@ -2367,6 +2415,10 @@ _stackablectl() { COMPREPLY=($(compgen -f "${cur}")) return 0 ;; + --chart-source) + COMPREPLY=($(compgen -W "oci repo" -- "${cur}")) + return 0 + ;; *) COMPREPLY=() ;; @@ -2375,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 @@ -2511,6 +2563,10 @@ _stackablectl() { COMPREPLY=($(compgen -f "${cur}")) return 0 ;; + --chart-source) + COMPREPLY=($(compgen -W "oci repo" -- "${cur}")) + return 0 + ;; *) COMPREPLY=() ;; @@ -2995,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 @@ -3111,6 +3167,10 @@ _stackablectl() { COMPREPLY=($(compgen -f "${cur}")) return 0 ;; + --chart-source) + COMPREPLY=($(compgen -W "oci repo" -- "${cur}")) + return 0 + ;; *) COMPREPLY=() ;; @@ -3119,7 +3179,7 @@ _stackablectl() { return 0 ;; stackablectl__operator__describe) - opts="-o -l -d -s -r -h -V --output --chart-source --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 @@ -3133,10 +3193,6 @@ _stackablectl() { COMPREPLY=($(compgen -W "plain table json yaml" -- "${cur}")) return 0 ;; - --chart-source) - COMPREPLY=($(compgen -W "oci repo" -- "${cur}")) - return 0 - ;; --log-level) COMPREPLY=($(compgen -f "${cur}")) return 0 @@ -3247,6 +3303,10 @@ _stackablectl() { COMPREPLY=($(compgen -f "${cur}")) return 0 ;; + --chart-source) + COMPREPLY=($(compgen -W "oci repo" -- "${cur}")) + return 0 + ;; *) COMPREPLY=() ;; @@ -3353,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 --chart-source --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 @@ -3387,10 +3447,6 @@ _stackablectl() { COMPREPLY=($(compgen -f "${cur}")) return 0 ;; - --chart-source) - COMPREPLY=($(compgen -W "oci repo" -- "${cur}")) - return 0 - ;; --log-level) COMPREPLY=($(compgen -f "${cur}")) return 0 @@ -3501,6 +3557,10 @@ _stackablectl() { COMPREPLY=($(compgen -f "${cur}")) return 0 ;; + --chart-source) + COMPREPLY=($(compgen -W "oci repo" -- "${cur}")) + return 0 + ;; *) COMPREPLY=() ;; @@ -3509,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 @@ -3641,6 +3701,10 @@ _stackablectl() { COMPREPLY=($(compgen -f "${cur}")) return 0 ;; + --chart-source) + COMPREPLY=($(compgen -W "oci repo" -- "${cur}")) + return 0 + ;; *) COMPREPLY=() ;; @@ -3649,7 +3713,7 @@ _stackablectl() { return 0 ;; stackablectl__operator__list) - opts="-o -l -d -s -r -h -V --output --chart-source --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 @@ -3663,10 +3727,6 @@ _stackablectl() { COMPREPLY=($(compgen -W "plain table json yaml" -- "${cur}")) return 0 ;; - --chart-source) - COMPREPLY=($(compgen -W "oci repo" -- "${cur}")) - return 0 - ;; --log-level) COMPREPLY=($(compgen -f "${cur}")) return 0 @@ -3777,6 +3837,10 @@ _stackablectl() { COMPREPLY=($(compgen -f "${cur}")) return 0 ;; + --chart-source) + COMPREPLY=($(compgen -W "oci repo" -- "${cur}")) + return 0 + ;; *) COMPREPLY=() ;; @@ -3785,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 @@ -3909,6 +3973,10 @@ _stackablectl() { COMPREPLY=($(compgen -f "${cur}")) return 0 ;; + --chart-source) + COMPREPLY=($(compgen -W "oci repo" -- "${cur}")) + return 0 + ;; *) COMPREPLY=() ;; @@ -3917,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 @@ -4033,6 +4101,10 @@ _stackablectl() { COMPREPLY=($(compgen -f "${cur}")) return 0 ;; + --chart-source) + COMPREPLY=($(compgen -W "oci repo" -- "${cur}")) + return 0 + ;; *) COMPREPLY=() ;; @@ -4041,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 @@ -4165,6 +4237,10 @@ _stackablectl() { COMPREPLY=($(compgen -f "${cur}")) return 0 ;; + --chart-source) + COMPREPLY=($(compgen -W "oci repo" -- "${cur}")) + return 0 + ;; *) COMPREPLY=() ;; @@ -4257,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 --chart-source --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 @@ -4307,10 +4383,6 @@ _stackablectl() { COMPREPLY=($(compgen -f "${cur}")) return 0 ;; - --chart-source) - COMPREPLY=($(compgen -W "oci repo" -- "${cur}")) - return 0 - ;; --log-level) COMPREPLY=($(compgen -f "${cur}")) return 0 @@ -4421,6 +4493,10 @@ _stackablectl() { COMPREPLY=($(compgen -f "${cur}")) return 0 ;; + --chart-source) + COMPREPLY=($(compgen -W "oci repo" -- "${cur}")) + return 0 + ;; *) COMPREPLY=() ;; @@ -4429,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 @@ -4553,6 +4629,10 @@ _stackablectl() { COMPREPLY=($(compgen -f "${cur}")) return 0 ;; + --chart-source) + COMPREPLY=($(compgen -W "oci repo" -- "${cur}")) + return 0 + ;; *) COMPREPLY=() ;; @@ -4561,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 @@ -4685,6 +4765,10 @@ _stackablectl() { COMPREPLY=($(compgen -f "${cur}")) return 0 ;; + --chart-source) + COMPREPLY=($(compgen -W "oci repo" -- "${cur}")) + return 0 + ;; *) COMPREPLY=() ;; @@ -4693,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 @@ -4813,6 +4897,10 @@ _stackablectl() { COMPREPLY=($(compgen -f "${cur}")) return 0 ;; + --chart-source) + COMPREPLY=($(compgen -W "oci repo" -- "${cur}")) + return 0 + ;; *) COMPREPLY=() ;; @@ -4821,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 @@ -4949,6 +5037,10 @@ _stackablectl() { COMPREPLY=($(compgen -f "${cur}")) return 0 ;; + --chart-source) + COMPREPLY=($(compgen -W "oci repo" -- "${cur}")) + return 0 + ;; *) COMPREPLY=() ;; @@ -5027,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 --chart-source --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 @@ -5081,10 +5173,6 @@ _stackablectl() { COMPREPLY=($(compgen -f "${cur}")) return 0 ;; - --chart-source) - COMPREPLY=($(compgen -W "oci repo" -- "${cur}")) - return 0 - ;; --release) COMPREPLY=($(compgen -f "${cur}")) return 0 @@ -5199,6 +5287,10 @@ _stackablectl() { COMPREPLY=($(compgen -f "${cur}")) return 0 ;; + --chart-source) + COMPREPLY=($(compgen -W "oci repo" -- "${cur}")) + return 0 + ;; *) COMPREPLY=() ;; @@ -5207,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 @@ -5335,6 +5427,10 @@ _stackablectl() { COMPREPLY=($(compgen -f "${cur}")) return 0 ;; + --chart-source) + COMPREPLY=($(compgen -W "oci repo" -- "${cur}")) + return 0 + ;; *) COMPREPLY=() ;; @@ -5343,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 @@ -5459,6 +5555,10 @@ _stackablectl() { COMPREPLY=($(compgen -f "${cur}")) return 0 ;; + --chart-source) + COMPREPLY=($(compgen -W "oci repo" -- "${cur}")) + return 0 + ;; *) COMPREPLY=() ;; @@ -5467,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 @@ -5595,6 +5695,10 @@ _stackablectl() { COMPREPLY=($(compgen -f "${cur}")) return 0 ;; + --chart-source) + COMPREPLY=($(compgen -W "oci repo" -- "${cur}")) + return 0 + ;; *) COMPREPLY=() ;; @@ -5659,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 @@ -5803,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 d4208ce3..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'')' @@ -71,7 +73,6 @@ set edit:completion:arg-completer[stackablectl] = {|@words| &'stackablectl;operator;list'= { cand -o 'o' cand --output 'output' - cand --chart-source 'chart-source' cand -l 'Log level this application uses' cand --log-level 'Log level this application uses' cand -d 'Provide one or more additional (custom) demo file(s)' @@ -83,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'')' @@ -92,7 +94,6 @@ set edit:completion:arg-completer[stackablectl] = {|@words| &'stackablectl;operator;describe'= { cand -o 'o' cand --output 'output' - cand --chart-source 'chart-source' cand -l 'Log level this application uses' cand --log-level 'Log level this application uses' cand -d 'Provide one or more additional (custom) demo file(s)' @@ -104,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'')' @@ -118,7 +120,6 @@ set edit:completion:arg-completer[stackablectl] = {|@words| cand --cluster-name 'Name of the local cluster' cand --cluster-nodes 'Number of total nodes in the local cluster' cand --cluster-cp-nodes 'Number of control plane nodes in the local cluster' - cand --chart-source 'chart-source' cand -l 'Log level this application uses' cand --log-level 'Log level this application uses' cand -d 'Provide one or more additional (custom) demo file(s)' @@ -130,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'')' @@ -150,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'')' @@ -172,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'')' @@ -210,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'')' @@ -235,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'')' @@ -255,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'')' @@ -273,7 +280,6 @@ set edit:completion:arg-completer[stackablectl] = {|@words| cand --cluster-name 'Name of the local cluster' cand --cluster-nodes 'Number of total nodes in the local cluster' cand --cluster-cp-nodes 'Number of control plane nodes in the local cluster' - cand --chart-source 'chart-source' cand -l 'Log level this application uses' cand --log-level 'Log level this application uses' cand -d 'Provide one or more additional (custom) demo file(s)' @@ -285,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'')' @@ -305,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'')' @@ -341,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'')' @@ -366,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'')' @@ -387,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'')' @@ -406,7 +417,6 @@ set edit:completion:arg-completer[stackablectl] = {|@words| cand -n 'Namespace where the products (e.g. stacks or demos) are deployed' cand --product-namespace 'Namespace where the products (e.g. stacks or demos) are deployed' cand --product-ns 'Namespace where the products (e.g. stacks or demos) are deployed' - cand --chart-source 'chart-source' cand --release 'Target a specific Stackable release' cand -l 'Log level this application uses' cand --log-level 'Log level this application uses' @@ -419,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'')' @@ -452,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'')' @@ -476,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'')' @@ -501,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'')' @@ -531,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'')' @@ -556,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'')' @@ -577,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'')' @@ -596,7 +613,6 @@ set edit:completion:arg-completer[stackablectl] = {|@words| cand -n 'Namespace where the products (e.g. stacks or demos) are deployed' cand --product-namespace 'Namespace where the products (e.g. stacks or demos) are deployed' cand --product-ns 'Namespace where the products (e.g. stacks or demos) are deployed' - cand --chart-source 'Source the charts from either a OCI registry or from index.yaml-based repositories' cand --release 'Target a specific Stackable release' cand -l 'Log level this application uses' cand --log-level 'Log level this application uses' @@ -609,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'')' @@ -642,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'')' @@ -666,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'')' @@ -684,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'')' @@ -702,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'')' @@ -720,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'')' @@ -738,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'')' @@ -776,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'')' @@ -797,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'')' @@ -815,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' @@ -851,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 91a5065c..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' @@ -60,7 +62,6 @@ 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" -f -a "installed" -d 'List installed operators' complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and not __fish_seen_subcommand_from list describe install uninstall installed help" -f -a "help" -d 'Print this message or the help of the given subcommand(s)' complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from list" -s o -l output -r -f -a "{plain\t'Print output formatted as plain text',table\t'Print output formatted as a table',json\t'Print output formatted as JSON',yaml\t'Print output formatted as YAML'}" -complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from list" -l chart-source -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" -s l -l log-level -d 'Log level this application uses' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from list" -s d -l demo-file -d 'Provide one or more additional (custom) demo file(s)' -r -F complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from list" -s s -l stack-file -d 'Provide one or more additional (custom) stack file(s)' -r -F @@ -68,11 +69,11 @@ 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' complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from describe" -s o -l output -r -f -a "{plain\t'Print output formatted as plain text',table\t'Print output formatted as a table',json\t'Print output formatted as JSON',yaml\t'Print output formatted as YAML'}" -complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from describe" -l chart-source -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" -s l -l log-level -d 'Log level this application uses' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from describe" -s d -l demo-file -d 'Provide one or more additional (custom) demo file(s)' -r -F complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from describe" -s s -l stack-file -d 'Provide one or more additional (custom) stack file(s)' -r -F @@ -80,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' @@ -88,7 +90,6 @@ 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 cluster-name -d 'Name of the local cluster' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from install" -l cluster-nodes -d 'Number of total nodes in the local cluster' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from install" -l cluster-cp-nodes -d 'Number of control plane nodes in the local cluster' -r -complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from install" -l chart-source -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" -s l -l log-level -d 'Log level this application uses' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from install" -s d -l demo-file -d 'Provide one or more additional (custom) demo file(s)' -r -F complete -c stackablectl -n "__fish_stackablectl_using_subcommand operator; and __fish_seen_subcommand_from install" -s s -l stack-file -d 'Provide one or more additional (custom) stack file(s)' -r -F @@ -96,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' @@ -107,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' @@ -119,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' @@ -135,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' @@ -151,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' @@ -162,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' @@ -172,7 +179,6 @@ 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 cluster-name -d 'Name of the local cluster' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and __fish_seen_subcommand_from install" -l cluster-nodes -d 'Number of total nodes in the local cluster' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and __fish_seen_subcommand_from install" -l cluster-cp-nodes -d 'Number of control plane nodes in the local cluster' -r -complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and __fish_seen_subcommand_from install" -l chart-source -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" -s l -l log-level -d 'Log level this application uses' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and __fish_seen_subcommand_from install" -s d -l demo-file -d 'Provide one or more additional (custom) demo file(s)' -r -F complete -c stackablectl -n "__fish_stackablectl_using_subcommand release; and __fish_seen_subcommand_from install" -s s -l stack-file -d 'Provide one or more additional (custom) stack file(s)' -r -F @@ -180,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' @@ -191,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' @@ -207,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' @@ -223,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' @@ -235,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' @@ -246,7 +257,6 @@ 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 cluster-cp-nodes -d 'Number of control plane nodes in the local cluster' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand stack; and __fish_seen_subcommand_from install" -l operator-namespace -l operator-ns -d 'Namespace where the operators are deployed' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand stack; and __fish_seen_subcommand_from install" -s n -l product-namespace -l product-ns -d 'Namespace where the products (e.g. stacks or demos) are deployed' -r -complete -c stackablectl -n "__fish_stackablectl_using_subcommand stack; and __fish_seen_subcommand_from install" -l chart-source -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 release -d 'Target a specific Stackable release' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand stack; and __fish_seen_subcommand_from install" -s l -l log-level -d 'Log level this application uses' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand stack; and __fish_seen_subcommand_from install" -s d -l demo-file -d 'Provide one or more additional (custom) demo file(s)' -r -F @@ -255,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\')' @@ -270,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' @@ -284,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' @@ -297,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' @@ -311,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' @@ -327,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' @@ -339,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' @@ -350,7 +367,6 @@ 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 cluster-cp-nodes -d 'Number of control plane nodes in the local cluster' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand demo; and __fish_seen_subcommand_from install" -l operator-namespace -l operator-ns -d 'Namespace where the operators are deployed' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand demo; and __fish_seen_subcommand_from install" -s n -l product-namespace -l product-ns -d 'Namespace where the products (e.g. stacks or demos) are deployed' -r -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 release -d 'Target a specific Stackable release' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand demo; and __fish_seen_subcommand_from install" -s l -l log-level -d 'Log level this application uses' -r complete -c stackablectl -n "__fish_stackablectl_using_subcommand demo; and __fish_seen_subcommand_from install" -s d -l demo-file -d 'Provide one or more additional (custom) demo file(s)' -r -F @@ -359,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\')' @@ -374,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' @@ -390,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' @@ -400,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' @@ -410,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' @@ -420,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' @@ -430,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' @@ -446,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' @@ -459,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' @@ -469,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\')' @@ -486,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 a03f71f6..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 ] @@ -39,7 +49,6 @@ module completions { # List available operators export extern "stackablectl operator list" [ --output(-o): string@"nu-complete stackablectl operator list output_type" - --chart-source: string@"nu-complete stackablectl operator list chart_source" --log-level(-l): string # Log level this application uses --no-cache # Do not cache the remote (default) demo, stack and release files --demo-file(-d): string # Provide one or more additional (custom) demo file(s) @@ -48,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 ] @@ -64,7 +74,6 @@ module completions { export extern "stackablectl operator describe" [ OPERATOR: string # Operator to describe --output(-o): string@"nu-complete stackablectl operator describe output_type" - --chart-source: string@"nu-complete stackablectl operator describe chart_source" --log-level(-l): string # Log level this application uses --no-cache # Do not cache the remote (default) demo, stack and release files --demo-file(-d): string # Provide one or more additional (custom) demo file(s) @@ -73,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 ] @@ -94,7 +104,6 @@ module completions { --cluster-name: string # Name of the local cluster --cluster-nodes: string # Number of total nodes in the local cluster --cluster-cp-nodes: string # Number of control plane nodes in the local cluster - --chart-source: string@"nu-complete stackablectl operator install chart_source" --log-level(-l): string # Log level this application uses --no-cache # Do not cache the remote (default) demo, stack and release files --demo-file(-d): string # Provide one or more additional (custom) demo file(s) @@ -103,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 @@ -120,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 ] @@ -128,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" @@ -141,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 ] @@ -173,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 @@ -183,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 ] @@ -191,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" @@ -202,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 ] @@ -210,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 @@ -222,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 ] @@ -245,7 +280,6 @@ module completions { --cluster-name: string # Name of the local cluster --cluster-nodes: string # Number of total nodes in the local cluster --cluster-cp-nodes: string # Number of control plane nodes in the local cluster - --chart-source: string@"nu-complete stackablectl release install chart_source" --log-level(-l): string # Log level this application uses --no-cache # Do not cache the remote (default) demo, stack and release files --demo-file(-d): string # Provide one or more additional (custom) demo file(s) @@ -254,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 @@ -271,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 ] @@ -299,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 @@ -310,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 ] @@ -318,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" @@ -330,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 ] @@ -338,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 @@ -351,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 ] @@ -377,7 +432,6 @@ module completions { --operator-ns: string # Namespace where the operators are deployed --product-namespace(-n): string # Namespace where the products (e.g. stacks or demos) are deployed --product-ns: string # Namespace where the products (e.g. stacks or demos) are deployed - --chart-source: string@"nu-complete stackablectl stack install chart_source" --release: string # Target a specific Stackable release --log-level(-l): string # Log level this application uses --no-cache # Do not cache the remote (default) demo, stack and release files @@ -387,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 ] @@ -411,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 @@ -421,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' @@ -439,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 ] @@ -447,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" @@ -462,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 ] @@ -482,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 @@ -493,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 ] @@ -501,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" @@ -513,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 ] @@ -521,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 @@ -534,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 ] @@ -560,7 +645,6 @@ module completions { --operator-ns: string # Namespace where the operators are deployed --product-namespace(-n): string # Namespace where the products (e.g. stacks or demos) are deployed --product-ns: string # Namespace where the products (e.g. stacks or demos) are deployed - --chart-source: string@"nu-complete stackablectl demo install chart_source" # Source the charts from either a OCI registry or from index.yaml-based repositories --release: string # Target a specific Stackable release --log-level(-l): string # Log level this application uses --no-cache # Do not cache the remote (default) demo, stack and release files @@ -570,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 ] @@ -594,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 @@ -604,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 @@ -618,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 @@ -632,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 @@ -646,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 @@ -660,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 @@ -674,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 ] @@ -706,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 @@ -716,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 @@ -730,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 @@ -746,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 ] @@ -766,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 @@ -781,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 afe74cf1..c88a54b1 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/stackable-cockpit/src/oci.rs b/rust/stackable-cockpit/src/oci.rs index 4f86f4ea..0c8eea63 100644 --- a/rust/stackable-cockpit/src/oci.rs +++ b/rust/stackable-cockpit/src/oci.rs @@ -39,7 +39,7 @@ pub enum Error { } /// Identifies an operator-specific root folder in the repository e.g. -/// ```text +/// ```json /// { /// name: "sdp-charts/airflow-operator" /// } @@ -50,7 +50,7 @@ struct OciRepository { } /// Identifies an image tag e.g. -/// ```text +/// ```json /// { /// name: "24.11.1-rc1" /// } @@ -61,7 +61,7 @@ pub struct Tag { } /// Identifies an image artifact with its digest and tags e.g. -/// ```text +/// ```json /// { /// digest: "sha256:e80a4b1e004f90dee0321f817871c4a225369b89efdc17c319595263139364b5", /// tags: [ 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 34984d33..6ac718b1 100644 --- a/rust/stackablectl/src/cli/mod.rs +++ b/rust/stackablectl/src/cli/mod.rs @@ -209,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)] diff --git a/rust/stackablectl/src/cmds/demo.rs b/rust/stackablectl/src/cmds/demo.rs index 562ade67..437977a6 100644 --- a/rust/stackablectl/src/cmds/demo.rs +++ b/rust/stackablectl/src/cmds/demo.rs @@ -24,7 +24,7 @@ use stackable_cockpit::{ use crate::{ args::{CommonClusterArgs, CommonClusterArgsError, CommonNamespaceArgs}, - cli::{ChartSourceTypeArg, Cli, OutputType}, + cli::{Cli, OutputType}, }; #[derive(Debug, Args)] @@ -112,14 +112,6 @@ to specify operator versions." #[command(flatten)] namespaces: CommonNamespaceArgs, - - /// Source the charts from either a OCI registry or from index.yaml-based repositories. - #[arg( - long, - value_enum, - default_value_t = Default::default() - )] - chart_source: ChartSourceTypeArg, } #[derive(Debug, Args)] @@ -383,7 +375,7 @@ async fn install_cmd( skip_release: args.skip_release, stack_labels, labels, - chart_source: ChartSourceType::from(args.chart_source.clone()), + 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 2191a6b2..3f10b869 100644 --- a/rust/stackablectl/src/cmds/operator.rs +++ b/rust/stackablectl/src/cmds/operator.rs @@ -30,7 +30,7 @@ use stackable_cockpit::{ use crate::{ args::{CommonClusterArgs, CommonClusterArgsError}, - cli::{ChartSourceTypeArg, Cli, OutputType}, + cli::{Cli, OutputType}, utils::{helm_repo_name_to_repo_url, InvalidRepoNameError}, }; @@ -70,13 +70,6 @@ pub enum OperatorCommands { pub struct OperatorListArgs { #[arg(short, long = "output", value_enum, default_value_t = Default::default())] output_type: OutputType, - - #[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() - )] - chart_source: ChartSourceTypeArg, } #[derive(Debug, Args)] @@ -87,12 +80,6 @@ pub struct OperatorDescribeArgs { #[arg(short, long = "output", value_enum, default_value_t = Default::default())] output_type: OutputType, - - #[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() - )] - chart_source: ChartSourceTypeArg, } #[derive(Debug, Args)] @@ -120,13 +107,6 @@ Use \"stackablectl operator describe \" to get available versions for #[command(flatten)] local_cluster: CommonClusterArgs, - - #[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() - )] - chart_source: ChartSourceTypeArg, } #[derive(Debug, Args)] @@ -213,7 +193,7 @@ async fn list_cmd(args: &OperatorListArgs, cli: &Cli) -> Result Result Result\" to list available parameters for eac #[command(flatten)] namespaces: CommonNamespaceArgs, - - #[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() - )] - chart_source: ChartSourceTypeArg, } #[derive(Debug, Snafu)] @@ -355,7 +348,7 @@ async fn install_cmd( skip_release: args.skip_release, demo_name: None, labels, - chart_source: ChartSourceType::from(args.chart_source.clone()), + chart_source: ChartSourceType::from(cli.chart_type()), }; stack_spec From 23b3ec2e61d60f4306786ad6eefafcd20cbad87b Mon Sep 17 00:00:00 2001 From: Andrew Kenworthy Date: Fri, 24 Jan 2025 14:48:03 +0100 Subject: [PATCH 20/20] updated changelog --- rust/stackablectl/CHANGELOG.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/rust/stackablectl/CHANGELOG.md b/rust/stackablectl/CHANGELOG.md index 5480ab98..464b2f26 100644 --- a/rust/stackablectl/CHANGELOG.md +++ b/rust/stackablectl/CHANGELOG.md @@ -4,19 +4,23 @@ 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 - Add new argument `--release` that allows installing a specific version of a demo or stack ([#340]). -- 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]). ### Removed - Remove argument `--offline` that was not implemented yet ([#340]). [#340]: https://github.com/stackabletech/stackable-cockpit/pull/340 -[#344]: https://github.com/stackabletech/stackable-cockpit/pull/344 ## [24.11.1] - 2024-11-20