-
Notifications
You must be signed in to change notification settings - Fork 15
/
Copy pathpostgresql.dev4devs.com_backups_crd.yaml
236 lines (236 loc) · 13.2 KB
/
postgresql.dev4devs.com_backups_crd.yaml
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
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: backups.postgresql.dev4devs.com
spec:
group: postgresql.dev4devs.com
names:
kind: Backup
listKind: BackupList
plural: backups
singular: backup
scope: Namespaced
versions:
- name: v1alpha1
schema:
openAPIV3Schema:
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: BackupSpec defines the desired state of Backup
properties:
awsAccessKeyId:
description: 'Key ID of AWS S3 storage. Default Value: nil Required
to create the Secret with the data to allow send the backup files
to AWS S3 storage.'
type: string
awsS3BucketName:
description: 'Name of AWS S3 storage. Default Value: nil Required
to create the Secret with the AWS data to allow send the backup
files to AWS S3 storage.'
type: string
awsSecretAccessKey:
description: 'Secret/Token of AWS S3 storage. Default Value: nil Required
to create the Secret with the data to allow send the backup files
to AWS S3 storage.'
type: string
awsSecretName:
description: 'Name of the secret with the AWS data credentials pre-existing
in the cluster Default Value: nil See here the template: https://github.com/integr8ly/backup-container-image/blob/master/templates/openshift/sample-config/s3-secret.yaml'
type: string
awsSecretNamespace:
description: 'Namespace of the secret with the AWS data credentials
pre-existing in the cluster Default Value: nil NOTE: If the namespace
be not informed then the operator will try to find it in the same
namespace where it is applied'
type: string
databaseCRName:
description: 'Name of the Database CR applied which this backup will
work with Default Value: "database"'
type: string
databaseVersion:
description: 'Database version. (E.g 9.6). Default Value: <9.6> IMPORTANT:
Just the first 2 digits should be used.'
type: string
encryptKeySecretName:
description: 'Name of the secret with the Encrypt data pre-existing
in the cluster Default Value: nil See here the template: https://github.com/integr8ly/backup-container-image/blob/master/templates/openshift/sample-config/gpg-secret.yaml'
type: string
encryptKeySecretNamespace:
description: 'Namespace of the secret with the Encrypt data pre-existing
in the cluster Default Value: nil NOTE: If the namespace be not
informed then the operator will try to find it in the same namespace
where it is applied'
type: string
gpgEmail:
description: 'GPG email to create the EncryptionKeySecret with this
data Default Value: nil See here how to create this key : https://help.github.com/en/articles/generating-a-new-gpg-key'
type: string
gpgPublicKey:
description: 'GPG public key to create the EncryptionKeySecret with
this data Default Value: nil See here how to create this key : https://help.github.com/en/articles/generating-a-new-gpg-key'
type: string
gpgTrustModel:
description: 'GPG trust model to create the EncryptionKeySecret with
this data. the default value is true when it is empty. Default Value:
nil See here how to create this key : https://help.github.com/en/articles/generating-a-new-gpg-key'
type: string
image:
description: 'Image:tag used to do the backup. Default Value: <quay.io/integreatly/backup-container:1.0.8>
More Info: https://github.com/integr8ly/backup-container-image'
type: string
productName:
description: 'Used to create the directory where the files will be
stored Default Value: <postgresql>'
type: string
schedule:
description: 'Schedule period for the CronJob. Default Value: <0 0
* * *> daily at 00:00'
type: string
type: object
status:
description: BackupStatus defines the observed state of Backup
properties:
awsCredentialsSecretNamespace:
description: Namespace of the secret object with the Aws data to
allow send the backup files to the AWS storage
type: string
awsSecretName:
description: Name of the secret object with the Aws data to allow
send the backup files to the AWS storage
type: string
backupStatus:
description: Will be as "OK when all objects are created successfully
type: string
cronJobName:
description: Name of the CronJob object created and managed by it
to schedule the backup job
type: string
cronJobStatus:
description: Status of the CronJob object
properties:
active:
description: A list of pointers to currently running jobs.
items:
description: 'ObjectReference contains enough information to
let you inspect or modify the referred object. --- New uses
of this type are discouraged because of difficulty describing
its usage when embedded in APIs. 1. Ignored fields. It includes
many fields which are not generally honored. For instance,
ResourceVersion and FieldPath are both very rarely valid in
actual usage. 2. Invalid usage help. It is impossible to
add specific help for individual usage. In most embedded
usages, there are particular restrictions like, "must
refer only to types A and B" or "UID not honored" or "name
must be restricted". Those cannot be well described when
embedded. 3. Inconsistent validation. Because the usages
are different, the validation rules are different by usage,
which makes it hard for users to predict what will happen. 4.
The fields are both imprecise and overly precise. Kind is
not a precise mapping to a URL. This can produce ambiguity during
interpretation and require a REST mapping. In most cases,
the dependency is on the group,resource tuple and the
version of the actual struct is irrelevant. 5. We cannot
easily change it. Because this type is embedded in many locations,
updates to this type will affect numerous schemas. Don''t
make new APIs embed an underspecified API type they do not
control. Instead of using this type, create a locally provided
and used type that is well-focused on your reference. For
example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533
.'
properties:
apiVersion:
description: API version of the referent.
type: string
fieldPath:
description: 'If referring to a piece of an object instead
of an entire object, this string should contain a valid
JSON/Go field access statement, such as desiredState.manifest.containers[2].
For example, if the object reference is to a container
within a pod, this would take on a value like: "spec.containers{name}"
(where "name" refers to the name of the container that
triggered the event) or if no container name is specified
"spec.containers[2]" (container with index 2 in this pod).
This syntax is chosen only to have some well-defined way
of referencing a part of an object. TODO: this design
is not final and this field is subject to change in the
future.'
type: string
kind:
description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
type: string
namespace:
description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
type: string
resourceVersion:
description: 'Specific resourceVersion to which this reference
is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
type: string
uid:
description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
type: string
type: object
type: array
lastScheduleTime:
description: Information when was the last time the job was successfully
scheduled.
format: date-time
type: string
type: object
dbSecretName:
description: Name of the secret object created with the database data
to allow the backup image connect to the database
type: string
encryptKeySecretName:
description: Name of the secret object with the Encryption GPG Key
type: string
encryptKeySecretNamespace:
description: Namespace of the secret object with the Encryption GPG
Key
type: string
hasEncryptKey:
description: Boolean value which has true when it has an EncryptionKey
to be used to send the backup files
type: boolean
isDatabasePodFound:
description: Boolean value which has true when the Database Pod was
found in order to create the secret with the database data to allow
the backup image connect into it.
type: boolean
isDatabaseServiceFound:
description: Boolean value which has true when the Service Database
Pod was found in order to create the secret with the database data
to allow the backup image connect into it.
type: boolean
required:
- awsCredentialsSecretNamespace
- awsSecretName
- backupStatus
- cronJobName
- cronJobStatus
- dbSecretName
- encryptKeySecretName
- encryptKeySecretNamespace
- hasEncryptKey
- isDatabasePodFound
- isDatabaseServiceFound
type: object
type: object
served: true
storage: true
subresources:
status: {}