Skip to content

Commit b89c648

Browse files
authored
Merge pull request #295 from kukacz/publish-pkg-cluster-api-metal3-ipam
Add cluster-api-metal3-ipam module
2 parents 2ac3c44 + b2c0d55 commit b89c648

File tree

6 files changed

+701
-0
lines changed

6 files changed

+701
-0
lines changed

cluster-api-metal3-ipam/README.md

Lines changed: 192 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,192 @@
1+
# ip-address-manager
2+
3+
## Index
4+
5+
- v1alpha1
6+
- [IPAddress](#ipaddress)
7+
- [IPClaim](#ipclaim)
8+
- [IPPool](#ippool)
9+
- [IpamMetal3IoV1alpha1IPAddressSpec](#ipammetal3iov1alpha1ipaddressspec)
10+
- [IpamMetal3IoV1alpha1IPAddressSpecClaim](#ipammetal3iov1alpha1ipaddressspecclaim)
11+
- [IpamMetal3IoV1alpha1IPAddressSpecPool](#ipammetal3iov1alpha1ipaddressspecpool)
12+
- [IpamMetal3IoV1alpha1IPClaimSpec](#ipammetal3iov1alpha1ipclaimspec)
13+
- [IpamMetal3IoV1alpha1IPClaimSpecPool](#ipammetal3iov1alpha1ipclaimspecpool)
14+
- [IpamMetal3IoV1alpha1IPClaimStatus](#ipammetal3iov1alpha1ipclaimstatus)
15+
- [IpamMetal3IoV1alpha1IPClaimStatusAddress](#ipammetal3iov1alpha1ipclaimstatusaddress)
16+
- [IpamMetal3IoV1alpha1IPPoolSpec](#ipammetal3iov1alpha1ippoolspec)
17+
- [IpamMetal3IoV1alpha1IPPoolSpecPoolsItems0](#ipammetal3iov1alpha1ippoolspecpoolsitems0)
18+
- [IpamMetal3IoV1alpha1IPPoolStatus](#ipammetal3iov1alpha1ippoolstatus)
19+
20+
## Schemas
21+
22+
### IPAddress
23+
24+
IPAddress is the Schema for the ipaddresses API.
25+
26+
#### Attributes
27+
28+
| name | type | description | default value |
29+
| --- | --- | --- | --- |
30+
|**apiVersion** `required` `readOnly`|"ipam.metal3.io/v1alpha1"|APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources|"ipam.metal3.io/v1alpha1"|
31+
|**kind** `required` `readOnly`|"IPAddress"|Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds|"IPAddress"|
32+
|**metadata**|[ObjectMeta](#objectmeta)|metadata||
33+
|**spec**|[IpamMetal3IoV1alpha1IPAddressSpec](#ipammetal3iov1alpha1ipaddressspec)|spec||
34+
### IPClaim
35+
36+
IPClaim is the Schema for the ipclaims API.
37+
38+
#### Attributes
39+
40+
| name | type | description | default value |
41+
| --- | --- | --- | --- |
42+
|**apiVersion** `required` `readOnly`|"ipam.metal3.io/v1alpha1"|APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources|"ipam.metal3.io/v1alpha1"|
43+
|**kind** `required` `readOnly`|"IPClaim"|Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds|"IPClaim"|
44+
|**metadata**|[ObjectMeta](#objectmeta)|metadata||
45+
|**spec**|[IpamMetal3IoV1alpha1IPClaimSpec](#ipammetal3iov1alpha1ipclaimspec)|spec||
46+
|**status**|[IpamMetal3IoV1alpha1IPClaimStatus](#ipammetal3iov1alpha1ipclaimstatus)|status||
47+
### IPPool
48+
49+
IPPool is the Schema for the ippools API.
50+
51+
#### Attributes
52+
53+
| name | type | description | default value |
54+
| --- | --- | --- | --- |
55+
|**apiVersion** `required` `readOnly`|"ipam.metal3.io/v1alpha1"|APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources|"ipam.metal3.io/v1alpha1"|
56+
|**kind** `required` `readOnly`|"IPPool"|Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds|"IPPool"|
57+
|**metadata**|[ObjectMeta](#objectmeta)|metadata||
58+
|**spec**|[IpamMetal3IoV1alpha1IPPoolSpec](#ipammetal3iov1alpha1ippoolspec)|spec||
59+
|**status**|[IpamMetal3IoV1alpha1IPPoolStatus](#ipammetal3iov1alpha1ippoolstatus)|status||
60+
### IpamMetal3IoV1alpha1IPAddressSpec
61+
62+
IPAddressSpec defines the desired state of IPAddress.
63+
64+
#### Attributes
65+
66+
| name | type | description | default value |
67+
| --- | --- | --- | --- |
68+
|**address** `required`|str|Address contains the IP address||
69+
|**claim** `required`|[IpamMetal3IoV1alpha1IPAddressSpecClaim](#ipammetal3iov1alpha1ipaddressspecclaim)|claim||
70+
|**dnsServers**|[str]|DNSServers is the list of dns servers||
71+
|**gateway**|str|Gateway is the gateway ip address||
72+
|**pool** `required`|[IpamMetal3IoV1alpha1IPAddressSpecPool](#ipammetal3iov1alpha1ipaddressspecpool)|pool||
73+
|**prefix**|int|Prefix is the mask of the network as integer (max 128)||
74+
### IpamMetal3IoV1alpha1IPAddressSpecClaim
75+
76+
Claim points to the object the IPClaim was created for.
77+
78+
#### Attributes
79+
80+
| name | type | description | default value |
81+
| --- | --- | --- | --- |
82+
|**apiVersion**|str|API version of the referent.||
83+
|**fieldPath**|str|If referring to a piece of an object instead of an entire object, this string<br />should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2].<br />For example, if the object reference is to a container within a pod, this would take on a value like:<br />"spec.containers{name}" (where "name" refers to the name of the container that triggered<br />the event) or if no container name is specified "spec.containers[2]" (container with<br />index 2 in this pod). This syntax is chosen only to have some well-defined way of<br />referencing a part of an object.||
84+
|**kind**|str|Kind of the referent.<br />More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds||
85+
|**name**|str|Name of the referent.<br />More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names||
86+
|**namespace**|str|Namespace of the referent.<br />More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/||
87+
|**resourceVersion**|str|Specific resourceVersion to which this reference is made, if any.<br />More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency||
88+
|**uid**|str|UID of the referent.<br />More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids||
89+
### IpamMetal3IoV1alpha1IPAddressSpecPool
90+
91+
Pool is the IPPool this was generated from.
92+
93+
#### Attributes
94+
95+
| name | type | description | default value |
96+
| --- | --- | --- | --- |
97+
|**apiVersion**|str|API version of the referent.||
98+
|**fieldPath**|str|If referring to a piece of an object instead of an entire object, this string<br />should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2].<br />For example, if the object reference is to a container within a pod, this would take on a value like:<br />"spec.containers{name}" (where "name" refers to the name of the container that triggered<br />the event) or if no container name is specified "spec.containers[2]" (container with<br />index 2 in this pod). This syntax is chosen only to have some well-defined way of<br />referencing a part of an object.||
99+
|**kind**|str|Kind of the referent.<br />More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds||
100+
|**name**|str|Name of the referent.<br />More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names||
101+
|**namespace**|str|Namespace of the referent.<br />More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/||
102+
|**resourceVersion**|str|Specific resourceVersion to which this reference is made, if any.<br />More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency||
103+
|**uid**|str|UID of the referent.<br />More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids||
104+
### IpamMetal3IoV1alpha1IPClaimSpec
105+
106+
IPClaimSpec defines the desired state of IPClaim.
107+
108+
#### Attributes
109+
110+
| name | type | description | default value |
111+
| --- | --- | --- | --- |
112+
|**pool** `required`|[IpamMetal3IoV1alpha1IPClaimSpecPool](#ipammetal3iov1alpha1ipclaimspecpool)|pool||
113+
### IpamMetal3IoV1alpha1IPClaimSpecPool
114+
115+
Pool is the IPPool this was generated from.
116+
117+
#### Attributes
118+
119+
| name | type | description | default value |
120+
| --- | --- | --- | --- |
121+
|**apiVersion**|str|API version of the referent.||
122+
|**fieldPath**|str|If referring to a piece of an object instead of an entire object, this string<br />should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2].<br />For example, if the object reference is to a container within a pod, this would take on a value like:<br />"spec.containers{name}" (where "name" refers to the name of the container that triggered<br />the event) or if no container name is specified "spec.containers[2]" (container with<br />index 2 in this pod). This syntax is chosen only to have some well-defined way of<br />referencing a part of an object.||
123+
|**kind**|str|Kind of the referent.<br />More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds||
124+
|**name**|str|Name of the referent.<br />More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names||
125+
|**namespace**|str|Namespace of the referent.<br />More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/||
126+
|**resourceVersion**|str|Specific resourceVersion to which this reference is made, if any.<br />More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency||
127+
|**uid**|str|UID of the referent.<br />More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids||
128+
### IpamMetal3IoV1alpha1IPClaimStatus
129+
130+
IPClaimStatus defines the observed state of IPClaim.
131+
132+
#### Attributes
133+
134+
| name | type | description | default value |
135+
| --- | --- | --- | --- |
136+
|**address**|[IpamMetal3IoV1alpha1IPClaimStatusAddress](#ipammetal3iov1alpha1ipclaimstatusaddress)|address||
137+
|**errorMessage**|str|ErrorMessage contains the error message||
138+
### IpamMetal3IoV1alpha1IPClaimStatusAddress
139+
140+
Address is the IPAddress that was generated for this claim.
141+
142+
#### Attributes
143+
144+
| name | type | description | default value |
145+
| --- | --- | --- | --- |
146+
|**apiVersion**|str|API version of the referent.||
147+
|**fieldPath**|str|If referring to a piece of an object instead of an entire object, this string<br />should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2].<br />For example, if the object reference is to a container within a pod, this would take on a value like:<br />"spec.containers{name}" (where "name" refers to the name of the container that triggered<br />the event) or if no container name is specified "spec.containers[2]" (container with<br />index 2 in this pod). This syntax is chosen only to have some well-defined way of<br />referencing a part of an object.||
148+
|**kind**|str|Kind of the referent.<br />More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds||
149+
|**name**|str|Name of the referent.<br />More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names||
150+
|**namespace**|str|Namespace of the referent.<br />More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/||
151+
|**resourceVersion**|str|Specific resourceVersion to which this reference is made, if any.<br />More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency||
152+
|**uid**|str|UID of the referent.<br />More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids||
153+
### IpamMetal3IoV1alpha1IPPoolSpec
154+
155+
IPPoolSpec defines the desired state of IPPool.
156+
157+
#### Attributes
158+
159+
| name | type | description | default value |
160+
| --- | --- | --- | --- |
161+
|**clusterName**|str|ClusterName is the name of the Cluster this object belongs to.||
162+
|**dnsServers**|[str]|DNSServers is the list of dns servers||
163+
|**gateway**|str|Gateway is the gateway ip address||
164+
|**namePrefix** `required`|str|namePrefix is the prefix used to generate the IPAddress object names||
165+
|**pools**|[[IpamMetal3IoV1alpha1IPPoolSpecPoolsItems0](#ipammetal3iov1alpha1ippoolspecpoolsitems0)]|Pools contains the list of IP addresses pools||
166+
|**preAllocations**|{str:str}|PreAllocations contains the preallocated IP addresses||
167+
|**prefix**|int|Prefix is the mask of the network as integer (max 128)||
168+
### IpamMetal3IoV1alpha1IPPoolSpecPoolsItems0
169+
170+
MetaDataIPAddress contains the info to render th ip address. It is IP-version agnostic.
171+
172+
#### Attributes
173+
174+
| name | type | description | default value |
175+
| --- | --- | --- | --- |
176+
|**dnsServers**|[str]|DNSServers is the list of dns servers||
177+
|**end**|str|End is the last IP address that can be rendered. It is used as a validation<br />that the rendered IP is in bound.||
178+
|**gateway**|str|Gateway is the gateway ip address||
179+
|**prefix**|int|Prefix is the mask of the network as integer (max 128)||
180+
|**start**|str|Start is the first ip address that can be rendered||
181+
|**subnet**|str|Subnet is used to validate that the rendered IP is in bounds. In case the<br />Start value is not given, it is derived from the subnet ip incremented by 1<br />(`192.168.0.1` for `192.168.0.0/24`)||
182+
### IpamMetal3IoV1alpha1IPPoolStatus
183+
184+
IPPoolStatus defines the observed state of IPPool.
185+
186+
#### Attributes
187+
188+
| name | type | description | default value |
189+
| --- | --- | --- | --- |
190+
|**indexes**|{str:str}|Allocations contains the map of objects and IP addresses they have||
191+
|**lastUpdated**|str|LastUpdated identifies when this status was last observed.||
192+
<!-- Auto generated by kcl-doc tool, please do not edit. -->

cluster-api-metal3-ipam/kcl.mod

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
[package]
2+
name = "cluster-api-metal3-ipam"
3+
edition = "*"
4+
version = "v1.10.1"
5+
description = "KCL package for https://github.com/metal3-io/ip-address-manager CRDs"
6+
7+
[dependencies]
8+
k8s = "1.32.4"

cluster-api-metal3-ipam/kcl.mod.lock

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
[dependencies]
2+
[dependencies.k8s]
3+
name = "k8s"
4+
full_name = "k8s_1.32.4"
5+
version = "1.32.4"
6+
sum = "WrltC/mTXtdzmhBZxlvM71wJL5C/UZ/vW+bF3nFvNbM="

0 commit comments

Comments
 (0)