diff --git a/.gitignore b/.gitignore index 4d4232cea0..039565c86f 100644 --- a/.gitignore +++ b/.gitignore @@ -173,6 +173,7 @@ sshuttle.pid # Book docs/book/book/ +!docs/book/gen-crd-api-reference-docs/config.json # venv .venv diff --git a/Makefile b/Makefile index 26d974652f..172fb11c2e 100644 --- a/Makefile +++ b/Makefile @@ -52,6 +52,7 @@ KUSTOMIZE := $(TOOLS_BIN_DIR)/kustomize MOCKGEN := $(TOOLS_BIN_DIR)/mockgen RELEASE_NOTES := $(TOOLS_BIN_DIR)/release-notes SETUP_ENVTEST := $(TOOLS_BIN_DIR)/setup-envtest +GEN_CRD_API_REFERENCE_DOCS := $(TOOLS_BIN_DIR)/gen-crd-api-reference-docs # Kubebuilder export KUBEBUILDER_ENVTEST_KUBERNETES_VERSION ?= 1.28.0 @@ -245,7 +246,7 @@ modules: ## Runs go mod to ensure proper vendoring. cd $(TOOLS_DIR); go mod tidy .PHONY: generate -generate: generate-controller-gen generate-conversion-gen generate-go generate-manifests ## Generate all generated code +generate: generate-controller-gen generate-conversion-gen generate-go generate-manifests generate-api-docs ## Generate all generated code .PHONY: generate-go generate-go: $(MOCKGEN) @@ -282,6 +283,24 @@ generate-manifests: $(CONTROLLER_GEN) ## Generate manifests e.g. CRD, RBAC etc. output:rbac:dir=$(RBAC_ROOT) \ rbac:roleName=manager-role +.PHONY: generate-api-docs +generate-api-docs: $(GEN_CRD_API_REFERENCE_DOCS) ## Generate api documentation + $(GEN_CRD_API_REFERENCE_DOCS) \ + -api-dir=./api/v1beta1 \ + -config=./docs/book/gen-crd-api-reference-docs/config.json \ + -template-dir=./docs/book/gen-crd-api-reference-docs/template \ + -out-file=./docs/book/src/api/v1beta1/api.md + $(GEN_CRD_API_REFERENCE_DOCS) \ + -api-dir=./api/v1alpha7 \ + -config=./docs/book/gen-crd-api-reference-docs/config.json \ + -template-dir=./docs/book/gen-crd-api-reference-docs/template \ + -out-file=./docs/book/src/api/v1alpha7/api.md + $(GEN_CRD_API_REFERENCE_DOCS) \ + -api-dir=./api/v1alpha6 \ + -config=./docs/book/gen-crd-api-reference-docs/config.json \ + -template-dir=./docs/book/gen-crd-api-reference-docs/template \ + -out-file=./docs/book/src/api/v1alpha6/api.md + ## -------------------------------------- ##@ Docker ## -------------------------------------- diff --git a/api/v1alpha6/doc.go b/api/v1alpha6/doc.go index 8b8c08cd51..054e69741f 100644 --- a/api/v1alpha6/doc.go +++ b/api/v1alpha6/doc.go @@ -14,5 +14,8 @@ See the License for the specific language governing permissions and limitations under the License. */ +// Package v1alpha6 contains API Schema definitions for the infrastructure v1alpha6 API group. +// +kubebuilder:object:generate=true +// +groupName=infrastructure.cluster.x-k8s.io // +k8s:conversion-gen=sigs.k8s.io/cluster-api-provider-openstack/api/v1beta1 package v1alpha6 diff --git a/api/v1alpha6/groupversion_info.go b/api/v1alpha6/groupversion_info.go index ffc696467f..1b2ae50550 100644 --- a/api/v1alpha6/groupversion_info.go +++ b/api/v1alpha6/groupversion_info.go @@ -14,9 +14,6 @@ See the License for the specific language governing permissions and limitations under the License. */ -// package v1alpha6 contains API Schema definitions for the infrastructure v1alpha6 API group -// +kubebuilder:object:generate=true -// +groupName=infrastructure.cluster.x-k8s.io package v1alpha6 import ( diff --git a/api/v1alpha6/openstackcluster_types.go b/api/v1alpha6/openstackcluster_types.go index 3d7ba3d13c..e3a0d82a42 100644 --- a/api/v1alpha6/openstackcluster_types.go +++ b/api/v1alpha6/openstackcluster_types.go @@ -212,6 +212,8 @@ type OpenStackClusterStatus struct { FailureMessage *string `json:"failureMessage,omitempty"` } +// +genclient +// +genclient:Namespaced // +kubebuilder:object:root=true // +kubebuilder:deprecatedversion:warning="The v1alpha6 version of OpenStackCluster has been deprecated and will be removed in a future release of the API. Please upgrade." // +kubebuilder:resource:path=openstackclusters,scope=Namespaced,categories=cluster-api,shortName=osc diff --git a/api/v1alpha6/openstackclustertemplate_types.go b/api/v1alpha6/openstackclustertemplate_types.go index c76170dd52..8e5115a793 100644 --- a/api/v1alpha6/openstackclustertemplate_types.go +++ b/api/v1alpha6/openstackclustertemplate_types.go @@ -30,6 +30,8 @@ type OpenStackClusterTemplateSpec struct { Template OpenStackClusterTemplateResource `json:"template"` } +// +genclient +// +genclient:Namespaced // +kubebuilder:object:root=true // +kubebuilder:deprecatedversion:warning="The v1alpha6 version of OpenStackClusterTemplate has been deprecated and will be removed in a future release of the API. Please upgrade." // +kubebuilder:resource:path=openstackclustertemplates,scope=Namespaced,categories=cluster-api,shortName=osct diff --git a/api/v1alpha6/openstackmachine_types.go b/api/v1alpha6/openstackmachine_types.go index 7dc263f099..9048c181ca 100644 --- a/api/v1alpha6/openstackmachine_types.go +++ b/api/v1alpha6/openstackmachine_types.go @@ -136,6 +136,8 @@ type OpenStackMachineStatus struct { Conditions clusterv1.Conditions `json:"conditions,omitempty"` } +// +genclient +// +genclient:Namespaced // +kubebuilder:object:root=true // +kubebuilder:deprecatedversion:warning="The v1alpha6 version of OpenStackMachine has been deprecated and will be removed in a future release of the API. Please upgrade." // +kubebuilder:resource:path=openstackmachines,scope=Namespaced,categories=cluster-api,shortName=osm diff --git a/api/v1alpha6/openstackmachinetemplate_types.go b/api/v1alpha6/openstackmachinetemplate_types.go index 6dbddaa85e..d1fd2f0895 100644 --- a/api/v1alpha6/openstackmachinetemplate_types.go +++ b/api/v1alpha6/openstackmachinetemplate_types.go @@ -25,6 +25,8 @@ type OpenStackMachineTemplateSpec struct { Template OpenStackMachineTemplateResource `json:"template"` } +// +genclient +// +genclient:Namespaced // +kubebuilder:object:root=true // +kubebuilder:deprecatedversion:warning="The v1alpha6 version of OpenStackMachineTemplate has been deprecated and will be removed in a future release of the API. Please upgrade." // +kubebuilder:resource:path=openstackmachinetemplates,scope=Namespaced,categories=cluster-api,shortName=osmt diff --git a/api/v1alpha7/doc.go b/api/v1alpha7/doc.go index 84a3ca41b1..0c61ce4c18 100644 --- a/api/v1alpha7/doc.go +++ b/api/v1alpha7/doc.go @@ -14,5 +14,8 @@ See the License for the specific language governing permissions and limitations under the License. */ +// Package v1alpha7 contains API Schema definitions for the infrastructure v1alpha7 API group. +// +kubebuilder:object:generate=true +// +groupName=infrastructure.cluster.x-k8s.io // +k8s:conversion-gen=sigs.k8s.io/cluster-api-provider-openstack/api/v1beta1 package v1alpha7 diff --git a/api/v1alpha7/groupversion_info.go b/api/v1alpha7/groupversion_info.go index bc23eee49e..e3aadf9ff5 100644 --- a/api/v1alpha7/groupversion_info.go +++ b/api/v1alpha7/groupversion_info.go @@ -14,9 +14,6 @@ See the License for the specific language governing permissions and limitations under the License. */ -// package v1alpha7 contains API Schema definitions for the infrastructure v1alpha7 API group -// +kubebuilder:object:generate=true -// +groupName=infrastructure.cluster.x-k8s.io package v1alpha7 import ( diff --git a/api/v1alpha7/openstackcluster_types.go b/api/v1alpha7/openstackcluster_types.go index e822e02872..ef0ea51702 100644 --- a/api/v1alpha7/openstackcluster_types.go +++ b/api/v1alpha7/openstackcluster_types.go @@ -229,6 +229,8 @@ type OpenStackClusterStatus struct { FailureMessage *string `json:"failureMessage,omitempty"` } +// +genclient +// +genclient:Namespaced // +kubebuilder:object:root=true // +kubebuilder:resource:path=openstackclusters,scope=Namespaced,categories=cluster-api,shortName=osc // +kubebuilder:subresource:status diff --git a/api/v1alpha7/openstackclustertemplate_types.go b/api/v1alpha7/openstackclustertemplate_types.go index 0c02a154b3..1c9a41b206 100644 --- a/api/v1alpha7/openstackclustertemplate_types.go +++ b/api/v1alpha7/openstackclustertemplate_types.go @@ -30,8 +30,10 @@ type OpenStackClusterTemplateSpec struct { Template OpenStackClusterTemplateResource `json:"template"` } -//+kubebuilder:object:root=true -//+kubebuilder:resource:path=openstackclustertemplates,scope=Namespaced,categories=cluster-api,shortName=osct +// +genclient +// +genclient:Namespaced +// +kubebuilder:object:root=true +// +kubebuilder:resource:path=openstackclustertemplates,scope=Namespaced,categories=cluster-api,shortName=osct // OpenStackClusterTemplate is the Schema for the openstackclustertemplates API. type OpenStackClusterTemplate struct { diff --git a/api/v1alpha7/openstackmachine_types.go b/api/v1alpha7/openstackmachine_types.go index e70075ecff..1cc5378573 100644 --- a/api/v1alpha7/openstackmachine_types.go +++ b/api/v1alpha7/openstackmachine_types.go @@ -136,6 +136,8 @@ type OpenStackMachineStatus struct { Conditions clusterv1.Conditions `json:"conditions,omitempty"` } +// +genclient +// +genclient:Namespaced // +kubebuilder:object:root=true // +kubebuilder:resource:path=openstackmachines,scope=Namespaced,categories=cluster-api,shortName=osm // +kubebuilder:subresource:status diff --git a/api/v1alpha7/openstackmachinetemplate_types.go b/api/v1alpha7/openstackmachinetemplate_types.go index 3eeda6ad7a..dc0eb97c07 100644 --- a/api/v1alpha7/openstackmachinetemplate_types.go +++ b/api/v1alpha7/openstackmachinetemplate_types.go @@ -25,6 +25,8 @@ type OpenStackMachineTemplateSpec struct { Template OpenStackMachineTemplateResource `json:"template"` } +// +genclient +// +genclient:Namespaced // +kubebuilder:object:root=true // +kubebuilder:resource:path=openstackmachinetemplates,scope=Namespaced,categories=cluster-api,shortName=osmt diff --git a/api/v1beta1/doc.go b/api/v1beta1/doc.go index 465e3a377a..4bd2e99487 100644 --- a/api/v1beta1/doc.go +++ b/api/v1beta1/doc.go @@ -14,4 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ +// Package v1beta1 contains API Schema definitions for the infrastructure v1beta1 API group. +// +kubebuilder:object:generate=true +// +groupName=infrastructure.cluster.x-k8s.io package v1beta1 diff --git a/api/v1beta1/openstackcluster_types.go b/api/v1beta1/openstackcluster_types.go index 728310a82b..ff24c04f5b 100644 --- a/api/v1beta1/openstackcluster_types.go +++ b/api/v1beta1/openstackcluster_types.go @@ -235,6 +235,8 @@ type OpenStackClusterStatus struct { FailureMessage *string `json:"failureMessage,omitempty"` } +// +genclient +// +genclient:Namespaced // +kubebuilder:object:root=true // +kubebuilder:resource:path=openstackclusters,scope=Namespaced,categories=cluster-api,shortName=osc // +kubebuilder:storageversion diff --git a/api/v1beta1/openstackclustertemplate_types.go b/api/v1beta1/openstackclustertemplate_types.go index 2134595759..8516831b60 100644 --- a/api/v1beta1/openstackclustertemplate_types.go +++ b/api/v1beta1/openstackclustertemplate_types.go @@ -30,9 +30,11 @@ type OpenStackClusterTemplateSpec struct { Template OpenStackClusterTemplateResource `json:"template"` } -//+kubebuilder:object:root=true +// +genclient +// +genclient:Namespaced +// +kubebuilder:object:root=true // +kubebuilder:storageversion -//+kubebuilder:resource:path=openstackclustertemplates,scope=Namespaced,categories=cluster-api,shortName=osct +// +kubebuilder:resource:path=openstackclustertemplates,scope=Namespaced,categories=cluster-api,shortName=osct // OpenStackClusterTemplate is the Schema for the openstackclustertemplates API. type OpenStackClusterTemplate struct { diff --git a/api/v1beta1/openstackmachine_types.go b/api/v1beta1/openstackmachine_types.go index e08cf2ef82..c3f5ea367b 100644 --- a/api/v1beta1/openstackmachine_types.go +++ b/api/v1beta1/openstackmachine_types.go @@ -146,6 +146,8 @@ type OpenStackMachineStatus struct { Conditions clusterv1.Conditions `json:"conditions,omitempty"` } +// +genclient +// +genclient:Namespaced // +kubebuilder:object:root=true // +kubebuilder:storageversion // +kubebuilder:resource:path=openstackmachines,scope=Namespaced,categories=cluster-api,shortName=osm diff --git a/api/v1beta1/openstackmachinetemplate_types.go b/api/v1beta1/openstackmachinetemplate_types.go index c085f2620d..aff1e7060b 100644 --- a/api/v1beta1/openstackmachinetemplate_types.go +++ b/api/v1beta1/openstackmachinetemplate_types.go @@ -25,6 +25,8 @@ type OpenStackMachineTemplateSpec struct { Template OpenStackMachineTemplateResource `json:"template"` } +// +genclient +// +genclient:Namespaced // +kubebuilder:object:root=true // +kubebuilder:storageversion // +kubebuilder:resource:path=openstackmachinetemplates,scope=Namespaced,categories=cluster-api,shortName=osmt diff --git a/config/crd/bases/infrastructure.cluster.x-k8s.io_openstackclustertemplates.yaml b/config/crd/bases/infrastructure.cluster.x-k8s.io_openstackclustertemplates.yaml index 048769f3ab..a41fc0012e 100644 --- a/config/crd/bases/infrastructure.cluster.x-k8s.io_openstackclustertemplates.yaml +++ b/config/crd/bases/infrastructure.cluster.x-k8s.io_openstackclustertemplates.yaml @@ -2233,7 +2233,7 @@ spec: type: object type: object served: true - storage: false + storage: true - name: v1beta1 schema: openAPIV3Schema: diff --git a/docs/book/gen-crd-api-reference-docs/config.json b/docs/book/gen-crd-api-reference-docs/config.json new file mode 100644 index 0000000000..5c4e964917 --- /dev/null +++ b/docs/book/gen-crd-api-reference-docs/config.json @@ -0,0 +1,36 @@ +{ + "hideMemberFields": [ + "TypeMeta" + ], + "hideTypePatterns": [ + "ParseError$", + "List$" + ], + "externalPackages": [ + { + "typeMatchPrefix": "^k8s\\.io/apimachinery/pkg/apis/meta/v1\\.Duration$", + "docsURLTemplate": "https://pkg.go.dev/k8s.io/apimachinery/pkg/apis/meta/v1#Duration" + }, + { + "typeMatchPrefix": "^k8s\\.io/apimachinery/pkg/apis/meta/v1\\.Condition$", + "docsURLTemplate": "https://pkg.go.dev/k8s.io/apimachinery/pkg/apis/meta/v1#Condition" + }, + { + "typeMatchPrefix": "^sigs\\.k8s\\.io/cluster-api/api/v1beta1", + "docsURLTemplate": "https://doc.crds.dev/github.com/kubernetes-sigs/cluster-api@v1.5.1" + }, + { + "typeMatchPrefix": "^sigs\\.k8s\\.io/cluster-api/api/v1beta1", + "docsURLTemplate": "https://doc.crds.dev/github.com/kubernetes-sigs/cluster-api@v1.5.1" + }, + { + "typeMatchPrefix": "^sigs\\.k8s\\.io/cluster-api/errors", + "docsURLTemplate": "https://pkg.go.dev/sigs.k8s.io/cluster-api@v1.5.1/errors#{{.TypeIdentifier}}" + } + ], + "typeDisplayNamePrefixOverrides": { + "k8s.io/api/": "Kubernetes ", + "k8s.io/apimachinery/pkg/apis/": "Kubernetes " + }, + "markdownDisabled": false + } \ No newline at end of file diff --git a/docs/book/gen-crd-api-reference-docs/template/members.tpl b/docs/book/gen-crd-api-reference-docs/template/members.tpl new file mode 100644 index 0000000000..448ce2fb04 --- /dev/null +++ b/docs/book/gen-crd-api-reference-docs/template/members.tpl @@ -0,0 +1,48 @@ +{{ define "members" }} + +{{ range .Members }} +{{ if not (hiddenMember .)}} + + + {{ fieldName . }}
+ + {{ if linkForType .Type }} + + {{ typeDisplayName .Type }} + + {{ else }} + {{ typeDisplayName .Type }} + {{ end }} + + + + {{ if fieldEmbedded . }} +

+ (Members of {{ fieldName . }} are embedded into this type.) +

+ {{ end}} + + {{ if isOptionalMember .}} + (Optional) + {{ end }} + + {{ safe (renderComments .CommentLines) }} + + {{ if and (eq (.Type.Name.Name) "ObjectMeta") }} + Refer to the Kubernetes API documentation for the fields of the + metadata field. + {{ end }} + + {{ if or (eq (fieldName .) "spec") }} +
+
+ + {{ template "members" .Type }} +
+ {{ end }} + + +{{ end }} +{{ end }} + +{{ end }} \ No newline at end of file diff --git a/docs/book/gen-crd-api-reference-docs/template/pkg.tpl b/docs/book/gen-crd-api-reference-docs/template/pkg.tpl new file mode 100644 index 0000000000..e9a0697911 --- /dev/null +++ b/docs/book/gen-crd-api-reference-docs/template/pkg.tpl @@ -0,0 +1,37 @@ +{{ define "packages" }} + +{{ range .packages }} +

+ {{- packageDisplayName . -}} +

+ + {{ with (index .GoPackages 0 )}} + {{ with .DocComments }} +

+ {{ safe (renderComments .) }} +

+ {{ end }} + {{ end }} + + Resource Types: + + + {{ range (visibleTypes (sortedTypes .Types))}} + {{ template "type" . }} + {{ end }} +
+{{ end }} + +

+ Generated with gen-crd-api-reference-docs. +

+ +{{ end }} \ No newline at end of file diff --git a/docs/book/gen-crd-api-reference-docs/template/type.tpl b/docs/book/gen-crd-api-reference-docs/template/type.tpl new file mode 100644 index 0000000000..7ee5af5ab1 --- /dev/null +++ b/docs/book/gen-crd-api-reference-docs/template/type.tpl @@ -0,0 +1,81 @@ +{{ define "type" }} + +

+ {{- .Name.Name }} + {{ if eq .Kind "Alias" }}({{.Underlying}} alias)

{{ end -}} +

+{{ with (typeReferences .) }} +

+ (Appears on: + {{- $prev := "" -}} + {{- range . -}} + {{- if $prev -}}, {{ end -}} + {{ $prev = . }} + {{ typeDisplayName . }} + {{- end -}} + ) +

+{{ end }} + +

+ {{ safe (renderComments .CommentLines) }} +

+ +{{ with (constantsOfType .) }} + + + + + + + + + {{- range . -}} + + {{- /* + renderComments implicitly creates a

element, so we + add one to the display name as well to make the contents + of the two cells align evenly. + */ -}} +

+ + + {{- end -}} + +
ValueDescription

{{ typeDisplayName . }}

{{ safe (renderComments .CommentLines) }}
+{{ end }} + +{{ if .Members }} + + + + + + + + + {{ if isExportedType . }} + + + + + + + + + {{ end }} + {{ template "members" .}} + +
FieldDescription
+ apiVersion
+ string
+ + {{apiGroup .}} + +
+ kind
+ string +
{{.Name.Name}}
+{{ end }} + +{{ end }} \ No newline at end of file diff --git a/docs/book/src/SUMMARY.md b/docs/book/src/SUMMARY.md index 476311d1f7..9df5f2f500 100644 --- a/docs/book/src/SUMMARY.md +++ b/docs/book/src/SUMMARY.md @@ -12,5 +12,9 @@ - [v1alpha5 to v1alpha6](./topics/crd-changes/v1alpha5-to-v1alpha6.md) - [v1alpha6 to v1alpha7](./topics/crd-changes/v1alpha6-to-v1alpha7.md) - [v1alpha7 to v1beta1](./topics/crd-changes/v1alpha7-to-v1beta1.md) +- [API reference](./api/index.md) + - [v1alpha6](./api/v1alpha6/api.md) + - [v1alpha7](./api/v1alpha7/api.md) + - [v1beta1](./api/v1beta1/api.md) - [Development](./development/development.md) - [Hacking CI](./development/ci.md) diff --git a/docs/book/src/api/index.md b/docs/book/src/api/index.md new file mode 100644 index 0000000000..4ef12691eb --- /dev/null +++ b/docs/book/src/api/index.md @@ -0,0 +1 @@ +# API reference \ No newline at end of file diff --git a/docs/book/src/api/v1alpha6/api.md b/docs/book/src/api/v1alpha6/api.md new file mode 100644 index 0000000000..16ec7522c5 --- /dev/null +++ b/docs/book/src/api/v1alpha6/api.md @@ -0,0 +1,4218 @@ +

infrastructure.cluster.x-k8s.io/v1alpha6

+

+

Package v1alpha6 contains API Schema definitions for the infrastructure v1alpha6 API group.

+

+Resource Types: + +

OpenStackCluster +

+

+

OpenStackCluster is the Schema for the openstackclusters API.

+

Deprecated: This type will be removed in one of the next releases.

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+apiVersion
+string
+ +infrastructure.cluster.x-k8s.io/v1alpha6 + +
+kind
+string +
OpenStackCluster
+metadata
+ +Kubernetes meta/v1.ObjectMeta + +
+Refer to the Kubernetes API documentation for the fields of the +metadata field. +
+spec
+ + +OpenStackClusterSpec + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+cloudName
+ +string + +
+(Optional) +

The name of the cloud to use from the clouds secret

+
+nodeCidr
+ +string + +
+

NodeCIDR is the OpenStack Subnet to be created. Cluster actuator will create a +network, a subnet with NodeCIDR, and a router connected to this subnet. +If you leave this empty, no network will be created.

+
+network
+ + +NetworkFilter + + +
+

If NodeCIDR cannot be set this can be used to detect an existing network.

+
+subnet
+ + +SubnetFilter + + +
+

If NodeCIDR cannot be set this can be used to detect an existing subnet.

+
+dnsNameservers
+ +[]string + +
+

DNSNameservers is the list of nameservers for OpenStack Subnet being created. +Set this value when you need create a new network/subnet while the access +through DNS is required.

+
+externalRouterIPs
+ + +[]ExternalRouterIPParam + + +
+

ExternalRouterIPs is an array of externalIPs on the respective subnets. +This is necessary if the router needs a fixed ip in a specific subnet.

+
+externalNetworkId
+ +string + +
+(Optional) +

ExternalNetworkID is the ID of an external OpenStack Network. This is necessary +to get public internet to the VMs.

+
+apiServerLoadBalancer
+ + +APIServerLoadBalancer + + +
+(Optional) +

APIServerLoadBalancer configures the optional LoadBalancer for the APIServer. +It must be activated by setting enabled: true.

+
+disableAPIServerFloatingIP
+ +bool + +
+(Optional) +

DisableAPIServerFloatingIP determines whether or not to attempt to attach a floating +IP to the API server. This allows for the creation of clusters when attaching a floating +IP to the API server (and hence, in many cases, exposing the API server to the internet) +is not possible or desirable, e.g. if using a shared VLAN for communication between +management and workload clusters or when the management cluster is inside the +project network. +This option requires that the API server use a VIP on the cluster network so that the +underlying machines can change without changing ControlPlaneEndpoint.Host. +When using a managed load balancer, this VIP will be managed automatically. +If not using a managed load balancer, cluster configuration will fail without additional +configuration to manage the VIP on the control plane machines, which falls outside of +the scope of this controller.

+
+apiServerFloatingIP
+ +string + +
+

APIServerFloatingIP is the floatingIP which will be associated with the API server. +The floatingIP will be created if it does not already exist. +If not specified, a new floatingIP is allocated. +This field is not used if DisableAPIServerFloatingIP is set to true.

+
+apiServerFixedIP
+ +string + +
+

APIServerFixedIP is the fixed IP which will be associated with the API server. +In the case where the API server has a floating IP but not a managed load balancer, +this field is not used. +If a managed load balancer is used and this field is not specified, a fixed IP will +be dynamically allocated for the load balancer. +If a managed load balancer is not used AND the API server floating IP is disabled, +this field MUST be specified and should correspond to a pre-allocated port that +holds the fixed IP to be used as a VIP.

+
+apiServerPort
+ +int + +
+

APIServerPort is the port on which the listener on the APIServer +will be created

+
+managedSecurityGroups
+ +bool + +
+(Optional) +

ManagedSecurityGroups determines whether OpenStack security groups for the cluster +will be managed by the OpenStack provider or whether pre-existing security groups will +be specified as part of the configuration. +By default, the managed security groups have rules that allow the Kubelet, etcd, the +Kubernetes API server and the Calico CNI plugin to function correctly.

+
+allowAllInClusterTraffic
+ +bool + +
+(Optional) +

AllowAllInClusterTraffic is only used when managed security groups are in use. +If set to true, the rules for the managed security groups are configured so that all +ingress and egress between cluster nodes is permitted, allowing CNIs other than +Calico to be used.

+
+disablePortSecurity
+ +bool + +
+

DisablePortSecurity disables the port security of the network created for the +Kubernetes cluster, which also disables SecurityGroups

+
+tags
+ +[]string + +
+

Tags for all resources in cluster

+
+controlPlaneEndpoint
+ + +sigs.k8s.io/cluster-api/api/v1beta1.APIEndpoint + + +
+(Optional) +

ControlPlaneEndpoint represents the endpoint used to communicate with the control plane.

+
+controlPlaneAvailabilityZones
+ +[]string + +
+

ControlPlaneAvailabilityZones is the az to deploy control plane to

+
+controlPlaneOmitAvailabilityZone
+ +bool + +
+

Indicates whether to omit the az for control plane nodes, allowing the Nova scheduler +to make a decision on which az to use based on other scheduling constraints

+
+bastion
+ + +Bastion + + +
+(Optional) +

Bastion is the OpenStack instance to login the nodes

+

As a rolling update is not ideal during a bastion host session, we +prevent changes to a running bastion configuration. Set enabled: false to +make changes.

+
+identityRef
+ + +OpenStackIdentityReference + + +
+(Optional) +

IdentityRef is a reference to a identity to be used when reconciling this cluster

+
+
+status
+ + +OpenStackClusterStatus + + +
+
+

OpenStackClusterTemplate +

+

+

OpenStackClusterTemplate is the Schema for the openstackclustertemplates API.

+

Deprecated: This type will be removed in one of the next releases.

+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+apiVersion
+string
+ +infrastructure.cluster.x-k8s.io/v1alpha6 + +
+kind
+string +
OpenStackClusterTemplate
+metadata
+ +Kubernetes meta/v1.ObjectMeta + +
+Refer to the Kubernetes API documentation for the fields of the +metadata field. +
+spec
+ + +OpenStackClusterTemplateSpec + + +
+
+
+ + + + + +
+template
+ + +OpenStackClusterTemplateResource + + +
+
+
+

OpenStackMachine +

+

+

OpenStackMachine is the Schema for the openstackmachines API.

+

Deprecated: This type will be removed in one of the next releases.

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+apiVersion
+string
+ +infrastructure.cluster.x-k8s.io/v1alpha6 + +
+kind
+string +
OpenStackMachine
+metadata
+ +Kubernetes meta/v1.ObjectMeta + +
+Refer to the Kubernetes API documentation for the fields of the +metadata field. +
+spec
+ + +OpenStackMachineSpec + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+providerID
+ +string + +
+

ProviderID is the unique identifier as specified by the cloud provider.

+
+instanceID
+ +string + +
+

InstanceID is the OpenStack instance ID for this machine.

+
+cloudName
+ +string + +
+(Optional) +

The name of the cloud to use from the clouds secret

+
+flavor
+ +string + +
+

The flavor reference for the flavor for your server instance.

+
+image
+ +string + +
+

The name of the image to use for your server instance. +If the RootVolume is specified, this will be ignored and use rootVolume directly.

+
+imageUUID
+ +string + +
+

The uuid of the image to use for your server instance. +if it’s empty, Image name will be used

+
+sshKeyName
+ +string + +
+

The ssh key to inject in the instance

+
+networks
+ + +[]NetworkParam + + +
+

A networks object. Required parameter when there are multiple networks defined for the tenant. +When you do not specify both networks and ports parameters, the server attaches to the only network created for the current tenant.

+
+ports
+ + +[]PortOpts + + +
+

Ports to be attached to the server instance. They are created if a port with the given name does not already exist. +When you do not specify both networks and ports parameters, the server attaches to the only network created for the current tenant.

+
+subnet
+ +string + +
+

UUID, IP address of a port from this subnet will be marked as AccessIPv4 on the created compute instance

+
+floatingIP
+ +string + +
+

The floatingIP which will be associated to the machine, only used for master. +The floatingIP should have been created and haven’t been associated.

+
+securityGroups
+ + +[]SecurityGroupParam + + +
+

The names of the security groups to assign to the instance

+
+trunk
+ +bool + +
+

Whether the server instance is created on a trunk port or not.

+
+tags
+ +[]string + +
+

Machine tags +Requires Nova api 2.52 minimum!

+
+serverMetadata
+ +map[string]string + +
+

Metadata mapping. Allows you to create a map of key value pairs to add to the server instance.

+
+configDrive
+ +bool + +
+

Config Drive support

+
+rootVolume
+ + +RootVolume + + +
+

The volume metadata to boot from

+
+serverGroupID
+ +string + +
+

The server group to assign the machine to

+
+identityRef
+ + +OpenStackIdentityReference + + +
+(Optional) +

IdentityRef is a reference to a identity to be used when reconciling this cluster

+
+
+status
+ + +OpenStackMachineStatus + + +
+
+

OpenStackMachineTemplate +

+

+

OpenStackMachineTemplate is the Schema for the openstackmachinetemplates API.

+

Deprecated: This type will be removed in one of the next releases.

+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+apiVersion
+string
+ +infrastructure.cluster.x-k8s.io/v1alpha6 + +
+kind
+string +
OpenStackMachineTemplate
+metadata
+ +Kubernetes meta/v1.ObjectMeta + +
+Refer to the Kubernetes API documentation for the fields of the +metadata field. +
+spec
+ + +OpenStackMachineTemplateSpec + + +
+
+
+ + + + + +
+template
+ + +OpenStackMachineTemplateResource + + +
+
+
+

APIServerLoadBalancer +

+

+(Appears on: +OpenStackClusterSpec) +

+

+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+enabled
+ +bool + +
+

Enabled defines whether a load balancer should be created.

+
+additionalPorts
+ +[]int + +
+

AdditionalPorts adds additional tcp ports to the load balancer.

+
+allowedCidrs
+ +[]string + +
+

AllowedCIDRs restrict access to all API-Server listeners to the given address CIDRs.

+
+provider
+ +string + +
+

Octavia Provider Used to create load balancer

+
+

AddressPair +

+

+(Appears on: +PortOpts) +

+

+

+ + + + + + + + + + + + + + + + + +
FieldDescription
+ipAddress
+ +string + +
+
+macAddress
+ +string + +
+
+

Bastion +

+

+(Appears on: +OpenStackClusterSpec) +

+

+

Bastion represents basic information about the bastion node.

+

+ + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+enabled
+ +bool + +
+(Optional) +
+instance
+ + +OpenStackMachineSpec + + +
+

Instance for the bastion itself

+
+availabilityZone
+ +string + +
+(Optional) +
+

ExternalRouterIPParam +

+

+(Appears on: +OpenStackClusterSpec) +

+

+

+ + + + + + + + + + + + + + + + + +
FieldDescription
+fixedIP
+ +string + +
+

The FixedIP in the corresponding subnet

+
+subnet
+ + +SubnetParam + + +
+

The subnet in which the FixedIP is used for the Gateway of this router

+
+

FixedIP +

+

+(Appears on: +PortOpts) +

+

+

+ + + + + + + + + + + + + + + + + +
FieldDescription
+subnet
+ + +SubnetFilter + + +
+

Subnet is an openstack subnet query that will return the id of a subnet to create +the fixed IP of a port in. This query must not return more than one subnet.

+
+ipAddress
+ +string + +
+
+

Instance +

+

+(Appears on: +OpenStackClusterStatus) +

+

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+id
+ +string + +
+
+name
+ +string + +
+
+trunk
+ +bool + +
+
+failureDomain
+ +string + +
+
+securigyGroups
+ +[]string + +
+
+networks
+ + +[]Network + + +
+
+subnet
+ +string + +
+
+tags
+ +[]string + +
+
+image
+ +string + +
+
+imageUUID
+ +string + +
+
+flavor
+ +string + +
+
+sshKeyName
+ +string + +
+
+userData
+ +string + +
+
+metadata
+ +map[string]string + +
+
+configDrive
+ +bool + +
+
+rootVolume
+ + +RootVolume + + +
+
+serverGroupID
+ +string + +
+
+state
+ + +InstanceState + + +
+
+ip
+ +string + +
+
+floatingIP
+ +string + +
+
+

InstanceState +(string alias)

+

+(Appears on: +Instance, +OpenStackMachineStatus) +

+

+

InstanceState describes the state of an OpenStack instance.

+

+

LoadBalancer +

+

+(Appears on: +Network) +

+

+

LoadBalancer represents basic information about the associated OpenStack LoadBalancer.

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+name
+ +string + +
+
+id
+ +string + +
+
+ip
+ +string + +
+
+internalIP
+ +string + +
+
+allowedCIDRs
+ +[]string + +
+(Optional) +
+tags
+ +[]string + +
+(Optional) +
+

Network +

+

+(Appears on: +Instance, +OpenStackClusterStatus) +

+

+

Network represents basic information about an OpenStack Neutron Network associated with an instance’s port.

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+name
+ +string + +
+
+id
+ +string + +
+
+tags
+ +[]string + +
+(Optional) +
+subnet
+ + +Subnet + + +
+
+port
+ + +PortOpts + + +
+
+router
+ + +Router + + +
+
+apiServerLoadBalancer
+ + +LoadBalancer + + +
+

Be careful when using APIServerLoadBalancer, because this field is optional and therefore not +set in all cases

+
+

NetworkFilter +

+

+(Appears on: +NetworkParam, +OpenStackClusterSpec, +PortOpts) +

+

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+name
+ +string + +
+
+description
+ +string + +
+
+projectId
+ +string + +
+
+id
+ +string + +
+
+tags
+ +string + +
+
+tagsAny
+ +string + +
+
+notTags
+ +string + +
+
+notTagsAny
+ +string + +
+
+

NetworkParam +

+

+(Appears on: +OpenStackMachineSpec) +

+

+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+uuid
+ +string + +
+

Optional UUID of the network. +If specified this will not be validated prior to server creation. +Required if Subnets specifies a subnet by UUID.

+
+fixedIP
+ +string + +
+

A fixed IPv4 address for the NIC.

+
+filter
+ + +NetworkFilter + + +
+

Filters for optional network query

+
+subnets
+ + +[]SubnetParam + + +
+

Subnet within a network to use

+
+

OpenStackClusterSpec +

+

+(Appears on: +OpenStackCluster, +OpenStackClusterTemplateResource) +

+

+

OpenStackClusterSpec defines the desired state of OpenStackCluster.

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+cloudName
+ +string + +
+(Optional) +

The name of the cloud to use from the clouds secret

+
+nodeCidr
+ +string + +
+

NodeCIDR is the OpenStack Subnet to be created. Cluster actuator will create a +network, a subnet with NodeCIDR, and a router connected to this subnet. +If you leave this empty, no network will be created.

+
+network
+ + +NetworkFilter + + +
+

If NodeCIDR cannot be set this can be used to detect an existing network.

+
+subnet
+ + +SubnetFilter + + +
+

If NodeCIDR cannot be set this can be used to detect an existing subnet.

+
+dnsNameservers
+ +[]string + +
+

DNSNameservers is the list of nameservers for OpenStack Subnet being created. +Set this value when you need create a new network/subnet while the access +through DNS is required.

+
+externalRouterIPs
+ + +[]ExternalRouterIPParam + + +
+

ExternalRouterIPs is an array of externalIPs on the respective subnets. +This is necessary if the router needs a fixed ip in a specific subnet.

+
+externalNetworkId
+ +string + +
+(Optional) +

ExternalNetworkID is the ID of an external OpenStack Network. This is necessary +to get public internet to the VMs.

+
+apiServerLoadBalancer
+ + +APIServerLoadBalancer + + +
+(Optional) +

APIServerLoadBalancer configures the optional LoadBalancer for the APIServer. +It must be activated by setting enabled: true.

+
+disableAPIServerFloatingIP
+ +bool + +
+(Optional) +

DisableAPIServerFloatingIP determines whether or not to attempt to attach a floating +IP to the API server. This allows for the creation of clusters when attaching a floating +IP to the API server (and hence, in many cases, exposing the API server to the internet) +is not possible or desirable, e.g. if using a shared VLAN for communication between +management and workload clusters or when the management cluster is inside the +project network. +This option requires that the API server use a VIP on the cluster network so that the +underlying machines can change without changing ControlPlaneEndpoint.Host. +When using a managed load balancer, this VIP will be managed automatically. +If not using a managed load balancer, cluster configuration will fail without additional +configuration to manage the VIP on the control plane machines, which falls outside of +the scope of this controller.

+
+apiServerFloatingIP
+ +string + +
+

APIServerFloatingIP is the floatingIP which will be associated with the API server. +The floatingIP will be created if it does not already exist. +If not specified, a new floatingIP is allocated. +This field is not used if DisableAPIServerFloatingIP is set to true.

+
+apiServerFixedIP
+ +string + +
+

APIServerFixedIP is the fixed IP which will be associated with the API server. +In the case where the API server has a floating IP but not a managed load balancer, +this field is not used. +If a managed load balancer is used and this field is not specified, a fixed IP will +be dynamically allocated for the load balancer. +If a managed load balancer is not used AND the API server floating IP is disabled, +this field MUST be specified and should correspond to a pre-allocated port that +holds the fixed IP to be used as a VIP.

+
+apiServerPort
+ +int + +
+

APIServerPort is the port on which the listener on the APIServer +will be created

+
+managedSecurityGroups
+ +bool + +
+(Optional) +

ManagedSecurityGroups determines whether OpenStack security groups for the cluster +will be managed by the OpenStack provider or whether pre-existing security groups will +be specified as part of the configuration. +By default, the managed security groups have rules that allow the Kubelet, etcd, the +Kubernetes API server and the Calico CNI plugin to function correctly.

+
+allowAllInClusterTraffic
+ +bool + +
+(Optional) +

AllowAllInClusterTraffic is only used when managed security groups are in use. +If set to true, the rules for the managed security groups are configured so that all +ingress and egress between cluster nodes is permitted, allowing CNIs other than +Calico to be used.

+
+disablePortSecurity
+ +bool + +
+

DisablePortSecurity disables the port security of the network created for the +Kubernetes cluster, which also disables SecurityGroups

+
+tags
+ +[]string + +
+

Tags for all resources in cluster

+
+controlPlaneEndpoint
+ + +sigs.k8s.io/cluster-api/api/v1beta1.APIEndpoint + + +
+(Optional) +

ControlPlaneEndpoint represents the endpoint used to communicate with the control plane.

+
+controlPlaneAvailabilityZones
+ +[]string + +
+

ControlPlaneAvailabilityZones is the az to deploy control plane to

+
+controlPlaneOmitAvailabilityZone
+ +bool + +
+

Indicates whether to omit the az for control plane nodes, allowing the Nova scheduler +to make a decision on which az to use based on other scheduling constraints

+
+bastion
+ + +Bastion + + +
+(Optional) +

Bastion is the OpenStack instance to login the nodes

+

As a rolling update is not ideal during a bastion host session, we +prevent changes to a running bastion configuration. Set enabled: false to +make changes.

+
+identityRef
+ + +OpenStackIdentityReference + + +
+(Optional) +

IdentityRef is a reference to a identity to be used when reconciling this cluster

+
+

OpenStackClusterStatus +

+

+(Appears on: +OpenStackCluster) +

+

+

OpenStackClusterStatus defines the observed state of OpenStackCluster.

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+ready
+ +bool + +
+
+network
+ + +Network + + +
+

Network contains all information about the created OpenStack Network. +It includes Subnets and Router.

+
+externalNetwork
+ + +Network + + +
+

External Network contains information about the created OpenStack external network.

+
+failureDomains
+ + +sigs.k8s.io/cluster-api/api/v1beta1.FailureDomains + + +
+

FailureDomains represent OpenStack availability zones

+
+controlPlaneSecurityGroup
+ + +SecurityGroup + + +
+

ControlPlaneSecurityGroups contains all the information about the OpenStack +Security Group that needs to be applied to control plane nodes. +TODO: Maybe instead of two properties, we add a property to the group?

+
+workerSecurityGroup
+ + +SecurityGroup + + +
+

WorkerSecurityGroup contains all the information about the OpenStack Security +Group that needs to be applied to worker nodes.

+
+bastionSecurityGroup
+ + +SecurityGroup + + +
+
+bastion
+ + +Instance + + +
+
+failureReason
+ + +sigs.k8s.io/cluster-api/errors.ClusterStatusError + + +
+(Optional) +

FailureReason will be set in the event that there is a terminal problem +reconciling the OpenStackCluster and will contain a succinct value suitable +for machine interpretation.

+

This field should not be set for transitive errors that a controller +faces that are expected to be fixed automatically over +time (like service outages), but instead indicate that something is +fundamentally wrong with the OpenStackCluster’s spec or the configuration of +the controller, and that manual intervention is required. Examples +of terminal errors would be invalid combinations of settings in the +spec, values that are unsupported by the controller, or the +responsible controller itself being critically misconfigured.

+

Any transient errors that occur during the reconciliation of +OpenStackClusters can be added as events to the OpenStackCluster object +and/or logged in the controller’s output.

+
+failureMessage
+ +string + +
+(Optional) +

FailureMessage will be set in the event that there is a terminal problem +reconciling the OpenStackCluster and will contain a more verbose string suitable +for logging and human consumption.

+

This field should not be set for transitive errors that a controller +faces that are expected to be fixed automatically over +time (like service outages), but instead indicate that something is +fundamentally wrong with the OpenStackCluster’s spec or the configuration of +the controller, and that manual intervention is required. Examples +of terminal errors would be invalid combinations of settings in the +spec, values that are unsupported by the controller, or the +responsible controller itself being critically misconfigured.

+

Any transient errors that occur during the reconciliation of +OpenStackClusters can be added as events to the OpenStackCluster object +and/or logged in the controller’s output.

+
+

OpenStackClusterTemplateResource +

+

+(Appears on: +OpenStackClusterTemplateSpec) +

+

+

OpenStackClusterTemplateResource describes the data needed to create a OpenStackCluster from a template.

+

+ + + + + + + + + + + + + +
FieldDescription
+spec
+ + +OpenStackClusterSpec + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+cloudName
+ +string + +
+(Optional) +

The name of the cloud to use from the clouds secret

+
+nodeCidr
+ +string + +
+

NodeCIDR is the OpenStack Subnet to be created. Cluster actuator will create a +network, a subnet with NodeCIDR, and a router connected to this subnet. +If you leave this empty, no network will be created.

+
+network
+ + +NetworkFilter + + +
+

If NodeCIDR cannot be set this can be used to detect an existing network.

+
+subnet
+ + +SubnetFilter + + +
+

If NodeCIDR cannot be set this can be used to detect an existing subnet.

+
+dnsNameservers
+ +[]string + +
+

DNSNameservers is the list of nameservers for OpenStack Subnet being created. +Set this value when you need create a new network/subnet while the access +through DNS is required.

+
+externalRouterIPs
+ + +[]ExternalRouterIPParam + + +
+

ExternalRouterIPs is an array of externalIPs on the respective subnets. +This is necessary if the router needs a fixed ip in a specific subnet.

+
+externalNetworkId
+ +string + +
+(Optional) +

ExternalNetworkID is the ID of an external OpenStack Network. This is necessary +to get public internet to the VMs.

+
+apiServerLoadBalancer
+ + +APIServerLoadBalancer + + +
+(Optional) +

APIServerLoadBalancer configures the optional LoadBalancer for the APIServer. +It must be activated by setting enabled: true.

+
+disableAPIServerFloatingIP
+ +bool + +
+(Optional) +

DisableAPIServerFloatingIP determines whether or not to attempt to attach a floating +IP to the API server. This allows for the creation of clusters when attaching a floating +IP to the API server (and hence, in many cases, exposing the API server to the internet) +is not possible or desirable, e.g. if using a shared VLAN for communication between +management and workload clusters or when the management cluster is inside the +project network. +This option requires that the API server use a VIP on the cluster network so that the +underlying machines can change without changing ControlPlaneEndpoint.Host. +When using a managed load balancer, this VIP will be managed automatically. +If not using a managed load balancer, cluster configuration will fail without additional +configuration to manage the VIP on the control plane machines, which falls outside of +the scope of this controller.

+
+apiServerFloatingIP
+ +string + +
+

APIServerFloatingIP is the floatingIP which will be associated with the API server. +The floatingIP will be created if it does not already exist. +If not specified, a new floatingIP is allocated. +This field is not used if DisableAPIServerFloatingIP is set to true.

+
+apiServerFixedIP
+ +string + +
+

APIServerFixedIP is the fixed IP which will be associated with the API server. +In the case where the API server has a floating IP but not a managed load balancer, +this field is not used. +If a managed load balancer is used and this field is not specified, a fixed IP will +be dynamically allocated for the load balancer. +If a managed load balancer is not used AND the API server floating IP is disabled, +this field MUST be specified and should correspond to a pre-allocated port that +holds the fixed IP to be used as a VIP.

+
+apiServerPort
+ +int + +
+

APIServerPort is the port on which the listener on the APIServer +will be created

+
+managedSecurityGroups
+ +bool + +
+(Optional) +

ManagedSecurityGroups determines whether OpenStack security groups for the cluster +will be managed by the OpenStack provider or whether pre-existing security groups will +be specified as part of the configuration. +By default, the managed security groups have rules that allow the Kubelet, etcd, the +Kubernetes API server and the Calico CNI plugin to function correctly.

+
+allowAllInClusterTraffic
+ +bool + +
+(Optional) +

AllowAllInClusterTraffic is only used when managed security groups are in use. +If set to true, the rules for the managed security groups are configured so that all +ingress and egress between cluster nodes is permitted, allowing CNIs other than +Calico to be used.

+
+disablePortSecurity
+ +bool + +
+

DisablePortSecurity disables the port security of the network created for the +Kubernetes cluster, which also disables SecurityGroups

+
+tags
+ +[]string + +
+

Tags for all resources in cluster

+
+controlPlaneEndpoint
+ + +sigs.k8s.io/cluster-api/api/v1beta1.APIEndpoint + + +
+(Optional) +

ControlPlaneEndpoint represents the endpoint used to communicate with the control plane.

+
+controlPlaneAvailabilityZones
+ +[]string + +
+

ControlPlaneAvailabilityZones is the az to deploy control plane to

+
+controlPlaneOmitAvailabilityZone
+ +bool + +
+

Indicates whether to omit the az for control plane nodes, allowing the Nova scheduler +to make a decision on which az to use based on other scheduling constraints

+
+bastion
+ + +Bastion + + +
+(Optional) +

Bastion is the OpenStack instance to login the nodes

+

As a rolling update is not ideal during a bastion host session, we +prevent changes to a running bastion configuration. Set enabled: false to +make changes.

+
+identityRef
+ + +OpenStackIdentityReference + + +
+(Optional) +

IdentityRef is a reference to a identity to be used when reconciling this cluster

+
+
+

OpenStackClusterTemplateSpec +

+

+(Appears on: +OpenStackClusterTemplate) +

+

+

OpenStackClusterTemplateSpec defines the desired state of OpenStackClusterTemplate.

+

+ + + + + + + + + + + + + +
FieldDescription
+template
+ + +OpenStackClusterTemplateResource + + +
+
+

OpenStackIdentityReference +

+

+(Appears on: +OpenStackClusterSpec, +OpenStackMachineSpec) +

+

+

OpenStackIdentityReference is a reference to an infrastructure +provider identity to be used to provision cluster resources.

+

+ + + + + + + + + + + + + + + + + +
FieldDescription
+kind
+ +string + +
+

Kind of the identity. Must be supported by the infrastructure +provider and may be either cluster or namespace-scoped.

+
+name
+ +string + +
+

Name of the infrastructure identity to be used. +Must be either a cluster-scoped resource, or namespaced-scoped +resource the same namespace as the resource(s) being provisioned.

+
+

OpenStackMachineSpec +

+

+(Appears on: +OpenStackMachine, +Bastion, +OpenStackMachineTemplateResource) +

+

+

OpenStackMachineSpec defines the desired state of OpenStackMachine.

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+providerID
+ +string + +
+

ProviderID is the unique identifier as specified by the cloud provider.

+
+instanceID
+ +string + +
+

InstanceID is the OpenStack instance ID for this machine.

+
+cloudName
+ +string + +
+(Optional) +

The name of the cloud to use from the clouds secret

+
+flavor
+ +string + +
+

The flavor reference for the flavor for your server instance.

+
+image
+ +string + +
+

The name of the image to use for your server instance. +If the RootVolume is specified, this will be ignored and use rootVolume directly.

+
+imageUUID
+ +string + +
+

The uuid of the image to use for your server instance. +if it’s empty, Image name will be used

+
+sshKeyName
+ +string + +
+

The ssh key to inject in the instance

+
+networks
+ + +[]NetworkParam + + +
+

A networks object. Required parameter when there are multiple networks defined for the tenant. +When you do not specify both networks and ports parameters, the server attaches to the only network created for the current tenant.

+
+ports
+ + +[]PortOpts + + +
+

Ports to be attached to the server instance. They are created if a port with the given name does not already exist. +When you do not specify both networks and ports parameters, the server attaches to the only network created for the current tenant.

+
+subnet
+ +string + +
+

UUID, IP address of a port from this subnet will be marked as AccessIPv4 on the created compute instance

+
+floatingIP
+ +string + +
+

The floatingIP which will be associated to the machine, only used for master. +The floatingIP should have been created and haven’t been associated.

+
+securityGroups
+ + +[]SecurityGroupParam + + +
+

The names of the security groups to assign to the instance

+
+trunk
+ +bool + +
+

Whether the server instance is created on a trunk port or not.

+
+tags
+ +[]string + +
+

Machine tags +Requires Nova api 2.52 minimum!

+
+serverMetadata
+ +map[string]string + +
+

Metadata mapping. Allows you to create a map of key value pairs to add to the server instance.

+
+configDrive
+ +bool + +
+

Config Drive support

+
+rootVolume
+ + +RootVolume + + +
+

The volume metadata to boot from

+
+serverGroupID
+ +string + +
+

The server group to assign the machine to

+
+identityRef
+ + +OpenStackIdentityReference + + +
+(Optional) +

IdentityRef is a reference to a identity to be used when reconciling this cluster

+
+

OpenStackMachineStatus +

+

+(Appears on: +OpenStackMachine) +

+

+

OpenStackMachineStatus defines the observed state of OpenStackMachine.

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+ready
+ +bool + +
+(Optional) +

Ready is true when the provider resource is ready.

+
+addresses
+ +[]Kubernetes core/v1.NodeAddress + +
+

Addresses contains the OpenStack instance associated addresses.

+
+instanceState
+ + +InstanceState + + +
+(Optional) +

InstanceState is the state of the OpenStack instance for this machine.

+
+failureReason
+ + +sigs.k8s.io/cluster-api/errors.MachineStatusError + + +
+
+failureMessage
+ +string + +
+(Optional) +

FailureMessage will be set in the event that there is a terminal problem +reconciling the Machine and will contain a more verbose string suitable +for logging and human consumption.

+

This field should not be set for transitive errors that a controller +faces that are expected to be fixed automatically over +time (like service outages), but instead indicate that something is +fundamentally wrong with the Machine’s spec or the configuration of +the controller, and that manual intervention is required. Examples +of terminal errors would be invalid combinations of settings in the +spec, values that are unsupported by the controller, or the +responsible controller itself being critically misconfigured.

+

Any transient errors that occur during the reconciliation of Machines +can be added as events to the Machine object and/or logged in the +controller’s output.

+
+conditions
+ + +sigs.k8s.io/cluster-api/api/v1beta1.Conditions + + +
+
+

OpenStackMachineTemplateResource +

+

+(Appears on: +OpenStackMachineTemplateSpec) +

+

+

OpenStackMachineTemplateResource describes the data needed to create a OpenStackMachine from a template.

+

+ + + + + + + + + + + + + +
FieldDescription
+spec
+ + +OpenStackMachineSpec + + +
+

Spec is the specification of the desired behavior of the machine.

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+providerID
+ +string + +
+

ProviderID is the unique identifier as specified by the cloud provider.

+
+instanceID
+ +string + +
+

InstanceID is the OpenStack instance ID for this machine.

+
+cloudName
+ +string + +
+(Optional) +

The name of the cloud to use from the clouds secret

+
+flavor
+ +string + +
+

The flavor reference for the flavor for your server instance.

+
+image
+ +string + +
+

The name of the image to use for your server instance. +If the RootVolume is specified, this will be ignored and use rootVolume directly.

+
+imageUUID
+ +string + +
+

The uuid of the image to use for your server instance. +if it’s empty, Image name will be used

+
+sshKeyName
+ +string + +
+

The ssh key to inject in the instance

+
+networks
+ + +[]NetworkParam + + +
+

A networks object. Required parameter when there are multiple networks defined for the tenant. +When you do not specify both networks and ports parameters, the server attaches to the only network created for the current tenant.

+
+ports
+ + +[]PortOpts + + +
+

Ports to be attached to the server instance. They are created if a port with the given name does not already exist. +When you do not specify both networks and ports parameters, the server attaches to the only network created for the current tenant.

+
+subnet
+ +string + +
+

UUID, IP address of a port from this subnet will be marked as AccessIPv4 on the created compute instance

+
+floatingIP
+ +string + +
+

The floatingIP which will be associated to the machine, only used for master. +The floatingIP should have been created and haven’t been associated.

+
+securityGroups
+ + +[]SecurityGroupParam + + +
+

The names of the security groups to assign to the instance

+
+trunk
+ +bool + +
+

Whether the server instance is created on a trunk port or not.

+
+tags
+ +[]string + +
+

Machine tags +Requires Nova api 2.52 minimum!

+
+serverMetadata
+ +map[string]string + +
+

Metadata mapping. Allows you to create a map of key value pairs to add to the server instance.

+
+configDrive
+ +bool + +
+

Config Drive support

+
+rootVolume
+ + +RootVolume + + +
+

The volume metadata to boot from

+
+serverGroupID
+ +string + +
+

The server group to assign the machine to

+
+identityRef
+ + +OpenStackIdentityReference + + +
+(Optional) +

IdentityRef is a reference to a identity to be used when reconciling this cluster

+
+
+

OpenStackMachineTemplateSpec +

+

+(Appears on: +OpenStackMachineTemplate) +

+

+

OpenStackMachineTemplateSpec defines the desired state of OpenStackMachineTemplate.

+

+ + + + + + + + + + + + + +
FieldDescription
+template
+ + +OpenStackMachineTemplateResource + + +
+
+

PortOpts +

+

+(Appears on: +Network, +OpenStackMachineSpec) +

+

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+network
+ + +NetworkFilter + + +
+

Network is a query for an openstack network that the port will be created or discovered on. +This will fail if the query returns more than one network.

+
+nameSuffix
+ +string + +
+

Used to make the name of the port unique. If unspecified, instead the 0-based index of the port in the list is used.

+
+description
+ +string + +
+
+adminStateUp
+ +bool + +
+
+macAddress
+ +string + +
+
+fixedIPs
+ + +[]FixedIP + + +
+

Specify pairs of subnet and/or IP address. These should be subnets of the network with the given NetworkID.

+
+tenantId
+ +string + +
+
+projectId
+ +string + +
+
+securityGroups
+ +[]string + +
+

The uuids of the security groups to assign to the instance

+
+securityGroupFilters
+ + +[]SecurityGroupParam + + +
+

The names, uuids, filters or any combination these of the security groups to assign to the instance

+
+allowedAddressPairs
+ + +[]AddressPair + + +
+
+trunk
+ +bool + +
+

Enables and disables trunk at port level. If not provided, openStackMachine.Spec.Trunk is inherited.

+
+hostId
+ +string + +
+

The ID of the host where the port is allocated

+
+vnicType
+ +string + +
+

The virtual network interface card (vNIC) type that is bound to the neutron port.

+
+profile
+ +map[string]string + +
+

A dictionary that enables the application running on the specified +host to pass and receive virtual network interface (VIF) port-specific +information to the plug-in.

+
+disablePortSecurity
+ +bool + +
+

DisablePortSecurity enables or disables the port security when set. +When not set, it takes the value of the corresponding field at the network level.

+
+tags
+ +[]string + +
+

Tags applied to the port (and corresponding trunk, if a trunk is configured.) +These tags are applied in addition to the instance’s tags, which will also be applied to the port.

+
+valueSpecs
+ + +[]ValueSpec + + +
+(Optional) +

Value specs are extra parameters to include in the API request with OpenStack. +This is an extension point for the API, so what they do and if they are supported, +depends on the specific OpenStack implementation.

+
+

RootVolume +

+

+(Appears on: +Instance, +OpenStackMachineSpec) +

+

+

+ + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+diskSize
+ +int + +
+
+volumeType
+ +string + +
+
+availabilityZone
+ +string + +
+
+

Router +

+

+(Appears on: +Network) +

+

+

Router represents basic information about the associated OpenStack Neutron Router.

+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+name
+ +string + +
+
+id
+ +string + +
+
+tags
+ +[]string + +
+(Optional) +
+ips
+ +[]string + +
+(Optional) +
+

SecurityGroup +

+

+(Appears on: +OpenStackClusterStatus) +

+

+

SecurityGroup represents the basic information of the associated +OpenStack Neutron Security Group.

+

+ + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+name
+ +string + +
+
+id
+ +string + +
+
+rules
+ + +[]SecurityGroupRule + + +
+
+

SecurityGroupFilter +

+

+(Appears on: +SecurityGroupParam) +

+

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+id
+ +string + +
+
+name
+ +string + +
+
+description
+ +string + +
+
+tenantId
+ +string + +
+
+projectId
+ +string + +
+
+limit
+ +int + +
+
+marker
+ +string + +
+
+sortKey
+ +string + +
+
+sortDir
+ +string + +
+
+tags
+ +string + +
+
+tagsAny
+ +string + +
+
+notTags
+ +string + +
+
+notTagsAny
+ +string + +
+
+

SecurityGroupParam +

+

+(Appears on: +OpenStackMachineSpec, +PortOpts) +

+

+

+ + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+uuid
+ +string + +
+

Security Group UID

+
+name
+ +string + +
+

Security Group name

+
+filter
+ + +SecurityGroupFilter + + +
+

Filters used to query security groups in openstack

+
+

SecurityGroupRule +

+

+(Appears on: +SecurityGroup) +

+

+

SecurityGroupRule represent the basic information of the associated OpenStack +Security Group Role.

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+description
+ +string + +
+
+name
+ +string + +
+
+direction
+ +string + +
+
+etherType
+ +string + +
+
+securityGroupID
+ +string + +
+
+portRangeMin
+ +int + +
+
+portRangeMax
+ +int + +
+
+protocol
+ +string + +
+
+remoteGroupID
+ +string + +
+
+remoteIPPrefix
+ +string + +
+
+

Subnet +

+

+(Appears on: +Network) +

+

+

Subnet represents basic information about the associated OpenStack Neutron Subnet.

+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+name
+ +string + +
+
+id
+ +string + +
+
+cidr
+ +string + +
+
+tags
+ +[]string + +
+(Optional) +
+

SubnetFilter +

+

+(Appears on: +FixedIP, +OpenStackClusterSpec, +SubnetParam) +

+

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+name
+ +string + +
+
+description
+ +string + +
+
+projectId
+ +string + +
+
+ipVersion
+ +int + +
+
+gateway_ip
+ +string + +
+
+cidr
+ +string + +
+
+ipv6AddressMode
+ +string + +
+
+ipv6RaMode
+ +string + +
+
+id
+ +string + +
+
+tags
+ +string + +
+
+tagsAny
+ +string + +
+
+notTags
+ +string + +
+
+notTagsAny
+ +string + +
+
+

SubnetParam +

+

+(Appears on: +ExternalRouterIPParam, +NetworkParam) +

+

+

+ + + + + + + + + + + + + + + + + +
FieldDescription
+uuid
+ +string + +
+

Optional UUID of the subnet. +If specified this will not be validated prior to server creation. +If specified, the enclosing NetworkParam must also be specified by UUID.

+
+filter
+ + +SubnetFilter + + +
+

Filters for optional subnet query

+
+

ValueSpec +

+

+(Appears on: +PortOpts) +

+

+

ValueSpec represents a single value_spec key-value pair.

+

+ + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+name
+ +string + +
+

Name is the name of the key-value pair. +This is just for identifying the pair and will not be sent to the OpenStack API.

+
+key
+ +string + +
+

Key is the key in the key-value pair.

+
+value
+ +string + +
+

Value is the value in the key-value pair.

+
+
+

+Generated with gen-crd-api-reference-docs. +

diff --git a/docs/book/src/api/v1alpha7/api.md b/docs/book/src/api/v1alpha7/api.md new file mode 100644 index 0000000000..9e4dbbeb16 --- /dev/null +++ b/docs/book/src/api/v1alpha7/api.md @@ -0,0 +1,4235 @@ +

infrastructure.cluster.x-k8s.io/v1alpha7

+

+

Package v1alpha7 contains API Schema definitions for the infrastructure v1alpha7 API group.

+

+Resource Types: + +

OpenStackCluster +

+

+

OpenStackCluster is the Schema for the openstackclusters API.

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+apiVersion
+string
+ +infrastructure.cluster.x-k8s.io/v1alpha7 + +
+kind
+string +
OpenStackCluster
+metadata
+ +Kubernetes meta/v1.ObjectMeta + +
+Refer to the Kubernetes API documentation for the fields of the +metadata field. +
+spec
+ + +OpenStackClusterSpec + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+cloudName
+ +string + +
+(Optional) +

The name of the cloud to use from the clouds secret

+
+nodeCidr
+ +string + +
+

NodeCIDR is the OpenStack Subnet to be created. Cluster actuator will create a +network, a subnet with NodeCIDR, and a router connected to this subnet. +If you leave this empty, no network will be created.

+
+router
+ + +RouterFilter + + +
+(Optional) +

If NodeCIDR is set this option can be used to detect an existing router. +If specified, no new router will be created.

+
+network
+ + +NetworkFilter + + +
+

If NodeCIDR cannot be set this can be used to detect an existing network.

+
+subnet
+ + +SubnetFilter + + +
+

If NodeCIDR cannot be set this can be used to detect an existing subnet.

+
+networkMtu
+ +int + +
+(Optional) +

NetworkMTU sets the maximum transmission unit (MTU) value to address fragmentation for the private network ID. +This value will be used only if the Cluster actuator creates the network. +If leaved empty, the network will have the default MTU defined in Openstack network service. +To use this field, the Openstack installation requires the net-mtu neutron API extension.

+
+dnsNameservers
+ +[]string + +
+

DNSNameservers is the list of nameservers for OpenStack Subnet being created. +Set this value when you need create a new network/subnet while the access +through DNS is required.

+
+externalRouterIPs
+ + +[]ExternalRouterIPParam + + +
+

ExternalRouterIPs is an array of externalIPs on the respective subnets. +This is necessary if the router needs a fixed ip in a specific subnet.

+
+externalNetworkId
+ +string + +
+(Optional) +

ExternalNetworkID is the ID of an external OpenStack Network. This is necessary +to get public internet to the VMs.

+
+apiServerLoadBalancer
+ + +APIServerLoadBalancer + + +
+(Optional) +

APIServerLoadBalancer configures the optional LoadBalancer for the APIServer. +It must be activated by setting enabled: true.

+
+disableAPIServerFloatingIP
+ +bool + +
+(Optional) +

DisableAPIServerFloatingIP determines whether or not to attempt to attach a floating +IP to the API server. This allows for the creation of clusters when attaching a floating +IP to the API server (and hence, in many cases, exposing the API server to the internet) +is not possible or desirable, e.g. if using a shared VLAN for communication between +management and workload clusters or when the management cluster is inside the +project network. +This option requires that the API server use a VIP on the cluster network so that the +underlying machines can change without changing ControlPlaneEndpoint.Host. +When using a managed load balancer, this VIP will be managed automatically. +If not using a managed load balancer, cluster configuration will fail without additional +configuration to manage the VIP on the control plane machines, which falls outside of +the scope of this controller.

+
+apiServerFloatingIP
+ +string + +
+

APIServerFloatingIP is the floatingIP which will be associated with the API server. +The floatingIP will be created if it does not already exist. +If not specified, a new floatingIP is allocated. +This field is not used if DisableAPIServerFloatingIP is set to true.

+
+apiServerFixedIP
+ +string + +
+

APIServerFixedIP is the fixed IP which will be associated with the API server. +In the case where the API server has a floating IP but not a managed load balancer, +this field is not used. +If a managed load balancer is used and this field is not specified, a fixed IP will +be dynamically allocated for the load balancer. +If a managed load balancer is not used AND the API server floating IP is disabled, +this field MUST be specified and should correspond to a pre-allocated port that +holds the fixed IP to be used as a VIP.

+
+apiServerPort
+ +int + +
+

APIServerPort is the port on which the listener on the APIServer +will be created

+
+managedSecurityGroups
+ +bool + +
+(Optional) +

ManagedSecurityGroups determines whether OpenStack security groups for the cluster +will be managed by the OpenStack provider or whether pre-existing security groups will +be specified as part of the configuration. +By default, the managed security groups have rules that allow the Kubelet, etcd, the +Kubernetes API server and the Calico CNI plugin to function correctly.

+
+allowAllInClusterTraffic
+ +bool + +
+(Optional) +

AllowAllInClusterTraffic is only used when managed security groups are in use. +If set to true, the rules for the managed security groups are configured so that all +ingress and egress between cluster nodes is permitted, allowing CNIs other than +Calico to be used.

+
+disablePortSecurity
+ +bool + +
+

DisablePortSecurity disables the port security of the network created for the +Kubernetes cluster, which also disables SecurityGroups

+
+tags
+ +[]string + +
+

Tags for all resources in cluster

+
+controlPlaneEndpoint
+ + +sigs.k8s.io/cluster-api/api/v1beta1.APIEndpoint + + +
+(Optional) +

ControlPlaneEndpoint represents the endpoint used to communicate with the control plane.

+
+controlPlaneAvailabilityZones
+ +[]string + +
+

ControlPlaneAvailabilityZones is the az to deploy control plane to

+
+controlPlaneOmitAvailabilityZone
+ +bool + +
+

Indicates whether to omit the az for control plane nodes, allowing the Nova scheduler +to make a decision on which az to use based on other scheduling constraints

+
+bastion
+ + +Bastion + + +
+(Optional) +

Bastion is the OpenStack instance to login the nodes

+

As a rolling update is not ideal during a bastion host session, we +prevent changes to a running bastion configuration. Set enabled: false to +make changes.

+
+identityRef
+ + +OpenStackIdentityReference + + +
+(Optional) +

IdentityRef is a reference to a identity to be used when reconciling this cluster

+
+
+status
+ + +OpenStackClusterStatus + + +
+
+

OpenStackClusterTemplate +

+

+

OpenStackClusterTemplate is the Schema for the openstackclustertemplates API.

+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+apiVersion
+string
+ +infrastructure.cluster.x-k8s.io/v1alpha7 + +
+kind
+string +
OpenStackClusterTemplate
+metadata
+ +Kubernetes meta/v1.ObjectMeta + +
+Refer to the Kubernetes API documentation for the fields of the +metadata field. +
+spec
+ + +OpenStackClusterTemplateSpec + + +
+
+
+ + + + + +
+template
+ + +OpenStackClusterTemplateResource + + +
+
+
+

OpenStackMachine +

+

+

OpenStackMachine is the Schema for the openstackmachines API.

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+apiVersion
+string
+ +infrastructure.cluster.x-k8s.io/v1alpha7 + +
+kind
+string +
OpenStackMachine
+metadata
+ +Kubernetes meta/v1.ObjectMeta + +
+Refer to the Kubernetes API documentation for the fields of the +metadata field. +
+spec
+ + +OpenStackMachineSpec + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+providerID
+ +string + +
+

ProviderID is the unique identifier as specified by the cloud provider.

+
+instanceID
+ +string + +
+

InstanceID is the OpenStack instance ID for this machine.

+
+cloudName
+ +string + +
+(Optional) +

The name of the cloud to use from the clouds secret

+
+flavor
+ +string + +
+

The flavor reference for the flavor for your server instance.

+
+image
+ +string + +
+

The name of the image to use for your server instance. +If the RootVolume is specified, this will be ignored and use rootVolume directly.

+
+imageUUID
+ +string + +
+

The uuid of the image to use for your server instance. +if it’s empty, Image name will be used

+
+sshKeyName
+ +string + +
+

The ssh key to inject in the instance

+
+ports
+ + +[]PortOpts + + +
+

Ports to be attached to the server instance. They are created if a port with the given name does not already exist. +If not specified a default port will be added for the default cluster network.

+
+floatingIP
+ +string + +
+

The floatingIP which will be associated to the machine, only used for master. +The floatingIP should have been created and haven’t been associated.

+
+securityGroups
+ + +[]SecurityGroupFilter + + +
+

The names of the security groups to assign to the instance

+
+trunk
+ +bool + +
+

Whether the server instance is created on a trunk port or not.

+
+tags
+ +[]string + +
+

Machine tags +Requires Nova api 2.52 minimum!

+
+serverMetadata
+ +map[string]string + +
+

Metadata mapping. Allows you to create a map of key value pairs to add to the server instance.

+
+configDrive
+ +bool + +
+

Config Drive support

+
+rootVolume
+ + +RootVolume + + +
+

The volume metadata to boot from

+
+additionalBlockDevices
+ + +[]AdditionalBlockDevice + + +
+(Optional) +

AdditionalBlockDevices is a list of specifications for additional block devices to attach to the server instance

+
+serverGroupID
+ +string + +
+

The server group to assign the machine to

+
+identityRef
+ + +OpenStackIdentityReference + + +
+(Optional) +

IdentityRef is a reference to a identity to be used when reconciling this cluster. +If not specified, the identity ref of the cluster will be used instead.

+
+
+status
+ + +OpenStackMachineStatus + + +
+
+

OpenStackMachineTemplate +

+

+

OpenStackMachineTemplate is the Schema for the openstackmachinetemplates API.

+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+apiVersion
+string
+ +infrastructure.cluster.x-k8s.io/v1alpha7 + +
+kind
+string +
OpenStackMachineTemplate
+metadata
+ +Kubernetes meta/v1.ObjectMeta + +
+Refer to the Kubernetes API documentation for the fields of the +metadata field. +
+spec
+ + +OpenStackMachineTemplateSpec + + +
+
+
+ + + + + +
+template
+ + +OpenStackMachineTemplateResource + + +
+
+
+

APIServerLoadBalancer +

+

+(Appears on: +OpenStackClusterSpec) +

+

+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+enabled
+ +bool + +
+

Enabled defines whether a load balancer should be created.

+
+additionalPorts
+ +[]int + +
+

AdditionalPorts adds additional tcp ports to the load balancer.

+
+allowedCidrs
+ +[]string + +
+

AllowedCIDRs restrict access to all API-Server listeners to the given address CIDRs.

+
+provider
+ +string + +
+

Octavia Provider Used to create load balancer

+
+

AdditionalBlockDevice +

+

+(Appears on: +OpenStackMachineSpec) +

+

+

AdditionalBlockDevice is a block device to attach to the server.

+

+ + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+name
+ +string + +
+

Name of the block device in the context of a machine. +If the block device is a volume, the Cinder volume will be named +as a combination of the machine name and this name. +Also, this name will be used for tagging the block device. +Information about the block device tag can be obtained from the OpenStack +metadata API or the config drive.

+
+sizeGiB
+ +int + +
+

SizeGiB is the size of the block device in gibibytes (GiB).

+
+storage
+ + +BlockDeviceStorage + + +
+

Storage specifies the storage type of the block device and +additional storage options.

+
+

AddressPair +

+

+(Appears on: +PortOpts) +

+

+

+ + + + + + + + + + + + + + + + + +
FieldDescription
+ipAddress
+ +string + +
+
+macAddress
+ +string + +
+
+

Bastion +

+

+(Appears on: +OpenStackClusterSpec) +

+

+

Bastion represents basic information about the bastion node.

+

+ + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+enabled
+ +bool + +
+(Optional) +
+instance
+ + +OpenStackMachineSpec + + +
+

Instance for the bastion itself

+
+availabilityZone
+ +string + +
+(Optional) +
+

BastionStatus +

+

+(Appears on: +OpenStackClusterStatus) +

+

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+id
+ +string + +
+
+name
+ +string + +
+
+sshKeyName
+ +string + +
+
+state
+ + +InstanceState + + +
+
+ip
+ +string + +
+
+floatingIP
+ +string + +
+
+

BindingProfile +

+

+(Appears on: +PortOpts) +

+

+

+ + + + + + + + + + + + + + + + + +
FieldDescription
+ovsHWOffload
+ +bool + +
+

OVSHWOffload enables or disables the OVS hardware offload feature.

+
+trustedVF
+ +bool + +
+

TrustedVF enables or disables the “trusted mode” for the VF.

+
+

BlockDeviceStorage +

+

+(Appears on: +AdditionalBlockDevice) +

+

+

BlockDeviceStorage is the storage type of a block device to create and +contains additional storage options.

+

+ + + + + + + + + + + + + + + + + +
FieldDescription
+type
+ + +BlockDeviceType + + +
+

Type is the type of block device to create. +This can be either “Volume” or “Local”.

+
+volume
+ + +BlockDeviceVolume + + +
+(Optional) +

Volume contains additional storage options for a volume block device.

+
+

BlockDeviceType +(string alias)

+

+(Appears on: +BlockDeviceStorage) +

+

+

BlockDeviceType defines the type of block device to create.

+

+ + + + + + + + + + + + +
ValueDescription

"Local"

LocalBlockDevice is an ephemeral block device attached to the server.

+

"Volume"

VolumeBlockDevice is a volume block device attached to the server.

+
+

BlockDeviceVolume +

+

+(Appears on: +BlockDeviceStorage) +

+

+

BlockDeviceVolume contains additional storage options for a volume block device.

+

+ + + + + + + + + + + + + + + + + +
FieldDescription
+type
+ +string + +
+(Optional) +

Type is the Cinder volume type of the volume. +If omitted, the default Cinder volume type that is configured in the OpenStack cloud +will be used.

+
+availabilityZone
+ +string + +
+(Optional) +

AvailabilityZone is the volume availability zone to create the volume in. +If omitted, the availability zone of the server will be used. +The availability zone must NOT contain spaces otherwise it will lead to volume that belongs +to this availability zone register failure, see kubernetes/cloud-provider-openstack#1379 for +further information.

+
+

ExternalRouterIPParam +

+

+(Appears on: +OpenStackClusterSpec) +

+

+

+ + + + + + + + + + + + + + + + + +
FieldDescription
+fixedIP
+ +string + +
+

The FixedIP in the corresponding subnet

+
+subnet
+ + +SubnetFilter + + +
+

The subnet in which the FixedIP is used for the Gateway of this router

+
+

FixedIP +

+

+(Appears on: +PortOpts) +

+

+

+ + + + + + + + + + + + + + + + + +
FieldDescription
+subnet
+ + +SubnetFilter + + +
+

Subnet is an openstack subnet query that will return the id of a subnet to create +the fixed IP of a port in. This query must not return more than one subnet.

+
+ipAddress
+ +string + +
+
+

InstanceState +(string alias)

+

+(Appears on: +BastionStatus, +OpenStackMachineStatus) +

+

+

InstanceState describes the state of an OpenStack instance.

+

+

LoadBalancer +

+

+(Appears on: +OpenStackClusterStatus) +

+

+

LoadBalancer represents basic information about the associated OpenStack LoadBalancer.

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+name
+ +string + +
+
+id
+ +string + +
+
+ip
+ +string + +
+
+internalIP
+ +string + +
+
+allowedCIDRs
+ +[]string + +
+(Optional) +
+tags
+ +[]string + +
+(Optional) +
+

NetworkFilter +

+

+(Appears on: +OpenStackClusterSpec, +PortOpts) +

+

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+name
+ +string + +
+
+description
+ +string + +
+
+projectId
+ +string + +
+
+id
+ +string + +
+
+tags
+ +string + +
+
+tagsAny
+ +string + +
+
+notTags
+ +string + +
+
+notTagsAny
+ +string + +
+
+

NetworkStatus +

+

+(Appears on: +NetworkStatusWithSubnets, +OpenStackClusterStatus) +

+

+

NetworkStatus contains basic information about an existing neutron network.

+

+ + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+name
+ +string + +
+
+id
+ +string + +
+
+tags
+ +[]string + +
+(Optional) +
+

NetworkStatusWithSubnets +

+

+(Appears on: +OpenStackClusterStatus) +

+

+

NetworkStatusWithSubnets represents basic information about an existing neutron network and an associated set of subnets.

+

+ + + + + + + + + + + + + + + + + +
FieldDescription
+NetworkStatus
+ + +NetworkStatus + + +
+

+(Members of NetworkStatus are embedded into this type.) +

+
+subnets
+ + +[]Subnet + + +
+

Subnets is a list of subnets associated with the default cluster network. Machines which use the default cluster network will get an address from all of these subnets.

+
+

OpenStackClusterSpec +

+

+(Appears on: +OpenStackCluster, +OpenStackClusterTemplateResource) +

+

+

OpenStackClusterSpec defines the desired state of OpenStackCluster.

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+cloudName
+ +string + +
+(Optional) +

The name of the cloud to use from the clouds secret

+
+nodeCidr
+ +string + +
+

NodeCIDR is the OpenStack Subnet to be created. Cluster actuator will create a +network, a subnet with NodeCIDR, and a router connected to this subnet. +If you leave this empty, no network will be created.

+
+router
+ + +RouterFilter + + +
+(Optional) +

If NodeCIDR is set this option can be used to detect an existing router. +If specified, no new router will be created.

+
+network
+ + +NetworkFilter + + +
+

If NodeCIDR cannot be set this can be used to detect an existing network.

+
+subnet
+ + +SubnetFilter + + +
+

If NodeCIDR cannot be set this can be used to detect an existing subnet.

+
+networkMtu
+ +int + +
+(Optional) +

NetworkMTU sets the maximum transmission unit (MTU) value to address fragmentation for the private network ID. +This value will be used only if the Cluster actuator creates the network. +If leaved empty, the network will have the default MTU defined in Openstack network service. +To use this field, the Openstack installation requires the net-mtu neutron API extension.

+
+dnsNameservers
+ +[]string + +
+

DNSNameservers is the list of nameservers for OpenStack Subnet being created. +Set this value when you need create a new network/subnet while the access +through DNS is required.

+
+externalRouterIPs
+ + +[]ExternalRouterIPParam + + +
+

ExternalRouterIPs is an array of externalIPs on the respective subnets. +This is necessary if the router needs a fixed ip in a specific subnet.

+
+externalNetworkId
+ +string + +
+(Optional) +

ExternalNetworkID is the ID of an external OpenStack Network. This is necessary +to get public internet to the VMs.

+
+apiServerLoadBalancer
+ + +APIServerLoadBalancer + + +
+(Optional) +

APIServerLoadBalancer configures the optional LoadBalancer for the APIServer. +It must be activated by setting enabled: true.

+
+disableAPIServerFloatingIP
+ +bool + +
+(Optional) +

DisableAPIServerFloatingIP determines whether or not to attempt to attach a floating +IP to the API server. This allows for the creation of clusters when attaching a floating +IP to the API server (and hence, in many cases, exposing the API server to the internet) +is not possible or desirable, e.g. if using a shared VLAN for communication between +management and workload clusters or when the management cluster is inside the +project network. +This option requires that the API server use a VIP on the cluster network so that the +underlying machines can change without changing ControlPlaneEndpoint.Host. +When using a managed load balancer, this VIP will be managed automatically. +If not using a managed load balancer, cluster configuration will fail without additional +configuration to manage the VIP on the control plane machines, which falls outside of +the scope of this controller.

+
+apiServerFloatingIP
+ +string + +
+

APIServerFloatingIP is the floatingIP which will be associated with the API server. +The floatingIP will be created if it does not already exist. +If not specified, a new floatingIP is allocated. +This field is not used if DisableAPIServerFloatingIP is set to true.

+
+apiServerFixedIP
+ +string + +
+

APIServerFixedIP is the fixed IP which will be associated with the API server. +In the case where the API server has a floating IP but not a managed load balancer, +this field is not used. +If a managed load balancer is used and this field is not specified, a fixed IP will +be dynamically allocated for the load balancer. +If a managed load balancer is not used AND the API server floating IP is disabled, +this field MUST be specified and should correspond to a pre-allocated port that +holds the fixed IP to be used as a VIP.

+
+apiServerPort
+ +int + +
+

APIServerPort is the port on which the listener on the APIServer +will be created

+
+managedSecurityGroups
+ +bool + +
+(Optional) +

ManagedSecurityGroups determines whether OpenStack security groups for the cluster +will be managed by the OpenStack provider or whether pre-existing security groups will +be specified as part of the configuration. +By default, the managed security groups have rules that allow the Kubelet, etcd, the +Kubernetes API server and the Calico CNI plugin to function correctly.

+
+allowAllInClusterTraffic
+ +bool + +
+(Optional) +

AllowAllInClusterTraffic is only used when managed security groups are in use. +If set to true, the rules for the managed security groups are configured so that all +ingress and egress between cluster nodes is permitted, allowing CNIs other than +Calico to be used.

+
+disablePortSecurity
+ +bool + +
+

DisablePortSecurity disables the port security of the network created for the +Kubernetes cluster, which also disables SecurityGroups

+
+tags
+ +[]string + +
+

Tags for all resources in cluster

+
+controlPlaneEndpoint
+ + +sigs.k8s.io/cluster-api/api/v1beta1.APIEndpoint + + +
+(Optional) +

ControlPlaneEndpoint represents the endpoint used to communicate with the control plane.

+
+controlPlaneAvailabilityZones
+ +[]string + +
+

ControlPlaneAvailabilityZones is the az to deploy control plane to

+
+controlPlaneOmitAvailabilityZone
+ +bool + +
+

Indicates whether to omit the az for control plane nodes, allowing the Nova scheduler +to make a decision on which az to use based on other scheduling constraints

+
+bastion
+ + +Bastion + + +
+(Optional) +

Bastion is the OpenStack instance to login the nodes

+

As a rolling update is not ideal during a bastion host session, we +prevent changes to a running bastion configuration. Set enabled: false to +make changes.

+
+identityRef
+ + +OpenStackIdentityReference + + +
+(Optional) +

IdentityRef is a reference to a identity to be used when reconciling this cluster

+
+

OpenStackClusterStatus +

+

+(Appears on: +OpenStackCluster) +

+

+

OpenStackClusterStatus defines the observed state of OpenStackCluster.

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+ready
+ +bool + +
+
+network
+ + +NetworkStatusWithSubnets + + +
+

Network contains information about the created OpenStack Network.

+
+externalNetwork
+ + +NetworkStatus + + +
+

externalNetwork contains information about the external network used for default ingress and egress traffic.

+
+router
+ + +Router + + +
+

Router describes the default cluster router

+
+apiServerLoadBalancer
+ + +LoadBalancer + + +
+

APIServerLoadBalancer describes the api server load balancer if one exists

+
+failureDomains
+ + +sigs.k8s.io/cluster-api/api/v1beta1.FailureDomains + + +
+

FailureDomains represent OpenStack availability zones

+
+controlPlaneSecurityGroup
+ + +SecurityGroup + + +
+

ControlPlaneSecurityGroups contains all the information about the OpenStack +Security Group that needs to be applied to control plane nodes. +TODO: Maybe instead of two properties, we add a property to the group?

+
+workerSecurityGroup
+ + +SecurityGroup + + +
+

WorkerSecurityGroup contains all the information about the OpenStack Security +Group that needs to be applied to worker nodes.

+
+bastionSecurityGroup
+ + +SecurityGroup + + +
+
+bastion
+ + +BastionStatus + + +
+
+failureReason
+ + +sigs.k8s.io/cluster-api/errors.ClusterStatusError + + +
+(Optional) +

FailureReason will be set in the event that there is a terminal problem +reconciling the OpenStackCluster and will contain a succinct value suitable +for machine interpretation.

+

This field should not be set for transitive errors that a controller +faces that are expected to be fixed automatically over +time (like service outages), but instead indicate that something is +fundamentally wrong with the OpenStackCluster’s spec or the configuration of +the controller, and that manual intervention is required. Examples +of terminal errors would be invalid combinations of settings in the +spec, values that are unsupported by the controller, or the +responsible controller itself being critically misconfigured.

+

Any transient errors that occur during the reconciliation of +OpenStackClusters can be added as events to the OpenStackCluster object +and/or logged in the controller’s output.

+
+failureMessage
+ +string + +
+(Optional) +

FailureMessage will be set in the event that there is a terminal problem +reconciling the OpenStackCluster and will contain a more verbose string suitable +for logging and human consumption.

+

This field should not be set for transitive errors that a controller +faces that are expected to be fixed automatically over +time (like service outages), but instead indicate that something is +fundamentally wrong with the OpenStackCluster’s spec or the configuration of +the controller, and that manual intervention is required. Examples +of terminal errors would be invalid combinations of settings in the +spec, values that are unsupported by the controller, or the +responsible controller itself being critically misconfigured.

+

Any transient errors that occur during the reconciliation of +OpenStackClusters can be added as events to the OpenStackCluster object +and/or logged in the controller’s output.

+
+

OpenStackClusterTemplateResource +

+

+(Appears on: +OpenStackClusterTemplateSpec) +

+

+

OpenStackClusterTemplateResource describes the data needed to create a OpenStackCluster from a template.

+

+ + + + + + + + + + + + + +
FieldDescription
+spec
+ + +OpenStackClusterSpec + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+cloudName
+ +string + +
+(Optional) +

The name of the cloud to use from the clouds secret

+
+nodeCidr
+ +string + +
+

NodeCIDR is the OpenStack Subnet to be created. Cluster actuator will create a +network, a subnet with NodeCIDR, and a router connected to this subnet. +If you leave this empty, no network will be created.

+
+router
+ + +RouterFilter + + +
+(Optional) +

If NodeCIDR is set this option can be used to detect an existing router. +If specified, no new router will be created.

+
+network
+ + +NetworkFilter + + +
+

If NodeCIDR cannot be set this can be used to detect an existing network.

+
+subnet
+ + +SubnetFilter + + +
+

If NodeCIDR cannot be set this can be used to detect an existing subnet.

+
+networkMtu
+ +int + +
+(Optional) +

NetworkMTU sets the maximum transmission unit (MTU) value to address fragmentation for the private network ID. +This value will be used only if the Cluster actuator creates the network. +If leaved empty, the network will have the default MTU defined in Openstack network service. +To use this field, the Openstack installation requires the net-mtu neutron API extension.

+
+dnsNameservers
+ +[]string + +
+

DNSNameservers is the list of nameservers for OpenStack Subnet being created. +Set this value when you need create a new network/subnet while the access +through DNS is required.

+
+externalRouterIPs
+ + +[]ExternalRouterIPParam + + +
+

ExternalRouterIPs is an array of externalIPs on the respective subnets. +This is necessary if the router needs a fixed ip in a specific subnet.

+
+externalNetworkId
+ +string + +
+(Optional) +

ExternalNetworkID is the ID of an external OpenStack Network. This is necessary +to get public internet to the VMs.

+
+apiServerLoadBalancer
+ + +APIServerLoadBalancer + + +
+(Optional) +

APIServerLoadBalancer configures the optional LoadBalancer for the APIServer. +It must be activated by setting enabled: true.

+
+disableAPIServerFloatingIP
+ +bool + +
+(Optional) +

DisableAPIServerFloatingIP determines whether or not to attempt to attach a floating +IP to the API server. This allows for the creation of clusters when attaching a floating +IP to the API server (and hence, in many cases, exposing the API server to the internet) +is not possible or desirable, e.g. if using a shared VLAN for communication between +management and workload clusters or when the management cluster is inside the +project network. +This option requires that the API server use a VIP on the cluster network so that the +underlying machines can change without changing ControlPlaneEndpoint.Host. +When using a managed load balancer, this VIP will be managed automatically. +If not using a managed load balancer, cluster configuration will fail without additional +configuration to manage the VIP on the control plane machines, which falls outside of +the scope of this controller.

+
+apiServerFloatingIP
+ +string + +
+

APIServerFloatingIP is the floatingIP which will be associated with the API server. +The floatingIP will be created if it does not already exist. +If not specified, a new floatingIP is allocated. +This field is not used if DisableAPIServerFloatingIP is set to true.

+
+apiServerFixedIP
+ +string + +
+

APIServerFixedIP is the fixed IP which will be associated with the API server. +In the case where the API server has a floating IP but not a managed load balancer, +this field is not used. +If a managed load balancer is used and this field is not specified, a fixed IP will +be dynamically allocated for the load balancer. +If a managed load balancer is not used AND the API server floating IP is disabled, +this field MUST be specified and should correspond to a pre-allocated port that +holds the fixed IP to be used as a VIP.

+
+apiServerPort
+ +int + +
+

APIServerPort is the port on which the listener on the APIServer +will be created

+
+managedSecurityGroups
+ +bool + +
+(Optional) +

ManagedSecurityGroups determines whether OpenStack security groups for the cluster +will be managed by the OpenStack provider or whether pre-existing security groups will +be specified as part of the configuration. +By default, the managed security groups have rules that allow the Kubelet, etcd, the +Kubernetes API server and the Calico CNI plugin to function correctly.

+
+allowAllInClusterTraffic
+ +bool + +
+(Optional) +

AllowAllInClusterTraffic is only used when managed security groups are in use. +If set to true, the rules for the managed security groups are configured so that all +ingress and egress between cluster nodes is permitted, allowing CNIs other than +Calico to be used.

+
+disablePortSecurity
+ +bool + +
+

DisablePortSecurity disables the port security of the network created for the +Kubernetes cluster, which also disables SecurityGroups

+
+tags
+ +[]string + +
+

Tags for all resources in cluster

+
+controlPlaneEndpoint
+ + +sigs.k8s.io/cluster-api/api/v1beta1.APIEndpoint + + +
+(Optional) +

ControlPlaneEndpoint represents the endpoint used to communicate with the control plane.

+
+controlPlaneAvailabilityZones
+ +[]string + +
+

ControlPlaneAvailabilityZones is the az to deploy control plane to

+
+controlPlaneOmitAvailabilityZone
+ +bool + +
+

Indicates whether to omit the az for control plane nodes, allowing the Nova scheduler +to make a decision on which az to use based on other scheduling constraints

+
+bastion
+ + +Bastion + + +
+(Optional) +

Bastion is the OpenStack instance to login the nodes

+

As a rolling update is not ideal during a bastion host session, we +prevent changes to a running bastion configuration. Set enabled: false to +make changes.

+
+identityRef
+ + +OpenStackIdentityReference + + +
+(Optional) +

IdentityRef is a reference to a identity to be used when reconciling this cluster

+
+
+

OpenStackClusterTemplateSpec +

+

+(Appears on: +OpenStackClusterTemplate) +

+

+

OpenStackClusterTemplateSpec defines the desired state of OpenStackClusterTemplate.

+

+ + + + + + + + + + + + + +
FieldDescription
+template
+ + +OpenStackClusterTemplateResource + + +
+
+

OpenStackIdentityReference +

+

+(Appears on: +OpenStackClusterSpec, +OpenStackMachineSpec) +

+

+

OpenStackIdentityReference is a reference to an infrastructure +provider identity to be used to provision cluster resources.

+

+ + + + + + + + + + + + + + + + + +
FieldDescription
+kind
+ +string + +
+

Kind of the identity. Must be supported by the infrastructure +provider and may be either cluster or namespace-scoped.

+
+name
+ +string + +
+

Name of the infrastructure identity to be used. +Must be either a cluster-scoped resource, or namespaced-scoped +resource the same namespace as the resource(s) being provisioned.

+
+

OpenStackMachineSpec +

+

+(Appears on: +OpenStackMachine, +Bastion, +OpenStackMachineTemplateResource) +

+

+

OpenStackMachineSpec defines the desired state of OpenStackMachine.

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+providerID
+ +string + +
+

ProviderID is the unique identifier as specified by the cloud provider.

+
+instanceID
+ +string + +
+

InstanceID is the OpenStack instance ID for this machine.

+
+cloudName
+ +string + +
+(Optional) +

The name of the cloud to use from the clouds secret

+
+flavor
+ +string + +
+

The flavor reference for the flavor for your server instance.

+
+image
+ +string + +
+

The name of the image to use for your server instance. +If the RootVolume is specified, this will be ignored and use rootVolume directly.

+
+imageUUID
+ +string + +
+

The uuid of the image to use for your server instance. +if it’s empty, Image name will be used

+
+sshKeyName
+ +string + +
+

The ssh key to inject in the instance

+
+ports
+ + +[]PortOpts + + +
+

Ports to be attached to the server instance. They are created if a port with the given name does not already exist. +If not specified a default port will be added for the default cluster network.

+
+floatingIP
+ +string + +
+

The floatingIP which will be associated to the machine, only used for master. +The floatingIP should have been created and haven’t been associated.

+
+securityGroups
+ + +[]SecurityGroupFilter + + +
+

The names of the security groups to assign to the instance

+
+trunk
+ +bool + +
+

Whether the server instance is created on a trunk port or not.

+
+tags
+ +[]string + +
+

Machine tags +Requires Nova api 2.52 minimum!

+
+serverMetadata
+ +map[string]string + +
+

Metadata mapping. Allows you to create a map of key value pairs to add to the server instance.

+
+configDrive
+ +bool + +
+

Config Drive support

+
+rootVolume
+ + +RootVolume + + +
+

The volume metadata to boot from

+
+additionalBlockDevices
+ + +[]AdditionalBlockDevice + + +
+(Optional) +

AdditionalBlockDevices is a list of specifications for additional block devices to attach to the server instance

+
+serverGroupID
+ +string + +
+

The server group to assign the machine to

+
+identityRef
+ + +OpenStackIdentityReference + + +
+(Optional) +

IdentityRef is a reference to a identity to be used when reconciling this cluster. +If not specified, the identity ref of the cluster will be used instead.

+
+

OpenStackMachineStatus +

+

+(Appears on: +OpenStackMachine) +

+

+

OpenStackMachineStatus defines the observed state of OpenStackMachine.

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+ready
+ +bool + +
+(Optional) +

Ready is true when the provider resource is ready.

+
+addresses
+ +[]Kubernetes core/v1.NodeAddress + +
+

Addresses contains the OpenStack instance associated addresses.

+
+instanceState
+ + +InstanceState + + +
+(Optional) +

InstanceState is the state of the OpenStack instance for this machine.

+
+failureReason
+ + +sigs.k8s.io/cluster-api/errors.MachineStatusError + + +
+
+failureMessage
+ +string + +
+(Optional) +

FailureMessage will be set in the event that there is a terminal problem +reconciling the Machine and will contain a more verbose string suitable +for logging and human consumption.

+

This field should not be set for transitive errors that a controller +faces that are expected to be fixed automatically over +time (like service outages), but instead indicate that something is +fundamentally wrong with the Machine’s spec or the configuration of +the controller, and that manual intervention is required. Examples +of terminal errors would be invalid combinations of settings in the +spec, values that are unsupported by the controller, or the +responsible controller itself being critically misconfigured.

+

Any transient errors that occur during the reconciliation of Machines +can be added as events to the Machine object and/or logged in the +controller’s output.

+
+conditions
+ + +sigs.k8s.io/cluster-api/api/v1beta1.Conditions + + +
+
+

OpenStackMachineTemplateResource +

+

+(Appears on: +OpenStackMachineTemplateSpec) +

+

+

OpenStackMachineTemplateResource describes the data needed to create a OpenStackMachine from a template.

+

+ + + + + + + + + + + + + +
FieldDescription
+spec
+ + +OpenStackMachineSpec + + +
+

Spec is the specification of the desired behavior of the machine.

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+providerID
+ +string + +
+

ProviderID is the unique identifier as specified by the cloud provider.

+
+instanceID
+ +string + +
+

InstanceID is the OpenStack instance ID for this machine.

+
+cloudName
+ +string + +
+(Optional) +

The name of the cloud to use from the clouds secret

+
+flavor
+ +string + +
+

The flavor reference for the flavor for your server instance.

+
+image
+ +string + +
+

The name of the image to use for your server instance. +If the RootVolume is specified, this will be ignored and use rootVolume directly.

+
+imageUUID
+ +string + +
+

The uuid of the image to use for your server instance. +if it’s empty, Image name will be used

+
+sshKeyName
+ +string + +
+

The ssh key to inject in the instance

+
+ports
+ + +[]PortOpts + + +
+

Ports to be attached to the server instance. They are created if a port with the given name does not already exist. +If not specified a default port will be added for the default cluster network.

+
+floatingIP
+ +string + +
+

The floatingIP which will be associated to the machine, only used for master. +The floatingIP should have been created and haven’t been associated.

+
+securityGroups
+ + +[]SecurityGroupFilter + + +
+

The names of the security groups to assign to the instance

+
+trunk
+ +bool + +
+

Whether the server instance is created on a trunk port or not.

+
+tags
+ +[]string + +
+

Machine tags +Requires Nova api 2.52 minimum!

+
+serverMetadata
+ +map[string]string + +
+

Metadata mapping. Allows you to create a map of key value pairs to add to the server instance.

+
+configDrive
+ +bool + +
+

Config Drive support

+
+rootVolume
+ + +RootVolume + + +
+

The volume metadata to boot from

+
+additionalBlockDevices
+ + +[]AdditionalBlockDevice + + +
+(Optional) +

AdditionalBlockDevices is a list of specifications for additional block devices to attach to the server instance

+
+serverGroupID
+ +string + +
+

The server group to assign the machine to

+
+identityRef
+ + +OpenStackIdentityReference + + +
+(Optional) +

IdentityRef is a reference to a identity to be used when reconciling this cluster. +If not specified, the identity ref of the cluster will be used instead.

+
+
+

OpenStackMachineTemplateSpec +

+

+(Appears on: +OpenStackMachineTemplate) +

+

+

OpenStackMachineTemplateSpec defines the desired state of OpenStackMachineTemplate.

+

+ + + + + + + + + + + + + +
FieldDescription
+template
+ + +OpenStackMachineTemplateResource + + +
+
+

PortOpts +

+

+(Appears on: +OpenStackMachineSpec) +

+

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+network
+ + +NetworkFilter + + +
+

Network is a query for an openstack network that the port will be created or discovered on. +This will fail if the query returns more than one network.

+
+nameSuffix
+ +string + +
+

Used to make the name of the port unique. If unspecified, instead the 0-based index of the port in the list is used.

+
+description
+ +string + +
+
+adminStateUp
+ +bool + +
+
+macAddress
+ +string + +
+
+fixedIPs
+ + +[]FixedIP + + +
+

Specify pairs of subnet and/or IP address. These should be subnets of the network with the given NetworkID.

+
+securityGroupFilters
+ + +[]SecurityGroupFilter + + +
+

The names, uuids, filters or any combination these of the security groups to assign to the instance

+
+allowedAddressPairs
+ + +[]AddressPair + + +
+
+trunk
+ +bool + +
+

Enables and disables trunk at port level. If not provided, openStackMachine.Spec.Trunk is inherited.

+
+hostId
+ +string + +
+

The ID of the host where the port is allocated

+
+vnicType
+ +string + +
+

The virtual network interface card (vNIC) type that is bound to the neutron port.

+
+profile
+ + +BindingProfile + + +
+

Profile is a set of key-value pairs that are used for binding details. +We intentionally don’t expose this as a map[string]string because we only want to enable +the users to set the values of the keys that are known to work in OpenStack Networking API. +See https://docs.openstack.org/api-ref/network/v2/index.html?expanded=create-port-detail#create-port

+
+disablePortSecurity
+ +bool + +
+

DisablePortSecurity enables or disables the port security when set. +When not set, it takes the value of the corresponding field at the network level.

+
+propagateUplinkStatus
+ +bool + +
+

PropageteUplinkStatus enables or disables the propagate uplink status on the port.

+
+tags
+ +[]string + +
+

Tags applied to the port (and corresponding trunk, if a trunk is configured.) +These tags are applied in addition to the instance’s tags, which will also be applied to the port.

+
+valueSpecs
+ + +[]ValueSpec + + +
+(Optional) +

Value specs are extra parameters to include in the API request with OpenStack. +This is an extension point for the API, so what they do and if they are supported, +depends on the specific OpenStack implementation.

+
+

RootVolume +

+

+(Appears on: +OpenStackMachineSpec) +

+

+

+ + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+diskSize
+ +int + +
+
+volumeType
+ +string + +
+
+availabilityZone
+ +string + +
+
+

Router +

+

+(Appears on: +OpenStackClusterStatus) +

+

+

Router represents basic information about the associated OpenStack Neutron Router.

+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+name
+ +string + +
+
+id
+ +string + +
+
+tags
+ +[]string + +
+(Optional) +
+ips
+ +[]string + +
+(Optional) +
+

RouterFilter +

+

+(Appears on: +OpenStackClusterSpec) +

+

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+id
+ +string + +
+
+name
+ +string + +
+
+description
+ +string + +
+
+projectId
+ +string + +
+
+tags
+ +string + +
+
+tagsAny
+ +string + +
+
+notTags
+ +string + +
+
+notTagsAny
+ +string + +
+
+

SecurityGroup +

+

+(Appears on: +OpenStackClusterStatus) +

+

+

SecurityGroup represents the basic information of the associated +OpenStack Neutron Security Group.

+

+ + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+name
+ +string + +
+
+id
+ +string + +
+
+rules
+ + +[]SecurityGroupRule + + +
+
+

SecurityGroupFilter +

+

+(Appears on: +OpenStackMachineSpec, +PortOpts) +

+

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+id
+ +string + +
+
+name
+ +string + +
+
+description
+ +string + +
+
+projectId
+ +string + +
+
+tags
+ +string + +
+
+tagsAny
+ +string + +
+
+notTags
+ +string + +
+
+notTagsAny
+ +string + +
+
+

SecurityGroupRule +

+

+(Appears on: +SecurityGroup) +

+

+

SecurityGroupRule represent the basic information of the associated OpenStack +Security Group Role.

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+description
+ +string + +
+
+name
+ +string + +
+
+direction
+ +string + +
+
+etherType
+ +string + +
+
+securityGroupID
+ +string + +
+
+portRangeMin
+ +int + +
+
+portRangeMax
+ +int + +
+
+protocol
+ +string + +
+
+remoteGroupID
+ +string + +
+
+remoteIPPrefix
+ +string + +
+
+

Subnet +

+

+(Appears on: +NetworkStatusWithSubnets) +

+

+

Subnet represents basic information about the associated OpenStack Neutron Subnet.

+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+name
+ +string + +
+
+id
+ +string + +
+
+cidr
+ +string + +
+
+tags
+ +[]string + +
+(Optional) +
+

SubnetFilter +

+

+(Appears on: +ExternalRouterIPParam, +FixedIP, +OpenStackClusterSpec) +

+

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+name
+ +string + +
+
+description
+ +string + +
+
+projectId
+ +string + +
+
+ipVersion
+ +int + +
+
+gateway_ip
+ +string + +
+
+cidr
+ +string + +
+
+ipv6AddressMode
+ +string + +
+
+ipv6RaMode
+ +string + +
+
+id
+ +string + +
+
+tags
+ +string + +
+
+tagsAny
+ +string + +
+
+notTags
+ +string + +
+
+notTagsAny
+ +string + +
+
+

ValueSpec +

+

+(Appears on: +PortOpts) +

+

+

ValueSpec represents a single value_spec key-value pair.

+

+ + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+name
+ +string + +
+

Name is the name of the key-value pair. +This is just for identifying the pair and will not be sent to the OpenStack API.

+
+key
+ +string + +
+

Key is the key in the key-value pair.

+
+value
+ +string + +
+

Value is the value in the key-value pair.

+
+
+

+Generated with gen-crd-api-reference-docs. +

diff --git a/docs/book/src/api/v1beta1/api.md b/docs/book/src/api/v1beta1/api.md new file mode 100644 index 0000000000..f55c02035e --- /dev/null +++ b/docs/book/src/api/v1beta1/api.md @@ -0,0 +1,4806 @@ +

infrastructure.cluster.x-k8s.io/v1beta1

+

+

Package v1beta1 contains API Schema definitions for the infrastructure v1beta1 API group.

+

+Resource Types: + +

OpenStackCluster +

+

+

OpenStackCluster is the Schema for the openstackclusters API.

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+apiVersion
+string
+ +infrastructure.cluster.x-k8s.io/v1beta1 + +
+kind
+string +
OpenStackCluster
+metadata
+ +Kubernetes meta/v1.ObjectMeta + +
+Refer to the Kubernetes API documentation for the fields of the +metadata field. +
+spec
+ + +OpenStackClusterSpec + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+cloudName
+ +string + +
+(Optional) +

The name of the cloud to use from the clouds secret

+
+managedSubnets
+ + +[]SubnetSpec + + +
+

ManagedSubnets describe OpenStack Subnets to be created. Cluster actuator will create a network, +subnets with the defined CIDR, and a router connected to these subnets. Currently only one IPv4 +subnet is supported. If you leave this empty, no network will be created.

+
+router
+ + +RouterFilter + + +
+(Optional) +

Router specifies an existing router to be used if ManagedSubnets are +specified. If specified, no new router will be created.

+
+network
+ + +NetworkFilter + + +
+

Network specifies an existing network to use if no ManagedSubnets +are specified.

+
+subnets
+ + +[]SubnetFilter + + +
+(Optional) +

Subnets specifies existing subnets to use if not ManagedSubnets are +specified. All subnets must be in the network specified by Network. +There can be zero, one, or two subnets. If no subnets are specified, +all subnets in Network will be used. If 2 subnets are specified, one +must be IPv4 and the other IPv6.

+
+networkMtu
+ +int + +
+(Optional) +

NetworkMTU sets the maximum transmission unit (MTU) value to address fragmentation for the private network ID. +This value will be used only if the Cluster actuator creates the network. +If left empty, the network will have the default MTU defined in Openstack network service. +To use this field, the Openstack installation requires the net-mtu neutron API extension.

+
+externalRouterIPs
+ + +[]ExternalRouterIPParam + + +
+

ExternalRouterIPs is an array of externalIPs on the respective subnets. +This is necessary if the router needs a fixed ip in a specific subnet.

+
+externalNetwork
+ + +NetworkFilter + + +
+(Optional) +

ExternalNetwork is the OpenStack Network to be used to get public internet to the VMs.

+
+disableExternalNetwork
+ +bool + +
+(Optional) +

DisableExternalNetwork determines whether or not to attempt to connect the cluster +to an external network. This allows for the creation of clusters when connecting +to an external network is not possible or desirable, e.g. if using a provider network.

+
+apiServerLoadBalancer
+ + +APIServerLoadBalancer + + +
+(Optional) +

APIServerLoadBalancer configures the optional LoadBalancer for the APIServer. +It must be activated by setting enabled: true.

+
+disableAPIServerFloatingIP
+ +bool + +
+(Optional) +

DisableAPIServerFloatingIP determines whether or not to attempt to attach a floating +IP to the API server. This allows for the creation of clusters when attaching a floating +IP to the API server (and hence, in many cases, exposing the API server to the internet) +is not possible or desirable, e.g. if using a shared VLAN for communication between +management and workload clusters or when the management cluster is inside the +project network. +This option requires that the API server use a VIP on the cluster network so that the +underlying machines can change without changing ControlPlaneEndpoint.Host. +When using a managed load balancer, this VIP will be managed automatically. +If not using a managed load balancer, cluster configuration will fail without additional +configuration to manage the VIP on the control plane machines, which falls outside of +the scope of this controller.

+
+apiServerFloatingIP
+ +string + +
+

APIServerFloatingIP is the floatingIP which will be associated with the API server. +The floatingIP will be created if it does not already exist. +If not specified, a new floatingIP is allocated. +This field is not used if DisableAPIServerFloatingIP is set to true.

+
+apiServerFixedIP
+ +string + +
+

APIServerFixedIP is the fixed IP which will be associated with the API server. +In the case where the API server has a floating IP but not a managed load balancer, +this field is not used. +If a managed load balancer is used and this field is not specified, a fixed IP will +be dynamically allocated for the load balancer. +If a managed load balancer is not used AND the API server floating IP is disabled, +this field MUST be specified and should correspond to a pre-allocated port that +holds the fixed IP to be used as a VIP.

+
+apiServerPort
+ +int + +
+

APIServerPort is the port on which the listener on the APIServer +will be created

+
+managedSecurityGroups
+ + +ManagedSecurityGroups + + +
+(Optional) +

ManagedSecurityGroups determines whether OpenStack security groups for the cluster +will be managed by the OpenStack provider or whether pre-existing security groups will +be specified as part of the configuration. +By default, the managed security groups have rules that allow the Kubelet, etcd, and the +Kubernetes API server to function correctly. +It’s possible to add additional rules to the managed security groups. +When defined to an empty struct, the managed security groups will be created with the default rules.

+
+disablePortSecurity
+ +bool + +
+

DisablePortSecurity disables the port security of the network created for the +Kubernetes cluster, which also disables SecurityGroups

+
+tags
+ +[]string + +
+

Tags for all resources in cluster

+
+controlPlaneEndpoint
+ + +sigs.k8s.io/cluster-api/api/v1beta1.APIEndpoint + + +
+(Optional) +

ControlPlaneEndpoint represents the endpoint used to communicate with the control plane.

+
+controlPlaneAvailabilityZones
+ +[]string + +
+

ControlPlaneAvailabilityZones is the az to deploy control plane to

+
+controlPlaneOmitAvailabilityZone
+ +bool + +
+

Indicates whether to omit the az for control plane nodes, allowing the Nova scheduler +to make a decision on which az to use based on other scheduling constraints

+
+bastion
+ + +Bastion + + +
+(Optional) +

Bastion is the OpenStack instance to login the nodes

+

As a rolling update is not ideal during a bastion host session, we +prevent changes to a running bastion configuration. To make changes, it’s required +to first set enabled: false which will remove the bastion and then changes can be made.

+
+identityRef
+ + +OpenStackIdentityReference + + +
+(Optional) +

IdentityRef is a reference to a identity to be used when reconciling this cluster

+
+
+status
+ + +OpenStackClusterStatus + + +
+
+

OpenStackClusterTemplate +

+

+

OpenStackClusterTemplate is the Schema for the openstackclustertemplates API.

+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+apiVersion
+string
+ +infrastructure.cluster.x-k8s.io/v1beta1 + +
+kind
+string +
OpenStackClusterTemplate
+metadata
+ +Kubernetes meta/v1.ObjectMeta + +
+Refer to the Kubernetes API documentation for the fields of the +metadata field. +
+spec
+ + +OpenStackClusterTemplateSpec + + +
+
+
+ + + + + +
+template
+ + +OpenStackClusterTemplateResource + + +
+
+
+

OpenStackMachine +

+

+

OpenStackMachine is the Schema for the openstackmachines API.

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+apiVersion
+string
+ +infrastructure.cluster.x-k8s.io/v1beta1 + +
+kind
+string +
OpenStackMachine
+metadata
+ +Kubernetes meta/v1.ObjectMeta + +
+Refer to the Kubernetes API documentation for the fields of the +metadata field. +
+spec
+ + +OpenStackMachineSpec + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+providerID
+ +string + +
+

ProviderID is the unique identifier as specified by the cloud provider.

+
+instanceID
+ +string + +
+

InstanceID is the OpenStack instance ID for this machine.

+
+cloudName
+ +string + +
+(Optional) +

The name of the cloud to use from the clouds secret

+
+flavor
+ +string + +
+

The flavor reference for the flavor for your server instance.

+
+image
+ + +ImageFilter + + +
+

The image to use for your server instance. +If the rootVolume is specified, this will be used when creating the root volume.

+
+sshKeyName
+ +string + +
+

The ssh key to inject in the instance

+
+ports
+ + +[]PortOpts + + +
+

Ports to be attached to the server instance. They are created if a port with the given name does not already exist. +If not specified a default port will be added for the default cluster network.

+
+securityGroups
+ + +[]SecurityGroupFilter + + +
+

The names of the security groups to assign to the instance

+
+trunk
+ +bool + +
+

Whether the server instance is created on a trunk port or not.

+
+tags
+ +[]string + +
+

Machine tags +Requires Nova api 2.52 minimum!

+
+serverMetadata
+ + +[]ServerMetadata + + +
+

Metadata mapping. Allows you to create a map of key value pairs to add to the server instance.

+
+configDrive
+ +bool + +
+

Config Drive support

+
+rootVolume
+ + +RootVolume + + +
+

The volume metadata to boot from

+
+additionalBlockDevices
+ + +[]AdditionalBlockDevice + + +
+(Optional) +

AdditionalBlockDevices is a list of specifications for additional block devices to attach to the server instance

+
+serverGroup
+ + +ServerGroupFilter + + +
+(Optional) +

The server group to assign the machine to.

+
+identityRef
+ + +OpenStackIdentityReference + + +
+(Optional) +

IdentityRef is a reference to a identity to be used when reconciling this cluster

+
+
+status
+ + +OpenStackMachineStatus + + +
+
+

OpenStackMachineTemplate +

+

+

OpenStackMachineTemplate is the Schema for the openstackmachinetemplates API.

+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+apiVersion
+string
+ +infrastructure.cluster.x-k8s.io/v1beta1 + +
+kind
+string +
OpenStackMachineTemplate
+metadata
+ +Kubernetes meta/v1.ObjectMeta + +
+Refer to the Kubernetes API documentation for the fields of the +metadata field. +
+spec
+ + +OpenStackMachineTemplateSpec + + +
+
+
+ + + + + +
+template
+ + +OpenStackMachineTemplateResource + + +
+
+
+

APIServerLoadBalancer +

+

+(Appears on: +OpenStackClusterSpec) +

+

+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+enabled
+ +bool + +
+

Enabled defines whether a load balancer should be created.

+
+additionalPorts
+ +[]int + +
+

AdditionalPorts adds additional tcp ports to the load balancer.

+
+allowedCidrs
+ +[]string + +
+

AllowedCIDRs restrict access to all API-Server listeners to the given address CIDRs.

+
+provider
+ +string + +
+

Octavia Provider Used to create load balancer

+
+

AdditionalBlockDevice +

+

+(Appears on: +OpenStackMachineSpec) +

+

+

AdditionalBlockDevice is a block device to attach to the server.

+

+ + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+name
+ +string + +
+

Name of the block device in the context of a machine. +If the block device is a volume, the Cinder volume will be named +as a combination of the machine name and this name. +Also, this name will be used for tagging the block device. +Information about the block device tag can be obtained from the OpenStack +metadata API or the config drive.

+
+sizeGiB
+ +int + +
+

SizeGiB is the size of the block device in gibibytes (GiB).

+
+storage
+ + +BlockDeviceStorage + + +
+

Storage specifies the storage type of the block device and +additional storage options.

+
+

AddressPair +

+

+(Appears on: +PortOpts) +

+

+

+ + + + + + + + + + + + + + + + + +
FieldDescription
+ipAddress
+ +string + +
+
+macAddress
+ +string + +
+
+

AllocationPool +

+

+(Appears on: +SubnetSpec) +

+

+

+ + + + + + + + + + + + + + + + + +
FieldDescription
+start
+ +string + +
+

Start represents the start of the AllocationPool, that is the lowest IP of the pool.

+
+end
+ +string + +
+

End represents the end of the AlloctionPool, that is the highest IP of the pool.

+
+

Bastion +

+

+(Appears on: +OpenStackClusterSpec) +

+

+

Bastion represents basic information about the bastion node.

+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+enabled
+ +bool + +
+(Optional) +
+instance
+ + +OpenStackMachineSpec + + +
+

Instance for the bastion itself

+
+availabilityZone
+ +string + +
+(Optional) +
+floatingIP
+ +string + +
+(Optional) +

FloatingIP which will be associated to the bastion machine. +The floating IP should already exist and should not be associated with a port.

+
+

BastionStatus +

+

+(Appears on: +OpenStackClusterStatus) +

+

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+id
+ +string + +
+
+name
+ +string + +
+
+sshKeyName
+ +string + +
+
+state
+ + +InstanceState + + +
+
+ip
+ +string + +
+
+floatingIP
+ +string + +
+
+referencedResources
+ + +ReferencedMachineResources + + +
+
+dependentResources
+ + +DependentMachineResources + + +
+
+

BindingProfile +

+

+(Appears on: +PortOpts) +

+

+

+ + + + + + + + + + + + + + + + + +
FieldDescription
+ovsHWOffload
+ +bool + +
+

OVSHWOffload enables or disables the OVS hardware offload feature.

+
+trustedVF
+ +bool + +
+

TrustedVF enables or disables the “trusted mode” for the VF.

+
+

BlockDeviceStorage +

+

+(Appears on: +AdditionalBlockDevice) +

+

+

BlockDeviceStorage is the storage type of a block device to create and +contains additional storage options.

+

+ + + + + + + + + + + + + + + + + +
FieldDescription
+type
+ + +BlockDeviceType + + +
+

Type is the type of block device to create. +This can be either “Volume” or “Local”.

+
+volume
+ + +BlockDeviceVolume + + +
+(Optional) +

Volume contains additional storage options for a volume block device.

+
+

BlockDeviceType +(string alias)

+

+(Appears on: +BlockDeviceStorage) +

+

+

BlockDeviceType defines the type of block device to create.

+

+ + + + + + + + + + + + +
ValueDescription

"Local"

LocalBlockDevice is an ephemeral block device attached to the server.

+

"Volume"

VolumeBlockDevice is a volume block device attached to the server.

+
+

BlockDeviceVolume +

+

+(Appears on: +BlockDeviceStorage) +

+

+

BlockDeviceVolume contains additional storage options for a volume block device.

+

+ + + + + + + + + + + + + + + + + +
FieldDescription
+type
+ +string + +
+(Optional) +

Type is the Cinder volume type of the volume. +If omitted, the default Cinder volume type that is configured in the OpenStack cloud +will be used.

+
+availabilityZone
+ +string + +
+(Optional) +

AvailabilityZone is the volume availability zone to create the volume in. +If omitted, the availability zone of the server will be used. +The availability zone must NOT contain spaces otherwise it will lead to volume that belongs +to this availability zone register failure, see kubernetes/cloud-provider-openstack#1379 for +further information.

+
+

DependentMachineResources +

+

+(Appears on: +BastionStatus, +OpenStackMachineStatus) +

+

+

+ + + + + + + + + + + + + +
FieldDescription
+portsStatus
+ + +[]PortStatus + + +
+(Optional) +

PortsStatus is the status of the ports created for the machine.

+
+

ExternalRouterIPParam +

+

+(Appears on: +OpenStackClusterSpec) +

+

+

+ + + + + + + + + + + + + + + + + +
FieldDescription
+fixedIP
+ +string + +
+

The FixedIP in the corresponding subnet

+
+subnet
+ + +SubnetFilter + + +
+

The subnet in which the FixedIP is used for the Gateway of this router

+
+

FixedIP +

+

+(Appears on: +PortOpts) +

+

+

+ + + + + + + + + + + + + + + + + +
FieldDescription
+subnet
+ + +SubnetFilter + + +
+

Subnet is an openstack subnet query that will return the id of a subnet to create +the fixed IP of a port in. This query must not return more than one subnet.

+
+ipAddress
+ +string + +
+
+

ImageFilter +

+

+(Appears on: +OpenStackMachineSpec) +

+

+

+ + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+id
+ +string + +
+

The ID of the desired image. If this is provided, the other filters will be ignored.

+
+name
+ +string + +
+

The name of the desired image. If specified, the combination of name and tags must return a single matching image or an error will be raised.

+
+tags
+ +[]string + +
+

The tags associated with the desired image. If specified, the combination of name and tags must return a single matching image or an error will be raised.

+
+

InstanceState +(string alias)

+

+(Appears on: +BastionStatus, +OpenStackMachineStatus) +

+

+

InstanceState describes the state of an OpenStack instance.

+

+

LoadBalancer +

+

+(Appears on: +OpenStackClusterStatus) +

+

+

LoadBalancer represents basic information about the associated OpenStack LoadBalancer.

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+name
+ +string + +
+
+id
+ +string + +
+
+ip
+ +string + +
+
+internalIP
+ +string + +
+
+allowedCIDRs
+ +[]string + +
+(Optional) +
+tags
+ +[]string + +
+(Optional) +
+

ManagedSecurityGroupName +(string alias)

+

+(Appears on: +SecurityGroupRuleSpec) +

+

+

+

ManagedSecurityGroups +

+

+(Appears on: +OpenStackClusterSpec) +

+

+

ManagedSecurityGroups defines the desired state of security groups and rules for the cluster.

+

+ + + + + + + + + + + + + + + + + +
FieldDescription
+allNodesSecurityGroupRules
+ + +[]SecurityGroupRuleSpec + + +
+(Optional) +

allNodesSecurityGroupRules defines the rules that should be applied to all nodes.

+
+allowAllInClusterTraffic
+ +bool + +
+

AllowAllInClusterTraffic allows all ingress and egress traffic between cluster nodes when set to true.

+
+

NetworkFilter +

+

+(Appears on: +OpenStackClusterSpec, +PortOpts) +

+

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+name
+ +string + +
+
+description
+ +string + +
+
+projectId
+ +string + +
+
+id
+ +string + +
+
+tags
+ +string + +
+
+tagsAny
+ +string + +
+
+notTags
+ +string + +
+
+notTagsAny
+ +string + +
+
+

NetworkStatus +

+

+(Appears on: +NetworkStatusWithSubnets, +OpenStackClusterStatus) +

+

+

NetworkStatus contains basic information about an existing neutron network.

+

+ + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+name
+ +string + +
+
+id
+ +string + +
+
+tags
+ +[]string + +
+(Optional) +
+

NetworkStatusWithSubnets +

+

+(Appears on: +OpenStackClusterStatus) +

+

+

NetworkStatusWithSubnets represents basic information about an existing neutron network and an associated set of subnets.

+

+ + + + + + + + + + + + + + + + + +
FieldDescription
+NetworkStatus
+ + +NetworkStatus + + +
+

+(Members of NetworkStatus are embedded into this type.) +

+
+subnets
+ + +[]Subnet + + +
+

Subnets is a list of subnets associated with the default cluster network. Machines which use the default cluster network will get an address from all of these subnets.

+
+

OpenStackClusterSpec +

+

+(Appears on: +OpenStackCluster, +OpenStackClusterTemplateResource) +

+

+

OpenStackClusterSpec defines the desired state of OpenStackCluster.

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+cloudName
+ +string + +
+(Optional) +

The name of the cloud to use from the clouds secret

+
+managedSubnets
+ + +[]SubnetSpec + + +
+

ManagedSubnets describe OpenStack Subnets to be created. Cluster actuator will create a network, +subnets with the defined CIDR, and a router connected to these subnets. Currently only one IPv4 +subnet is supported. If you leave this empty, no network will be created.

+
+router
+ + +RouterFilter + + +
+(Optional) +

Router specifies an existing router to be used if ManagedSubnets are +specified. If specified, no new router will be created.

+
+network
+ + +NetworkFilter + + +
+

Network specifies an existing network to use if no ManagedSubnets +are specified.

+
+subnets
+ + +[]SubnetFilter + + +
+(Optional) +

Subnets specifies existing subnets to use if not ManagedSubnets are +specified. All subnets must be in the network specified by Network. +There can be zero, one, or two subnets. If no subnets are specified, +all subnets in Network will be used. If 2 subnets are specified, one +must be IPv4 and the other IPv6.

+
+networkMtu
+ +int + +
+(Optional) +

NetworkMTU sets the maximum transmission unit (MTU) value to address fragmentation for the private network ID. +This value will be used only if the Cluster actuator creates the network. +If left empty, the network will have the default MTU defined in Openstack network service. +To use this field, the Openstack installation requires the net-mtu neutron API extension.

+
+externalRouterIPs
+ + +[]ExternalRouterIPParam + + +
+

ExternalRouterIPs is an array of externalIPs on the respective subnets. +This is necessary if the router needs a fixed ip in a specific subnet.

+
+externalNetwork
+ + +NetworkFilter + + +
+(Optional) +

ExternalNetwork is the OpenStack Network to be used to get public internet to the VMs.

+
+disableExternalNetwork
+ +bool + +
+(Optional) +

DisableExternalNetwork determines whether or not to attempt to connect the cluster +to an external network. This allows for the creation of clusters when connecting +to an external network is not possible or desirable, e.g. if using a provider network.

+
+apiServerLoadBalancer
+ + +APIServerLoadBalancer + + +
+(Optional) +

APIServerLoadBalancer configures the optional LoadBalancer for the APIServer. +It must be activated by setting enabled: true.

+
+disableAPIServerFloatingIP
+ +bool + +
+(Optional) +

DisableAPIServerFloatingIP determines whether or not to attempt to attach a floating +IP to the API server. This allows for the creation of clusters when attaching a floating +IP to the API server (and hence, in many cases, exposing the API server to the internet) +is not possible or desirable, e.g. if using a shared VLAN for communication between +management and workload clusters or when the management cluster is inside the +project network. +This option requires that the API server use a VIP on the cluster network so that the +underlying machines can change without changing ControlPlaneEndpoint.Host. +When using a managed load balancer, this VIP will be managed automatically. +If not using a managed load balancer, cluster configuration will fail without additional +configuration to manage the VIP on the control plane machines, which falls outside of +the scope of this controller.

+
+apiServerFloatingIP
+ +string + +
+

APIServerFloatingIP is the floatingIP which will be associated with the API server. +The floatingIP will be created if it does not already exist. +If not specified, a new floatingIP is allocated. +This field is not used if DisableAPIServerFloatingIP is set to true.

+
+apiServerFixedIP
+ +string + +
+

APIServerFixedIP is the fixed IP which will be associated with the API server. +In the case where the API server has a floating IP but not a managed load balancer, +this field is not used. +If a managed load balancer is used and this field is not specified, a fixed IP will +be dynamically allocated for the load balancer. +If a managed load balancer is not used AND the API server floating IP is disabled, +this field MUST be specified and should correspond to a pre-allocated port that +holds the fixed IP to be used as a VIP.

+
+apiServerPort
+ +int + +
+

APIServerPort is the port on which the listener on the APIServer +will be created

+
+managedSecurityGroups
+ + +ManagedSecurityGroups + + +
+(Optional) +

ManagedSecurityGroups determines whether OpenStack security groups for the cluster +will be managed by the OpenStack provider or whether pre-existing security groups will +be specified as part of the configuration. +By default, the managed security groups have rules that allow the Kubelet, etcd, and the +Kubernetes API server to function correctly. +It’s possible to add additional rules to the managed security groups. +When defined to an empty struct, the managed security groups will be created with the default rules.

+
+disablePortSecurity
+ +bool + +
+

DisablePortSecurity disables the port security of the network created for the +Kubernetes cluster, which also disables SecurityGroups

+
+tags
+ +[]string + +
+

Tags for all resources in cluster

+
+controlPlaneEndpoint
+ + +sigs.k8s.io/cluster-api/api/v1beta1.APIEndpoint + + +
+(Optional) +

ControlPlaneEndpoint represents the endpoint used to communicate with the control plane.

+
+controlPlaneAvailabilityZones
+ +[]string + +
+

ControlPlaneAvailabilityZones is the az to deploy control plane to

+
+controlPlaneOmitAvailabilityZone
+ +bool + +
+

Indicates whether to omit the az for control plane nodes, allowing the Nova scheduler +to make a decision on which az to use based on other scheduling constraints

+
+bastion
+ + +Bastion + + +
+(Optional) +

Bastion is the OpenStack instance to login the nodes

+

As a rolling update is not ideal during a bastion host session, we +prevent changes to a running bastion configuration. To make changes, it’s required +to first set enabled: false which will remove the bastion and then changes can be made.

+
+identityRef
+ + +OpenStackIdentityReference + + +
+(Optional) +

IdentityRef is a reference to a identity to be used when reconciling this cluster

+
+

OpenStackClusterStatus +

+

+(Appears on: +OpenStackCluster) +

+

+

OpenStackClusterStatus defines the observed state of OpenStackCluster.

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+ready
+ +bool + +
+

Ready is true when the cluster infrastructure is ready.

+
+network
+ + +NetworkStatusWithSubnets + + +
+

Network contains information about the created OpenStack Network.

+
+externalNetwork
+ + +NetworkStatus + + +
+

externalNetwork contains information about the external network used for default ingress and egress traffic.

+
+router
+ + +Router + + +
+

Router describes the default cluster router

+
+apiServerLoadBalancer
+ + +LoadBalancer + + +
+

APIServerLoadBalancer describes the api server load balancer if one exists

+
+failureDomains
+ + +sigs.k8s.io/cluster-api/api/v1beta1.FailureDomains + + +
+

FailureDomains represent OpenStack availability zones

+
+controlPlaneSecurityGroup
+ + +SecurityGroupStatus + + +
+

ControlPlaneSecurityGroups contains all the information about the OpenStack +Security Group that needs to be applied to control plane nodes. +TODO: Maybe instead of two properties, we add a property to the group?

+
+workerSecurityGroup
+ + +SecurityGroupStatus + + +
+

WorkerSecurityGroup contains all the information about the OpenStack Security +Group that needs to be applied to worker nodes.

+
+bastionSecurityGroup
+ + +SecurityGroupStatus + + +
+
+bastion
+ + +BastionStatus + + +
+
+failureReason
+ + +sigs.k8s.io/cluster-api/errors.ClusterStatusError + + +
+(Optional) +

FailureReason will be set in the event that there is a terminal problem +reconciling the OpenStackCluster and will contain a succinct value suitable +for machine interpretation.

+

This field should not be set for transitive errors that a controller +faces that are expected to be fixed automatically over +time (like service outages), but instead indicate that something is +fundamentally wrong with the OpenStackCluster’s spec or the configuration of +the controller, and that manual intervention is required. Examples +of terminal errors would be invalid combinations of settings in the +spec, values that are unsupported by the controller, or the +responsible controller itself being critically misconfigured.

+

Any transient errors that occur during the reconciliation of +OpenStackClusters can be added as events to the OpenStackCluster object +and/or logged in the controller’s output.

+
+failureMessage
+ +string + +
+(Optional) +

FailureMessage will be set in the event that there is a terminal problem +reconciling the OpenStackCluster and will contain a more verbose string suitable +for logging and human consumption.

+

This field should not be set for transitive errors that a controller +faces that are expected to be fixed automatically over +time (like service outages), but instead indicate that something is +fundamentally wrong with the OpenStackCluster’s spec or the configuration of +the controller, and that manual intervention is required. Examples +of terminal errors would be invalid combinations of settings in the +spec, values that are unsupported by the controller, or the +responsible controller itself being critically misconfigured.

+

Any transient errors that occur during the reconciliation of +OpenStackClusters can be added as events to the OpenStackCluster object +and/or logged in the controller’s output.

+
+

OpenStackClusterTemplateResource +

+

+(Appears on: +OpenStackClusterTemplateSpec) +

+

+

OpenStackClusterTemplateResource describes the data needed to create a OpenStackCluster from a template.

+

+ + + + + + + + + + + + + +
FieldDescription
+spec
+ + +OpenStackClusterSpec + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+cloudName
+ +string + +
+(Optional) +

The name of the cloud to use from the clouds secret

+
+managedSubnets
+ + +[]SubnetSpec + + +
+

ManagedSubnets describe OpenStack Subnets to be created. Cluster actuator will create a network, +subnets with the defined CIDR, and a router connected to these subnets. Currently only one IPv4 +subnet is supported. If you leave this empty, no network will be created.

+
+router
+ + +RouterFilter + + +
+(Optional) +

Router specifies an existing router to be used if ManagedSubnets are +specified. If specified, no new router will be created.

+
+network
+ + +NetworkFilter + + +
+

Network specifies an existing network to use if no ManagedSubnets +are specified.

+
+subnets
+ + +[]SubnetFilter + + +
+(Optional) +

Subnets specifies existing subnets to use if not ManagedSubnets are +specified. All subnets must be in the network specified by Network. +There can be zero, one, or two subnets. If no subnets are specified, +all subnets in Network will be used. If 2 subnets are specified, one +must be IPv4 and the other IPv6.

+
+networkMtu
+ +int + +
+(Optional) +

NetworkMTU sets the maximum transmission unit (MTU) value to address fragmentation for the private network ID. +This value will be used only if the Cluster actuator creates the network. +If left empty, the network will have the default MTU defined in Openstack network service. +To use this field, the Openstack installation requires the net-mtu neutron API extension.

+
+externalRouterIPs
+ + +[]ExternalRouterIPParam + + +
+

ExternalRouterIPs is an array of externalIPs on the respective subnets. +This is necessary if the router needs a fixed ip in a specific subnet.

+
+externalNetwork
+ + +NetworkFilter + + +
+(Optional) +

ExternalNetwork is the OpenStack Network to be used to get public internet to the VMs.

+
+disableExternalNetwork
+ +bool + +
+(Optional) +

DisableExternalNetwork determines whether or not to attempt to connect the cluster +to an external network. This allows for the creation of clusters when connecting +to an external network is not possible or desirable, e.g. if using a provider network.

+
+apiServerLoadBalancer
+ + +APIServerLoadBalancer + + +
+(Optional) +

APIServerLoadBalancer configures the optional LoadBalancer for the APIServer. +It must be activated by setting enabled: true.

+
+disableAPIServerFloatingIP
+ +bool + +
+(Optional) +

DisableAPIServerFloatingIP determines whether or not to attempt to attach a floating +IP to the API server. This allows for the creation of clusters when attaching a floating +IP to the API server (and hence, in many cases, exposing the API server to the internet) +is not possible or desirable, e.g. if using a shared VLAN for communication between +management and workload clusters or when the management cluster is inside the +project network. +This option requires that the API server use a VIP on the cluster network so that the +underlying machines can change without changing ControlPlaneEndpoint.Host. +When using a managed load balancer, this VIP will be managed automatically. +If not using a managed load balancer, cluster configuration will fail without additional +configuration to manage the VIP on the control plane machines, which falls outside of +the scope of this controller.

+
+apiServerFloatingIP
+ +string + +
+

APIServerFloatingIP is the floatingIP which will be associated with the API server. +The floatingIP will be created if it does not already exist. +If not specified, a new floatingIP is allocated. +This field is not used if DisableAPIServerFloatingIP is set to true.

+
+apiServerFixedIP
+ +string + +
+

APIServerFixedIP is the fixed IP which will be associated with the API server. +In the case where the API server has a floating IP but not a managed load balancer, +this field is not used. +If a managed load balancer is used and this field is not specified, a fixed IP will +be dynamically allocated for the load balancer. +If a managed load balancer is not used AND the API server floating IP is disabled, +this field MUST be specified and should correspond to a pre-allocated port that +holds the fixed IP to be used as a VIP.

+
+apiServerPort
+ +int + +
+

APIServerPort is the port on which the listener on the APIServer +will be created

+
+managedSecurityGroups
+ + +ManagedSecurityGroups + + +
+(Optional) +

ManagedSecurityGroups determines whether OpenStack security groups for the cluster +will be managed by the OpenStack provider or whether pre-existing security groups will +be specified as part of the configuration. +By default, the managed security groups have rules that allow the Kubelet, etcd, and the +Kubernetes API server to function correctly. +It’s possible to add additional rules to the managed security groups. +When defined to an empty struct, the managed security groups will be created with the default rules.

+
+disablePortSecurity
+ +bool + +
+

DisablePortSecurity disables the port security of the network created for the +Kubernetes cluster, which also disables SecurityGroups

+
+tags
+ +[]string + +
+

Tags for all resources in cluster

+
+controlPlaneEndpoint
+ + +sigs.k8s.io/cluster-api/api/v1beta1.APIEndpoint + + +
+(Optional) +

ControlPlaneEndpoint represents the endpoint used to communicate with the control plane.

+
+controlPlaneAvailabilityZones
+ +[]string + +
+

ControlPlaneAvailabilityZones is the az to deploy control plane to

+
+controlPlaneOmitAvailabilityZone
+ +bool + +
+

Indicates whether to omit the az for control plane nodes, allowing the Nova scheduler +to make a decision on which az to use based on other scheduling constraints

+
+bastion
+ + +Bastion + + +
+(Optional) +

Bastion is the OpenStack instance to login the nodes

+

As a rolling update is not ideal during a bastion host session, we +prevent changes to a running bastion configuration. To make changes, it’s required +to first set enabled: false which will remove the bastion and then changes can be made.

+
+identityRef
+ + +OpenStackIdentityReference + + +
+(Optional) +

IdentityRef is a reference to a identity to be used when reconciling this cluster

+
+
+

OpenStackClusterTemplateSpec +

+

+(Appears on: +OpenStackClusterTemplate) +

+

+

OpenStackClusterTemplateSpec defines the desired state of OpenStackClusterTemplate.

+

+ + + + + + + + + + + + + +
FieldDescription
+template
+ + +OpenStackClusterTemplateResource + + +
+
+

OpenStackIdentityReference +

+

+(Appears on: +OpenStackClusterSpec, +OpenStackMachineSpec) +

+

+

OpenStackIdentityReference is a reference to an infrastructure +provider identity to be used to provision cluster resources.

+

+ + + + + + + + + + + + + +
FieldDescription
+name
+ +string + +
+

Name of the infrastructure identity to be used. +Must be either a cluster-scoped resource, or namespaced-scoped +resource the same namespace as the resource(s) being provisioned.

+
+

OpenStackMachineSpec +

+

+(Appears on: +OpenStackMachine, +Bastion, +OpenStackMachineTemplateResource) +

+

+

OpenStackMachineSpec defines the desired state of OpenStackMachine.

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+providerID
+ +string + +
+

ProviderID is the unique identifier as specified by the cloud provider.

+
+instanceID
+ +string + +
+

InstanceID is the OpenStack instance ID for this machine.

+
+cloudName
+ +string + +
+(Optional) +

The name of the cloud to use from the clouds secret

+
+flavor
+ +string + +
+

The flavor reference for the flavor for your server instance.

+
+image
+ + +ImageFilter + + +
+

The image to use for your server instance. +If the rootVolume is specified, this will be used when creating the root volume.

+
+sshKeyName
+ +string + +
+

The ssh key to inject in the instance

+
+ports
+ + +[]PortOpts + + +
+

Ports to be attached to the server instance. They are created if a port with the given name does not already exist. +If not specified a default port will be added for the default cluster network.

+
+securityGroups
+ + +[]SecurityGroupFilter + + +
+

The names of the security groups to assign to the instance

+
+trunk
+ +bool + +
+

Whether the server instance is created on a trunk port or not.

+
+tags
+ +[]string + +
+

Machine tags +Requires Nova api 2.52 minimum!

+
+serverMetadata
+ + +[]ServerMetadata + + +
+

Metadata mapping. Allows you to create a map of key value pairs to add to the server instance.

+
+configDrive
+ +bool + +
+

Config Drive support

+
+rootVolume
+ + +RootVolume + + +
+

The volume metadata to boot from

+
+additionalBlockDevices
+ + +[]AdditionalBlockDevice + + +
+(Optional) +

AdditionalBlockDevices is a list of specifications for additional block devices to attach to the server instance

+
+serverGroup
+ + +ServerGroupFilter + + +
+(Optional) +

The server group to assign the machine to.

+
+identityRef
+ + +OpenStackIdentityReference + + +
+(Optional) +

IdentityRef is a reference to a identity to be used when reconciling this cluster

+
+

OpenStackMachineStatus +

+

+(Appears on: +OpenStackMachine) +

+

+

OpenStackMachineStatus defines the observed state of OpenStackMachine.

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+ready
+ +bool + +
+(Optional) +

Ready is true when the provider resource is ready.

+
+addresses
+ +[]Kubernetes core/v1.NodeAddress + +
+

Addresses contains the OpenStack instance associated addresses.

+
+instanceState
+ + +InstanceState + + +
+(Optional) +

InstanceState is the state of the OpenStack instance for this machine.

+
+referencedResources
+ + +ReferencedMachineResources + + +
+

ReferencedResources contains resolved references to resources that the machine depends on.

+
+dependentResources
+ + +DependentMachineResources + + +
+

DependentResources contains resolved dependent resources that were created by the machine.

+
+failureReason
+ + +sigs.k8s.io/cluster-api/errors.MachineStatusError + + +
+
+failureMessage
+ +string + +
+(Optional) +

FailureMessage will be set in the event that there is a terminal problem +reconciling the Machine and will contain a more verbose string suitable +for logging and human consumption.

+

This field should not be set for transitive errors that a controller +faces that are expected to be fixed automatically over +time (like service outages), but instead indicate that something is +fundamentally wrong with the Machine’s spec or the configuration of +the controller, and that manual intervention is required. Examples +of terminal errors would be invalid combinations of settings in the +spec, values that are unsupported by the controller, or the +responsible controller itself being critically misconfigured.

+

Any transient errors that occur during the reconciliation of Machines +can be added as events to the Machine object and/or logged in the +controller’s output.

+
+conditions
+ + +sigs.k8s.io/cluster-api/api/v1beta1.Conditions + + +
+
+

OpenStackMachineTemplateResource +

+

+(Appears on: +OpenStackMachineTemplateSpec) +

+

+

OpenStackMachineTemplateResource describes the data needed to create a OpenStackMachine from a template.

+

+ + + + + + + + + + + + + +
FieldDescription
+spec
+ + +OpenStackMachineSpec + + +
+

Spec is the specification of the desired behavior of the machine.

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+providerID
+ +string + +
+

ProviderID is the unique identifier as specified by the cloud provider.

+
+instanceID
+ +string + +
+

InstanceID is the OpenStack instance ID for this machine.

+
+cloudName
+ +string + +
+(Optional) +

The name of the cloud to use from the clouds secret

+
+flavor
+ +string + +
+

The flavor reference for the flavor for your server instance.

+
+image
+ + +ImageFilter + + +
+

The image to use for your server instance. +If the rootVolume is specified, this will be used when creating the root volume.

+
+sshKeyName
+ +string + +
+

The ssh key to inject in the instance

+
+ports
+ + +[]PortOpts + + +
+

Ports to be attached to the server instance. They are created if a port with the given name does not already exist. +If not specified a default port will be added for the default cluster network.

+
+securityGroups
+ + +[]SecurityGroupFilter + + +
+

The names of the security groups to assign to the instance

+
+trunk
+ +bool + +
+

Whether the server instance is created on a trunk port or not.

+
+tags
+ +[]string + +
+

Machine tags +Requires Nova api 2.52 minimum!

+
+serverMetadata
+ + +[]ServerMetadata + + +
+

Metadata mapping. Allows you to create a map of key value pairs to add to the server instance.

+
+configDrive
+ +bool + +
+

Config Drive support

+
+rootVolume
+ + +RootVolume + + +
+

The volume metadata to boot from

+
+additionalBlockDevices
+ + +[]AdditionalBlockDevice + + +
+(Optional) +

AdditionalBlockDevices is a list of specifications for additional block devices to attach to the server instance

+
+serverGroup
+ + +ServerGroupFilter + + +
+(Optional) +

The server group to assign the machine to.

+
+identityRef
+ + +OpenStackIdentityReference + + +
+(Optional) +

IdentityRef is a reference to a identity to be used when reconciling this cluster

+
+
+

OpenStackMachineTemplateSpec +

+

+(Appears on: +OpenStackMachineTemplate) +

+

+

OpenStackMachineTemplateSpec defines the desired state of OpenStackMachineTemplate.

+

+ + + + + + + + + + + + + +
FieldDescription
+template
+ + +OpenStackMachineTemplateResource + + +
+
+

OpenStackMachineTemplateWebhook +

+

+

+

PortOpts +

+

+(Appears on: +OpenStackMachineSpec, +ReferencedMachineResources) +

+

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+network
+ + +NetworkFilter + + +
+

Network is a query for an openstack network that the port will be created or discovered on. +This will fail if the query returns more than one network.

+
+nameSuffix
+ +string + +
+

Used to make the name of the port unique. If unspecified, instead the 0-based index of the port in the list is used.

+
+description
+ +string + +
+
+adminStateUp
+ +bool + +
+
+macAddress
+ +string + +
+
+fixedIPs
+ + +[]FixedIP + + +
+

Specify pairs of subnet and/or IP address. These should be subnets of the network with the given NetworkID.

+
+securityGroupFilters
+ + +[]SecurityGroupFilter + + +
+

The names, uuids, filters or any combination these of the security groups to assign to the instance

+
+allowedAddressPairs
+ + +[]AddressPair + + +
+
+trunk
+ +bool + +
+

Enables and disables trunk at port level. If not provided, openStackMachine.Spec.Trunk is inherited.

+
+hostId
+ +string + +
+

The ID of the host where the port is allocated

+
+vnicType
+ +string + +
+

The virtual network interface card (vNIC) type that is bound to the neutron port.

+
+profile
+ + +BindingProfile + + +
+

Profile is a set of key-value pairs that are used for binding details. +We intentionally don’t expose this as a map[string]string because we only want to enable +the users to set the values of the keys that are known to work in OpenStack Networking API. +See https://docs.openstack.org/api-ref/network/v2/index.html?expanded=create-port-detail#create-port

+
+disablePortSecurity
+ +bool + +
+

DisablePortSecurity enables or disables the port security when set. +When not set, it takes the value of the corresponding field at the network level.

+
+propagateUplinkStatus
+ +bool + +
+

PropageteUplinkStatus enables or disables the propagate uplink status on the port.

+
+tags
+ +[]string + +
+

Tags applied to the port (and corresponding trunk, if a trunk is configured.) +These tags are applied in addition to the instance’s tags, which will also be applied to the port.

+
+valueSpecs
+ + +[]ValueSpec + + +
+(Optional) +

Value specs are extra parameters to include in the API request with OpenStack. +This is an extension point for the API, so what they do and if they are supported, +depends on the specific OpenStack implementation.

+
+

PortStatus +

+

+(Appears on: +DependentMachineResources) +

+

+

+ + + + + + + + + + + + + +
FieldDescription
+id
+ +string + +
+

ID is the unique identifier of the port.

+
+

ReferencedMachineResources +

+

+(Appears on: +BastionStatus, +OpenStackMachineStatus) +

+

+

ReferencedMachineResources contains resolved references to resources required by the machine.

+

+ + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+serverGroupID
+ +string + +
+(Optional) +

ServerGroupID is the ID of the server group the machine should be added to and is calculated based on ServerGroupFilter.

+
+imageID
+ +string + +
+(Optional) +

ImageID is the ID of the image to use for the machine and is calculated based on ImageFilter.

+
+portsOpts
+ + +[]PortOpts + + +
+(Optional) +

portsOpts is the list of ports options to create for the machine.

+
+

RootVolume +

+

+(Appears on: +OpenStackMachineSpec) +

+

+

+ + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+diskSize
+ +int + +
+
+volumeType
+ +string + +
+
+availabilityZone
+ +string + +
+
+

Router +

+

+(Appears on: +OpenStackClusterStatus) +

+

+

Router represents basic information about the associated OpenStack Neutron Router.

+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+name
+ +string + +
+
+id
+ +string + +
+
+tags
+ +[]string + +
+(Optional) +
+ips
+ +[]string + +
+(Optional) +
+

RouterFilter +

+

+(Appears on: +OpenStackClusterSpec) +

+

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+id
+ +string + +
+
+name
+ +string + +
+
+description
+ +string + +
+
+projectId
+ +string + +
+
+tags
+ +string + +
+
+tagsAny
+ +string + +
+
+notTags
+ +string + +
+
+notTagsAny
+ +string + +
+
+

SecurityGroupFilter +

+

+(Appears on: +OpenStackMachineSpec, +PortOpts) +

+

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+id
+ +string + +
+
+name
+ +string + +
+
+description
+ +string + +
+
+projectId
+ +string + +
+
+tags
+ +string + +
+
+tagsAny
+ +string + +
+
+notTags
+ +string + +
+
+notTagsAny
+ +string + +
+
+

SecurityGroupRuleSpec +

+

+(Appears on: +ManagedSecurityGroups) +

+

+

SecurityGroupRuleSpec represent the basic information of the associated OpenStack +Security Group Role. +For now this is only used for the allNodesSecurityGroupRules but when we add +other security groups, we’ll need to add a validation because +Remote* fields are mutually exclusive.

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+name
+ +string + +
+

name of the security group rule. +It’s used to identify the rule so it can be patched and will not be sent to the OpenStack API.

+
+description
+ +string + +
+(Optional) +

description of the security group rule.

+
+direction
+ +string + +
+

direction in which the security group rule is applied. The only values +allowed are “ingress” or “egress”. For a compute instance, an ingress +security group rule is applied to incoming (ingress) traffic for that +instance. An egress rule is applied to traffic leaving the instance.

+
+etherType
+ +string + +
+(Optional) +

etherType must be IPv4 or IPv6, and addresses represented in CIDR must match the +ingress or egress rules.

+
+portRangeMin
+ +int + +
+(Optional) +

portRangeMin is a number in the range that is matched by the security group +rule. If the protocol is TCP or UDP, this value must be less than or equal +to the value of the portRangeMax attribute.

+
+portRangeMax
+ +int + +
+(Optional) +

portRangeMax is a number in the range that is matched by the security group +rule. The portRangeMin attribute constrains the portRangeMax attribute.

+
+protocol
+ +string + +
+(Optional) +

protocol is the protocol that is matched by the security group rule.

+
+remoteGroupID
+ +string + +
+(Optional) +

remoteGroupID is the remote group ID to be associated with this security group rule. +You can specify either remoteGroupID or remoteIPPrefix or remoteManagedGroups.

+
+remoteIPPrefix
+ +string + +
+(Optional) +

remoteIPPrefix is the remote IP prefix to be associated with this security group rule. +You can specify either remoteGroupID or remoteIPPrefix or remoteManagedGroups.

+
+remoteManagedGroups
+ + +[]ManagedSecurityGroupName + + +
+(Optional) +

remoteManagedGroups is the remote managed groups to be associated with this security group rule. +You can specify either remoteGroupID or remoteIPPrefix or remoteManagedGroups.

+
+

SecurityGroupRuleStatus +

+

+(Appears on: +SecurityGroupStatus) +

+

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+id
+ +string + +
+

id of the security group rule

+
+description
+ +string + +
+(Optional) +

description of the security group rule.

+
+direction
+ +string + +
+

direction in which the security group rule is applied. The only values +allowed are “ingress” or “egress”. For a compute instance, an ingress +security group rule is applied to incoming (ingress) traffic for that +instance. An egress rule is applied to traffic leaving the instance.

+
+etherType
+ +string + +
+(Optional) +

etherType must be IPv4 or IPv6, and addresses represented in CIDR must match the +ingress or egress rules.

+
+portRangeMin
+ +int + +
+(Optional) +

portRangeMin is a number in the range that is matched by the security group +rule. If the protocol is TCP or UDP, this value must be less than or equal +to the value of the portRangeMax attribute.

+
+portRangeMax
+ +int + +
+(Optional) +

portRangeMax is a number in the range that is matched by the security group +rule. The portRangeMin attribute constrains the portRangeMax attribute.

+
+protocol
+ +string + +
+(Optional) +

protocol is the protocol that is matched by the security group rule.

+
+remoteGroupID
+ +string + +
+(Optional) +

remoteGroupID is the remote group ID to be associated with this security group rule. +You can specify either remoteGroupID or remoteIPPrefix or remoteManagedGroups.

+
+remoteIPPrefix
+ +string + +
+(Optional) +

remoteIPPrefix is the remote IP prefix to be associated with this security group rule. +You can specify either remoteGroupID or remoteIPPrefix or remoteManagedGroups.

+
+

SecurityGroupStatus +

+

+(Appears on: +OpenStackClusterStatus) +

+

+

SecurityGroupStatus represents the basic information of the associated +OpenStack Neutron Security Group.

+

+ + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+name
+ +string + +
+

name of the security group

+
+id
+ +string + +
+

id of the security group

+
+rules
+ + +[]SecurityGroupRuleStatus + + +
+(Optional) +

list of security group rules

+
+

ServerGroupFilter +

+

+(Appears on: +OpenStackMachineSpec) +

+

+

+ + + + + + + + + + + + + + + + + +
FieldDescription
+id
+ +string + +
+
+name
+ +string + +
+
+

ServerMetadata +

+

+(Appears on: +OpenStackMachineSpec) +

+

+

+ + + + + + + + + + + + + + + + + +
FieldDescription
+key
+ +string + +
+

Key is the server metadata key +kubebuilder:validation:MaxLength:=255

+
+value
+ +string + +
+

Value is the server metadata value +kubebuilder:validation:MaxLength:=255

+
+

Subnet +

+

+(Appears on: +NetworkStatusWithSubnets) +

+

+

Subnet represents basic information about the associated OpenStack Neutron Subnet.

+

+ + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+name
+ +string + +
+
+id
+ +string + +
+
+cidr
+ +string + +
+
+tags
+ +[]string + +
+(Optional) +
+

SubnetFilter +

+

+(Appears on: +ExternalRouterIPParam, +FixedIP, +OpenStackClusterSpec) +

+

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+name
+ +string + +
+
+description
+ +string + +
+
+projectId
+ +string + +
+
+ipVersion
+ +int + +
+
+gateway_ip
+ +string + +
+
+cidr
+ +string + +
+
+ipv6AddressMode
+ +string + +
+
+ipv6RaMode
+ +string + +
+
+id
+ +string + +
+
+tags
+ +string + +
+
+tagsAny
+ +string + +
+
+notTags
+ +string + +
+
+notTagsAny
+ +string + +
+
+

SubnetSpec +

+

+(Appears on: +OpenStackClusterSpec) +

+

+

+ + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+cidr
+ +string + +
+

CIDR is representing the IP address range used to create the subnet, e.g. 10.0.0.0/24. +This field is required when defining a subnet.

+
+dnsNameservers
+ +[]string + +
+

DNSNameservers holds a list of DNS server addresses that will be provided when creating +the subnet. These addresses need to have the same IP version as CIDR.

+
+allocationPools
+ + +[]AllocationPool + + +
+

AllocationPools is an array of AllocationPool objects that will be applied to OpenStack Subnet being created. +If set, OpenStack will only allocate these IPs for Machines. It will still be possible to create ports from +outside of these ranges manually.

+
+

ValueSpec +

+

+(Appears on: +PortOpts) +

+

+

ValueSpec represents a single value_spec key-value pair.

+

+ + + + + + + + + + + + + + + + + + + + + +
FieldDescription
+name
+ +string + +
+

Name is the name of the key-value pair. +This is just for identifying the pair and will not be sent to the OpenStack API.

+
+key
+ +string + +
+

Key is the key in the key-value pair.

+
+value
+ +string + +
+

Value is the value in the key-value pair.

+
+
+

+Generated with gen-crd-api-reference-docs. +

diff --git a/hack/tools/Makefile b/hack/tools/Makefile index 60f45a9955..f39cfadfd6 100644 --- a/hack/tools/Makefile +++ b/hack/tools/Makefile @@ -142,6 +142,10 @@ $(PLANTUML): plantuml.Dockerfile ../../versions.mk | $(BIN_DIR) docker build --build-arg PLANTUML_VERSION=$(PLANTUML_VERSION) . -f plantuml.Dockerfile -t "plantuml-builder" touch $@ +GEN_CRD_API_REFERENCE_DOCS := $(BIN_DIR)/gen-crd-api-reference-docs +$(GEN_CRD_API_REFERENCE_DOCS): + go build -tags tools -o $@ github.com/ahmetb/gen-crd-api-reference-docs + .PHONY: clean clean: ## Remove all tools rm -rf $(BIN_DIR) diff --git a/hack/tools/go.mod b/hack/tools/go.mod index 79cbbebe17..5d0c742794 100644 --- a/hack/tools/go.mod +++ b/hack/tools/go.mod @@ -4,6 +4,7 @@ go 1.22 require ( github.com/a8m/envsubst v1.2.0 + github.com/ahmetb/gen-crd-api-reference-docs v0.3.1-0.20220420215017-3f29e6853552 github.com/golang/mock v1.6.0 github.com/itchyny/gojq v0.12.2 github.com/onsi/ginkgo/v2 v2.13.0 @@ -47,6 +48,7 @@ require ( github.com/modern-go/reflect2 v1.0.2 // indirect github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00 // indirect github.com/pkg/errors v0.9.1 // indirect + github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/spf13/afero v1.9.2 // indirect github.com/spf13/cobra v1.8.0 // indirect github.com/spf13/pflag v1.0.5 // indirect @@ -70,6 +72,7 @@ require ( k8s.io/apiextensions-apiserver v0.29.0 // indirect k8s.io/apimachinery v0.29.0 // indirect k8s.io/gengo v0.0.0-20230829151522-9cce18d56c01 // indirect + k8s.io/klog v0.2.0 // indirect k8s.io/klog/v2 v2.110.1 // indirect k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00 // indirect k8s.io/utils v0.0.0-20230726121419-3b25d923346b // indirect diff --git a/hack/tools/go.sum b/hack/tools/go.sum index 8d2cb148c6..54f95cff3e 100644 --- a/hack/tools/go.sum +++ b/hack/tools/go.sum @@ -40,6 +40,8 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03 github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/a8m/envsubst v1.2.0 h1:yvzAhJD2QKdo35Ut03wIfXQmg+ta3wC/1bskfZynz+Q= github.com/a8m/envsubst v1.2.0/go.mod h1:PpvLvNWa+Rvu/10qXmFbFiGICIU5hZvFJNPCCkUaObg= +github.com/ahmetb/gen-crd-api-reference-docs v0.3.1-0.20220420215017-3f29e6853552 h1:ppHFRuYry83Rkj933CxFXAV4F2ciIdVz/uLuELSG1DI= +github.com/ahmetb/gen-crd-api-reference-docs v0.3.1-0.20220420215017-3f29e6853552/go.mod h1:TdjdkYhlOifCQWPs1UdTma97kQQMozf5h26hTuG70u8= github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8= github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ= @@ -232,9 +234,12 @@ github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1: github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= +github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/sergi/go-diff v1.1.0 h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0= github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= +github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/spf13/afero v1.9.2 h1:j49Hj62F0n+DaZ1dDCvhABaPNSGNkt32oRFxI33IEMw= github.com/spf13/afero v1.9.2/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y= github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0= @@ -625,8 +630,11 @@ k8s.io/apimachinery v0.29.0 h1:+ACVktwyicPz0oc6MTMLwa2Pw3ouLAfAon1wPLtG48o= k8s.io/apimachinery v0.29.0/go.mod h1:eVBxQ/cwiJxH58eK/jd/vAk4mrxmVlnpBH5J2GbMeis= k8s.io/code-generator v0.29.0 h1:2LQfayGDhaIlaamXjIjEQlCMy4JNCH9lrzas4DNW1GQ= k8s.io/code-generator v0.29.0/go.mod h1:5bqIZoCxs2zTRKMWNYqyQWW/bajc+ah4rh0tMY8zdGA= +k8s.io/gengo v0.0.0-20201203183100-97869a43a9d9/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= k8s.io/gengo v0.0.0-20230829151522-9cce18d56c01 h1:pWEwq4Asjm4vjW7vcsmijwBhOr1/shsbSYiWXmNGlks= k8s.io/gengo v0.0.0-20230829151522-9cce18d56c01/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= +k8s.io/klog v0.2.0 h1:0ElL0OHzF3N+OhoJTL0uca20SxtYt4X4+bzHeqrB83c= +k8s.io/klog v0.2.0/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= k8s.io/klog/v2 v2.110.1 h1:U/Af64HJf7FcwMcXyKm2RPM22WZzyR7OSpYj5tg3cL0= k8s.io/klog/v2 v2.110.1/go.mod h1:YGtd1984u+GgbuZ7e08/yBuAfKLSO0+uR1Fhi6ExXjo= diff --git a/hack/tools/tools.go b/hack/tools/tools.go index a6cbdbe0c5..b43864a9a4 100644 --- a/hack/tools/tools.go +++ b/hack/tools/tools.go @@ -22,6 +22,7 @@ package tools import ( _ "github.com/a8m/envsubst" + _ "github.com/ahmetb/gen-crd-api-reference-docs" _ "github.com/golang/mock/mockgen" _ "github.com/itchyny/gojq/cmd/gojq" _ "github.com/onsi/ginkgo/v2/ginkgo"