Skip to content

Commit 95a2e42

Browse files
authored
Merge pull request #12 from OpenSlides/feature/add-k8s-actions
Feature/add k8s actions
2 parents 8ba0e9b + 2595d63 commit 95a2e42

44 files changed

Lines changed: 4474 additions & 833 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

README.md

Lines changed: 818 additions & 276 deletions
Large diffs are not rendered by default.

cmd/osmanage/main.go

Lines changed: 32 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,19 @@ import (
44
"fmt"
55
"os"
66

7-
"github.com/OpenSlides/openslides-cli/internal/actions/action"
8-
"github.com/OpenSlides/openslides-cli/internal/actions/createuser"
9-
"github.com/OpenSlides/openslides-cli/internal/actions/get"
10-
"github.com/OpenSlides/openslides-cli/internal/actions/initialdata"
11-
"github.com/OpenSlides/openslides-cli/internal/actions/migrations"
12-
"github.com/OpenSlides/openslides-cli/internal/actions/set"
13-
"github.com/OpenSlides/openslides-cli/internal/actions/setpassword"
7+
"github.com/OpenSlides/openslides-cli/internal/instance/config"
8+
"github.com/OpenSlides/openslides-cli/internal/instance/create"
9+
"github.com/OpenSlides/openslides-cli/internal/instance/remove"
10+
"github.com/OpenSlides/openslides-cli/internal/instance/setup"
11+
k8sActions "github.com/OpenSlides/openslides-cli/internal/k8s/actions"
1412
"github.com/OpenSlides/openslides-cli/internal/logger"
15-
"github.com/OpenSlides/openslides-cli/internal/templating/config"
16-
"github.com/OpenSlides/openslides-cli/internal/templating/setup"
13+
"github.com/OpenSlides/openslides-cli/internal/manage/actions/action"
14+
"github.com/OpenSlides/openslides-cli/internal/manage/actions/createuser"
15+
"github.com/OpenSlides/openslides-cli/internal/manage/actions/get"
16+
"github.com/OpenSlides/openslides-cli/internal/manage/actions/initialdata"
17+
"github.com/OpenSlides/openslides-cli/internal/manage/actions/migrations"
18+
"github.com/OpenSlides/openslides-cli/internal/manage/actions/set"
19+
"github.com/OpenSlides/openslides-cli/internal/manage/actions/setpassword"
1720

1821
"github.com/spf13/cobra"
1922
)
@@ -62,16 +65,36 @@ func RootCmd() *cobra.Command {
6265
return nil
6366
}
6467

68+
// K8s command group
69+
k8sCmd := &cobra.Command{
70+
Use: "k8s",
71+
Short: "Manage Kubernetes deployments",
72+
Long: "Manage OpenSlides instances deployed on Kubernetes",
73+
}
74+
75+
k8sCmd.AddCommand(
76+
k8sActions.StartCmd(),
77+
k8sActions.StopCmd(),
78+
k8sActions.HealthCmd(),
79+
k8sActions.ClusterStatusCmd(),
80+
k8sActions.UpdateBackendmanageCmd(),
81+
k8sActions.UpdateInstanceCmd(),
82+
k8sActions.ScaleCmd(),
83+
)
84+
6585
rootCmd.AddCommand(
6686
setup.Cmd(),
6787
config.Cmd(),
88+
create.Cmd(),
89+
remove.Cmd(),
6890
createuser.Cmd(),
6991
initialdata.Cmd(),
7092
setpassword.Cmd(),
7193
set.Cmd(),
7294
get.Cmd(),
7395
action.Cmd(),
7496
migrations.Cmd(),
97+
k8sCmd,
7598
)
7699

77100
return rootCmd

cmd/osmanage/main_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ func TestRootCmd(t *testing.T) {
1919
logLevelFlag := cmd.PersistentFlags().Lookup("log-level")
2020
if logLevelFlag == nil {
2121
t.Fatal("Expected log-level flag to exist")
22+
return
2223
}
2324
if logLevelFlag.DefValue != "warn" {
2425
t.Errorf("Expected default log-level 'info', got %s", logLevelFlag.DefValue)

go.mod

Lines changed: 41 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,59 @@ go 1.25.1
44

55
require (
66
github.com/OpenSlides/openslides-go v0.0.0-20251104124242-d8e4b15bb11e
7+
github.com/schollz/progressbar/v3 v3.19.0
78
github.com/shopspring/decimal v1.4.0
89
github.com/spf13/cobra v1.10.2
910
golang.org/x/text v0.33.0
11+
k8s.io/api v0.35.0
12+
k8s.io/apimachinery v0.35.0
13+
k8s.io/client-go v0.35.0
14+
sigs.k8s.io/yaml v1.6.0
1015
)
1116

1217
require (
18+
github.com/davecgh/go-spew v1.1.1 // indirect
19+
github.com/emicklei/go-restful/v3 v3.12.2 // indirect
20+
github.com/fxamacker/cbor/v2 v2.9.0 // indirect
21+
github.com/go-logr/logr v1.4.3 // indirect
22+
github.com/go-openapi/jsonpointer v0.21.0 // indirect
23+
github.com/go-openapi/jsonreference v0.20.2 // indirect
24+
github.com/go-openapi/swag v0.23.0 // indirect
25+
github.com/google/gnostic-models v0.7.0 // indirect
26+
github.com/google/uuid v1.6.0 // indirect
1327
github.com/jackc/pgpassfile v1.0.0 // indirect
1428
github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 // indirect
1529
github.com/jackc/pgx/v5 v5.7.6 // indirect
1630
github.com/jackc/puddle/v2 v2.2.2 // indirect
17-
golang.org/x/crypto v0.42.0 // indirect
31+
github.com/josharian/intern v1.0.0 // indirect
32+
github.com/json-iterator/go v1.1.12 // indirect
33+
github.com/mailru/easyjson v0.7.7 // indirect
34+
github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db // indirect
35+
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
36+
github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee // indirect
37+
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
38+
github.com/rivo/uniseg v0.4.7 // indirect
39+
github.com/x448/float16 v0.8.4 // indirect
40+
go.yaml.in/yaml/v2 v2.4.3 // indirect
41+
go.yaml.in/yaml/v3 v3.0.4 // indirect
42+
golang.org/x/crypto v0.44.0 // indirect
43+
golang.org/x/net v0.47.0 // indirect
44+
golang.org/x/oauth2 v0.30.0 // indirect
1845
golang.org/x/sync v0.19.0 // indirect
19-
golang.org/x/sys v0.37.0 // indirect
46+
golang.org/x/sys v0.38.0 // indirect
47+
golang.org/x/term v0.37.0 // indirect
48+
golang.org/x/time v0.9.0 // indirect
49+
google.golang.org/protobuf v1.36.8 // indirect
50+
gopkg.in/evanphx/json-patch.v4 v4.13.0 // indirect
51+
gopkg.in/inf.v0 v0.9.1 // indirect
2052
gopkg.in/yaml.v2 v2.4.0 // indirect
53+
gopkg.in/yaml.v3 v3.0.1 // indirect
54+
k8s.io/klog/v2 v2.130.1 // indirect
55+
k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912 // indirect
56+
k8s.io/utils v0.0.0-20251002143259-bc988d571ff4 // indirect
57+
sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 // indirect
58+
sigs.k8s.io/randfill v1.0.0 // indirect
59+
sigs.k8s.io/structured-merge-diff/v6 v6.3.0 // indirect
2160
)
2261

2362
require (

0 commit comments

Comments
 (0)