1 package v1alpha1 2 3 import ( 4 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" 5 ) 6 7 // +genclient 8 // +genclient:nonNamespaced 9 // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object 10 // +kubebuilder:object:root=true 11 // +kubebuilder:subresource:status 12 // +openshift:compatibility-gen:level=4 13 14 // NotStableConfigType is a stable config type that is TechPreviewNoUpgrade only. 15 // 16 // Compatibility level 4: No compatibility is provided, the API can change at any point for any reason. These capabilities should not be used by applications needing long term support. 17 type NotStableConfigType struct { 18 metav1.TypeMeta `json:",inline"` 19 20 // metadata is the standard object's metadata. 21 // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata 22 metav1.ObjectMeta `json:"metadata,omitempty"` 23 24 // spec is the specification of the desired behavior of the NotStableConfigType. 25 Spec NotStableConfigTypeSpec `json:"spec,omitempty"` 26 // status is the most recently observed status of the NotStableConfigType. 27 Status NotStableConfigTypeStatus `json:"status,omitempty"` 28 } 29 30 // NotStableConfigTypeSpec is the desired state 31 type NotStableConfigTypeSpec struct { 32 // newField is a field that is tech preview, but because the entire type is gated, there is no marker on the field. 33 // 34 // +kubebuilder:validation:Required 35 NewField string `json:"newField"` 36 } 37 38 // NotStableConfigTypeStatus defines the observed status of the NotStableConfigType. 39 type NotStableConfigTypeStatus struct { 40 // Represents the observations of a foo's current state. 41 // Known .status.conditions.type are: "Available", "Progressing", and "Degraded" 42 // +patchMergeKey=type 43 // +patchStrategy=merge 44 // +listType=map 45 // +listMapKey=type 46 Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` 47 } 48 49 // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object 50 // +kubebuilder:object:root=true 51 // +openshift:compatibility-gen:level=4 52 53 // NotStableConfigTypeList contains a list of NotStableConfigTypes. 54 // 55 // Compatibility level 4: No compatibility is provided, the API can change at any point for any reason. These capabilities should not be used by applications needing long term support. 56 type NotStableConfigTypeList struct { 57 metav1.TypeMeta `json:",inline"` 58 59 // metadata is the standard list's metadata. 60 // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata 61 metav1.ListMeta `json:"metadata,omitempty"` 62 63 Items []NotStableConfigType `json:"items"` 64 } 65