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 c174349cf3..1f4166b2ab 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.25.0 @@ -255,6 +256,7 @@ modules: ## Runs go mod to ensure proper vendoring. generate: ## Generate code $(MAKE) generate-go $(MAKE) generate-manifests + $(MAKE) generate-api-docs .PHONY: generate-go generate-go: $(MOCKGEN) @@ -283,6 +285,19 @@ 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/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 721815c0fe..2524645feb 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/v1alpha7 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 6b60c83b9e..06dcdb90d9 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:resource:path=openstackclusters,scope=Namespaced,categories=cluster-api,shortName=osc // +kubebuilder:subresource:status diff --git a/api/v1alpha6/openstackclustertemplate_types.go b/api/v1alpha6/openstackclustertemplate_types.go index f79730240c..8c04b77f66 100644 --- a/api/v1alpha6/openstackclustertemplate_types.go +++ b/api/v1alpha6/openstackclustertemplate_types.go @@ -41,6 +41,8 @@ type OpenStackClusterTemplate struct { Spec OpenStackClusterTemplateSpec `json:"spec,omitempty"` } +// +genclient +// +genclient:Namespaced //+kubebuilder:object:root=true // OpenStackClusterTemplateList contains a list of OpenStackClusterTemplate. diff --git a/api/v1alpha6/openstackmachine_types.go b/api/v1alpha6/openstackmachine_types.go index c73505de3f..0b6c22ba17 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:resource:path=openstackmachines,scope=Namespaced,categories=cluster-api,shortName=osm // +kubebuilder:subresource:status diff --git a/api/v1alpha6/openstackmachinetemplate_types.go b/api/v1alpha6/openstackmachinetemplate_types.go index aca2be9c70..81fcdc665d 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:resource:path=openstackmachinetemplates,scope=Namespaced,categories=cluster-api,shortName=osmt diff --git a/api/v1alpha7/doc.go b/api/v1alpha7/doc.go index 817c2b4119..fbd1ad52c8 100644 --- a/api/v1alpha7/doc.go +++ b/api/v1alpha7/doc.go @@ -14,4 +14,7 @@ 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 diff --git a/api/v1alpha7/groupversion_info.go b/api/v1alpha7/groupversion_info.go index 019caf4f0f..e795112f64 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 b4826685b0..c911171715 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:storageversion diff --git a/api/v1alpha7/openstackclustertemplate_types.go b/api/v1alpha7/openstackclustertemplate_types.go index c255284a77..4ee42ef579 100644 --- a/api/v1alpha7/openstackclustertemplate_types.go +++ b/api/v1alpha7/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/v1alpha7/openstackmachine_types.go b/api/v1alpha7/openstackmachine_types.go index 0ed7ca2bc0..83bf118a11 100644 --- a/api/v1alpha7/openstackmachine_types.go +++ b/api/v1alpha7/openstackmachine_types.go @@ -134,6 +134,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/v1alpha7/openstackmachinetemplate_types.go b/api/v1alpha7/openstackmachinetemplate_types.go index 5202234ba2..b0b940420c 100644 --- a/api/v1alpha7/openstackmachinetemplate_types.go +++ b/api/v1alpha7/openstackmachinetemplate_types.go @@ -37,6 +37,8 @@ type OpenStackMachineTemplate struct { Spec OpenStackMachineTemplateSpec `json:"spec,omitempty"` } +// +genclient +// +genclient:Namespaced // +kubebuilder:object:root=true // OpenStackMachineTemplateList contains a list of OpenStackMachineTemplate. 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.
+ +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 + + + |
++ | +
+
OpenStackMachine is the Schema for the openstackmachines API.
+ +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.
+ +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. + |
+
+
OpenStackClusterTemplate is the Schema for the openstackclustertemplates API.
+ +Field | +Description | +||
---|---|---|---|
+metadata + +Kubernetes meta/v1.ObjectMeta + + |
+
+Refer to the Kubernetes API documentation for the fields of the
+metadata field.
+ |
+||
+spec + + +OpenStackClusterTemplateSpec + + + |
+
+ + +
|
+
+(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 + + + |
++ | +
+(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) +
++
+Field | +Description | +
---|---|
+name + +string + + |
+
+ Name of the Cinder volume in the context of a machine. +It will be combined with the machine name to make the actual volume name. + |
+
+diskSize + +int + + |
+
+ Size is the size in GB of the volume. + |
+
+volumeType + +string + + |
+
+ VolumeType is the volume type of the volume. +If omitted, the default type will be used. + |
+
+availabilityZone + +string + + |
+
+ AvailabilityZone is the volume availability zone to create the volume in. +If omitted, the availability zone of the server will be used. + |
+
+(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: +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 + + + |
+
+ 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 + |
+
+(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 + + + |
++ | +
+
OpenStackMachineTemplate is the Schema for the openstackmachinetemplates API.
+ +Field | +Description | +||
---|---|---|---|
+metadata + +Kubernetes meta/v1.ObjectMeta + + |
+
+Refer to the Kubernetes API documentation for the fields of the
+metadata field.
+ |
+||
+spec + + +OpenStackMachineTemplateSpec + + + |
+
+ + +
|
+
+(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
.
+