1package v1beta1
2
3import "cue.dev/x/k8s.io/apimachinery/pkg/apis/meta/v1"
4
5// IPAddress represents a single IP of a single IP Family. The object is
6// designed to be used by APIs that operate on IP addresses. The object is used
7// by the Service core API for allocation of IP addresses. An IP address can be
8// represented in different formats, to guarantee the uniqueness of the IP, the
9// name of the object is the IP address in canonical format, four decimal
10// digits separated by dots suppressing leading zeros for IPv4 and the
11// representation defined by RFC 5952 for IPv6. Valid: 192.168.1.5 or
12// 2001:db8::1 or 2001:db8:aaaa:bbbb:cccc:dddd:eeee:1 Invalid: 10.01.2.3 or
13// 2001:db8:0:0:0::1
14#IPAddress: {
15 // APIVersion defines the versioned schema of this representation of an object.
16 // Servers should convert recognized schemas to the latest internal value, and
17 // may reject unrecognized values. More info:
18 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
19 "apiVersion": "networking.k8s.io/v1beta1"
20
21 // Kind is a string value representing the REST resource this object represents.
22 // Servers may infer this from the endpoint the client submits requests to.
23 // Cannot be updated. In CamelCase. More info:
24 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
25 "kind": "IPAddress"
26
27 // Standard object's metadata. More info:
28 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
29 "metadata"?: v1.#ObjectMeta
30
31 // spec is the desired state of the IPAddress. More info:
32 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
33 "spec"!: #IPAddressSpec
34}
35
36// IPAddressList contains a list of IPAddress.
37#IPAddressList: {
38 // APIVersion defines the versioned schema of this representation of an object.
39 // Servers should convert recognized schemas to the latest internal value, and
40 // may reject unrecognized values. More info:
41 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
42 "apiVersion": "networking.k8s.io/v1beta1"
43
44 // items is the list of IPAddresses.
45 "items"!: [...#IPAddress]
46
47 // Kind is a string value representing the REST resource this object represents.
48 // Servers may infer this from the endpoint the client submits requests to.
49 // Cannot be updated. In CamelCase. More info:
50 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
51 "kind": "IPAddressList"
52
53 // Standard object's metadata. More info:
54 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
55 "metadata"?: v1.#ListMeta
56}
57
58// IPAddressSpec describe the attributes in an IP Address.
59#IPAddressSpec: {
60 // ParentRef references the resource that an IPAddress is attached to. An
61 // IPAddress must reference a parent object.
62 "parentRef"!: #ParentReference
63}
64
65// ParentReference describes a reference to a parent object.
66#ParentReference: {
67 // Group is the group of the object being referenced.
68 "group"?: string
69
70 // Name is the name of the object being referenced.
71 "name"!: string
72
73 // Namespace is the namespace of the object being referenced.
74 "namespace"?: string
75
76 // Resource is the resource of the object being referenced.
77 "resource"!: string
78}
79
80// ServiceCIDR defines a range of IP addresses using CIDR format (e.g.
81// 192.168.0.0/24 or 2001:db2::/64). This range is used to allocate ClusterIPs
82// to Service objects.
83#ServiceCIDR: {
84 // APIVersion defines the versioned schema of this representation of an object.
85 // Servers should convert recognized schemas to the latest internal value, and
86 // may reject unrecognized values. More info:
87 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
88 "apiVersion": "networking.k8s.io/v1beta1"
89
90 // Kind is a string value representing the REST resource this object represents.
91 // Servers may infer this from the endpoint the client submits requests to.
92 // Cannot be updated. In CamelCase. More info:
93 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
94 "kind": "ServiceCIDR"
95
96 // Standard object's metadata. More info:
97 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
98 "metadata"?: v1.#ObjectMeta
99
100 // spec is the desired state of the ServiceCIDR. More info:
101 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
102 "spec"?: #ServiceCIDRSpec
103
104 // status represents the current state of the ServiceCIDR. More info:
105 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
106 "status"?: #ServiceCIDRStatus
107}
108
109// ServiceCIDRList contains a list of ServiceCIDR objects.
110#ServiceCIDRList: {
111 // APIVersion defines the versioned schema of this representation of an object.
112 // Servers should convert recognized schemas to the latest internal value, and
113 // may reject unrecognized values. More info:
114 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
115 "apiVersion": "networking.k8s.io/v1beta1"
116
117 // items is the list of ServiceCIDRs.
118 "items"!: [...#ServiceCIDR]
119
120 // Kind is a string value representing the REST resource this object represents.
121 // Servers may infer this from the endpoint the client submits requests to.
122 // Cannot be updated. In CamelCase. More info:
123 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
124 "kind": "ServiceCIDRList"
125
126 // Standard object's metadata. More info:
127 // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
128 "metadata"?: v1.#ListMeta
129}
130
131// ServiceCIDRSpec define the CIDRs the user wants to use for allocating ClusterIPs for Services.
132#ServiceCIDRSpec: {
133 // CIDRs defines the IP blocks in CIDR notation (e.g. "192.168.0.0/24" or
134 // "2001:db8::/64") from which to assign service cluster IPs. Max of two CIDRs
135 // is allowed, one of each IP family. This field is immutable.
136 "cidrs"?: [...string]
137}
138
139// ServiceCIDRStatus describes the current state of the ServiceCIDR.
140#ServiceCIDRStatus: {
141 // conditions holds an array of metav1.Condition that describe the state of the
142 // ServiceCIDR. Current service state
143 "conditions"?: [...v1.#Condition]
144}