This repository has been archived by the owner on Mar 6, 2024. It is now read-only.
/
crds_types.go
47 lines (37 loc) · 1.53 KB
/
crds_types.go
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
/*
Copyright 2019 The KubeCarrier Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package v1alpha1
import (
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
)
// CRDInformation contains type information about the CRD.
type CRDInformation struct {
Name string `json:"name"`
APIGroup string `json:"apiGroup"`
Kind string `json:"kind"`
Plural string `json:"plural"`
Versions []CRDVersion `json:"versions"`
// Region references a Region of this CRD.
Region ObjectReference `json:"region"`
}
// CRDVersion holds CRD version specific details.
type CRDVersion struct {
// Name of this version, for example: v1, v1alpha1, v1beta1
Name string `json:"name"`
// Schema of this CRD version.
// +kubebuilder:pruning:PreserveUnknownFields
Schema *apiextensionsv1.CustomResourceValidation `json:"schema,omitempty"`
// Storage indicates this version should be used when persisting custom resources to storage.
// There must be exactly one version with storage=true.
Storage bool `json:"storage,omitempty"`
}