github.com/spotmaxtech/k8s-apimachinery-v0260@v0.0.1/pkg/apis/testapigroup/types.go (about) 1 /* 2 Copyright 2017 The Kubernetes Authors. 3 4 Licensed under the Apache License, Version 2.0 (the "License"); 5 you may not use this file except in compliance with the License. 6 You may obtain a copy of the License at 7 8 http://www.apache.org/licenses/LICENSE-2.0 9 10 Unless required by applicable law or agreed to in writing, software 11 distributed under the License is distributed on an "AS IS" BASIS, 12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 See the License for the specific language governing permissions and 14 limitations under the License. 15 */ 16 17 package testapigroup 18 19 import ( 20 metav1 "github.com/spotmaxtech/k8s-apimachinery-v0260/pkg/apis/meta/v1" 21 ) 22 23 type ( 24 ConditionStatus string 25 CarpConditionType string 26 CarpPhase string 27 RestartPolicy string 28 ) 29 30 // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object 31 32 // Carp is a collection of containers, used as either input (create, update) or as output (list, get). 33 type Carp struct { 34 metav1.TypeMeta 35 // +optional 36 metav1.ObjectMeta 37 38 // Spec defines the behavior of a carp. 39 // +optional 40 Spec CarpSpec 41 42 // Status represents the current information about a carp. This data may not be up 43 // to date. 44 // +optional 45 Status CarpStatus 46 } 47 48 // CarpStatus represents information about the status of a carp. Status may trail the actual 49 // state of a system. 50 type CarpStatus struct { 51 // +optional 52 Phase CarpPhase 53 // +optional 54 Conditions []CarpCondition 55 // A human readable message indicating details about why the carp is in this state. 56 // +optional 57 Message string 58 // A brief CamelCase message indicating details about why the carp is in this state. e.g. 'DiskPressure' 59 // +optional 60 Reason string 61 62 // +optional 63 HostIP string 64 // +optional 65 CarpIP string 66 67 // Date and time at which the object was acknowledged by the Kubelet. 68 // This is before the Kubelet pulled the container image(s) for the carp. 69 // +optional 70 StartTime *metav1.Time 71 } 72 73 type CarpCondition struct { 74 Type CarpConditionType 75 Status ConditionStatus 76 // +optional 77 LastProbeTime metav1.Time 78 // +optional 79 LastTransitionTime metav1.Time 80 // +optional 81 Reason string 82 // +optional 83 Message string 84 } 85 86 // CarpSpec is a description of a carp 87 type CarpSpec struct { 88 // +optional 89 RestartPolicy RestartPolicy 90 // Optional duration in seconds the carp needs to terminate gracefully. May be decreased in delete request. 91 // Value must be non-negative integer. The value zero indicates delete immediately. 92 // If this value is nil, the default grace period will be used instead. 93 // The grace period is the duration in seconds after the processes running in the carp are sent 94 // a termination signal and the time when the processes are forcibly halted with a kill signal. 95 // Set this value longer than the expected cleanup time for your process. 96 // +optional 97 TerminationGracePeriodSeconds *int64 98 // Optional duration in seconds relative to the StartTime that the carp may be active on a node 99 // before the system actively tries to terminate the carp; value must be positive integer 100 // +optional 101 ActiveDeadlineSeconds *int64 102 // NodeSelector is a selector which must be true for the carp to fit on a node 103 // +optional 104 NodeSelector map[string]string 105 106 // ServiceAccountName is the name of the ServiceAccount to use to run this carp 107 // The carp will be allowed to use secrets referenced by the ServiceAccount 108 ServiceAccountName string 109 110 // NodeName is a request to schedule this carp onto a specific node. If it is non-empty, 111 // the scheduler simply schedules this carp onto that node, assuming that it fits resource 112 // requirements. 113 // +optional 114 NodeName string 115 // Specifies the hostname of the Carp. 116 // If not specified, the carp's hostname will be set to a system-defined value. 117 // +optional 118 Hostname string 119 // If specified, the fully qualified Carp hostname will be "<hostname>.<subdomain>.<carp namespace>.svc.<cluster domain>". 120 // If not specified, the carp will not have a domainname at all. 121 // +optional 122 Subdomain string 123 // If specified, the carp will be dispatched by specified scheduler. 124 // If not specified, the carp will be dispatched by default scheduler. 125 // +optional 126 SchedulerName string 127 } 128 129 // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object 130 131 // CarpList is a list of Carps. 132 type CarpList struct { 133 metav1.TypeMeta 134 // +optional 135 metav1.ListMeta 136 137 Items []Carp 138 }