Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs/stackit.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ stackit [flags]
* [stackit config](./stackit_config.md) - Provides functionality for CLI configuration options
* [stackit curl](./stackit_curl.md) - Executes an authenticated HTTP request to an endpoint
* [stackit dns](./stackit_dns.md) - Provides functionality for DNS
* [stackit load-balancer](./stackit_load-balancer.md) - Provides functionality for Load Balancer
* [stackit logme](./stackit_logme.md) - Provides functionality for LogMe
* [stackit mariadb](./stackit_mariadb.md) - Provides functionality for MariaDB
* [stackit mongodbflex](./stackit_mongodbflex.md) - Provides functionality for MongoDB Flex
Expand Down
1 change: 1 addition & 0 deletions docs/stackit_config_set.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ stackit config set [flags]
--authorization-custom-endpoint string Authorization API base URL, used in calls to this API
--dns-custom-endpoint string DNS API base URL, used in calls to this API
-h, --help Help for "stackit config set"
--load-balancer-custom-endpoint string Load Balancer API base URL, used in calls to this API
--logme-custom-endpoint string LogMe API base URL, used in calls to this API
--mariadb-custom-endpoint string MariaDB API base URL, used in calls to this API
--mongodbflex-custom-endpoint string MongoDB Flex API base URL, used in calls to this API
Expand Down
1 change: 1 addition & 0 deletions docs/stackit_config_unset.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ stackit config unset [flags]
--authorization-custom-endpoint Authorization API base URL. If unset, uses the default base URL
--dns-custom-endpoint DNS API base URL. If unset, uses the default base URL
-h, --help Help for "stackit config unset"
--load-balancer-custom-endpoint Load Balancer API base URL. If unset, uses the default base URL
--logme-custom-endpoint LogMe API base URL. If unset, uses the default base URL
--mariadb-custom-endpoint MariaDB API base URL. If unset, uses the default base URL
--mongodbflex-custom-endpoint MongoDB Flex API base URL. If unset, uses the default base URL
Expand Down
32 changes: 32 additions & 0 deletions docs/stackit_load-balancer.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
## stackit load-balancer

Provides functionality for Load Balancer

### Synopsis

Provides functionality for Load Balancer.

```
stackit load-balancer [flags]
```

### Options

```
-h, --help Help for "stackit load-balancer"
```

### Options inherited from parent commands

```
-y, --assume-yes If set, skips all confirmation prompts
--async If set, runs the command asynchronously
-o, --output-format string Output format, one of ["json" "pretty" "none"]
-p, --project-id string Project ID
--verbosity string Verbosity of the CLI, one of ["debug" "info" "warning" "error"] (default "info")
```

### SEE ALSO

* [stackit](./stackit.md) - Manage STACKIT resources using the command line

1 change: 1 addition & 0 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ require (
github.com/spf13/afero v1.11.0 // indirect
github.com/spf13/cast v1.6.0 // indirect
github.com/stackitcloud/stackit-sdk-go/services/argus v0.10.0
github.com/stackitcloud/stackit-sdk-go/services/loadbalancer v0.12.0 // indirect
github.com/stackitcloud/stackit-sdk-go/services/logme v0.13.0
github.com/stackitcloud/stackit-sdk-go/services/mariadb v0.13.0
github.com/stackitcloud/stackit-sdk-go/services/objectstorage v0.9.0
Expand Down
2 changes: 2 additions & 0 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,8 @@ github.com/stackitcloud/stackit-sdk-go/services/authorization v0.2.0 h1:vdv8DiG9
github.com/stackitcloud/stackit-sdk-go/services/authorization v0.2.0/go.mod h1:1sLuXa7Qvp9f+wKWdRjyNe8B2F8JX7nSTd8fBKadri4=
github.com/stackitcloud/stackit-sdk-go/services/dns v0.9.0 h1:sxvlcey7EcBc52rU6vYJEFguWkz9dNbSv2xJ3+c+97M=
github.com/stackitcloud/stackit-sdk-go/services/dns v0.9.0/go.mod h1:MdZcRbs19s2NLeJmSLSoqTzm9IPIQhE1ZEMpo9gePq0=
github.com/stackitcloud/stackit-sdk-go/services/loadbalancer v0.12.0 h1:LAteZO46XmqTsmPw0QV8n8WiGM205pxrcqHqWznNmyY=
github.com/stackitcloud/stackit-sdk-go/services/loadbalancer v0.12.0/go.mod h1:wsO3+vXe1XiKLeCIctWAptaHQZ07Un7kmLTQ+drbj7w=
github.com/stackitcloud/stackit-sdk-go/services/logme v0.13.0 h1:/wqs+pfHSjFWTakJVQGD/KwArxmFN8qdYrJDUgA1Gxw=
github.com/stackitcloud/stackit-sdk-go/services/logme v0.13.0/go.mod h1:bj9cn1treNSxKTRCEmESwqfENN8vCYn60HUnEA0P83c=
github.com/stackitcloud/stackit-sdk-go/services/mariadb v0.13.0 h1:qioXHNeQ2xdwT5iGOk0c3hQIpct7zlAYzLRqXvsJ7CA=
Expand Down
4 changes: 4 additions & 0 deletions internal/cmd/config/set/set.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ const (
argusCustomEndpointFlag = "argus-custom-endpoint"
authorizationCustomEndpointFlag = "authorization-custom-endpoint"
dnsCustomEndpointFlag = "dns-custom-endpoint"
loadBalancerCustomEndpointFlag = "load-balancer-custom-endpoint"
logMeCustomEndpointFlag = "logme-custom-endpoint"
mariaDBCustomEndpointFlag = "mariadb-custom-endpoint"
mongoDBFlexCustomEndpointFlag = "mongodbflex-custom-endpoint"
Expand Down Expand Up @@ -97,6 +98,7 @@ func configureFlags(cmd *cobra.Command) {
cmd.Flags().String(argusCustomEndpointFlag, "", "Argus API base URL, used in calls to this API")
cmd.Flags().String(authorizationCustomEndpointFlag, "", "Authorization API base URL, used in calls to this API")
cmd.Flags().String(dnsCustomEndpointFlag, "", "DNS API base URL, used in calls to this API")
cmd.Flags().String(loadBalancerCustomEndpointFlag, "", "Load Balancer API base URL, used in calls to this API")
cmd.Flags().String(logMeCustomEndpointFlag, "", "LogMe API base URL, used in calls to this API")
cmd.Flags().String(mariaDBCustomEndpointFlag, "", "MariaDB API base URL, used in calls to this API")
cmd.Flags().String(mongoDBFlexCustomEndpointFlag, "", "MongoDB Flex API base URL, used in calls to this API")
Expand All @@ -116,6 +118,8 @@ func configureFlags(cmd *cobra.Command) {
cobra.CheckErr(err)
err = viper.BindPFlag(config.DNSCustomEndpointKey, cmd.Flags().Lookup(dnsCustomEndpointFlag))
cobra.CheckErr(err)
err = viper.BindPFlag(config.LoadBalancerCustomEndpointKey, cmd.Flags().Lookup(loadBalancerCustomEndpointFlag))
cobra.CheckErr(err)
err = viper.BindPFlag(config.LogMeCustomEndpointKey, cmd.Flags().Lookup(logMeCustomEndpointFlag))
cobra.CheckErr(err)
err = viper.BindPFlag(config.MariaDBCustomEndpointKey, cmd.Flags().Lookup(mariaDBCustomEndpointFlag))
Expand Down
7 changes: 7 additions & 0 deletions internal/cmd/config/unset/unset.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ const (
argusCustomEndpointFlag = "argus-custom-endpoint"
authorizationCustomEndpointFlag = "authorization-custom-endpoint"
dnsCustomEndpointFlag = "dns-custom-endpoint"
loadBalancerCustomEndpointFlag = "load-balancer-custom-endpoint"
logMeCustomEndpointFlag = "logme-custom-endpoint"
mariaDBCustomEndpointFlag = "mariadb-custom-endpoint"
mongoDBFlexCustomEndpointFlag = "mongodbflex-custom-endpoint"
Expand All @@ -49,6 +50,7 @@ type inputModel struct {
ArgusCustomEndpoint bool
AuthorizationCustomEndpoint bool
DNSCustomEndpoint bool
LoadBalancerCustomEndpoint bool
LogMeCustomEndpoint bool
MariaDBCustomEndpoint bool
MongoDBFlexCustomEndpoint bool
Expand Down Expand Up @@ -108,6 +110,9 @@ func NewCmd(p *print.Printer) *cobra.Command {
if model.DNSCustomEndpoint {
viper.Set(config.DNSCustomEndpointKey, "")
}
if model.LoadBalancerCustomEndpoint {
viper.Set(config.LoadBalancerCustomEndpointKey, "")
}
if model.LogMeCustomEndpoint {
viper.Set(config.LogMeCustomEndpointKey, "")
}
Expand Down Expand Up @@ -166,6 +171,7 @@ func configureFlags(cmd *cobra.Command) {
cmd.Flags().Bool(argusCustomEndpointFlag, false, "Argus API base URL. If unset, uses the default base URL")
cmd.Flags().Bool(authorizationCustomEndpointFlag, false, "Authorization API base URL. If unset, uses the default base URL")
cmd.Flags().Bool(dnsCustomEndpointFlag, false, "DNS API base URL. If unset, uses the default base URL")
cmd.Flags().Bool(loadBalancerCustomEndpointFlag, false, "Load Balancer API base URL. If unset, uses the default base URL")
cmd.Flags().Bool(logMeCustomEndpointFlag, false, "LogMe API base URL. If unset, uses the default base URL")
cmd.Flags().Bool(mariaDBCustomEndpointFlag, false, "MariaDB API base URL. If unset, uses the default base URL")
cmd.Flags().Bool(mongoDBFlexCustomEndpointFlag, false, "MongoDB Flex API base URL. If unset, uses the default base URL")
Expand All @@ -191,6 +197,7 @@ func parseInput(p *print.Printer, cmd *cobra.Command) *inputModel {
ArgusCustomEndpoint: flags.FlagToBoolValue(p, cmd, argusCustomEndpointFlag),
AuthorizationCustomEndpoint: flags.FlagToBoolValue(p, cmd, authorizationCustomEndpointFlag),
DNSCustomEndpoint: flags.FlagToBoolValue(p, cmd, dnsCustomEndpointFlag),
LoadBalancerCustomEndpoint: flags.FlagToBoolValue(p, cmd, loadBalancerCustomEndpointFlag),
LogMeCustomEndpoint: flags.FlagToBoolValue(p, cmd, logMeCustomEndpointFlag),
MariaDBCustomEndpoint: flags.FlagToBoolValue(p, cmd, mariaDBCustomEndpointFlag),
MongoDBFlexCustomEndpoint: flags.FlagToBoolValue(p, cmd, mongoDBFlexCustomEndpointFlag),
Expand Down
3 changes: 3 additions & 0 deletions internal/cmd/config/unset/unset_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ func fixtureFlagValues(mods ...func(flagValues map[string]bool)) map[string]bool
argusCustomEndpointFlag: true,
authorizationCustomEndpointFlag: true,
dnsCustomEndpointFlag: true,
loadBalancerCustomEndpointFlag: true,
logMeCustomEndpointFlag: true,
mariaDBCustomEndpointFlag: true,
objectStorageCustomEndpointFlag: true,
Expand Down Expand Up @@ -46,6 +47,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel {
ArgusCustomEndpoint: true,
AuthorizationCustomEndpoint: true,
DNSCustomEndpoint: true,
LoadBalancerCustomEndpoint: true,
LogMeCustomEndpoint: true,
MariaDBCustomEndpoint: true,
ObjectStorageCustomEndpoint: true,
Expand Down Expand Up @@ -90,6 +92,7 @@ func TestParseInput(t *testing.T) {
model.ArgusCustomEndpoint = false
model.AuthorizationCustomEndpoint = false
model.DNSCustomEndpoint = false
model.LoadBalancerCustomEndpoint = false
model.LogMeCustomEndpoint = false
model.MariaDBCustomEndpoint = false
model.ObjectStorageCustomEndpoint = false
Expand Down
26 changes: 26 additions & 0 deletions internal/cmd/load-balancer/load_balancer.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package loadbalancer

import (
"github.com/stackitcloud/stackit-cli/internal/pkg/args"
"github.com/stackitcloud/stackit-cli/internal/pkg/print"
"github.com/stackitcloud/stackit-cli/internal/pkg/utils"

"github.com/spf13/cobra"
)

func NewCmd(p *print.Printer) *cobra.Command {
cmd := &cobra.Command{
Use: "load-balancer",
Aliases: []string{"lb"},
Short: "Provides functionality for Load Balancer",
Long: "Provides functionality for Load Balancer.",
Args: args.NoArgs,
Run: utils.CmdHelp,
}
addSubcommands(cmd, p)
return cmd
}

func addSubcommands(_ *cobra.Command, _ *print.Printer) {

}
2 changes: 2 additions & 0 deletions internal/cmd/root.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import (
"github.com/stackitcloud/stackit-cli/internal/cmd/config"
"github.com/stackitcloud/stackit-cli/internal/cmd/curl"
"github.com/stackitcloud/stackit-cli/internal/cmd/dns"
loadbalancer "github.com/stackitcloud/stackit-cli/internal/cmd/load-balancer"
"github.com/stackitcloud/stackit-cli/internal/cmd/logme"
"github.com/stackitcloud/stackit-cli/internal/cmd/mariadb"
"github.com/stackitcloud/stackit-cli/internal/cmd/mongodbflex"
Expand Down Expand Up @@ -95,6 +96,7 @@ func addSubcommands(cmd *cobra.Command, p *print.Printer) {
cmd.AddCommand(config.NewCmd(p))
cmd.AddCommand(curl.NewCmd(p))
cmd.AddCommand(dns.NewCmd(p))
cmd.AddCommand(loadbalancer.NewCmd(p))
cmd.AddCommand(logme.NewCmd(p))
cmd.AddCommand(mariadb.NewCmd(p))
cmd.AddCommand(mongodbflex.NewCmd(p))
Expand Down
1 change: 1 addition & 0 deletions internal/pkg/config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ const (
ArgusCustomEndpointKey = "argus_custom_endpoint"
AuthorizationCustomEndpointKey = "authorization_custom_endpoint"
DNSCustomEndpointKey = "dns_custom_endpoint"
LoadBalancerCustomEndpointKey = "load_balancer_custom_endpoint"
LogMeCustomEndpointKey = "logme_custom_endpoint"
MariaDBCustomEndpointKey = "mariadb_custom_endpoint"
MongoDBFlexCustomEndpointKey = "mongodbflex_custom_endpoint"
Expand Down
40 changes: 40 additions & 0 deletions internal/pkg/services/load-balancer/client/client.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
package client

import (
"github.com/stackitcloud/stackit-cli/internal/pkg/auth"
"github.com/stackitcloud/stackit-cli/internal/pkg/config"
"github.com/stackitcloud/stackit-cli/internal/pkg/errors"
"github.com/stackitcloud/stackit-cli/internal/pkg/print"

"github.com/spf13/viper"
sdkConfig "github.com/stackitcloud/stackit-sdk-go/core/config"
"github.com/stackitcloud/stackit-sdk-go/services/loadbalancer"
)

func ConfigureClient(p *print.Printer) (*loadbalancer.APIClient, error) {
var err error
var apiClient *loadbalancer.APIClient
var cfgOptions []sdkConfig.ConfigurationOption

authCfgOption, err := auth.AuthenticationConfig(p, auth.AuthorizeUser)
if err != nil {
p.Debug(print.ErrorLevel, "configure authentication: %v", err)
return nil, &errors.AuthError{}
}
cfgOptions = append(cfgOptions, authCfgOption)

customEndpoint := viper.GetString(config.LoadBalancerCustomEndpointKey)
if customEndpoint != "" {
cfgOptions = append(cfgOptions, sdkConfig.WithEndpoint(customEndpoint))
} else {
cfgOptions = append(cfgOptions, authCfgOption, sdkConfig.WithRegion("eu01"))
}

apiClient, err = loadbalancer.NewAPIClient(cfgOptions...)
if err != nil {
p.Debug(print.ErrorLevel, "create new API client: %v", err)
return nil, &errors.AuthError{}
}

return apiClient, nil
}