github.com/codeready-toolchain/api@v0.0.0-20240507023248-73662d6db2c5/api/v1alpha1/tiertemplate_types.go (about) 1 package v1alpha1 2 3 import ( 4 templatev1 "github.com/openshift/api/template/v1" 5 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" 6 ) 7 8 const ( 9 // ClusterResourcesType contains a type name of the template containing cluster-scoped resources 10 ClusterResourcesTemplateType = "clusterresources" 11 12 // TierTemplateObjectOptionalResourceAnnotation is annotation to be used to mark a TierTemplate object as optional. 13 // That means that it won't be applied if the corresponding API group is not present in the cluster. 14 TierTemplateObjectOptionalResourceAnnotation = LabelKeyPrefix + "optional-resource" 15 ) 16 17 // TierTemplateSpec defines the desired state of TierTemplate 18 // +k8s:openapi-gen=true 19 type TierTemplateSpec struct { 20 21 // The tier of the template. For example: "basic", "advanced", or "team" 22 TierName string `json:"tierName"` 23 24 // The type of the template. For example: "code", "dev", "stage" or "cluster" 25 Type string `json:"type"` 26 27 // The revision of the corresponding template 28 Revision string `json:"revision"` 29 30 // Template contains an OpenShift Template to be used to provision either a user's namespace or cluster-wide resources 31 Template templatev1.Template `json:"template"` 32 } 33 34 //+kubebuilder:object:root=true 35 //+kubebuilder:subresource:status 36 37 // TierTemplate is the Schema for the tiertemplates API 38 // +kubebuilder:resource:path=tiertemplates,scope=Namespaced 39 // +kubebuilder:printcolumn:name="Type",type="string",JSONPath=`.spec.type` 40 // +kubebuilder:printcolumn:name="Revision",type="string",JSONPath=`.spec.revision` 41 // +kubebuilder:validation:XPreserveUnknownFields 42 // +operator-sdk:gen-csv:customresourcedefinitions.displayName="Template Tier" 43 type TierTemplate struct { 44 metav1.TypeMeta `json:",inline"` 45 metav1.ObjectMeta `json:"metadata,omitempty"` 46 47 Spec TierTemplateSpec `json:"spec,omitempty"` 48 } 49 50 //+kubebuilder:object:root=true 51 52 // TierTemplateList contains a list of TierTemplate 53 type TierTemplateList struct { 54 metav1.TypeMeta `json:",inline"` 55 metav1.ListMeta `json:"metadata,omitempty"` 56 Items []TierTemplate `json:"items"` 57 } 58 59 func init() { 60 SchemeBuilder.Register(&TierTemplate{}, &TierTemplateList{}) 61 }