Skip to content

Commit 610a648

Browse files
committed
[Feature] [Platform] Storage
1 parent 52087c1 commit 610a648

File tree

11 files changed

+391
-20
lines changed

11 files changed

+391
-20
lines changed

.golangci.yaml

+10
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,14 @@ linters-settings:
5353
pkg: github.com/arangodb/kube-arangodb/integrations/shutdown/v1
5454
- alias: pbShutdownV1
5555
pkg: github.com/arangodb/kube-arangodb/integrations/shutdown/v1/definition
56+
- alias: pbImplStorageV2
57+
pkg: github.com/arangodb/kube-arangodb/integrations/storage/v2
58+
- alias: pbImplStorageV2Shared
59+
pkg: github.com/arangodb/kube-arangodb/integrations/storage/v2/shared
60+
- alias: pbImplStorageV2SharedS3
61+
pkg: github.com/arangodb/kube-arangodb/integrations/storage/v2/shared/s3
62+
- alias: pbStorageV2
63+
pkg: github.com/arangodb/kube-arangodb/integrations/storage/v2/definition
5664
- alias: analyticsApi
5765
pkg: github.com/arangodb/kube-arangodb/pkg/apis/analytics/v1alpha1
5866
- alias: mlApiv1alpha1
@@ -61,6 +69,8 @@ linters-settings:
6169
pkg: github.com/arangodb/kube-arangodb/pkg/apis/ml/v1beta1
6270
- alias: networkingApi
6371
pkg: github.com/arangodb/kube-arangodb/pkg/apis/networking/v1alpha1
72+
- alias: platformApi
73+
pkg: github.com/arangodb/kube-arangodb/pkg/apis/platform/v1alpha1
6474
- alias: schedulerApiv1alpha1
6575
pkg: github.com/arangodb/kube-arangodb/pkg/apis/scheduler/v1alpha1
6676
- alias: schedulerContainerApiv1alpha1

CHANGELOG.md

+1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
- (Feature) StorageV2 Integration Service Implementation
1717
- (Feature) (Platform) Storage V1Alpha1 RC
1818
- (Feature) (Networking) ArangoRotue WebSocket Support
19+
- (Feature) (Platform) Storage
1920

2021
## [1.2.43](https://github.com/arangodb/kube-arangodb/tree/1.2.43) (2024-10-14)
2122
- (Feature) ArangoRoute CRD

pkg/deployment/resources/arango_profiles.go

+1
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,7 @@ func (r *Resources) EnsureArangoProfiles(ctx context.Context, cachedStatus inspe
139139
gen(constants.ProfilesIntegrationSched, constants.ProfilesIntegrationV1, sidecar.IntegrationSchedulerV1{}),
140140
gen(constants.ProfilesIntegrationSched, constants.ProfilesIntegrationV2, sidecar.IntegrationSchedulerV2{}),
141141
gen(constants.ProfilesIntegrationEnvoy, constants.ProfilesIntegrationV3, sidecar.IntegrationEnvoyV3{Spec: spec}),
142+
//gen(constants.ProfilesIntegrationStorage, constants.ProfilesIntegrationV2, sidecar.IntegrationStorageV2{ Storage: nil, }),
142143
); err != nil {
143144
return err
144145
} else if changed {

pkg/deployment/resources/pod_creator.go

+5
Original file line numberDiff line numberDiff line change
@@ -634,6 +634,7 @@ func (r *Resources) createPodForMember(ctx context.Context, cachedStatus inspect
634634
}
635635
// Create event
636636
r.context.CreateEvent(k8sutil.NewPodCreatedEvent(m.Pod.GetName(), role, apiObject))
637+
cachedStatus.GetThrottles().Pod().Invalidate()
637638

638639
return nil
639640
}
@@ -777,6 +778,10 @@ func (r *Resources) EnsurePods(ctx context.Context, cachedStatus inspectorInterf
777778

778779
log.Warn("Ensuring pod")
779780

781+
if err := cachedStatus.Refresh(ctx); err != nil {
782+
return err
783+
}
784+
780785
spec := r.context.GetSpec()
781786
if err := r.createPodForMember(ctx, cachedStatus, spec, member, m.ID, imageNotFoundOnce); err != nil {
782787
log.Err(err).Warn("Ensuring pod failed")

pkg/integrations/flags.go

+107-15
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,14 @@ import (
3636

3737
func NewFlagEnvHandler(fs *flag.FlagSet) FlagEnvHandler {
3838
return flagEnvHandler{
39-
fs: fs,
39+
fs: fs,
40+
visible: true,
4041
}
4142
}
4243

4344
type FlagEnvHandler interface {
4445
WithPrefix(prefix string) FlagEnvHandler
46+
WithVisibility(visible bool) FlagEnvHandler
4547

4648
StringVar(p *string, name string, value string, usage string) error
4749
String(name string, value string, usage string) error
@@ -60,8 +62,9 @@ type FlagEnvHandler interface {
6062
}
6163

6264
type flagEnvHandler struct {
63-
prefix string
64-
fs *flag.FlagSet
65+
prefix string
66+
visible bool
67+
fs *flag.FlagSet
6568
}
6669

6770
func (f flagEnvHandler) StringVar(p *string, name string, value string, usage string) error {
@@ -70,7 +73,15 @@ func (f flagEnvHandler) StringVar(p *string, name string, value string, usage st
7073
return err
7174
}
7275

73-
f.fs.StringVar(p, f.name(name), v, f.varDesc(name, usage))
76+
fname := f.name(name)
77+
78+
f.fs.StringVar(p, fname, v, f.varDesc(name, usage))
79+
80+
if !f.visible {
81+
if err := f.fs.MarkHidden(fname); err != nil {
82+
return err
83+
}
84+
}
7485

7586
return nil
7687
}
@@ -81,7 +92,15 @@ func (f flagEnvHandler) String(name string, value string, usage string) error {
8192
return err
8293
}
8394

84-
f.fs.String(f.name(name), v, f.varDesc(name, usage))
95+
fname := f.name(name)
96+
97+
f.fs.String(fname, v, f.varDesc(name, usage))
98+
99+
if !f.visible {
100+
if err := f.fs.MarkHidden(fname); err != nil {
101+
return err
102+
}
103+
}
85104

86105
return nil
87106
}
@@ -92,7 +111,15 @@ func (f flagEnvHandler) StringSliceVar(p *[]string, name string, value []string,
92111
return err
93112
}
94113

95-
f.fs.StringSliceVar(p, f.name(name), v, f.varDesc(name, usage))
114+
fname := f.name(name)
115+
116+
f.fs.StringSliceVar(p, fname, v, f.varDesc(name, usage))
117+
118+
if !f.visible {
119+
if err := f.fs.MarkHidden(fname); err != nil {
120+
return err
121+
}
122+
}
96123

97124
return nil
98125
}
@@ -103,7 +130,15 @@ func (f flagEnvHandler) StringSlice(name string, value []string, usage string) e
103130
return err
104131
}
105132

106-
f.fs.StringSlice(f.name(name), v, f.varDesc(name, usage))
133+
fname := f.name(name)
134+
135+
f.fs.StringSlice(fname, v, f.varDesc(name, usage))
136+
137+
if !f.visible {
138+
if err := f.fs.MarkHidden(fname); err != nil {
139+
return err
140+
}
141+
}
107142

108143
return nil
109144
}
@@ -114,7 +149,15 @@ func (f flagEnvHandler) BoolVar(p *bool, name string, value bool, usage string)
114149
return err
115150
}
116151

117-
f.fs.BoolVar(p, f.name(name), v, f.varDesc(name, usage))
152+
fname := f.name(name)
153+
154+
f.fs.BoolVar(p, fname, v, f.varDesc(name, usage))
155+
156+
if !f.visible {
157+
if err := f.fs.MarkHidden(fname); err != nil {
158+
return err
159+
}
160+
}
118161

119162
return nil
120163
}
@@ -125,7 +168,15 @@ func (f flagEnvHandler) Bool(name string, value bool, usage string) error {
125168
return err
126169
}
127170

128-
f.fs.Bool(f.name(name), v, f.varDesc(name, usage))
171+
fname := f.name(name)
172+
173+
f.fs.Bool(fname, v, f.varDesc(name, usage))
174+
175+
if !f.visible {
176+
if err := f.fs.MarkHidden(fname); err != nil {
177+
return err
178+
}
179+
}
129180

130181
return nil
131182
}
@@ -136,7 +187,15 @@ func (f flagEnvHandler) DurationVar(p *time.Duration, name string, value time.Du
136187
return err
137188
}
138189

139-
f.fs.DurationVar(p, f.name(name), v, f.varDesc(name, usage))
190+
fname := f.name(name)
191+
192+
f.fs.DurationVar(p, fname, v, f.varDesc(name, usage))
193+
194+
if !f.visible {
195+
if err := f.fs.MarkHidden(fname); err != nil {
196+
return err
197+
}
198+
}
140199

141200
return nil
142201
}
@@ -147,7 +206,15 @@ func (f flagEnvHandler) Duration(name string, value time.Duration, usage string)
147206
return err
148207
}
149208

150-
f.fs.Duration(f.name(name), v, f.varDesc(name, usage))
209+
fname := f.name(name)
210+
211+
f.fs.Duration(fname, v, f.varDesc(name, usage))
212+
213+
if !f.visible {
214+
if err := f.fs.MarkHidden(fname); err != nil {
215+
return err
216+
}
217+
}
151218

152219
return nil
153220
}
@@ -158,7 +225,15 @@ func (f flagEnvHandler) Uint16Var(p *uint16, name string, value uint16, usage st
158225
return err
159226
}
160227

161-
f.fs.Uint16Var(p, f.name(name), v, f.varDesc(name, usage))
228+
fname := f.name(name)
229+
230+
f.fs.Uint16Var(p, fname, v, f.varDesc(name, usage))
231+
232+
if !f.visible {
233+
if err := f.fs.MarkHidden(fname); err != nil {
234+
return err
235+
}
236+
}
162237

163238
return nil
164239
}
@@ -169,7 +244,15 @@ func (f flagEnvHandler) Uint16(name string, value uint16, usage string) error {
169244
return err
170245
}
171246

172-
f.fs.Uint16(f.name(name), v, f.varDesc(name, usage))
247+
fname := f.name(name)
248+
249+
f.fs.Uint16(fname, v, f.varDesc(name, usage))
250+
251+
if !f.visible {
252+
if err := f.fs.MarkHidden(fname); err != nil {
253+
return err
254+
}
255+
}
173256

174257
return nil
175258
}
@@ -198,8 +281,17 @@ func (f flagEnvHandler) name(n string) string {
198281

199282
func (f flagEnvHandler) WithPrefix(prefix string) FlagEnvHandler {
200283
return flagEnvHandler{
201-
prefix: f.name(prefix),
202-
fs: f.fs,
284+
prefix: f.name(prefix),
285+
fs: f.fs,
286+
visible: f.visible,
287+
}
288+
}
289+
290+
func (f flagEnvHandler) WithVisibility(visible bool) FlagEnvHandler {
291+
return flagEnvHandler{
292+
prefix: f.prefix,
293+
fs: f.fs,
294+
visible: visible,
203295
}
204296
}
205297

pkg/integrations/integration.go

+14
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,20 @@ type Integration interface {
3939
Handler(ctx context.Context, cmd *cobra.Command) (svc.Handler, error)
4040
}
4141

42+
type IntegrationVisibility interface {
43+
Integration
44+
45+
Visible() bool
46+
}
47+
48+
func GetIntegrationVisibility(in Integration) bool {
49+
if v, ok := in.(IntegrationVisibility); ok {
50+
return v.Visible()
51+
}
52+
53+
return true
54+
}
55+
4256
type IntegrationEnablement interface {
4357
Integration
4458

pkg/integrations/register.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ func (c *configuration) Register(cmd *cobra.Command) error {
151151
for _, service := range c.registered {
152152
prefix := fmt.Sprintf("integration.%s", service.Name())
153153

154-
fs := f.WithPrefix(prefix)
154+
fs := f.WithPrefix(prefix).WithVisibility(GetIntegrationVisibility(service))
155155
internal, external := GetIntegrationEnablement(service)
156156

157157
if err := errors.Errors(

0 commit comments

Comments
 (0)