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/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 . }}
+ (Members of {{ fieldName . }}
are embedded into this type.)
+
metadata
field.
+ {{ end }}
+
+ {{ if or (eq (fieldName .) "spec") }}
+ + {{ safe (renderComments .) }} +
+ {{ end }} + {{ end }} + + Resource Types: +
+ Generated with gen-crd-api-reference-docs
.
+
{{.Underlying}}
alias){{ end -}}
++ (Appears on: + {{- $prev := "" -}} + {{- range . -}} + {{- if $prev -}}, {{ end -}} + {{ $prev = . }} + {{ typeDisplayName . }} + {{- end -}} + ) +
+{{ end }} + ++ {{ safe (renderComments .CommentLines) }} +
+ +{{ with (constantsOfType .) }} +Value | +Description | +
---|---|
{{ typeDisplayName . }} |
+ {{ safe (renderComments .CommentLines) }} | +
Field | +Description | +
---|---|
+ apiVersion + string |
+
+
+ {{apiGroup .}}
+
+ |
+
+ kind + string + |
+ {{.Name.Name}} |
+
+
Package v1alpha6 contains API Schema definitions for the infrastructure v1alpha6 API group.
+ +Resource Types: + ++
OpenStackCluster is the Schema for the openstackclusters API.
+Deprecated: This type will be removed in one of the next releases.
+ +Field | +Description | +||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
+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 + + + |
+
+ + +
|
+||||||||||||||||||||||||||||||||||||||||||
+status + + +OpenStackClusterStatus + + + |
++ | +
+
OpenStackClusterTemplate is the Schema for the openstackclustertemplates API.
+Deprecated: This type will be removed in one of the next releases.
+ +Field | +Description | +||
---|---|---|---|
+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 + + + |
+
+ + +
|
+
+
OpenStackMachine is the Schema for the openstackmachines API.
+Deprecated: This type will be removed in one of the next releases.
+ +Field | +Description | +||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
+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 + + + |
+
+ + +
|
+||||||||||||||||||||||||||||||||||||||
+status + + +OpenStackMachineStatus + + + |
++ | +
+
OpenStackMachineTemplate is the Schema for the openstackmachinetemplates API.
+Deprecated: This type will be removed in one of the next releases.
+ +Field | +Description | +||
---|---|---|---|
+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 + + + |
+
+ + +
|
+
+(Appears on: +OpenStackClusterSpec) +
++
+Field | +Description | +
---|---|
+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 + |
+
+(Appears on: +PortOpts) +
++
+Field | +Description | +
---|---|
+ipAddress + +string + + |
++ | +
+macAddress + +string + + |
++ | +
+(Appears on: +OpenStackClusterSpec) +
++
Bastion represents basic information about the bastion node.
+ +Field | +Description | +
---|---|
+enabled + +bool + + |
++(Optional) + | +
+instance + + +OpenStackMachineSpec + + + |
+
+ Instance for the bastion itself + |
+
+availabilityZone + +string + + |
++(Optional) + | +
+(Appears on: +OpenStackClusterSpec) +
++
+Field | +Description | +
---|---|
+fixedIP + +string + + |
+
+ The FixedIP in the corresponding subnet + |
+
+subnet + + +SubnetParam + + + |
+
+ The subnet in which the FixedIP is used for the Gateway of this router + |
+
+(Appears on: +PortOpts) +
++
+Field | +Description | +
---|---|
+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 + + |
++ | +
+(Appears on: +OpenStackClusterStatus) +
++
+Field | +Description | +
---|---|
+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 + + |
++ | +
string
alias)+(Appears on: +Instance, +OpenStackMachineStatus) +
++
InstanceState describes the state of an OpenStack instance.
+ ++(Appears on: +Network) +
++
LoadBalancer represents basic information about the associated OpenStack LoadBalancer.
+ +Field | +Description | +
---|---|
+name + +string + + |
++ | +
+id + +string + + |
++ | +
+ip + +string + + |
++ | +
+internalIP + +string + + |
++ | +
+allowedCIDRs + +[]string + + |
++(Optional) + | +
+tags + +[]string + + |
++(Optional) + | +
+(Appears on: +Instance, +OpenStackClusterStatus) +
++
Network represents basic information about an OpenStack Neutron Network associated with an instance’s port.
+ +Field | +Description | +
---|---|
+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 + |
+
+(Appears on: +NetworkParam, +OpenStackClusterSpec, +PortOpts) +
++
+Field | +Description | +
---|---|
+name + +string + + |
++ | +
+description + +string + + |
++ | +
+projectId + +string + + |
++ | +
+id + +string + + |
++ | +
+tags + +string + + |
++ | +
+tagsAny + +string + + |
++ | +
+notTags + +string + + |
++ | +
+notTagsAny + +string + + |
++ | +
+(Appears on: +OpenStackMachineSpec) +
++
+Field | +Description | +
---|---|
+uuid + +string + + |
+
+ Optional UUID of the network.
+If specified this will not be validated prior to server creation.
+Required if |
+
+fixedIP + +string + + |
+
+ A fixed IPv4 address for the NIC. + |
+
+filter + + +NetworkFilter + + + |
+
+ Filters for optional network query + |
+
+subnets + + +[]SubnetParam + + + |
+
+ Subnet within a network to use + |
+
+(Appears on: +OpenStackCluster, +OpenStackClusterTemplateResource) +
++
OpenStackClusterSpec defines the desired state of OpenStackCluster.
+ +Field | +Description | +
---|---|
+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 |
+
+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 |
+
+identityRef + + +OpenStackIdentityReference + + + |
+
+(Optional)
+ IdentityRef is a reference to a identity to be used when reconciling this cluster + |
+
+(Appears on: +OpenStackCluster) +
++
OpenStackClusterStatus defines the observed state of OpenStackCluster.
+ +Field | +Description | +
---|---|
+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. + |
+
+(Appears on: +OpenStackClusterTemplateSpec) +
++
OpenStackClusterTemplateResource describes the data needed to create a OpenStackCluster from a template.
+ +Field | +Description | +||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
+spec + + +OpenStackClusterSpec + + + |
+
+ + +
|
+
+(Appears on: +OpenStackClusterTemplate) +
++
OpenStackClusterTemplateSpec defines the desired state of OpenStackClusterTemplate.
+ +Field | +Description | +
---|---|
+template + + +OpenStackClusterTemplateResource + + + |
++ | +
+(Appears on: +OpenStackClusterSpec, +OpenStackMachineSpec) +
++
OpenStackIdentityReference is a reference to an infrastructure +provider identity to be used to provision cluster resources.
+ +Field | +Description | +
---|---|
+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. + |
+
+(Appears on: +OpenStackMachine, +Bastion, +OpenStackMachineTemplateResource) +
++
OpenStackMachineSpec defines the desired state of OpenStackMachine.
+ +Field | +Description | +
---|---|
+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 + |
+
+(Appears on: +OpenStackMachine) +
++
OpenStackMachineStatus defines the observed state of OpenStackMachine.
+ +Field | +Description | +
---|---|
+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 + + + |
++ | +
+(Appears on: +OpenStackMachineTemplateSpec) +
++
OpenStackMachineTemplateResource describes the data needed to create a OpenStackMachine from a template.
+ +Field | +Description | +||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
+spec + + +OpenStackMachineSpec + + + |
+
+ Spec is the specification of the desired behavior of the machine. ++ +
|
+
+(Appears on: +OpenStackMachineTemplate) +
++
OpenStackMachineTemplateSpec defines the desired state of OpenStackMachineTemplate.
+ +Field | +Description | +
---|---|
+template + + +OpenStackMachineTemplateResource + + + |
++ | +
+(Appears on: +Network, +OpenStackMachineSpec) +
++
+Field | +Description | +
---|---|
+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. + |
+
+(Appears on: +Instance, +OpenStackMachineSpec) +
++
+Field | +Description | +
---|---|
+diskSize + +int + + |
++ | +
+volumeType + +string + + |
++ | +
+availabilityZone + +string + + |
++ | +
+(Appears on: +Network) +
++
Router represents basic information about the associated OpenStack Neutron Router.
+ +Field | +Description | +
---|---|
+name + +string + + |
++ | +
+id + +string + + |
++ | +
+tags + +[]string + + |
++(Optional) + | +
+ips + +[]string + + |
++(Optional) + | +
+(Appears on: +OpenStackClusterStatus) +
++
SecurityGroup represents the basic information of the associated +OpenStack Neutron Security Group.
+ +Field | +Description | +
---|---|
+name + +string + + |
++ | +
+id + +string + + |
++ | +
+rules + + +[]SecurityGroupRule + + + |
++ | +
+(Appears on: +SecurityGroupParam) +
++
+Field | +Description | +
---|---|
+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 + + |
++ | +
+(Appears on: +OpenStackMachineSpec, +PortOpts) +
++
+Field | +Description | +
---|---|
+uuid + +string + + |
+
+ Security Group UID + |
+
+name + +string + + |
+
+ Security Group name + |
+
+filter + + +SecurityGroupFilter + + + |
+
+ Filters used to query security groups in openstack + |
+
+(Appears on: +SecurityGroup) +
++
SecurityGroupRule represent the basic information of the associated OpenStack +Security Group Role.
+ +Field | +Description | +
---|---|
+description + +string + + |
++ | +
+name + +string + + |
++ | +
+direction + +string + + |
++ | +
+etherType + +string + + |
++ | +
+securityGroupID + +string + + |
++ | +
+portRangeMin + +int + + |
++ | +
+portRangeMax + +int + + |
++ | +
+protocol + +string + + |
++ | +
+remoteGroupID + +string + + |
++ | +
+remoteIPPrefix + +string + + |
++ | +
+(Appears on: +Network) +
++
Subnet represents basic information about the associated OpenStack Neutron Subnet.
+ +Field | +Description | +
---|---|
+name + +string + + |
++ | +
+id + +string + + |
++ | +
+cidr + +string + + |
++ | +
+tags + +[]string + + |
++(Optional) + | +
+(Appears on: +FixedIP, +OpenStackClusterSpec, +SubnetParam) +
++
+Field | +Description | +
---|---|
+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 + + |
++ | +
+(Appears on: +ExternalRouterIPParam, +NetworkParam) +
++
+Field | +Description | +
---|---|
+uuid + +string + + |
+
+ Optional UUID of the subnet.
+If specified this will not be validated prior to server creation.
+If specified, the enclosing |
+
+filter + + +SubnetFilter + + + |
+
+ Filters for optional subnet query + |
+
+(Appears on: +PortOpts) +
++
ValueSpec represents a single value_spec key-value pair.
+ +Field | +Description | +
---|---|
+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
.
+
+
Package v1alpha7 contains API Schema definitions for the infrastructure v1alpha7 API group.
+ +Resource Types: + ++
OpenStackCluster is the Schema for the openstackclusters API.
+ +Field | +Description | +||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
+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 + + + |
+
+ + +
|
+||||||||||||||||||||||||||||||||||||||||||||||
+status + + +OpenStackClusterStatus + + + |
++ | +
+
OpenStackClusterTemplate is the Schema for the openstackclustertemplates API.
+ +Field | +Description | +||
---|---|---|---|
+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 + + + |
+
+ + +
|
+
+
OpenStackMachine is the Schema for the openstackmachines API.
+ +Field | +Description | +||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
+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 + + + |
+
+ + +
|
+||||||||||||||||||||||||||||||||||||
+status + + +OpenStackMachineStatus + + + |
++ | +
+
OpenStackMachineTemplate is the Schema for the openstackmachinetemplates API.
+ +Field | +Description | +||
---|---|---|---|
+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 + + + |
+
+ + +
|
+
+(Appears on: +OpenStackClusterSpec) +
++
+Field | +Description | +
---|---|
+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 + |
+
+(Appears on: +OpenStackMachineSpec) +
++
AdditionalBlockDevice is a block device to attach to the server.
+ +Field | +Description | +
---|---|
+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. + |
+
+(Appears on: +PortOpts) +
++
+Field | +Description | +
---|---|
+ipAddress + +string + + |
++ | +
+macAddress + +string + + |
++ | +
+(Appears on: +OpenStackClusterSpec) +
++
Bastion represents basic information about the bastion node.
+ +Field | +Description | +
---|---|
+enabled + +bool + + |
++(Optional) + | +
+instance + + +OpenStackMachineSpec + + + |
+
+ Instance for the bastion itself + |
+
+availabilityZone + +string + + |
++(Optional) + | +
+(Appears on: +OpenStackClusterStatus) +
++
+Field | +Description | +
---|---|
+id + +string + + |
++ | +
+name + +string + + |
++ | +
+sshKeyName + +string + + |
++ | +
+state + + +InstanceState + + + |
++ | +
+ip + +string + + |
++ | +
+floatingIP + +string + + |
++ | +
+(Appears on: +PortOpts) +
++
+Field | +Description | +
---|---|
+ovsHWOffload + +bool + + |
+
+ OVSHWOffload enables or disables the OVS hardware offload feature. + |
+
+trustedVF + +bool + + |
+
+ TrustedVF enables or disables the “trusted mode” for the VF. + |
+
+(Appears on: +AdditionalBlockDevice) +
++
BlockDeviceStorage is the storage type of a block device to create and +contains additional storage options.
+ +Field | +Description | +
---|---|
+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. + |
+
string
alias)+(Appears on: +BlockDeviceStorage) +
++
BlockDeviceType defines the type of block device to create.
+ +Value | +Description | +
---|---|
"Local" |
+LocalBlockDevice is an ephemeral block device attached to the server. + |
+
"Volume" |
+VolumeBlockDevice is a volume block device attached to the server. + |
+
+(Appears on: +BlockDeviceStorage) +
++
BlockDeviceVolume contains additional storage options for a volume block device.
+ +Field | +Description | +
---|---|
+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. + |
+
+(Appears on: +OpenStackClusterSpec) +
++
+Field | +Description | +
---|---|
+fixedIP + +string + + |
+
+ The FixedIP in the corresponding subnet + |
+
+subnet + + +SubnetFilter + + + |
+
+ The subnet in which the FixedIP is used for the Gateway of this router + |
+
+(Appears on: +PortOpts) +
++
+Field | +Description | +
---|---|
+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 + + |
++ | +
string
alias)+(Appears on: +BastionStatus, +OpenStackMachineStatus) +
++
InstanceState describes the state of an OpenStack instance.
+ ++(Appears on: +OpenStackClusterStatus) +
++
LoadBalancer represents basic information about the associated OpenStack LoadBalancer.
+ +Field | +Description | +
---|---|
+name + +string + + |
++ | +
+id + +string + + |
++ | +
+ip + +string + + |
++ | +
+internalIP + +string + + |
++ | +
+allowedCIDRs + +[]string + + |
++(Optional) + | +
+tags + +[]string + + |
++(Optional) + | +
+(Appears on: +OpenStackClusterSpec, +PortOpts) +
++
+Field | +Description | +
---|---|
+name + +string + + |
++ | +
+description + +string + + |
++ | +
+projectId + +string + + |
++ | +
+id + +string + + |
++ | +
+tags + +string + + |
++ | +
+tagsAny + +string + + |
++ | +
+notTags + +string + + |
++ | +
+notTagsAny + +string + + |
++ | +
+(Appears on: +NetworkStatusWithSubnets, +OpenStackClusterStatus) +
++
NetworkStatus contains basic information about an existing neutron network.
+ +Field | +Description | +
---|---|
+name + +string + + |
++ | +
+id + +string + + |
++ | +
+tags + +[]string + + |
++(Optional) + | +
+(Appears on: +OpenStackClusterStatus) +
++
NetworkStatusWithSubnets represents basic information about an existing neutron network and an associated set of subnets.
+ +Field | +Description | +
---|---|
+NetworkStatus + + +NetworkStatus + + + |
+
+
+(Members of |
+
+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. + |
+
+(Appears on: +OpenStackCluster, +OpenStackClusterTemplateResource) +
++
OpenStackClusterSpec defines the desired state of OpenStackCluster.
+ +Field | +Description | +
---|---|
+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 |
+
+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 |
+
+identityRef + + +OpenStackIdentityReference + + + |
+
+(Optional)
+ IdentityRef is a reference to a identity to be used when reconciling this cluster + |
+
+(Appears on: +OpenStackCluster) +
++
OpenStackClusterStatus defines the observed state of OpenStackCluster.
+ +Field | +Description | +
---|---|
+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. + |
+
+(Appears on: +OpenStackClusterTemplateSpec) +
++
OpenStackClusterTemplateResource describes the data needed to create a OpenStackCluster from a template.
+ +Field | +Description | +||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
+spec + + +OpenStackClusterSpec + + + |
+
+ + +
|
+
+(Appears on: +OpenStackClusterTemplate) +
++
OpenStackClusterTemplateSpec defines the desired state of OpenStackClusterTemplate.
+ +Field | +Description | +
---|---|
+template + + +OpenStackClusterTemplateResource + + + |
++ | +
+(Appears on: +OpenStackClusterSpec, +OpenStackMachineSpec) +
++
OpenStackIdentityReference is a reference to an infrastructure +provider identity to be used to provision cluster resources.
+ +Field | +Description | +
---|---|
+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. + |
+
+(Appears on: +OpenStackMachine, +Bastion, +OpenStackMachineTemplateResource) +
++
OpenStackMachineSpec defines the desired state of OpenStackMachine.
+ +Field | +Description | +
---|---|
+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. + |
+
+(Appears on: +OpenStackMachine) +
++
OpenStackMachineStatus defines the observed state of OpenStackMachine.
+ +Field | +Description | +
---|---|
+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 + + + |
++ | +
+(Appears on: +OpenStackMachineTemplateSpec) +
++
OpenStackMachineTemplateResource describes the data needed to create a OpenStackMachine from a template.
+ +Field | +Description | +||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
+spec + + +OpenStackMachineSpec + + + |
+
+ Spec is the specification of the desired behavior of the machine. ++ +
|
+
+(Appears on: +OpenStackMachineTemplate) +
++
OpenStackMachineTemplateSpec defines the desired state of OpenStackMachineTemplate.
+ +Field | +Description | +
---|---|
+template + + +OpenStackMachineTemplateResource + + + |
++ | +
+(Appears on: +OpenStackMachineSpec) +
++
+Field | +Description | +
---|---|
+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. + |
+
+(Appears on: +OpenStackMachineSpec) +
++
+Field | +Description | +
---|---|
+diskSize + +int + + |
++ | +
+volumeType + +string + + |
++ | +
+availabilityZone + +string + + |
++ | +
+(Appears on: +OpenStackClusterStatus) +
++
Router represents basic information about the associated OpenStack Neutron Router.
+ +Field | +Description | +
---|---|
+name + +string + + |
++ | +
+id + +string + + |
++ | +
+tags + +[]string + + |
++(Optional) + | +
+ips + +[]string + + |
++(Optional) + | +
+(Appears on: +OpenStackClusterSpec) +
++
+Field | +Description | +
---|---|
+id + +string + + |
++ | +
+name + +string + + |
++ | +
+description + +string + + |
++ | +
+projectId + +string + + |
++ | +
+tags + +string + + |
++ | +
+tagsAny + +string + + |
++ | +
+notTags + +string + + |
++ | +
+notTagsAny + +string + + |
++ | +
+(Appears on: +OpenStackClusterStatus) +
++
SecurityGroup represents the basic information of the associated +OpenStack Neutron Security Group.
+ +Field | +Description | +
---|---|
+name + +string + + |
++ | +
+id + +string + + |
++ | +
+rules + + +[]SecurityGroupRule + + + |
++ | +
+(Appears on: +OpenStackMachineSpec, +PortOpts) +
++
+Field | +Description | +
---|---|
+id + +string + + |
++ | +
+name + +string + + |
++ | +
+description + +string + + |
++ | +
+projectId + +string + + |
++ | +
+tags + +string + + |
++ | +
+tagsAny + +string + + |
++ | +
+notTags + +string + + |
++ | +
+notTagsAny + +string + + |
++ | +
+(Appears on: +SecurityGroup) +
++
SecurityGroupRule represent the basic information of the associated OpenStack +Security Group Role.
+ +Field | +Description | +
---|---|
+description + +string + + |
++ | +
+name + +string + + |
++ | +
+direction + +string + + |
++ | +
+etherType + +string + + |
++ | +
+securityGroupID + +string + + |
++ | +
+portRangeMin + +int + + |
++ | +
+portRangeMax + +int + + |
++ | +
+protocol + +string + + |
++ | +
+remoteGroupID + +string + + |
++ | +
+remoteIPPrefix + +string + + |
++ | +
+(Appears on: +NetworkStatusWithSubnets) +
++
Subnet represents basic information about the associated OpenStack Neutron Subnet.
+ +Field | +Description | +
---|---|
+name + +string + + |
++ | +
+id + +string + + |
++ | +
+cidr + +string + + |
++ | +
+tags + +[]string + + |
++(Optional) + | +
+(Appears on: +ExternalRouterIPParam, +FixedIP, +OpenStackClusterSpec) +
++
+Field | +Description | +
---|---|
+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 + + |
++ | +
+(Appears on: +PortOpts) +
++
ValueSpec represents a single value_spec key-value pair.
+ +Field | +Description | +
---|---|
+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
.
+
+
Package v1beta1 contains API Schema definitions for the infrastructure v1beta1 API group.
+ +Resource Types: + ++
OpenStackCluster is the Schema for the openstackclusters API.
+ +Field | +Description | +||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
+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 + + + |
+
+ + +
|
+||||||||||||||||||||||||||||||||||||||||||||
+status + + +OpenStackClusterStatus + + + |
++ | +
+
OpenStackClusterTemplate is the Schema for the openstackclustertemplates API.
+ +Field | +Description | +||
---|---|---|---|
+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 + + + |
+
+ + +
|
+
+
OpenStackMachine is the Schema for the openstackmachines API.
+ +Field | +Description | +||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
+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 + + + |
+
+ + +
|
+||||||||||||||||||||||||||||||||
+status + + +OpenStackMachineStatus + + + |
++ | +
+
OpenStackMachineTemplate is the Schema for the openstackmachinetemplates API.
+ +Field | +Description | +||
---|---|---|---|
+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 + + + |
+
+ + +
|
+
+(Appears on: +OpenStackClusterSpec) +
++
+Field | +Description | +
---|---|
+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 + |
+
+(Appears on: +OpenStackMachineSpec) +
++
AdditionalBlockDevice is a block device to attach to the server.
+ +Field | +Description | +
---|---|
+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. + |
+
+(Appears on: +PortOpts) +
++
+Field | +Description | +
---|---|
+ipAddress + +string + + |
++ | +
+macAddress + +string + + |
++ | +
+(Appears on: +SubnetSpec) +
++
+Field | +Description | +
---|---|
+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. + |
+
+(Appears on: +OpenStackClusterSpec) +
++
Bastion represents basic information about the bastion node.
+ +Field | +Description | +
---|---|
+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. + |
+
+(Appears on: +OpenStackClusterStatus) +
++
+Field | +Description | +
---|---|
+id + +string + + |
++ | +
+name + +string + + |
++ | +
+sshKeyName + +string + + |
++ | +
+state + + +InstanceState + + + |
++ | +
+ip + +string + + |
++ | +
+floatingIP + +string + + |
++ | +
+referencedResources + + +ReferencedMachineResources + + + |
++ | +
+dependentResources + + +DependentMachineResources + + + |
++ | +
+(Appears on: +PortOpts) +
++
+Field | +Description | +
---|---|
+ovsHWOffload + +bool + + |
+
+ OVSHWOffload enables or disables the OVS hardware offload feature. + |
+
+trustedVF + +bool + + |
+
+ TrustedVF enables or disables the “trusted mode” for the VF. + |
+
+(Appears on: +AdditionalBlockDevice) +
++
BlockDeviceStorage is the storage type of a block device to create and +contains additional storage options.
+ +Field | +Description | +
---|---|
+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. + |
+
string
alias)+(Appears on: +BlockDeviceStorage) +
++
BlockDeviceType defines the type of block device to create.
+ +Value | +Description | +
---|---|
"Local" |
+LocalBlockDevice is an ephemeral block device attached to the server. + |
+
"Volume" |
+VolumeBlockDevice is a volume block device attached to the server. + |
+
+(Appears on: +BlockDeviceStorage) +
++
BlockDeviceVolume contains additional storage options for a volume block device.
+ +Field | +Description | +
---|---|
+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. + |
+
+(Appears on: +BastionStatus, +OpenStackMachineStatus) +
++
+Field | +Description | +
---|---|
+portsStatus + + +[]PortStatus + + + |
+
+(Optional)
+ PortsStatus is the status of the ports created for the machine. + |
+
+(Appears on: +OpenStackClusterSpec) +
++
+Field | +Description | +
---|---|
+fixedIP + +string + + |
+
+ The FixedIP in the corresponding subnet + |
+
+subnet + + +SubnetFilter + + + |
+
+ The subnet in which the FixedIP is used for the Gateway of this router + |
+
+(Appears on: +PortOpts) +
++
+Field | +Description | +
---|---|
+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 + + |
++ | +
+(Appears on: +OpenStackMachineSpec) +
++
+Field | +Description | +
---|---|
+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. + |
+
string
alias)+(Appears on: +BastionStatus, +OpenStackMachineStatus) +
++
InstanceState describes the state of an OpenStack instance.
+ ++(Appears on: +OpenStackClusterStatus) +
++
LoadBalancer represents basic information about the associated OpenStack LoadBalancer.
+ +Field | +Description | +
---|---|
+name + +string + + |
++ | +
+id + +string + + |
++ | +
+ip + +string + + |
++ | +
+internalIP + +string + + |
++ | +
+allowedCIDRs + +[]string + + |
++(Optional) + | +
+tags + +[]string + + |
++(Optional) + | +
string
alias)+(Appears on: +SecurityGroupRuleSpec) +
++
++(Appears on: +OpenStackClusterSpec) +
++
ManagedSecurityGroups defines the desired state of security groups and rules for the cluster.
+ +Field | +Description | +
---|---|
+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. + |
+
+(Appears on: +OpenStackClusterSpec, +PortOpts) +
++
+Field | +Description | +
---|---|
+name + +string + + |
++ | +
+description + +string + + |
++ | +
+projectId + +string + + |
++ | +
+id + +string + + |
++ | +
+tags + +string + + |
++ | +
+tagsAny + +string + + |
++ | +
+notTags + +string + + |
++ | +
+notTagsAny + +string + + |
++ | +
+(Appears on: +NetworkStatusWithSubnets, +OpenStackClusterStatus) +
++
NetworkStatus contains basic information about an existing neutron network.
+ +Field | +Description | +
---|---|
+name + +string + + |
++ | +
+id + +string + + |
++ | +
+tags + +[]string + + |
++(Optional) + | +
+(Appears on: +OpenStackClusterStatus) +
++
NetworkStatusWithSubnets represents basic information about an existing neutron network and an associated set of subnets.
+ +Field | +Description | +
---|---|
+NetworkStatus + + +NetworkStatus + + + |
+
+
+(Members of |
+
+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. + |
+
+(Appears on: +OpenStackCluster, +OpenStackClusterTemplateResource) +
++
OpenStackClusterSpec defines the desired state of OpenStackCluster.
+ +Field | +Description | +
---|---|
+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 |
+
+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 |
+
+identityRef + + +OpenStackIdentityReference + + + |
+
+(Optional)
+ IdentityRef is a reference to a identity to be used when reconciling this cluster + |
+
+(Appears on: +OpenStackCluster) +
++
OpenStackClusterStatus defines the observed state of OpenStackCluster.
+ +Field | +Description | +
---|---|
+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. + |
+
+(Appears on: +OpenStackClusterTemplateSpec) +
++
OpenStackClusterTemplateResource describes the data needed to create a OpenStackCluster from a template.
+ +Field | +Description | +||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
+spec + + +OpenStackClusterSpec + + + |
+
+ + +
|
+
+(Appears on: +OpenStackClusterTemplate) +
++
OpenStackClusterTemplateSpec defines the desired state of OpenStackClusterTemplate.
+ +Field | +Description | +
---|---|
+template + + +OpenStackClusterTemplateResource + + + |
++ | +
+(Appears on: +OpenStackClusterSpec, +OpenStackMachineSpec) +
++
OpenStackIdentityReference is a reference to an infrastructure +provider identity to be used to provision cluster resources.
+ +Field | +Description | +
---|---|
+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. + |
+
+(Appears on: +OpenStackMachine, +Bastion, +OpenStackMachineTemplateResource) +
++
OpenStackMachineSpec defines the desired state of OpenStackMachine.
+ +Field | +Description | +
---|---|
+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 + |
+
+(Appears on: +OpenStackMachine) +
++
OpenStackMachineStatus defines the observed state of OpenStackMachine.
+ +Field | +Description | +
---|---|
+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 + + + |
++ | +
+(Appears on: +OpenStackMachineTemplateSpec) +
++
OpenStackMachineTemplateResource describes the data needed to create a OpenStackMachine from a template.
+ +Field | +Description | +||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
+spec + + +OpenStackMachineSpec + + + |
+
+ Spec is the specification of the desired behavior of the machine. ++ +
|
+
+(Appears on: +OpenStackMachineTemplate) +
++
OpenStackMachineTemplateSpec defines the desired state of OpenStackMachineTemplate.
+ +Field | +Description | +
---|---|
+template + + +OpenStackMachineTemplateResource + + + |
++ | +
+
++(Appears on: +OpenStackMachineSpec, +ReferencedMachineResources) +
++
+Field | +Description | +
---|---|
+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. + |
+
+(Appears on: +DependentMachineResources) +
++
+Field | +Description | +
---|---|
+id + +string + + |
+
+ ID is the unique identifier of the port. + |
+
+(Appears on: +BastionStatus, +OpenStackMachineStatus) +
++
ReferencedMachineResources contains resolved references to resources required by the machine.
+ +Field | +Description | +
---|---|
+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. + |
+
+(Appears on: +OpenStackMachineSpec) +
++
+Field | +Description | +
---|---|
+diskSize + +int + + |
++ | +
+volumeType + +string + + |
++ | +
+availabilityZone + +string + + |
++ | +
+(Appears on: +OpenStackClusterStatus) +
++
Router represents basic information about the associated OpenStack Neutron Router.
+ +Field | +Description | +
---|---|
+name + +string + + |
++ | +
+id + +string + + |
++ | +
+tags + +[]string + + |
++(Optional) + | +
+ips + +[]string + + |
++(Optional) + | +
+(Appears on: +OpenStackClusterSpec) +
++
+Field | +Description | +
---|---|
+id + +string + + |
++ | +
+name + +string + + |
++ | +
+description + +string + + |
++ | +
+projectId + +string + + |
++ | +
+tags + +string + + |
++ | +
+tagsAny + +string + + |
++ | +
+notTags + +string + + |
++ | +
+notTagsAny + +string + + |
++ | +
+(Appears on: +OpenStackMachineSpec, +PortOpts) +
++
+Field | +Description | +
---|---|
+id + +string + + |
++ | +
+name + +string + + |
++ | +
+description + +string + + |
++ | +
+projectId + +string + + |
++ | +
+tags + +string + + |
++ | +
+tagsAny + +string + + |
++ | +
+notTags + +string + + |
++ | +
+notTagsAny + +string + + |
++ | +
+(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.
+ +Field | +Description | +
---|---|
+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. + |
+
+(Appears on: +SecurityGroupStatus) +
++
+Field | +Description | +
---|---|
+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. + |
+
+(Appears on: +OpenStackClusterStatus) +
++
SecurityGroupStatus represents the basic information of the associated +OpenStack Neutron Security Group.
+ +Field | +Description | +
---|---|
+name + +string + + |
+
+ name of the security group + |
+
+id + +string + + |
+
+ id of the security group + |
+
+rules + + +[]SecurityGroupRuleStatus + + + |
+
+(Optional)
+ list of security group rules + |
+
+(Appears on: +OpenStackMachineSpec) +
++
+Field | +Description | +
---|---|
+id + +string + + |
++ | +
+name + +string + + |
++ | +
+(Appears on: +OpenStackMachineSpec) +
++
+Field | +Description | +
---|---|
+key + +string + + |
+
+ Key is the server metadata key +kubebuilder:validation:MaxLength:=255 + |
+
+value + +string + + |
+
+ Value is the server metadata value +kubebuilder:validation:MaxLength:=255 + |
+
+(Appears on: +NetworkStatusWithSubnets) +
++
Subnet represents basic information about the associated OpenStack Neutron Subnet.
+ +Field | +Description | +
---|---|
+name + +string + + |
++ | +
+id + +string + + |
++ | +
+cidr + +string + + |
++ | +
+tags + +[]string + + |
++(Optional) + | +
+(Appears on: +ExternalRouterIPParam, +FixedIP, +OpenStackClusterSpec) +
++
+Field | +Description | +
---|---|
+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 + + |
++ | +
+(Appears on: +OpenStackClusterSpec) +
++
+Field | +Description | +
---|---|
+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. + |
+
+(Appears on: +PortOpts) +
++
ValueSpec represents a single value_spec key-value pair.
+ +Field | +Description | +
---|---|
+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
.
+