1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
package v1alpha1
import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
commonv1 "github.com/johnandersen777/socialweb-computer-kcp/api/common/v1alpha1"
)
type RemoteOpenBao struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec RemoteOpenBaoSpec `json:"spec,omitempty"`
Status RemoteOpenBaoStatus `json:"status,omitempty"`
}
type RemoteOpenBaoList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []RemoteOpenBao `json:"items"`
}
type RemoteOpenBaoSpec struct {
URL string `json:"url" apigen:"userEndpoint"`
TLS RemoteOpenBaoTLS `json:"tls,omitempty"`
Auth RemoteOpenBaoAuth `json:"auth,omitempty"`
Mounts RemoteOpenBaoMounts `json:"mounts,omitempty"`
Capabilities []string `json:"capabilities,omitempty"`
Suspend bool `json:"suspend,omitempty"`
}
type RemoteOpenBaoTLS struct {
Enabled bool `json:"enabled,omitempty"`
CARef *commonv1.ObjectRef `json:"caRef,omitempty"`
CASecretRef *commonv1.SecretRef `json:"caSecretRef,omitempty"`
ServerName string `json:"serverName,omitempty"`
}
type RemoteOpenBaoAuthMethod string
const (
RemoteOpenBaoAuthToken RemoteOpenBaoAuthMethod = "token"
RemoteOpenBaoAuthAppRole RemoteOpenBaoAuthMethod = "approle"
RemoteOpenBaoAuthCert RemoteOpenBaoAuthMethod = "cert"
)
type RemoteOpenBaoAuth struct {
Method RemoteOpenBaoAuthMethod `json:"method"`
TokenRef *commonv1.SecretRef `json:"tokenRef,omitempty"`
AppRole *RemoteOpenBaoAppRole `json:"approle,omitempty"`
Cert *RemoteOpenBaoCert `json:"cert,omitempty"`
}
type RemoteOpenBaoAppRole struct {
RoleIDRef commonv1.SecretRef `json:"roleIdRef"`
SecretIDRef commonv1.SecretRef `json:"secretIdRef"`
}
type RemoteOpenBaoCert struct {
CertRef commonv1.SecretRef `json:"certRef"`
KeyRef commonv1.SecretRef `json:"keyRef"`
}
type RemoteOpenBaoMounts struct {
KV string `json:"kv,omitempty"`
PKI string `json:"pki,omitempty"`
Auth string `json:"auth,omitempty"`
}
type RemoteOpenBaoPhase string
const (
RemoteOpenBaoPhasePending RemoteOpenBaoPhase = "Pending"
RemoteOpenBaoPhaseReady RemoteOpenBaoPhase = "Ready"
RemoteOpenBaoPhaseFailed RemoteOpenBaoPhase = "Failed"
RemoteOpenBaoPhaseSuspended RemoteOpenBaoPhase = "Suspended"
)
type RemoteOpenBaoStatus struct {
Phase RemoteOpenBaoPhase `json:"phase,omitempty"`
Ready bool `json:"ready,omitempty"`
Endpoint string `json:"endpoint,omitempty"`
Address string `json:"address,omitempty"`
Initialized bool `json:"initialized,omitempty"`
Version string `json:"version,omitempty"`
Sealed bool `json:"sealed,omitempty"`
LastCheckedAt *metav1.Time `json:"lastCheckedAt,omitempty"`
Conditions []metav1.Condition `json:"conditions,omitempty"`
Message string `json:"message,omitempty"`
}