diff --git a/.github/workflows/test-mock.yml b/.github/workflows/test-mock.yml index 4c211d7..d53f7a7 100644 --- a/.github/workflows/test-mock.yml +++ b/.github/workflows/test-mock.yml @@ -21,6 +21,61 @@ on: branches: [ main ] jobs: + ksctl-cli-mongodb-driver: + runs-on: ubuntu-latest + if: | + ( + github.event.label.name == 'pr/lgtm' || + contains(github.event.pull_request.labels.*.name, 'pr/lgtm') + ) || ( + github.event_name == 'push' && + github.ref == 'refs/heads/main' + ) + env: + MONGODB_URI: "mongodb://root:1234@127.0.0.1:27017" + steps: + - name: Checkout + uses: actions/checkout@v4.1.4 + + - name: Set up Go + uses: actions/setup-go@v4 + with: + go-version: 1.22.3 + + - name: build ksctl linux + run: | + set -x + make install_linux + echo "KSCTL_BIN=ksctl" >> "${GITHUB_ENV}" + + - name: local version + run: | + ${{ env.KSCTL_BIN }} version + + - name: local create + run: | + docker run -d \ + --name mongodb \ + -p 27017:27017 \ + -e MONGO_INITDB_ROOT_USERNAME=root \ + -e MONGO_INITDB_ROOT_PASSWORD=1234 \ + mongo + ${{env.KSCTL_BIN}} create local -n demolocal-extmongo -s external-store-mongodb --verbose -1 --yes + ${{env.KSCTL_BIN}} info -p local -n demolocal-extmongo -s external-store-mongodb --verbose -1 + + - name: local get + run: | + ${{env.KSCTL_BIN}} get -s external-store-mongodb + + - name: local switch + run: | + ${{env.KSCTL_BIN}} switch -p local -v -1 -n demolocal-extmongo -s external-store-mongodb + + - name: local delete + run: | + ${{env.KSCTL_BIN}} delete local -n demolocal-extmongo -v -1 -s external-store-mongodb --yes + + ksctl-cli: strategy: matrix: @@ -51,21 +106,21 @@ jobs: run: | Set-PSDebug -Trace 2 cd .\scripts - .\builder.ps1 + .\builder-mock.ps1 echo "KSCTL_BIN=$env:LOCALAPPDATA\ksctl\ksctl.exe" >> $env:GITHUB_ENV - name: build ksctl linux if: ${{ matrix.os == 'ubuntu-latest' }} run: | set -x - make install_linux + make install_linux_mock echo "KSCTL_BIN=ksctl" >> "${GITHUB_ENV}" - name: build ksctl macos if: ${{ matrix.os == 'macos-latest' }} run: | set -x - make install_macos_intel + make install_macos_intel_mock echo "KSCTL_BIN=ksctl" >> "${GITHUB_ENV}" - name: version @@ -76,43 +131,48 @@ jobs: run: | ${{ env.KSCTL_BIN }} create civo -n demo -r LON1 --nodeSizeMP "g4s.kube.small" --version 1.27.1 --verbose -1 -s store-local --yes + ${{ env.KSCTL_BIN }} info -p civo -n demo -r LON1 --verbose -1 -s store-local + ${{env.KSCTL_BIN}} create ha-civo -n ha-demo-k3s --nodeSizeDS "fake.small" --version 1.27.1 --nodeSizeLB "fake.small" --nodeSizeCP "fake.small" --nodeSizeWP "fake.small" -s store-local -r LON1 --verbose -1 --yes --bootstrap k3s + ${{env.KSCTL_BIN}} info -p ha-civo -n ha-demo-k3s -s store-local -r LON1 --verbose -1 + ${{env.KSCTL_BIN}} create ha-civo -n ha-demo-kubeadm --nodeSizeDS "fake.small" --version 1.28 --nodeSizeLB "fake.small" --nodeSizeCP "fake.small" --nodeSizeWP "fake.small" -s store-local -r LON1 --verbose -1 --yes --bootstrap kubeadm + ${{env.KSCTL_BIN}} info -p ha-civo -n ha-demo-kubeadm -s store-local -r LON1 --verbose -1 + - name: azure create run: | ${{env.KSCTL_BIN}} create azure -n demo -r fake --nodeSizeMP "fake" -s store-local --version 1.27.1 --verbose -1 --yes + ${{env.KSCTL_BIN}} info -p azure -n demo -r fake -s store-local --verbose -1 + ${{env.KSCTL_BIN}} create ha-azure -n ha-demo-k3s --nodeSizeDS "fake" --version 1.27.1 --nodeSizeLB "fake" --nodeSizeCP "fake" --nodeSizeWP "fake" -r fake --verbose -1 -s store-local --yes --bootstrap k3s + ${{env.KSCTL_BIN}} info -p ha-azure -n ha-demo-k3s -r fake -s store-local --verbose -1 + ${{env.KSCTL_BIN}} create ha-azure -n ha-demo-kubeadm --nodeSizeDS "fake" --version 1.28 --nodeSizeLB "fake" --nodeSizeCP "fake" --nodeSizeWP "fake" -r fake --verbose -1 -s store-local --yes --bootstrap kubeadm + ${{env.KSCTL_BIN}} info -p ha-azure -n ha-demo-kubeadm -r fake -s store-local --verbose -1 + - name: aws create run: | - # ${{env.KSCTL_BIN}} create aws -n demo -r fake --nodeSizeMP "fake" --version 1.27.1 -s store-local --verbose -1 --yes + # ${{env.KSCTL_BIN}} create aws -n demo -r fake-region --nodeSizeMP "fake" --version 1.27.1 -s store-local --verbose -1 --yes + + #${{env.KSCTL_BIN}} info -p aws -n demo -r fake-region -s store-local --verbose -1 - ${{env.KSCTL_BIN}} create ha-aws -n ha-demo-k3s --nodeSizeDS "fake" --version 1.27.1 --nodeSizeLB "fake" --nodeSizeCP "fake" --nodeSizeWP "fake" -r fake --verbose -1 -s store-local --yes --bootstrap k3s + ${{env.KSCTL_BIN}} create ha-aws -n ha-demo-k3s --nodeSizeDS "fake" --version 1.27.1 --nodeSizeLB "fake" --nodeSizeCP "fake" --nodeSizeWP "fake" -r fake-region --verbose -1 -s store-local --yes --bootstrap k3s - ${{env.KSCTL_BIN}} create ha-aws -n ha-demo-kubeadm --nodeSizeDS "fake" --version 1.28 --nodeSizeLB "fake" --nodeSizeCP "fake" --nodeSizeWP "fake" -r fake --verbose -1 -s store-local --yes --bootstrap kubeadm + ${{env.KSCTL_BIN}} info -p ha-aws -n ha-demo-k3s -r fake-region -s store-local --verbose -1 - - name: local create - run: | - ${{env.KSCTL_BIN}} create local -n demolocal --version 1.27.1 --verbose -1 -s store-local --yes + ${{env.KSCTL_BIN}} create ha-aws -n ha-demo-kubeadm --nodeSizeDS "fake" --version 1.28 --nodeSizeLB "fake" --nodeSizeCP "fake" --nodeSizeWP "fake" -r fake-region --verbose -1 -s store-local --yes --bootstrap kubeadm + ${{env.KSCTL_BIN}} info -p ha-aws -n ha-demo-kubeadm -r fake-region -s store-local --verbose -1 - - name: local create mongodb - if: ${{ matrix.os == 'ubuntu-latest' }} + - name: local create run: | - unset KSCTL_FAKE_FLAG_ENABLED - docker run -d \ - --name mongodb \ - -p 27017:27017 \ - -e MONGO_INITDB_ROOT_USERNAME=root \ - -e MONGO_INITDB_ROOT_PASSWORD=1234 \ - mongo - export MONGODB_URI="mongodb://root:1234@127.0.0.1:27017" - ${{env.KSCTL_BIN}} create local -n demolocal-extmongo -s external-store-mongodb --verbose -1 --yes + ${{env.KSCTL_BIN}} create local -n demolocal --version 1.27.1 --verbose -1 -s store-local --yes + ${{env.KSCTL_BIN}} info -p local -n demolocal -s store-local --verbose -1 - name: civo get run: | @@ -126,25 +186,10 @@ jobs: run: | ${{env.KSCTL_BIN}} get -s store-local -p aws - - name: local get mongo - if: ${{ matrix.os == 'ubuntu-latest' }} - run: | - unset KSCTL_FAKE_FLAG_ENABLED - export MONGODB_URI="mongodb://root:1234@127.0.0.1:27017" - ${{env.KSCTL_BIN}} get -p local -s external-store-mongodb - - name: get all run: | ${{env.KSCTL_BIN}} get -s store-local - - - name: all mongodb - if: ${{ matrix.os == 'ubuntu-latest' }} - run: | - unset KSCTL_FAKE_FLAG_ENABLED - export MONGODB_URI="mongodb://root:1234@127.0.0.1:27017" - ${{env.KSCTL_BIN}} get -s external-store-mongodb - - name: civo switch run: | ${{env.KSCTL_BIN}} switch -p civo -n demo -s store-local -r LON1 @@ -153,9 +198,9 @@ jobs: - name: aws switch run: | - # ${{env.KSCTL_BIN}} switch -p aws -n demo -s store-local -r fake - ${{env.KSCTL_BIN}} switch -p ha-aws -n ha-demo-k3s -s store-local -r fake - ${{env.KSCTL_BIN}} switch -p ha-aws -n ha-demo-kubeadm -s store-local -r fake + # ${{env.KSCTL_BIN}} switch -p aws -n demo -s store-local -r fake-region + ${{env.KSCTL_BIN}} switch -p ha-aws -n ha-demo-k3s -s store-local -r fake-region + ${{env.KSCTL_BIN}} switch -p ha-aws -n ha-demo-kubeadm -s store-local -r fake-region - name: azure switch run: | @@ -167,13 +212,6 @@ jobs: run: | ${{env.KSCTL_BIN}} switch -p local -n demolocal -s store-local - - name: local switch mongodb - if: ${{ matrix.os == 'ubuntu-latest' }} - run: | - unset KSCTL_FAKE_FLAG_ENABLED - export MONGODB_URI="mongodb://root:1234@127.0.0.1:27017" - ${{env.KSCTL_BIN}} switch -p local -n demolocal-extmongo -s external-store-mongodb - - name: civo scale up and down run: | ${{env.KSCTL_BIN}} delete ha-civo del-nodes -n ha-demo-k3s --noWP 0 -r LON1 -s store-local --yes -v -1 --bootstrap k3s @@ -196,13 +234,13 @@ jobs: - name: aws scale up and down run: | - ${{env.KSCTL_BIN}} delete ha-aws del-nodes -n ha-demo-k3s --noWP 0 -r fake -s store-local --yes -v -1 --bootstrap k3s + ${{env.KSCTL_BIN}} delete ha-aws del-nodes -n ha-demo-k3s --noWP 0 -r fake-region -s store-local --yes -v -1 --bootstrap k3s - ${{env.KSCTL_BIN}} create ha-aws add-nodes -n ha-demo-k3s --noWP 1 --version 1.27.1 --nodeSizeWP "fake" -s store-local -r fake -v -1 --yes --bootstrap k3s + ${{env.KSCTL_BIN}} create ha-aws add-nodes -n ha-demo-k3s --noWP 1 --version 1.27.1 --nodeSizeWP "fake" -s store-local -r fake-region -v -1 --yes --bootstrap k3s - ${{env.KSCTL_BIN}} delete ha-aws del-nodes -n ha-demo-kubeadm --noWP 0 -r fake -s store-local --yes -v -1 --bootstrap kubeadm + ${{env.KSCTL_BIN}} delete ha-aws del-nodes -n ha-demo-kubeadm --noWP 0 -r fake-region -s store-local --yes -v -1 --bootstrap kubeadm - ${{env.KSCTL_BIN}} create ha-aws add-nodes -n ha-demo-kubeadm --noWP 1 --version 1.28 --nodeSizeWP "fake" -s store-local -r fake -v -1 --yes --bootstrap kubeadm + ${{env.KSCTL_BIN}} create ha-aws add-nodes -n ha-demo-kubeadm --noWP 1 --version 1.28 --nodeSizeWP "fake" -s store-local -r fake-region -v -1 --yes --bootstrap kubeadm - name: civo delete run: | @@ -218,18 +256,12 @@ jobs: - name: aws delete run: | - # ${{env.KSCTL_BIN}} delete aws -n demo -r fake -s store-local -v -1 --yes - ${{env.KSCTL_BIN}} delete ha-aws -n ha-demo-k3s -r fake -s store-local -v -1 --yes - ${{env.KSCTL_BIN}} delete ha-aws -n ha-demo-kubeadm -r fake -s store-local -v -1 --yes + # ${{env.KSCTL_BIN}} delete aws -n demo -r fake-region -s store-local -v -1 --yes + ${{env.KSCTL_BIN}} delete ha-aws -n ha-demo-k3s -r fake-region -s store-local -v -1 --yes + ${{env.KSCTL_BIN}} delete ha-aws -n ha-demo-kubeadm -r fake-region -s store-local -v -1 --yes - name: local delete run: | ${{env.KSCTL_BIN}} delete local -n demolocal -s store-local -v -1 --yes - - name: local delete mongodb - if: ${{ matrix.os == 'ubuntu-latest' }} - run: | - unset KSCTL_FAKE_FLAG_ENABLED - export MONGODB_URI="mongodb://root:1234@127.0.0.1:27017" - ${{env.KSCTL_BIN}} delete local -n demolocal-extmongo -v -1 -s external-store-mongodb --yes diff --git a/Makefile b/Makefile index b895590..dd57b01 100644 --- a/Makefile +++ b/Makefile @@ -20,6 +20,25 @@ gen-docs: ## Generates docs ##@ Install (Dev) + +.PHONY: install_linux_mock +install_linux_mock: ## Install ksctl + @echo "Started to Install ksctl" + cd scripts && \ + env GOOS=${GOOS_LINUX} GOARCH=${GOARCH_LINUX} ./builder-mock.sh + +.PHONY: install_macos_mock +install_macos_mock: ## Install ksctl on macos m1,m2,.. + @echo "Started to Install ksctl" + cd scripts && \ + env GOOS=${GOOS_MACOS} GOARCH=${GOARCH_MACOS} ./builder-mock.sh + +.PHONY: install_macos_intel_mock +install_macos_intel_mock: ## Install ksctl on macos intel + @echo "Started to Install ksctl" + cd scripts && \ + env GOOS=${GOOS_MACOS} GOARCH=${GOARCH_MACOS_INTEL} ./builder-mock.sh + .PHONY: install_linux install_linux: ## Install ksctl @echo "Started to Install ksctl" @@ -85,4 +104,4 @@ echo "Downloading $${package}" ;\ GOBIN=$(LOCALBIN) go install $${package} ;\ mv "$$(echo "$(1)" | sed "s/-$(3)$$//")" $(1) ;\ } -endef \ No newline at end of file +endef diff --git a/cli/cmd/addNodesHAAws.go b/cli/cmd/addNodesHAAws.go index 3e58a9d..98681f1 100644 --- a/cli/cmd/addNodesHAAws.go +++ b/cli/cmd/addNodesHAAws.go @@ -39,7 +39,7 @@ ksctl create ha-aws add-nodes -n demo -r ap-south-1 -s store-local --noWP 3 --no cli.Client.Metadata.StateLocation = consts.KsctlStore(storage) if err := createApproval(ctx, log, cmd.Flags().Lookup("yes").Changed); err != nil { - log.Error(ctx, "createApproval", "Reason", err) + log.Error("createApproval", "Reason", err) os.Exit(1) } @@ -49,13 +49,13 @@ ksctl create ha-aws add-nodes -n demo -r ap-south-1 -s store-local --noWP 3 --no &cli.Client, ) if err != nil { - log.Error(ctx, "Failed to init manager", "Reason", err) + log.Error("Failed to init manager", "Reason", err) os.Exit(1) } err = m.AddWorkerPlaneNodes() if err != nil { - log.Error(ctx, "Failed to scale up", "Reason", err) + log.Error("Failed to scale up", "Reason", err) os.Exit(1) } log.Success(ctx, "Scale up successful") diff --git a/cli/cmd/addNodesHAAzure.go b/cli/cmd/addNodesHAAzure.go index a29b51e..ed04fff 100644 --- a/cli/cmd/addNodesHAAzure.go +++ b/cli/cmd/addNodesHAAzure.go @@ -39,7 +39,7 @@ ksctl create ha-azure add-nodes -n demo -r eastus -s store-local --noWP 3 --node cli.Client.Metadata.StateLocation = consts.KsctlStore(storage) if err := createApproval(ctx, log, cmd.Flags().Lookup("yes").Changed); err != nil { - log.Error(ctx, "createApproval", "Reason", err) + log.Error("createApproval", "Reason", err) os.Exit(1) } @@ -49,13 +49,13 @@ ksctl create ha-azure add-nodes -n demo -r eastus -s store-local --noWP 3 --node &cli.Client, ) if err != nil { - log.Error(ctx, "Failed to init manager", "Reason", err) + log.Error("Failed to init manager", "Reason", err) os.Exit(1) } err = m.AddWorkerPlaneNodes() if err != nil { - log.Error(ctx, "Failed to scale up", "Reason", err) + log.Error("Failed to scale up", "Reason", err) os.Exit(1) } log.Success(ctx, "Scale up successful") diff --git a/cli/cmd/addNodesHACivo.go b/cli/cmd/addNodesHACivo.go index c7ee589..8d8ac28 100644 --- a/cli/cmd/addNodesHACivo.go +++ b/cli/cmd/addNodesHACivo.go @@ -39,7 +39,7 @@ ksctl create ha-civo add-nodes -n demo -r LON1 -s store-local --noWP 3 --nodeSiz cli.Client.Metadata.StateLocation = consts.KsctlStore(storage) if err := createApproval(ctx, log, cmd.Flags().Lookup("yes").Changed); err != nil { - log.Error(ctx, "createApproval", "Reason", err) + log.Error("createApproval", "Reason", err) os.Exit(1) } @@ -49,13 +49,13 @@ ksctl create ha-civo add-nodes -n demo -r LON1 -s store-local --noWP 3 --nodeSiz &cli.Client, ) if err != nil { - log.Error(ctx, "Failed to init manager", "Reason", err) + log.Error("Failed to init manager", "Reason", err) os.Exit(1) } err = m.AddWorkerPlaneNodes() if err != nil { - log.Error(ctx, "Failed to scale up", "Reason", err) + log.Error("Failed to scale up", "Reason", err) os.Exit(1) } log.Success(ctx, "Scale up successful") diff --git a/cli/cmd/credentials.go b/cli/cmd/credentials.go index 638dacb..62909cd 100644 --- a/cli/cmd/credentials.go +++ b/cli/cmd/credentials.go @@ -40,7 +40,7 @@ var credCmd = &cobra.Command{ if provider, ok := cloud[choice]; ok { cli.Client.Metadata.Provider = consts.KsctlCloud(provider) } else { - log.Error(ctx, "invalid provider") + log.Error("invalid provider") } m, err := controllers.NewManagerClusterKsctl( ctx, @@ -48,12 +48,12 @@ var credCmd = &cobra.Command{ &cli.Client, ) if err != nil { - log.Error(ctx, "Failed to initialize", "Reason", err) + log.Error("Failed to initialize", "Reason", err) os.Exit(1) } if err := m.Credentials(); err != nil { - log.Error(ctx, "Failed to added the credential", "Reason", err) + log.Error("Failed to added the credential", "Reason", err) os.Exit(1) } log.Success(ctx, "Credentials added successfully") diff --git a/cli/cmd/deleteNodesHAAws.go b/cli/cmd/deleteNodesHAAws.go index 74878e0..6df83a0 100644 --- a/cli/cmd/deleteNodesHAAws.go +++ b/cli/cmd/deleteNodesHAAws.go @@ -36,7 +36,7 @@ ksctl delete ha-aws del-nodes -n demo -r us-east-1 -s store-local --noWP 1 --boo cli.Client.Metadata.StateLocation = consts.KsctlStore(storage) if err := deleteApproval(ctx, log, cmd.Flags().Lookup("yes").Changed); err != nil { - log.Error(ctx, "deleteApproval", "Reason", err) + log.Error("deleteApproval", "Reason", err) os.Exit(1) } @@ -46,13 +46,13 @@ ksctl delete ha-aws del-nodes -n demo -r us-east-1 -s store-local --noWP 1 --boo &cli.Client, ) if err != nil { - log.Error(ctx, "Failed to init manager", "Reason", err) + log.Error("Failed to init manager", "Reason", err) os.Exit(1) } err = m.DelWorkerPlaneNodes() if err != nil { - log.Error(ctx, "Failed to scale down", "Reason", err) + log.Error("Failed to scale down", "Reason", err) os.Exit(1) } log.Success(ctx, "Scale down successful") diff --git a/cli/cmd/deleteNodesHAAzure.go b/cli/cmd/deleteNodesHAAzure.go index 477b16d..d8d11a4 100644 --- a/cli/cmd/deleteNodesHAAzure.go +++ b/cli/cmd/deleteNodesHAAzure.go @@ -36,7 +36,7 @@ ksctl delete ha-azure del-nodes -n demo -r eastus -s store-local --noWP 1 --boot cli.Client.Metadata.StateLocation = consts.KsctlStore(storage) if err := deleteApproval(ctx, log, cmd.Flags().Lookup("yes").Changed); err != nil { - log.Error(ctx, "deleteApproval", "Reason", err) + log.Error("deleteApproval", "Reason", err) os.Exit(1) } @@ -46,13 +46,13 @@ ksctl delete ha-azure del-nodes -n demo -r eastus -s store-local --noWP 1 --boot &cli.Client, ) if err != nil { - log.Error(ctx, "Failed to init manager", "Reason", err) + log.Error("Failed to init manager", "Reason", err) os.Exit(1) } err = m.DelWorkerPlaneNodes() if err != nil { - log.Error(ctx, "Failed to scale down", "Reason", err) + log.Error("Failed to scale down", "Reason", err) os.Exit(1) } log.Success(ctx, "Scale down successful") diff --git a/cli/cmd/deleteNodesHACivo.go b/cli/cmd/deleteNodesHACivo.go index 18219f3..55b245a 100644 --- a/cli/cmd/deleteNodesHACivo.go +++ b/cli/cmd/deleteNodesHACivo.go @@ -34,7 +34,7 @@ ksctl delete ha-civo del-nodes -n demo -r LON1 -s store-local --noWP 1 --bootstr cli.Client.Metadata.StateLocation = consts.KsctlStore(storage) if err := deleteApproval(ctx, log, cmd.Flags().Lookup("yes").Changed); err != nil { - log.Error(ctx, "deleteApproval", "Reason", err) + log.Error("deleteApproval", "Reason", err) os.Exit(1) } @@ -44,13 +44,13 @@ ksctl delete ha-civo del-nodes -n demo -r LON1 -s store-local --noWP 1 --bootstr &cli.Client, ) if err != nil { - log.Error(ctx, "Failed to init manager", "Reason", err) + log.Error("Failed to init manager", "Reason", err) os.Exit(1) } err = m.DelWorkerPlaneNodes() if err != nil { - log.Error(ctx, "Failed to scale down", "Reason", err) + log.Error("Failed to scale down", "Reason", err) os.Exit(1) } log.Success(ctx, "Scale down successful") diff --git a/cli/cmd/featureFlags.go b/cli/cmd/featureFlags.go index 45fe716..9422700 100644 --- a/cli/cmd/featureFlags.go +++ b/cli/cmd/featureFlags.go @@ -20,7 +20,7 @@ func featureFlag(f *cobra.Command) { func SetRequiredFeatureFlags(ctx context.Context, log types.LoggerFactory, cmd *cobra.Command) { rawFeatures, err := cmd.Flags().GetString("feature-flags") if err != nil { - log.Error(ctx, "Error in setting feature flags", "Reason", err) + log.Error("Error in setting feature flags", "Reason", err) return } features := strings.Split(rawFeatures, ",") diff --git a/cli/cmd/flags.go b/cli/cmd/flags.go index 8fcebd2..528ecda 100644 --- a/cli/cmd/flags.go +++ b/cli/cmd/flags.go @@ -30,6 +30,7 @@ func verboseFlags() { getClusterCmd.Flags().IntP("verbose", "v", 0, msgVerbose) switchCluster.Flags().IntP("verbose", "v", 0, msgVerbose) + infoClusterCmd.Flags().IntP("verbose", "v", 0, msgVerbose) createClusterAzure.Flags().BoolP("yes", "y", true, msgApproval) createClusterCivo.Flags().BoolP("yes", "y", true, msgApproval) diff --git a/cli/cmd/getCluster.go b/cli/cmd/getCluster.go index 360be73..ca61c97 100644 --- a/cli/cmd/getCluster.go +++ b/cli/cmd/getCluster.go @@ -43,13 +43,13 @@ ksctl get-clusters `, &cli.Client, ) if err != nil { - log.Error(ctx, "failed to init", "Reason", err) + log.Error("failed to init", "Reason", err) os.Exit(1) } err = m.GetCluster() if err != nil { - log.Error(ctx, "Get cluster failed", "Reason", err) + log.Error("Get cluster failed", "Reason", err) os.Exit(1) } log.Success(ctx, "Get cluster successfull") diff --git a/cli/cmd/infoCluster.go b/cli/cmd/infoCluster.go new file mode 100644 index 0000000..60991a0 --- /dev/null +++ b/cli/cmd/infoCluster.go @@ -0,0 +1,91 @@ +package cmd + +import ( + "os" + + "github.com/ksctl/cli/logger" + "github.com/ksctl/ksctl/pkg/controllers" + "github.com/ksctl/ksctl/pkg/types" + + "github.com/ksctl/ksctl/pkg/helpers/consts" + + "github.com/spf13/cobra" +) + +var infoClusterCmd = &cobra.Command{ + Use: "info-cluster", + Aliases: []string{"info"}, + Example: ` +ksctl info --provider azure --name demo --region eastus --storage store-local +ksctl info -p ha-azure -n ha-demo-kubeadm -r eastus -s store-local --verbose -1 +`, + Short: "Use to info cluster", + Long: `It is used to detailed data for a given cluster`, + Run: func(cmd *cobra.Command, args []string) { + verbosity, _ := cmd.Flags().GetInt("verbose") + var log types.LoggerFactory = logger.NewLogger(verbosity, os.Stdout) + + if len(storage) == 0 { + storage = string(consts.StoreLocal) + } + + SetRequiredFeatureFlags(ctx, log, cmd) + cli.Client.Metadata.ClusterName = clusterName + cli.Client.Metadata.Region = region + cli.Client.Metadata.StateLocation = consts.KsctlStore(storage) + + switch provider { + case string(consts.CloudLocal): + cli.Client.Metadata.Provider = consts.CloudLocal + + case string(consts.ClusterTypeHa) + "-" + string(consts.CloudCivo): + cli.Client.Metadata.Provider = consts.CloudCivo + cli.Client.Metadata.IsHA = true + + case string(consts.CloudCivo): + cli.Client.Metadata.Provider = consts.CloudCivo + + case string(consts.ClusterTypeHa) + "-" + string(consts.CloudAzure): + cli.Client.Metadata.Provider = consts.CloudAzure + cli.Client.Metadata.IsHA = true + + case string(consts.ClusterTypeHa) + "-" + string(consts.CloudAws): + cli.Client.Metadata.Provider = consts.CloudAws + cli.Client.Metadata.IsHA = true + + case string(consts.CloudAzure): + cli.Client.Metadata.Provider = consts.CloudAzure + default: + log.Error("invalid provider specified", "provider", provider) + os.Exit(1) + } + + m, err := controllers.NewManagerClusterKsctl( + ctx, + log, + &cli.Client, + ) + if err != nil { + log.Error("failed to init", "Reason", err) + os.Exit(1) + } + + _, err = m.InfoCluster() + if err != nil { + log.Error("info cluster failed", "Reason", err) + os.Exit(1) + } + log.Success(ctx, "info cluster successfull") + }, +} + +func init() { + RootCmd.AddCommand(infoClusterCmd) + storageFlag(infoClusterCmd) + clusterNameFlag(infoClusterCmd) + regionFlag(infoClusterCmd) + + infoClusterCmd.Flags().StringVarP(&provider, "provider", "p", "", "Provider") + infoClusterCmd.MarkFlagRequired("name") + infoClusterCmd.MarkFlagRequired("provider") +} diff --git a/cli/cmd/root.go b/cli/cmd/root.go index 6ee3fcb..b0a81b4 100644 --- a/cli/cmd/root.go +++ b/cli/cmd/root.go @@ -72,7 +72,7 @@ func Execute() { "cli", ) ctx = context.WithValue( - ctx, "USERID", "cli", + ctx, consts.KsctlContextUserID, "cli", ) if _, ok := os.LookupEnv("KSCTL_FAKE_FLAG_ENABLED"); ok { ctx = context.WithValue( @@ -97,7 +97,7 @@ func Execute() { defer logCli.Print(ctx, "Time Took", "time", time.Since(timer).String()) if err != nil { - logCli.Error(ctx, "Initialization of cli failed", "Reason", err) + logCli.Error("Initialization of cli failed", "Reason", err) os.Exit(1) } } diff --git a/cli/cmd/switchCluster.go b/cli/cmd/switchCluster.go index 6c049d8..0797f39 100644 --- a/cli/cmd/switchCluster.go +++ b/cli/cmd/switchCluster.go @@ -71,12 +71,12 @@ ksctl switch-context -s external-store-mongodb -p civo -n -r