Skip to content

Commit 7bc9dc3

Browse files
authored
[Doc] Add Immutable fields (#1365)
1 parent 6a49e3d commit 7bc9dc3

File tree

4 files changed

+59
-26
lines changed

4 files changed

+59
-26
lines changed

docs/api/ArangoDeployment.V1.md

Lines changed: 33 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -538,31 +538,31 @@ Links:
538538
539539
AllowUnsafeUpgrade determines if upgrade on missing member or with not in sync shards is allowed
540540
541-
[Code Reference](/pkg/apis/deployment/v1/deployment_spec.go#L153)
541+
[Code Reference](/pkg/apis/deployment/v1/deployment_spec.go#L160)
542542
543543
### .spec.annotations: map[string]string
544544
545545
Annotations specified the annotations added to Pods in this group.
546546
547-
[Code Reference](/pkg/apis/deployment/v1/deployment_spec.go#L136)
547+
[Code Reference](/pkg/apis/deployment/v1/deployment_spec.go#L143)
548548
549549
### .spec.annotationsIgnoreList: []string
550550
551551
AnnotationsIgnoreList list regexp or plain definitions which annotations should be ignored
552552
553-
[Code Reference](/pkg/apis/deployment/v1/deployment_spec.go#L138)
553+
[Code Reference](/pkg/apis/deployment/v1/deployment_spec.go#L145)
554554
555555
### .spec.annotationsMode: string
556556
557557
AnnotationsMode Define annotations mode which should be use while overriding annotations
558558
559-
[Code Reference](/pkg/apis/deployment/v1/deployment_spec.go#L140)
559+
[Code Reference](/pkg/apis/deployment/v1/deployment_spec.go#L147)
560560
561561
### .spec.architecture: []string
562562
563563
Architecture definition of supported architectures
564564
565-
[Code Reference](/pkg/apis/deployment/v1/deployment_spec.go#L201)
565+
[Code Reference](/pkg/apis/deployment/v1/deployment_spec.go#L208)
566566
567567
### .spec.auth.jwtSecretName: string
568568
@@ -599,13 +599,13 @@ Required only of domain is not set to default (cluster.local)
599599
600600
Default Value: cluster.local
601601
602-
[Code Reference](/pkg/apis/deployment/v1/deployment_spec.go#L189)
602+
[Code Reference](/pkg/apis/deployment/v1/deployment_spec.go#L196)
603603
604604
### .spec.communicationMethod: string
605605
606606
CommunicationMethod define communication method used in deployment
607607
608-
[Code Reference](/pkg/apis/deployment/v1/deployment_spec.go#L192)
608+
[Code Reference](/pkg/apis/deployment/v1/deployment_spec.go#L199)
609609
610610
### .spec.coordinators.affinity: core.PodAffinity
611611
@@ -1679,15 +1679,15 @@ Links:
16791679
16801680
### .spec.disableIPv6: bool
16811681
1682-
[Code Reference](/pkg/apis/deployment/v1/deployment_spec.go#L127)
1682+
[Code Reference](/pkg/apis/deployment/v1/deployment_spec.go#L134)
16831683
16841684
### .spec.downtimeAllowed: bool
16851685
1686-
[Code Reference](/pkg/apis/deployment/v1/deployment_spec.go#L126)
1686+
[Code Reference](/pkg/apis/deployment/v1/deployment_spec.go#L133)
16871687
16881688
### .spec.environment: string
16891689
1690-
[Code Reference](/pkg/apis/deployment/v1/deployment_spec.go#L115)
1690+
[Code Reference](/pkg/apis/deployment/v1/deployment_spec.go#L122)
16911691
16921692
### .spec.externalAccess.advertisedEndpoint: string
16931693
@@ -1886,7 +1886,7 @@ Links:
18861886

18871887
### .spec.image: string
18881888

1889-
[Code Reference](/pkg/apis/deployment/v1/deployment_spec.go#L117)
1889+
[Code Reference](/pkg/apis/deployment/v1/deployment_spec.go#L124)
18901890

18911891
### .spec.imageDiscoveryMode: string
18921892

@@ -1896,33 +1896,33 @@ Possible Values:
18961896
* kubelet (default) - Use sha256 of the discovered image in the pods
18971897
* direct - Use image provided in the spec.image directly in the pods
18981898

1899-
[Code Reference](/pkg/apis/deployment/v1/deployment_spec.go#L124)
1899+
[Code Reference](/pkg/apis/deployment/v1/deployment_spec.go#L131)
19001900

19011901
### .spec.imagePullPolicy: string
19021902

1903-
[Code Reference](/pkg/apis/deployment/v1/deployment_spec.go#L118)
1903+
[Code Reference](/pkg/apis/deployment/v1/deployment_spec.go#L125)
19041904

19051905
### .spec.imagePullSecrets: []string
19061906

1907-
[Code Reference](/pkg/apis/deployment/v1/deployment_spec.go#L119)
1907+
[Code Reference](/pkg/apis/deployment/v1/deployment_spec.go#L126)
19081908

19091909
### .spec.labels: map[string]string
19101910

19111911
Labels specified the labels added to Pods in this group.
19121912

1913-
[Code Reference](/pkg/apis/deployment/v1/deployment_spec.go#L142)
1913+
[Code Reference](/pkg/apis/deployment/v1/deployment_spec.go#L149)
19141914

19151915
### .spec.labelsIgnoreList: []string
19161916

19171917
LabelsIgnoreList list regexp or plain definitions which labels should be ignored
19181918

1919-
[Code Reference](/pkg/apis/deployment/v1/deployment_spec.go#L144)
1919+
[Code Reference](/pkg/apis/deployment/v1/deployment_spec.go#L151)
19201920

19211921
### .spec.labelsMode: string
19221922

19231923
LabelsMode Define labels mode which should be use while overriding labels
19241924

1925-
[Code Reference](/pkg/apis/deployment/v1/deployment_spec.go#L146)
1925+
[Code Reference](/pkg/apis/deployment/v1/deployment_spec.go#L153)
19261926

19271927
### .spec.license.secretName: string
19281928

@@ -1939,7 +1939,7 @@ Links:
19391939

19401940
### .spec.memberPropagationMode: string
19411941

1942-
[Code Reference](/pkg/apis/deployment/v1/deployment_spec.go#L176)
1942+
[Code Reference](/pkg/apis/deployment/v1/deployment_spec.go#L183)
19431943

19441944
### .spec.metrics.authentication.jwtTokenSecretName: string
19451945

@@ -1990,11 +1990,20 @@ Links:
19901990

19911991
### .spec.mode: string
19921992

1993-
[Code Reference](/pkg/apis/deployment/v1/deployment_spec.go#L114)
1993+
Mode specifies the type of ArangoDB deployment to create.
1994+
1995+
Possible Values:
1996+
* Cluster (default) - Full cluster. Defaults to 3 Agents, 3 DB-Servers & 3 Coordinators.
1997+
* ActiveFailover - Active-failover single pair. Defaults to 3 Agents and 2 single servers.
1998+
* Single - Single server only (note this does not provide high availability or reliability).
1999+
2000+
This field is **immutable**: Change of the ArangoDeployment Mode is not possible after creation.
2001+
2002+
[Code Reference](/pkg/apis/deployment/v1/deployment_spec.go#L120)
19942003

19952004
### .spec.networkAttachedVolumes: bool
19962005

1997-
[Code Reference](/pkg/apis/deployment/v1/deployment_spec.go#L133)
2006+
[Code Reference](/pkg/apis/deployment/v1/deployment_spec.go#L140)
19982007

19992008
### .spec.rebalancer.enabled: bool
20002009

@@ -2021,11 +2030,11 @@ Count Enable Shard Count machanism
20212030

20222031
### .spec.restoreEncryptionSecret: string
20232032

2024-
[Code Reference](/pkg/apis/deployment/v1/deployment_spec.go#L150)
2033+
[Code Reference](/pkg/apis/deployment/v1/deployment_spec.go#L157)
20252034

20262035
### .spec.restoreFrom: string
20272036

2028-
[Code Reference](/pkg/apis/deployment/v1/deployment_spec.go#L148)
2037+
[Code Reference](/pkg/apis/deployment/v1/deployment_spec.go#L155)
20292038

20302039
### .spec.rocksdb.encryption.keySecretName: string
20312040

@@ -2565,7 +2574,7 @@ Links:
25652574

25662575
### .spec.storageEngine: string
25672576

2568-
[Code Reference](/pkg/apis/deployment/v1/deployment_spec.go#L116)
2577+
[Code Reference](/pkg/apis/deployment/v1/deployment_spec.go#L123)
25692578

25702579
### .spec.sync.auth.clientCASecretName: string
25712580

@@ -3743,7 +3752,7 @@ MaintenanceGracePeriod action timeout
37433752

37443753
### .spec.timezone: string
37453754

3746-
[Code Reference](/pkg/apis/deployment/v1/deployment_spec.go#L203)
3755+
[Code Reference](/pkg/apis/deployment/v1/deployment_spec.go#L210)
37473756

37483757
### .spec.tls.altNames: []string
37493758

internal/docs_test.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,10 @@ func (d DocDefinitions) Render(t *testing.T) []byte {
108108
}
109109
}
110110

111+
if d := el.Immutable; d != nil {
112+
write(t, out, "This field is **immutable**: %s\n\n", *d)
113+
}
114+
111115
write(t, out, "[Code Reference](/%s#L%d)\n\n", el.File, el.Line)
112116
}
113117

@@ -127,6 +131,8 @@ type DocDefinition struct {
127131

128132
Enum []string
129133

134+
Immutable *string
135+
130136
Default *string
131137
Example []string
132138
}
@@ -199,6 +205,10 @@ func generateDocs(t *testing.T, objects map[string]map[string]interface{}, paths
199205
def.Enum = enum
200206
}
201207

208+
if immutable, ok := extract(field, "immutable"); ok {
209+
def.Immutable = util.NewType[string](immutable[0])
210+
}
211+
202212
if docs, ok := extractNotTags(field); !ok {
203213
println(def.Path, " is missing documentation!")
204214
} else {

pkg/apis/deployment/v1/deployment_spec.go

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,14 @@ const (
111111

112112
// DeploymentSpec contains the spec part of a ArangoDeployment resource.
113113
type DeploymentSpec struct {
114-
Mode *DeploymentMode `json:"mode,omitempty"`
114+
115+
// Mode specifies the type of ArangoDB deployment to create.
116+
// +doc/enum: Cluster|Full cluster. Defaults to 3 Agents, 3 DB-Servers & 3 Coordinators.
117+
// +doc/enum: ActiveFailover|Active-failover single pair. Defaults to 3 Agents and 2 single servers.
118+
// +doc/enum: Single|Single server only (note this does not provide high availability or reliability).
119+
// +doc/immutable: Change of the ArangoDeployment Mode is not possible after creation.
120+
Mode *DeploymentMode `json:"mode,omitempty"`
121+
115122
Environment *Environment `json:"environment,omitempty"`
116123
StorageEngine *StorageEngine `json:"storageEngine,omitempty"`
117124
Image *string `json:"image,omitempty"`

pkg/apis/deployment/v2alpha1/deployment_spec.go

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,14 @@ const (
111111

112112
// DeploymentSpec contains the spec part of a ArangoDeployment resource.
113113
type DeploymentSpec struct {
114-
Mode *DeploymentMode `json:"mode,omitempty"`
114+
115+
// Mode specifies the type of ArangoDB deployment to create.
116+
// +doc/enum: Cluster|Full cluster. Defaults to 3 Agents, 3 DB-Servers & 3 Coordinators.
117+
// +doc/enum: ActiveFailover|Active-failover single pair. Defaults to 3 Agents and 2 single servers.
118+
// +doc/enum: Single|Single server only (note this does not provide high availability or reliability).
119+
// +doc/immutable: Change of the ArangoDeployment Mode is not possible after creation.
120+
Mode *DeploymentMode `json:"mode,omitempty"`
121+
115122
Environment *Environment `json:"environment,omitempty"`
116123
StorageEngine *StorageEngine `json:"storageEngine,omitempty"`
117124
Image *string `json:"image,omitempty"`

0 commit comments

Comments
 (0)