Skip to content

Commit 88a6cc5

Browse files
committed
feat(k8s/amour): volsync
1 parent 643548f commit 88a6cc5

24 files changed

+3873
-47
lines changed
Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
// Code generated by cue get go. DO NOT EDIT.
2+
3+
//cue:generate cue get go github.com/backube/volsync/api/v1alpha1
4+
5+
package v1alpha1
6+
7+
// CopyMethodType defines the methods for creating point-in-time copies of
8+
// volumes.
9+
// +kubebuilder:validation:Enum=Direct;None;Clone;Snapshot
10+
#CopyMethodType: string // #enumCopyMethodType
11+
12+
#enumCopyMethodType:
13+
#CopyMethodDirect |
14+
#CopyMethodNone |
15+
#CopyMethodClone |
16+
#CopyMethodSnapshot
17+
18+
// CopyMethodDirect indicates a copy should not be performed. Data will be copied directly to/from the PVC.
19+
#CopyMethodDirect: #CopyMethodType & "Direct"
20+
21+
// CopyMethodNone indicates a copy should not be performed. Deprecated (replaced by CopyMethodDirect).
22+
#CopyMethodNone: #CopyMethodType & "None"
23+
24+
// CopyMethodClone indicates a copy should be created using volume cloning.
25+
#CopyMethodClone: #CopyMethodType & "Clone"
26+
27+
// CopyMethodSnapshot indicates a copy should be created using a volume
28+
// snapshot.
29+
#CopyMethodSnapshot: #CopyMethodType & "Snapshot"
30+
31+
// Namespace annotation to indicate that elevated permissions are ok for movers
32+
#PrivilegedMoversNamespaceAnnotation: "volsync.backube/privileged-movers"
33+
34+
#ConditionSynchronizing: "Synchronizing"
35+
#SynchronizingReasonSync: "SyncInProgress"
36+
#SynchronizingReasonSched: "WaitingForSchedule"
37+
#SynchronizingReasonManual: "WaitingForManual"
38+
#SynchronizingReasonCleanup: "CleaningUp"
39+
#SynchronizingReasonError: "Error"
40+
41+
// SyncthingPeer Defines the necessary information needed by VolSync
42+
// to configure a given peer with the running Syncthing instance.
43+
#SyncthingPeer: {
44+
// The peer's address that our Syncthing node will connect to.
45+
address: string @go(Address)
46+
47+
// The peer's Syncthing ID.
48+
ID: string
49+
50+
// A flag that determines whether this peer should
51+
// introduce us to other peers sharing this volume.
52+
// It is HIGHLY recommended that two Syncthing peers do NOT
53+
// set each other as introducers as you will have a difficult time
54+
// disconnecting the two.
55+
introducer: bool @go(Introducer)
56+
}
57+
58+
// SyncthingPeerStatus Is a struct that contains information pertaining to
59+
// the status of a given Syncthing peer.
60+
#SyncthingPeerStatus: {
61+
// The address of the Syncthing peer.
62+
address: string @go(Address)
63+
64+
// ID Is the peer's Syncthing ID.
65+
ID: string
66+
67+
// Flag indicating whether peer is currently connected.
68+
connected: bool @go(Connected)
69+
70+
// The ID of the Syncthing peer that this one was introduced by.
71+
introducedBy?: string @go(IntroducedBy)
72+
73+
// A friendly name to associate the given device.
74+
name?: string @go(Name)
75+
}
76+
77+
#MoverResult: string // #enumMoverResult
78+
79+
#enumMoverResult:
80+
#MoverResultSuccessful |
81+
#MoverResultFailed
82+
83+
#MoverResultSuccessful: #MoverResult & "Successful"
84+
#MoverResultFailed: #MoverResult & "Failed"
85+
86+
#MoverStatus: {
87+
result?: #MoverResult @go(Result)
88+
logs?: string @go(Logs)
89+
}
90+
91+
#CustomCASpec: {
92+
// The name of a Secret that contains the custom CA certificate
93+
// If SecretName is used then ConfigMapName should not be set
94+
secretName?: string @go(SecretName)
95+
96+
// The name of a ConfigMap that contains the custom CA certificate
97+
// If ConfigMapName is used then SecretName should not be set
98+
configMapName?: string @go(ConfigMapName)
99+
100+
// The key within the Secret or ConfigMap containing the CA certificate
101+
key?: string @go(Key)
102+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
// Code generated by cue get go. DO NOT EDIT.
2+
3+
//cue:generate cue get go github.com/backube/volsync/api/v1alpha1
4+
5+
package v1alpha1
6+
7+
#EvRTransferStarted: "TransferStarted"
8+
#EvRTransferFailed: "TransferFailed"
9+
#EvRSnapCreated: "VolumeSnapshotCreated"
10+
#EvRSnapNotBound: "VolumeSnapshotNotBound"
11+
#EvRPVCCreated: "PersistentVolumeClaimCreated"
12+
#EvRPVCNotBound: "PersistentVolumeClaimNotBound"
13+
#EvRSvcAddress: "ServiceAddressAssigned"
14+
#EvRSvcNoAddress: "NoServiceAddressAssigned"
15+
16+
#EvANone: ""
17+
#EvACreateMover: "CreateMover"
18+
#EvADeleteMover: "DeleteMover"
19+
#EvACreatePVC: "CreatePersistentVolumeClaim"
20+
#EvACreateSnap: "CreateVolumeSnapshot"
21+
22+
#EvRVolPopPVCPopulatorFinished: "VolSyncPopulatorFinished"
23+
#EvRVolPopPVCPopulatorError: "VolSyncPopulatorError"
24+
#EvVolPopPVCReplicationDestMissing: "VolSyncPopulatorReplicationDestinationMissing"
25+
#EvRVolPopPVCReplicationDestNoLatestImage: "VolSyncPopulatorReplicationDestinationNoLatestImage"
26+
#EvRVolPopPVCCreationSuccess: "VolSyncPopulatorPVCCreated"
27+
#EvRVolPopPVCCreationError: "VolSyncPopulatorPVCCreationError"
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
// Code generated by cue get go. DO NOT EDIT.
2+
3+
//cue:generate cue get go github.com/backube/volsync/api/v1alpha1
4+
5+
// Package v1alpha1 contains API Schema definitions for the volsync v1alpha1 API group
6+
// +kubebuilder:object:generate=true
7+
// +groupName=volsync.backube
8+
package v1alpha1

0 commit comments

Comments
 (0)