From 61169623103e17ff5f1e5922a4c03938483e4980 Mon Sep 17 00:00:00 2001 From: eshulman2 Date: Thu, 25 Dec 2025 13:45:06 +0200 Subject: [PATCH 1/3] e2e with octavia - allow testing octavia by enabling it in the e2e job - increase vm qouta to allow e2e to run --- .github/workflows/e2e.yaml | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/.github/workflows/e2e.yaml b/.github/workflows/e2e.yaml index d19ccc71e..8c7e2cc78 100644 --- a/.github/workflows/e2e.yaml +++ b/.github/workflows/e2e.yaml @@ -17,12 +17,21 @@ jobs: - name: "gazpacho" openstack_version: "stable/2026.1" ubuntu_version: "24.04" + amphora_image_url: "https://tarballs.opendev.org/openstack/octavia/test-images/test-only-amphora-x64-haproxy-ubuntu-noble.qcow2" + devstack_conf_overrides: | + LIBVIRT_CPU_MODE=host-passthrough - name: "flamingo" openstack_version: "stable/2025.2" ubuntu_version: "24.04" + amphora_image_url: "https://tarballs.opendev.org/openstack/octavia/test-images/test-only-amphora-x64-haproxy-ubuntu-noble.qcow2" + devstack_conf_overrides: | + LIBVIRT_CPU_MODE=host-passthrough - name: "epoxy" openstack_version: "stable/2025.1" ubuntu_version: "24.04" + amphora_image_url: "https://tarballs.opendev.org/openstack/octavia/test-images/test-only-amphora-x64-haproxy-ubuntu-jammy.qcow2" + devstack_conf_overrides: | + LIBVIRT_CPU_MODE=host-passthrough env: image_tag: virtual-registry.k-orc.cloud/ci:commit-${GITHUB_SHA::7} @@ -33,17 +42,28 @@ jobs: with: persist-credentials: false + - name: Download pre-built amphora image + run: | + wget -q "${{ matrix.amphora_image_url }}" -O /tmp/amphora-x64-haproxy.qcow2 + - name: Deploy devstack uses: gophercloud/devstack-action@60ca1042045c0c9e3e001c64575d381654ffcba1 # tag=v0.19 with: enable_workaround_docker_io: 'false' branch: ${{ matrix.openstack_version }} - enabled_services: "openstack-cli-server,neutron-trunk,neutron-port-trusted-vif" + enabled_services: "openstack-cli-server,neutron-trunk,neutron-port-trusted-vif,octavia,o-api,o-cw,o-hm,o-hk,o-da" conf_overrides: | + enable_plugin octavia https://github.com/openstack/octavia ${{ matrix.openstack_version }} enable_plugin neutron https://github.com/openstack/neutron ${{ matrix.openstack_version }} enable_plugin manila https://github.com/openstack/manila ${{ matrix.openstack_version }} + OCTAVIA_AMP_IMAGE_FILE=/tmp/amphora-x64-haproxy.qcow2 + + ${{ matrix.devstack_conf_overrides }} [[post-config|/etc/nova/nova.conf]] + [quota] + instances = 50 + [filter_scheduler] enabled_filters = ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,SameHostFilter,DifferentHostFilter,SimpleCIDRAffinityFilter,JsonFilter From d82ecbdd1981d3ca9e9d8ac8dfd957ac622a76fb Mon Sep 17 00:00:00 2001 From: eshulman2 Date: Sun, 28 Dec 2025 15:21:44 +0200 Subject: [PATCH 2/3] scaffolding for loadbalancer controller $ go run ./cmd/scaffold-controller -interactive=false -kind=LoadBalancer -gophercloud-client=NewLoadBalancerV2 -gophercloud-module=github.com/gophercloud/gophercloud/v2/openstack/loadbalancer/v2/loadbalancers -optional-create-dependency Subnet -optional-create-dependency Network -optional-create-dependency Port -optional-create-dependency Flavor -optional-create-dependency Project --- api/v1alpha1/loadbalancer_types.go | 140 + api/v1alpha1/zz_generated.deepcopy.go | 110 + cmd/models-schema/zz_generated.openapi.go | 9623 +++++++---------- config/rbac/role.yaml | 2 + .../openstack_v1alpha1_loadbalancer.yaml | 14 + internal/controllers/loadbalancer/actuator.go | 353 + .../controllers/loadbalancer/actuator_test.go | 119 + .../controllers/loadbalancer/controller.go | 261 + internal/controllers/loadbalancer/status.go | 68 + .../loadbalancer-create-full/00-assert.yaml | 53 + .../00-create-resource.yaml | 85 + .../loadbalancer-create-full/00-secret.yaml | 6 + .../tests/loadbalancer-create-full/README.md | 11 + .../00-assert.yaml | 27 + .../00-create-resource.yaml | 14 + .../00-secret.yaml | 6 + .../01-assert.yaml | 11 + .../01-delete-secret.yaml | 7 + .../loadbalancer-create-minimal/README.md | 15 + .../loadbalancer-dependency/00-assert.yaml | 90 + .../00-create-resources-missing-deps.yaml | 84 + .../loadbalancer-dependency/00-secret.yaml | 6 + .../loadbalancer-dependency/01-assert.yaml | 90 + .../01-create-dependencies.yaml | 71 + .../loadbalancer-dependency/02-assert.yaml | 41 + .../02-delete-dependencies.yaml | 17 + .../loadbalancer-dependency/03-assert.yaml | 17 + .../03-delete-resources.yaml | 22 + .../tests/loadbalancer-dependency/README.md | 21 + .../00-assert.yaml | 23 + .../00-import-resource.yaml | 68 + .../00-secret.yaml | 6 + .../01-assert.yaml | 38 + .../01-create-trap-resource.yaml | 70 + .../02-assert.yaml | 49 + .../02-create-resource.yaml | 69 + .../03-assert.yaml | 12 + .../03-delete-import-dependencies.yaml | 13 + .../04-assert.yaml | 6 + .../04-delete-resource.yaml | 7 + .../loadbalancer-import-dependency/README.md | 29 + .../loadbalancer-import-error/00-assert.yaml | 30 + .../00-create-resources.yaml | 28 + .../loadbalancer-import-error/00-secret.yaml | 6 + .../loadbalancer-import-error/01-assert.yaml | 15 + .../01-import-resource.yaml | 13 + .../tests/loadbalancer-import-error/README.md | 13 + .../tests/loadbalancer-import/00-assert.yaml | 15 + .../00-import-resource.yaml | 15 + .../tests/loadbalancer-import/00-secret.yaml | 6 + .../tests/loadbalancer-import/01-assert.yaml | 34 + .../01-create-trap-resource.yaml | 17 + .../tests/loadbalancer-import/02-assert.yaml | 33 + .../02-create-resource.yaml | 14 + .../tests/loadbalancer-import/README.md | 18 + .../tests/loadbalancer-update/00-assert.yaml | 26 + .../00-minimal-resource.yaml | 14 + .../loadbalancer-update/00-prerequisites.yaml | 6 + .../tests/loadbalancer-update/01-assert.yaml | 17 + .../01-updated-resource.yaml | 10 + .../tests/loadbalancer-update/02-assert.yaml | 26 + .../02-reverted-resource.yaml | 7 + .../tests/loadbalancer-update/README.md | 17 + internal/osclients/loadbalancer.go | 104 + website/docs/crd-reference.md | 10 + 65 files changed, 6701 insertions(+), 5567 deletions(-) create mode 100644 api/v1alpha1/loadbalancer_types.go create mode 100644 config/samples/openstack_v1alpha1_loadbalancer.yaml create mode 100644 internal/controllers/loadbalancer/actuator.go create mode 100644 internal/controllers/loadbalancer/actuator_test.go create mode 100644 internal/controllers/loadbalancer/controller.go create mode 100644 internal/controllers/loadbalancer/status.go create mode 100644 internal/controllers/loadbalancer/tests/loadbalancer-create-full/00-assert.yaml create mode 100644 internal/controllers/loadbalancer/tests/loadbalancer-create-full/00-create-resource.yaml create mode 100644 internal/controllers/loadbalancer/tests/loadbalancer-create-full/00-secret.yaml create mode 100644 internal/controllers/loadbalancer/tests/loadbalancer-create-full/README.md create mode 100644 internal/controllers/loadbalancer/tests/loadbalancer-create-minimal/00-assert.yaml create mode 100644 internal/controllers/loadbalancer/tests/loadbalancer-create-minimal/00-create-resource.yaml create mode 100644 internal/controllers/loadbalancer/tests/loadbalancer-create-minimal/00-secret.yaml create mode 100644 internal/controllers/loadbalancer/tests/loadbalancer-create-minimal/01-assert.yaml create mode 100644 internal/controllers/loadbalancer/tests/loadbalancer-create-minimal/01-delete-secret.yaml create mode 100644 internal/controllers/loadbalancer/tests/loadbalancer-create-minimal/README.md create mode 100644 internal/controllers/loadbalancer/tests/loadbalancer-dependency/00-assert.yaml create mode 100644 internal/controllers/loadbalancer/tests/loadbalancer-dependency/00-create-resources-missing-deps.yaml create mode 100644 internal/controllers/loadbalancer/tests/loadbalancer-dependency/00-secret.yaml create mode 100644 internal/controllers/loadbalancer/tests/loadbalancer-dependency/01-assert.yaml create mode 100644 internal/controllers/loadbalancer/tests/loadbalancer-dependency/01-create-dependencies.yaml create mode 100644 internal/controllers/loadbalancer/tests/loadbalancer-dependency/02-assert.yaml create mode 100644 internal/controllers/loadbalancer/tests/loadbalancer-dependency/02-delete-dependencies.yaml create mode 100644 internal/controllers/loadbalancer/tests/loadbalancer-dependency/03-assert.yaml create mode 100644 internal/controllers/loadbalancer/tests/loadbalancer-dependency/03-delete-resources.yaml create mode 100644 internal/controllers/loadbalancer/tests/loadbalancer-dependency/README.md create mode 100644 internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/00-assert.yaml create mode 100644 internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/00-import-resource.yaml create mode 100644 internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/00-secret.yaml create mode 100644 internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/01-assert.yaml create mode 100644 internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/01-create-trap-resource.yaml create mode 100644 internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/02-assert.yaml create mode 100644 internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/02-create-resource.yaml create mode 100644 internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/03-assert.yaml create mode 100644 internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/03-delete-import-dependencies.yaml create mode 100644 internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/04-assert.yaml create mode 100644 internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/04-delete-resource.yaml create mode 100644 internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/README.md create mode 100644 internal/controllers/loadbalancer/tests/loadbalancer-import-error/00-assert.yaml create mode 100644 internal/controllers/loadbalancer/tests/loadbalancer-import-error/00-create-resources.yaml create mode 100644 internal/controllers/loadbalancer/tests/loadbalancer-import-error/00-secret.yaml create mode 100644 internal/controllers/loadbalancer/tests/loadbalancer-import-error/01-assert.yaml create mode 100644 internal/controllers/loadbalancer/tests/loadbalancer-import-error/01-import-resource.yaml create mode 100644 internal/controllers/loadbalancer/tests/loadbalancer-import-error/README.md create mode 100644 internal/controllers/loadbalancer/tests/loadbalancer-import/00-assert.yaml create mode 100644 internal/controllers/loadbalancer/tests/loadbalancer-import/00-import-resource.yaml create mode 100644 internal/controllers/loadbalancer/tests/loadbalancer-import/00-secret.yaml create mode 100644 internal/controllers/loadbalancer/tests/loadbalancer-import/01-assert.yaml create mode 100644 internal/controllers/loadbalancer/tests/loadbalancer-import/01-create-trap-resource.yaml create mode 100644 internal/controllers/loadbalancer/tests/loadbalancer-import/02-assert.yaml create mode 100644 internal/controllers/loadbalancer/tests/loadbalancer-import/02-create-resource.yaml create mode 100644 internal/controllers/loadbalancer/tests/loadbalancer-import/README.md create mode 100644 internal/controllers/loadbalancer/tests/loadbalancer-update/00-assert.yaml create mode 100644 internal/controllers/loadbalancer/tests/loadbalancer-update/00-minimal-resource.yaml create mode 100644 internal/controllers/loadbalancer/tests/loadbalancer-update/00-prerequisites.yaml create mode 100644 internal/controllers/loadbalancer/tests/loadbalancer-update/01-assert.yaml create mode 100644 internal/controllers/loadbalancer/tests/loadbalancer-update/01-updated-resource.yaml create mode 100644 internal/controllers/loadbalancer/tests/loadbalancer-update/02-assert.yaml create mode 100644 internal/controllers/loadbalancer/tests/loadbalancer-update/02-reverted-resource.yaml create mode 100644 internal/controllers/loadbalancer/tests/loadbalancer-update/README.md create mode 100644 internal/osclients/loadbalancer.go diff --git a/api/v1alpha1/loadbalancer_types.go b/api/v1alpha1/loadbalancer_types.go new file mode 100644 index 000000000..e583804e8 --- /dev/null +++ b/api/v1alpha1/loadbalancer_types.go @@ -0,0 +1,140 @@ +/* +Copyright 2026 The ORC Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package v1alpha1 + +// LoadBalancerResourceSpec contains the desired state of the resource. +type LoadBalancerResourceSpec struct { + // name will be the name of the created resource. If not specified, the + // name of the ORC object will be used. + // +optional + Name *OpenStackName `json:"name,omitempty"` + + // description is a human-readable description for the resource. + // +kubebuilder:validation:MinLength:=1 + // +kubebuilder:validation:MaxLength:=255 + // +optional + Description *string `json:"description,omitempty"` + + // subnetRef is a reference to the ORC Subnet which this resource is associated with. + // +optional + // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="subnetRef is immutable" + SubnetRef *KubernetesNameRef `json:"subnetRef,omitempty"` + + // networkRef is a reference to the ORC Network which this resource is associated with. + // +optional + // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="networkRef is immutable" + NetworkRef *KubernetesNameRef `json:"networkRef,omitempty"` + + // portRef is a reference to the ORC Port which this resource is associated with. + // +optional + // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="portRef is immutable" + PortRef *KubernetesNameRef `json:"portRef,omitempty"` + + // flavorRef is a reference to the ORC Flavor which this resource is associated with. + // +optional + // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="flavorRef is immutable" + FlavorRef *KubernetesNameRef `json:"flavorRef,omitempty"` + + // projectRef is a reference to the ORC Project which this resource is associated with. + // +optional + // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="projectRef is immutable" + ProjectRef *KubernetesNameRef `json:"projectRef,omitempty"` + + // TODO(scaffolding): Add more types. + // To see what is supported, you can take inspiration from the CreateOpts structure from + // github.com/gophercloud/gophercloud/v2/openstack/loadbalancer/v2/loadbalancers + // + // Until you have implemented mutability for the field, you must add a CEL validation + // preventing the field being modified: + // `// +kubebuilder:validation:XValidation:rule="self == oldSelf",message=" is immutable"` +} + +// LoadBalancerFilter defines an existing resource by its properties +// +kubebuilder:validation:MinProperties:=1 +type LoadBalancerFilter struct { + // name of the existing resource + // +optional + Name *OpenStackName `json:"name,omitempty"` + + // description of the existing resource + // +kubebuilder:validation:MinLength:=1 + // +kubebuilder:validation:MaxLength:=255 + // +optional + Description *string `json:"description,omitempty"` + + // vipNetworkRef is a reference to the ORC VipNetwork which this resource is associated with. + // +optional + VipNetworkRef *KubernetesNameRef `json:"vipNetworkRef,omitempty"` + + // projectRef is a reference to the ORC Project which this resource is associated with. + // +optional + ProjectRef *KubernetesNameRef `json:"projectRef,omitempty"` + + // vipSubnetRef is a reference to the ORC VipSubnet which this resource is associated with. + // +optional + VipSubnetRef *KubernetesNameRef `json:"vipSubnetRef,omitempty"` + + // vipPortRef is a reference to the ORC VipPort which this resource is associated with. + // +optional + VipPortRef *KubernetesNameRef `json:"vipPortRef,omitempty"` + + // TODO(scaffolding): Add more types. + // To see what is supported, you can take inspiration from the ListOpts structure from + // github.com/gophercloud/gophercloud/v2/openstack/loadbalancer/v2/loadbalancers +} + +// LoadBalancerResourceStatus represents the observed state of the resource. +type LoadBalancerResourceStatus struct { + // name is a Human-readable name for the resource. Might not be unique. + // +kubebuilder:validation:MaxLength=1024 + // +optional + Name string `json:"name,omitempty"` + + // description is a human-readable description for the resource. + // +kubebuilder:validation:MaxLength=1024 + // +optional + Description string `json:"description,omitempty"` + + // subnetID is the ID of the Subnet to which the resource is associated. + // +kubebuilder:validation:MaxLength=1024 + // +optional + SubnetID string `json:"subnetID,omitempty"` + + // networkID is the ID of the Network to which the resource is associated. + // +kubebuilder:validation:MaxLength=1024 + // +optional + NetworkID string `json:"networkID,omitempty"` + + // portID is the ID of the Port to which the resource is associated. + // +kubebuilder:validation:MaxLength=1024 + // +optional + PortID string `json:"portID,omitempty"` + + // flavorID is the ID of the Flavor to which the resource is associated. + // +kubebuilder:validation:MaxLength=1024 + // +optional + FlavorID string `json:"flavorID,omitempty"` + + // projectID is the ID of the Project to which the resource is associated. + // +kubebuilder:validation:MaxLength=1024 + // +optional + ProjectID string `json:"projectID,omitempty"` + + // TODO(scaffolding): Add more types. + // To see what is supported, you can take inspiration from the LoadBalancer structure from + // github.com/gophercloud/gophercloud/v2/openstack/loadbalancer/v2/loadbalancers +} diff --git a/api/v1alpha1/zz_generated.deepcopy.go b/api/v1alpha1/zz_generated.deepcopy.go index 2f4fe34aa..c767ba03b 100644 --- a/api/v1alpha1/zz_generated.deepcopy.go +++ b/api/v1alpha1/zz_generated.deepcopy.go @@ -2815,6 +2815,116 @@ func (in *KeyPairStatus) DeepCopy() *KeyPairStatus { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *LoadBalancerFilter) DeepCopyInto(out *LoadBalancerFilter) { + *out = *in + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(OpenStackName) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.VipNetworkRef != nil { + in, out := &in.VipNetworkRef, &out.VipNetworkRef + *out = new(KubernetesNameRef) + **out = **in + } + if in.ProjectRef != nil { + in, out := &in.ProjectRef, &out.ProjectRef + *out = new(KubernetesNameRef) + **out = **in + } + if in.VipSubnetRef != nil { + in, out := &in.VipSubnetRef, &out.VipSubnetRef + *out = new(KubernetesNameRef) + **out = **in + } + if in.VipPortRef != nil { + in, out := &in.VipPortRef, &out.VipPortRef + *out = new(KubernetesNameRef) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadBalancerFilter. +func (in *LoadBalancerFilter) DeepCopy() *LoadBalancerFilter { + if in == nil { + return nil + } + out := new(LoadBalancerFilter) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *LoadBalancerResourceSpec) DeepCopyInto(out *LoadBalancerResourceSpec) { + *out = *in + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(OpenStackName) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.SubnetRef != nil { + in, out := &in.SubnetRef, &out.SubnetRef + *out = new(KubernetesNameRef) + **out = **in + } + if in.NetworkRef != nil { + in, out := &in.NetworkRef, &out.NetworkRef + *out = new(KubernetesNameRef) + **out = **in + } + if in.PortRef != nil { + in, out := &in.PortRef, &out.PortRef + *out = new(KubernetesNameRef) + **out = **in + } + if in.FlavorRef != nil { + in, out := &in.FlavorRef, &out.FlavorRef + *out = new(KubernetesNameRef) + **out = **in + } + if in.ProjectRef != nil { + in, out := &in.ProjectRef, &out.ProjectRef + *out = new(KubernetesNameRef) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadBalancerResourceSpec. +func (in *LoadBalancerResourceSpec) DeepCopy() *LoadBalancerResourceSpec { + if in == nil { + return nil + } + out := new(LoadBalancerResourceSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *LoadBalancerResourceStatus) DeepCopyInto(out *LoadBalancerResourceStatus) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadBalancerResourceStatus. +func (in *LoadBalancerResourceStatus) DeepCopy() *LoadBalancerResourceStatus { + if in == nil { + return nil + } + out := new(LoadBalancerResourceStatus) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ManagedOptions) DeepCopyInto(out *ManagedOptions) { *out = *in diff --git a/cmd/models-schema/zz_generated.openapi.go b/cmd/models-schema/zz_generated.openapi.go index bbdaee5f0..556c03d04 100644 --- a/cmd/models-schema/zz_generated.openapi.go +++ b/cmd/models-schema/zz_generated.openapi.go @@ -30,259 +30,230 @@ import ( func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenAPIDefinition { return map[string]common.OpenAPIDefinition{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Address": schema_openstack_resource_controller_v2_api_v1alpha1_Address(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AddressScope": schema_openstack_resource_controller_v2_api_v1alpha1_AddressScope(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AddressScopeFilter": schema_openstack_resource_controller_v2_api_v1alpha1_AddressScopeFilter(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AddressScopeImport": schema_openstack_resource_controller_v2_api_v1alpha1_AddressScopeImport(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AddressScopeList": schema_openstack_resource_controller_v2_api_v1alpha1_AddressScopeList(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AddressScopeResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_AddressScopeResourceSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AddressScopeResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_AddressScopeResourceStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AddressScopeSpec": schema_openstack_resource_controller_v2_api_v1alpha1_AddressScopeSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AddressScopeStatus": schema_openstack_resource_controller_v2_api_v1alpha1_AddressScopeStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AllocationPool": schema_openstack_resource_controller_v2_api_v1alpha1_AllocationPool(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AllocationPoolStatus": schema_openstack_resource_controller_v2_api_v1alpha1_AllocationPoolStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AllowedAddressPair": schema_openstack_resource_controller_v2_api_v1alpha1_AllowedAddressPair(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AllowedAddressPairStatus": schema_openstack_resource_controller_v2_api_v1alpha1_AllowedAddressPairStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ApplicationCredential": schema_openstack_resource_controller_v2_api_v1alpha1_ApplicationCredential(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ApplicationCredentialAccessRule": schema_openstack_resource_controller_v2_api_v1alpha1_ApplicationCredentialAccessRule(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ApplicationCredentialAccessRuleStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ApplicationCredentialAccessRuleStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ApplicationCredentialFilter": schema_openstack_resource_controller_v2_api_v1alpha1_ApplicationCredentialFilter(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ApplicationCredentialImport": schema_openstack_resource_controller_v2_api_v1alpha1_ApplicationCredentialImport(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ApplicationCredentialList": schema_openstack_resource_controller_v2_api_v1alpha1_ApplicationCredentialList(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ApplicationCredentialResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_ApplicationCredentialResourceSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ApplicationCredentialResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ApplicationCredentialResourceStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ApplicationCredentialRoleStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ApplicationCredentialRoleStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ApplicationCredentialSpec": schema_openstack_resource_controller_v2_api_v1alpha1_ApplicationCredentialSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ApplicationCredentialStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ApplicationCredentialStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference": schema_openstack_resource_controller_v2_api_v1alpha1_CloudCredentialsReference(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Domain": schema_openstack_resource_controller_v2_api_v1alpha1_Domain(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainFilter": schema_openstack_resource_controller_v2_api_v1alpha1_DomainFilter(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainImport": schema_openstack_resource_controller_v2_api_v1alpha1_DomainImport(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainList": schema_openstack_resource_controller_v2_api_v1alpha1_DomainList(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_DomainResourceSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_DomainResourceStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainSpec": schema_openstack_resource_controller_v2_api_v1alpha1_DomainSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainStatus": schema_openstack_resource_controller_v2_api_v1alpha1_DomainStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Endpoint": schema_openstack_resource_controller_v2_api_v1alpha1_Endpoint(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointFilter": schema_openstack_resource_controller_v2_api_v1alpha1_EndpointFilter(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointImport": schema_openstack_resource_controller_v2_api_v1alpha1_EndpointImport(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointList": schema_openstack_resource_controller_v2_api_v1alpha1_EndpointList(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_EndpointResourceSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_EndpointResourceStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointSpec": schema_openstack_resource_controller_v2_api_v1alpha1_EndpointSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointStatus": schema_openstack_resource_controller_v2_api_v1alpha1_EndpointStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ExternalGateway": schema_openstack_resource_controller_v2_api_v1alpha1_ExternalGateway(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ExternalGatewayStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ExternalGatewayStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FilterByKeystoneTags": schema_openstack_resource_controller_v2_api_v1alpha1_FilterByKeystoneTags(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FilterByNeutronTags": schema_openstack_resource_controller_v2_api_v1alpha1_FilterByNeutronTags(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FilterByServerTags": schema_openstack_resource_controller_v2_api_v1alpha1_FilterByServerTags(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FixedIPStatus": schema_openstack_resource_controller_v2_api_v1alpha1_FixedIPStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Flavor": schema_openstack_resource_controller_v2_api_v1alpha1_Flavor(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorExtraSpec": schema_openstack_resource_controller_v2_api_v1alpha1_FlavorExtraSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorExtraSpecStatus": schema_openstack_resource_controller_v2_api_v1alpha1_FlavorExtraSpecStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorFilter": schema_openstack_resource_controller_v2_api_v1alpha1_FlavorFilter(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorImport": schema_openstack_resource_controller_v2_api_v1alpha1_FlavorImport(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorList": schema_openstack_resource_controller_v2_api_v1alpha1_FlavorList(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_FlavorResourceSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_FlavorResourceStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorSpec": schema_openstack_resource_controller_v2_api_v1alpha1_FlavorSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorStatus": schema_openstack_resource_controller_v2_api_v1alpha1_FlavorStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIP": schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIP(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPFilter": schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPFilter(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPImport": schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPImport(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPList": schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPList(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPResourceSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPResourceStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPSpec": schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPStatus": schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Group": schema_openstack_resource_controller_v2_api_v1alpha1_Group(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupFilter": schema_openstack_resource_controller_v2_api_v1alpha1_GroupFilter(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupImport": schema_openstack_resource_controller_v2_api_v1alpha1_GroupImport(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupList": schema_openstack_resource_controller_v2_api_v1alpha1_GroupList(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_GroupResourceSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_GroupResourceStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupSpec": schema_openstack_resource_controller_v2_api_v1alpha1_GroupSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupStatus": schema_openstack_resource_controller_v2_api_v1alpha1_GroupStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.HostID": schema_openstack_resource_controller_v2_api_v1alpha1_HostID(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.HostRoute": schema_openstack_resource_controller_v2_api_v1alpha1_HostRoute(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.HostRouteStatus": schema_openstack_resource_controller_v2_api_v1alpha1_HostRouteStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.IPv6Options": schema_openstack_resource_controller_v2_api_v1alpha1_IPv6Options(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Image": schema_openstack_resource_controller_v2_api_v1alpha1_Image(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageContent": schema_openstack_resource_controller_v2_api_v1alpha1_ImageContent(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageContentSourceDownload": schema_openstack_resource_controller_v2_api_v1alpha1_ImageContentSourceDownload(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageFilter": schema_openstack_resource_controller_v2_api_v1alpha1_ImageFilter(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageHash": schema_openstack_resource_controller_v2_api_v1alpha1_ImageHash(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageImport": schema_openstack_resource_controller_v2_api_v1alpha1_ImageImport(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageList": schema_openstack_resource_controller_v2_api_v1alpha1_ImageList(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageProperties": schema_openstack_resource_controller_v2_api_v1alpha1_ImageProperties(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImagePropertiesHardware": schema_openstack_resource_controller_v2_api_v1alpha1_ImagePropertiesHardware(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImagePropertiesOperatingSystem": schema_openstack_resource_controller_v2_api_v1alpha1_ImagePropertiesOperatingSystem(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_ImageResourceSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ImageResourceStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageSpec": schema_openstack_resource_controller_v2_api_v1alpha1_ImageSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ImageStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageStatusExtra": schema_openstack_resource_controller_v2_api_v1alpha1_ImageStatusExtra(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPair": schema_openstack_resource_controller_v2_api_v1alpha1_KeyPair(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairFilter": schema_openstack_resource_controller_v2_api_v1alpha1_KeyPairFilter(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairImport": schema_openstack_resource_controller_v2_api_v1alpha1_KeyPairImport(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairList": schema_openstack_resource_controller_v2_api_v1alpha1_KeyPairList(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_KeyPairResourceSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_KeyPairResourceStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairSpec": schema_openstack_resource_controller_v2_api_v1alpha1_KeyPairSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairStatus": schema_openstack_resource_controller_v2_api_v1alpha1_KeyPairStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions": schema_openstack_resource_controller_v2_api_v1alpha1_ManagedOptions(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Network": schema_openstack_resource_controller_v2_api_v1alpha1_Network(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkFilter": schema_openstack_resource_controller_v2_api_v1alpha1_NetworkFilter(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkImport": schema_openstack_resource_controller_v2_api_v1alpha1_NetworkImport(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkList": schema_openstack_resource_controller_v2_api_v1alpha1_NetworkList(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_NetworkResourceSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_NetworkResourceStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkSpec": schema_openstack_resource_controller_v2_api_v1alpha1_NetworkSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkStatus": schema_openstack_resource_controller_v2_api_v1alpha1_NetworkStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NeutronStatusMetadata": schema_openstack_resource_controller_v2_api_v1alpha1_NeutronStatusMetadata(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Port": schema_openstack_resource_controller_v2_api_v1alpha1_Port(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortFilter": schema_openstack_resource_controller_v2_api_v1alpha1_PortFilter(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortImport": schema_openstack_resource_controller_v2_api_v1alpha1_PortImport(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortList": schema_openstack_resource_controller_v2_api_v1alpha1_PortList(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortRangeSpec": schema_openstack_resource_controller_v2_api_v1alpha1_PortRangeSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortRangeStatus": schema_openstack_resource_controller_v2_api_v1alpha1_PortRangeStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_PortResourceSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_PortResourceStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortSpec": schema_openstack_resource_controller_v2_api_v1alpha1_PortSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortStatus": schema_openstack_resource_controller_v2_api_v1alpha1_PortStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortValueSpec": schema_openstack_resource_controller_v2_api_v1alpha1_PortValueSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Project": schema_openstack_resource_controller_v2_api_v1alpha1_Project(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectFilter": schema_openstack_resource_controller_v2_api_v1alpha1_ProjectFilter(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectImport": schema_openstack_resource_controller_v2_api_v1alpha1_ProjectImport(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectList": schema_openstack_resource_controller_v2_api_v1alpha1_ProjectList(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_ProjectResourceSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ProjectResourceStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectSpec": schema_openstack_resource_controller_v2_api_v1alpha1_ProjectSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ProjectStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProviderPropertiesStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ProviderPropertiesStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Role": schema_openstack_resource_controller_v2_api_v1alpha1_Role(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleFilter": schema_openstack_resource_controller_v2_api_v1alpha1_RoleFilter(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleImport": schema_openstack_resource_controller_v2_api_v1alpha1_RoleImport(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleList": schema_openstack_resource_controller_v2_api_v1alpha1_RoleList(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_RoleResourceSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_RoleResourceStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleSpec": schema_openstack_resource_controller_v2_api_v1alpha1_RoleSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleStatus": schema_openstack_resource_controller_v2_api_v1alpha1_RoleStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Router": schema_openstack_resource_controller_v2_api_v1alpha1_Router(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterFilter": schema_openstack_resource_controller_v2_api_v1alpha1_RouterFilter(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterImport": schema_openstack_resource_controller_v2_api_v1alpha1_RouterImport(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterInterface": schema_openstack_resource_controller_v2_api_v1alpha1_RouterInterface(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterInterfaceList": schema_openstack_resource_controller_v2_api_v1alpha1_RouterInterfaceList(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterInterfaceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_RouterInterfaceSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterInterfaceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_RouterInterfaceStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterList": schema_openstack_resource_controller_v2_api_v1alpha1_RouterList(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_RouterResourceSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_RouterResourceStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterSpec": schema_openstack_resource_controller_v2_api_v1alpha1_RouterSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterStatus": schema_openstack_resource_controller_v2_api_v1alpha1_RouterStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroup": schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroup(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupFilter": schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupFilter(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupImport": schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupImport(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupList": schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupList(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupResourceSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupResourceStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupRule": schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupRule(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupRuleStatus": schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupRuleStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupSpec": schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupStatus": schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Server": schema_openstack_resource_controller_v2_api_v1alpha1_Server(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerBootVolumeSpec": schema_openstack_resource_controller_v2_api_v1alpha1_ServerBootVolumeSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerFilter": schema_openstack_resource_controller_v2_api_v1alpha1_ServerFilter(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroup": schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroup(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupFilter": schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupFilter(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupImport": schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupImport(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupList": schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupList(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupResourceSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupResourceStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupRules": schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupRules(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupRulesStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupRulesStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupSpec": schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerImport": schema_openstack_resource_controller_v2_api_v1alpha1_ServerImport(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerInterfaceFixedIP": schema_openstack_resource_controller_v2_api_v1alpha1_ServerInterfaceFixedIP(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerInterfaceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ServerInterfaceStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerList": schema_openstack_resource_controller_v2_api_v1alpha1_ServerList(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerMetadata": schema_openstack_resource_controller_v2_api_v1alpha1_ServerMetadata(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerMetadataStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ServerMetadataStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerPortSpec": schema_openstack_resource_controller_v2_api_v1alpha1_ServerPortSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_ServerResourceSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ServerResourceStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerSchedulerHints": schema_openstack_resource_controller_v2_api_v1alpha1_ServerSchedulerHints(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerSpec": schema_openstack_resource_controller_v2_api_v1alpha1_ServerSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ServerStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerVolumeSpec": schema_openstack_resource_controller_v2_api_v1alpha1_ServerVolumeSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerVolumeStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ServerVolumeStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Service": schema_openstack_resource_controller_v2_api_v1alpha1_Service(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceFilter": schema_openstack_resource_controller_v2_api_v1alpha1_ServiceFilter(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceImport": schema_openstack_resource_controller_v2_api_v1alpha1_ServiceImport(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceList": schema_openstack_resource_controller_v2_api_v1alpha1_ServiceList(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_ServiceResourceSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ServiceResourceStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_ServiceSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ServiceStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ShareNetwork": schema_openstack_resource_controller_v2_api_v1alpha1_ShareNetwork(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ShareNetworkFilter": schema_openstack_resource_controller_v2_api_v1alpha1_ShareNetworkFilter(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ShareNetworkImport": schema_openstack_resource_controller_v2_api_v1alpha1_ShareNetworkImport(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ShareNetworkList": schema_openstack_resource_controller_v2_api_v1alpha1_ShareNetworkList(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ShareNetworkResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_ShareNetworkResourceSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ShareNetworkResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ShareNetworkResourceStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ShareNetworkSpec": schema_openstack_resource_controller_v2_api_v1alpha1_ShareNetworkSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ShareNetworkStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ShareNetworkStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Subnet": schema_openstack_resource_controller_v2_api_v1alpha1_Subnet(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SubnetFilter": schema_openstack_resource_controller_v2_api_v1alpha1_SubnetFilter(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SubnetGateway": schema_openstack_resource_controller_v2_api_v1alpha1_SubnetGateway(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SubnetImport": schema_openstack_resource_controller_v2_api_v1alpha1_SubnetImport(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SubnetList": schema_openstack_resource_controller_v2_api_v1alpha1_SubnetList(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SubnetResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_SubnetResourceSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SubnetResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_SubnetResourceStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SubnetSpec": schema_openstack_resource_controller_v2_api_v1alpha1_SubnetSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SubnetStatus": schema_openstack_resource_controller_v2_api_v1alpha1_SubnetStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Trunk": schema_openstack_resource_controller_v2_api_v1alpha1_Trunk(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.TrunkFilter": schema_openstack_resource_controller_v2_api_v1alpha1_TrunkFilter(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.TrunkImport": schema_openstack_resource_controller_v2_api_v1alpha1_TrunkImport(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.TrunkList": schema_openstack_resource_controller_v2_api_v1alpha1_TrunkList(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.TrunkResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_TrunkResourceSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.TrunkResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_TrunkResourceStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.TrunkSpec": schema_openstack_resource_controller_v2_api_v1alpha1_TrunkSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.TrunkStatus": schema_openstack_resource_controller_v2_api_v1alpha1_TrunkStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.TrunkSubportSpec": schema_openstack_resource_controller_v2_api_v1alpha1_TrunkSubportSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.TrunkSubportStatus": schema_openstack_resource_controller_v2_api_v1alpha1_TrunkSubportStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.User": schema_openstack_resource_controller_v2_api_v1alpha1_User(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.UserDataSpec": schema_openstack_resource_controller_v2_api_v1alpha1_UserDataSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.UserFilter": schema_openstack_resource_controller_v2_api_v1alpha1_UserFilter(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.UserImport": schema_openstack_resource_controller_v2_api_v1alpha1_UserImport(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.UserList": schema_openstack_resource_controller_v2_api_v1alpha1_UserList(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.UserResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_UserResourceSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.UserResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_UserResourceStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.UserSpec": schema_openstack_resource_controller_v2_api_v1alpha1_UserSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.UserStatus": schema_openstack_resource_controller_v2_api_v1alpha1_UserStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Volume": schema_openstack_resource_controller_v2_api_v1alpha1_Volume(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeAttachmentStatus": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeAttachmentStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeFilter": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeFilter(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeImport": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeImport(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeList": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeList(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeMetadata": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeMetadata(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeMetadataStatus": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeMetadataStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeResourceSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeResourceStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeSpec": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeStatus": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeType": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeType(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeTypeExtraSpec": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeTypeExtraSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeTypeExtraSpecStatus": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeTypeExtraSpecStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeTypeFilter": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeTypeFilter(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeTypeImport": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeTypeImport(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeTypeList": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeTypeList(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeTypeResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeTypeResourceSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeTypeResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeTypeResourceStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeTypeSpec": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeTypeSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeTypeStatus": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeTypeStatus(ref), - "k8s.io/api/core/v1.AWSElasticBlockStoreVolumeSource": schema_k8sio_api_core_v1_AWSElasticBlockStoreVolumeSource(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Address": schema_openstack_resource_controller_v2_api_v1alpha1_Address(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AllocationPool": schema_openstack_resource_controller_v2_api_v1alpha1_AllocationPool(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AllocationPoolStatus": schema_openstack_resource_controller_v2_api_v1alpha1_AllocationPoolStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AllowedAddressPair": schema_openstack_resource_controller_v2_api_v1alpha1_AllowedAddressPair(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AllowedAddressPairStatus": schema_openstack_resource_controller_v2_api_v1alpha1_AllowedAddressPairStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference": schema_openstack_resource_controller_v2_api_v1alpha1_CloudCredentialsReference(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Domain": schema_openstack_resource_controller_v2_api_v1alpha1_Domain(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainFilter": schema_openstack_resource_controller_v2_api_v1alpha1_DomainFilter(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainImport": schema_openstack_resource_controller_v2_api_v1alpha1_DomainImport(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainList": schema_openstack_resource_controller_v2_api_v1alpha1_DomainList(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_DomainResourceSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_DomainResourceStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainSpec": schema_openstack_resource_controller_v2_api_v1alpha1_DomainSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainStatus": schema_openstack_resource_controller_v2_api_v1alpha1_DomainStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Endpoint": schema_openstack_resource_controller_v2_api_v1alpha1_Endpoint(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointFilter": schema_openstack_resource_controller_v2_api_v1alpha1_EndpointFilter(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointImport": schema_openstack_resource_controller_v2_api_v1alpha1_EndpointImport(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointList": schema_openstack_resource_controller_v2_api_v1alpha1_EndpointList(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_EndpointResourceSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_EndpointResourceStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointSpec": schema_openstack_resource_controller_v2_api_v1alpha1_EndpointSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointStatus": schema_openstack_resource_controller_v2_api_v1alpha1_EndpointStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ExternalGateway": schema_openstack_resource_controller_v2_api_v1alpha1_ExternalGateway(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ExternalGatewayStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ExternalGatewayStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FilterByKeystoneTags": schema_openstack_resource_controller_v2_api_v1alpha1_FilterByKeystoneTags(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FilterByNeutronTags": schema_openstack_resource_controller_v2_api_v1alpha1_FilterByNeutronTags(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FilterByServerTags": schema_openstack_resource_controller_v2_api_v1alpha1_FilterByServerTags(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FixedIPStatus": schema_openstack_resource_controller_v2_api_v1alpha1_FixedIPStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Flavor": schema_openstack_resource_controller_v2_api_v1alpha1_Flavor(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorFilter": schema_openstack_resource_controller_v2_api_v1alpha1_FlavorFilter(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorImport": schema_openstack_resource_controller_v2_api_v1alpha1_FlavorImport(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorList": schema_openstack_resource_controller_v2_api_v1alpha1_FlavorList(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_FlavorResourceSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_FlavorResourceStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorSpec": schema_openstack_resource_controller_v2_api_v1alpha1_FlavorSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorStatus": schema_openstack_resource_controller_v2_api_v1alpha1_FlavorStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIP": schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIP(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPFilter": schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPFilter(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPImport": schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPImport(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPList": schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPList(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPResourceSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPResourceStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPSpec": schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPStatus": schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Group": schema_openstack_resource_controller_v2_api_v1alpha1_Group(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupFilter": schema_openstack_resource_controller_v2_api_v1alpha1_GroupFilter(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupImport": schema_openstack_resource_controller_v2_api_v1alpha1_GroupImport(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupList": schema_openstack_resource_controller_v2_api_v1alpha1_GroupList(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_GroupResourceSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_GroupResourceStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupSpec": schema_openstack_resource_controller_v2_api_v1alpha1_GroupSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupStatus": schema_openstack_resource_controller_v2_api_v1alpha1_GroupStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.HostID": schema_openstack_resource_controller_v2_api_v1alpha1_HostID(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.HostRoute": schema_openstack_resource_controller_v2_api_v1alpha1_HostRoute(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.HostRouteStatus": schema_openstack_resource_controller_v2_api_v1alpha1_HostRouteStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.IPv6Options": schema_openstack_resource_controller_v2_api_v1alpha1_IPv6Options(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Image": schema_openstack_resource_controller_v2_api_v1alpha1_Image(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageContent": schema_openstack_resource_controller_v2_api_v1alpha1_ImageContent(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageContentSourceDownload": schema_openstack_resource_controller_v2_api_v1alpha1_ImageContentSourceDownload(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageFilter": schema_openstack_resource_controller_v2_api_v1alpha1_ImageFilter(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageHash": schema_openstack_resource_controller_v2_api_v1alpha1_ImageHash(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageImport": schema_openstack_resource_controller_v2_api_v1alpha1_ImageImport(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageList": schema_openstack_resource_controller_v2_api_v1alpha1_ImageList(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageProperties": schema_openstack_resource_controller_v2_api_v1alpha1_ImageProperties(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImagePropertiesHardware": schema_openstack_resource_controller_v2_api_v1alpha1_ImagePropertiesHardware(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImagePropertiesOperatingSystem": schema_openstack_resource_controller_v2_api_v1alpha1_ImagePropertiesOperatingSystem(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_ImageResourceSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ImageResourceStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageSpec": schema_openstack_resource_controller_v2_api_v1alpha1_ImageSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ImageStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageStatusExtra": schema_openstack_resource_controller_v2_api_v1alpha1_ImageStatusExtra(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPair": schema_openstack_resource_controller_v2_api_v1alpha1_KeyPair(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairFilter": schema_openstack_resource_controller_v2_api_v1alpha1_KeyPairFilter(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairImport": schema_openstack_resource_controller_v2_api_v1alpha1_KeyPairImport(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairList": schema_openstack_resource_controller_v2_api_v1alpha1_KeyPairList(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_KeyPairResourceSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_KeyPairResourceStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairSpec": schema_openstack_resource_controller_v2_api_v1alpha1_KeyPairSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairStatus": schema_openstack_resource_controller_v2_api_v1alpha1_KeyPairStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.LoadBalancerFilter": schema_openstack_resource_controller_v2_api_v1alpha1_LoadBalancerFilter(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.LoadBalancerResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_LoadBalancerResourceSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.LoadBalancerResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_LoadBalancerResourceStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions": schema_openstack_resource_controller_v2_api_v1alpha1_ManagedOptions(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Network": schema_openstack_resource_controller_v2_api_v1alpha1_Network(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkFilter": schema_openstack_resource_controller_v2_api_v1alpha1_NetworkFilter(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkImport": schema_openstack_resource_controller_v2_api_v1alpha1_NetworkImport(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkList": schema_openstack_resource_controller_v2_api_v1alpha1_NetworkList(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_NetworkResourceSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_NetworkResourceStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkSpec": schema_openstack_resource_controller_v2_api_v1alpha1_NetworkSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkStatus": schema_openstack_resource_controller_v2_api_v1alpha1_NetworkStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NeutronStatusMetadata": schema_openstack_resource_controller_v2_api_v1alpha1_NeutronStatusMetadata(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Port": schema_openstack_resource_controller_v2_api_v1alpha1_Port(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortFilter": schema_openstack_resource_controller_v2_api_v1alpha1_PortFilter(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortImport": schema_openstack_resource_controller_v2_api_v1alpha1_PortImport(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortList": schema_openstack_resource_controller_v2_api_v1alpha1_PortList(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortRangeSpec": schema_openstack_resource_controller_v2_api_v1alpha1_PortRangeSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortRangeStatus": schema_openstack_resource_controller_v2_api_v1alpha1_PortRangeStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_PortResourceSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_PortResourceStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortSpec": schema_openstack_resource_controller_v2_api_v1alpha1_PortSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortStatus": schema_openstack_resource_controller_v2_api_v1alpha1_PortStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Project": schema_openstack_resource_controller_v2_api_v1alpha1_Project(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectFilter": schema_openstack_resource_controller_v2_api_v1alpha1_ProjectFilter(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectImport": schema_openstack_resource_controller_v2_api_v1alpha1_ProjectImport(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectList": schema_openstack_resource_controller_v2_api_v1alpha1_ProjectList(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_ProjectResourceSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ProjectResourceStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectSpec": schema_openstack_resource_controller_v2_api_v1alpha1_ProjectSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ProjectStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProviderPropertiesStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ProviderPropertiesStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Role": schema_openstack_resource_controller_v2_api_v1alpha1_Role(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleFilter": schema_openstack_resource_controller_v2_api_v1alpha1_RoleFilter(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleImport": schema_openstack_resource_controller_v2_api_v1alpha1_RoleImport(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleList": schema_openstack_resource_controller_v2_api_v1alpha1_RoleList(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_RoleResourceSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_RoleResourceStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleSpec": schema_openstack_resource_controller_v2_api_v1alpha1_RoleSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleStatus": schema_openstack_resource_controller_v2_api_v1alpha1_RoleStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Router": schema_openstack_resource_controller_v2_api_v1alpha1_Router(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterFilter": schema_openstack_resource_controller_v2_api_v1alpha1_RouterFilter(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterImport": schema_openstack_resource_controller_v2_api_v1alpha1_RouterImport(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterInterface": schema_openstack_resource_controller_v2_api_v1alpha1_RouterInterface(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterInterfaceList": schema_openstack_resource_controller_v2_api_v1alpha1_RouterInterfaceList(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterInterfaceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_RouterInterfaceSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterInterfaceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_RouterInterfaceStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterList": schema_openstack_resource_controller_v2_api_v1alpha1_RouterList(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_RouterResourceSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_RouterResourceStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterSpec": schema_openstack_resource_controller_v2_api_v1alpha1_RouterSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterStatus": schema_openstack_resource_controller_v2_api_v1alpha1_RouterStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroup": schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroup(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupFilter": schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupFilter(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupImport": schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupImport(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupList": schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupList(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupResourceSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupResourceStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupRule": schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupRule(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupRuleStatus": schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupRuleStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupSpec": schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupStatus": schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Server": schema_openstack_resource_controller_v2_api_v1alpha1_Server(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerFilter": schema_openstack_resource_controller_v2_api_v1alpha1_ServerFilter(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroup": schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroup(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupFilter": schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupFilter(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupImport": schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupImport(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupList": schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupList(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupResourceSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupResourceStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupRules": schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupRules(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupRulesStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupRulesStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupSpec": schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerImport": schema_openstack_resource_controller_v2_api_v1alpha1_ServerImport(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerInterfaceFixedIP": schema_openstack_resource_controller_v2_api_v1alpha1_ServerInterfaceFixedIP(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerInterfaceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ServerInterfaceStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerList": schema_openstack_resource_controller_v2_api_v1alpha1_ServerList(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerMetadata": schema_openstack_resource_controller_v2_api_v1alpha1_ServerMetadata(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerMetadataStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ServerMetadataStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerPortSpec": schema_openstack_resource_controller_v2_api_v1alpha1_ServerPortSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_ServerResourceSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ServerResourceStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerSpec": schema_openstack_resource_controller_v2_api_v1alpha1_ServerSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ServerStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerVolumeSpec": schema_openstack_resource_controller_v2_api_v1alpha1_ServerVolumeSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerVolumeStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ServerVolumeStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Service": schema_openstack_resource_controller_v2_api_v1alpha1_Service(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceFilter": schema_openstack_resource_controller_v2_api_v1alpha1_ServiceFilter(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceImport": schema_openstack_resource_controller_v2_api_v1alpha1_ServiceImport(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceList": schema_openstack_resource_controller_v2_api_v1alpha1_ServiceList(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_ServiceResourceSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ServiceResourceStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_ServiceSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ServiceStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Subnet": schema_openstack_resource_controller_v2_api_v1alpha1_Subnet(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SubnetFilter": schema_openstack_resource_controller_v2_api_v1alpha1_SubnetFilter(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SubnetGateway": schema_openstack_resource_controller_v2_api_v1alpha1_SubnetGateway(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SubnetImport": schema_openstack_resource_controller_v2_api_v1alpha1_SubnetImport(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SubnetList": schema_openstack_resource_controller_v2_api_v1alpha1_SubnetList(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SubnetResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_SubnetResourceSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SubnetResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_SubnetResourceStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SubnetSpec": schema_openstack_resource_controller_v2_api_v1alpha1_SubnetSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SubnetStatus": schema_openstack_resource_controller_v2_api_v1alpha1_SubnetStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Trunk": schema_openstack_resource_controller_v2_api_v1alpha1_Trunk(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.TrunkFilter": schema_openstack_resource_controller_v2_api_v1alpha1_TrunkFilter(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.TrunkImport": schema_openstack_resource_controller_v2_api_v1alpha1_TrunkImport(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.TrunkList": schema_openstack_resource_controller_v2_api_v1alpha1_TrunkList(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.TrunkResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_TrunkResourceSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.TrunkResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_TrunkResourceStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.TrunkSpec": schema_openstack_resource_controller_v2_api_v1alpha1_TrunkSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.TrunkStatus": schema_openstack_resource_controller_v2_api_v1alpha1_TrunkStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.TrunkSubportSpec": schema_openstack_resource_controller_v2_api_v1alpha1_TrunkSubportSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.TrunkSubportStatus": schema_openstack_resource_controller_v2_api_v1alpha1_TrunkSubportStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.User": schema_openstack_resource_controller_v2_api_v1alpha1_User(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.UserDataSpec": schema_openstack_resource_controller_v2_api_v1alpha1_UserDataSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.UserFilter": schema_openstack_resource_controller_v2_api_v1alpha1_UserFilter(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.UserImport": schema_openstack_resource_controller_v2_api_v1alpha1_UserImport(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.UserList": schema_openstack_resource_controller_v2_api_v1alpha1_UserList(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.UserResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_UserResourceSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.UserResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_UserResourceStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.UserSpec": schema_openstack_resource_controller_v2_api_v1alpha1_UserSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.UserStatus": schema_openstack_resource_controller_v2_api_v1alpha1_UserStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Volume": schema_openstack_resource_controller_v2_api_v1alpha1_Volume(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeAttachmentStatus": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeAttachmentStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeFilter": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeFilter(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeImport": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeImport(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeList": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeList(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeMetadata": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeMetadata(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeMetadataStatus": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeMetadataStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeResourceSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeResourceStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeSpec": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeStatus": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeType": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeType(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeTypeExtraSpec": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeTypeExtraSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeTypeExtraSpecStatus": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeTypeExtraSpecStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeTypeFilter": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeTypeFilter(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeTypeImport": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeTypeImport(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeTypeList": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeTypeList(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeTypeResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeTypeResourceSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeTypeResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeTypeResourceStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeTypeSpec": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeTypeSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeTypeStatus": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeTypeStatus(ref), + "k8s.io/api/core/v1.AWSElasticBlockStoreVolumeSource": schema_k8sio_api_core_v1_AWSElasticBlockStoreVolumeSource(ref), "k8s.io/api/core/v1.Affinity": schema_k8sio_api_core_v1_Affinity(ref), "k8s.io/api/core/v1.AppArmorProfile": schema_k8sio_api_core_v1_AppArmorProfile(ref), "k8s.io/api/core/v1.AttachedVolume": schema_k8sio_api_core_v1_AttachedVolume(ref), @@ -601,11 +572,145 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_Address(ref common.Ref } } -func schema_openstack_resource_controller_v2_api_v1alpha1_AddressScope(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_AllocationPool(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "start": { + SchemaProps: spec.SchemaProps{ + Description: "start is the first IP address in the allocation pool.", + Type: []string{"string"}, + Format: "", + }, + }, + "end": { + SchemaProps: spec.SchemaProps{ + Description: "end is the last IP address in the allocation pool.", + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"start", "end"}, + }, + }, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_AllocationPoolStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "start": { + SchemaProps: spec.SchemaProps{ + Description: "start is the first IP address in the allocation pool.", + Type: []string{"string"}, + Format: "", + }, + }, + "end": { + SchemaProps: spec.SchemaProps{ + Description: "end is the last IP address in the allocation pool.", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_AllowedAddressPair(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "ip": { + SchemaProps: spec.SchemaProps{ + Description: "ip contains an IP address which a server connected to the port can send packets with. It can be an IP Address or a CIDR (if supported by the underlying extension plugin).", + Type: []string{"string"}, + Format: "", + }, + }, + "mac": { + SchemaProps: spec.SchemaProps{ + Description: "mac contains a MAC address which a server connected to the port can send packets with. Defaults to the MAC address of the port.", + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"ip"}, + }, + }, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_AllowedAddressPairStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "ip": { + SchemaProps: spec.SchemaProps{ + Description: "ip contains an IP address which a server connected to the port can send packets with.", + Type: []string{"string"}, + Format: "", + }, + }, + "mac": { + SchemaProps: spec.SchemaProps{ + Description: "mac contains a MAC address which a server connected to the port can send packets with.", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_CloudCredentialsReference(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "CloudCredentialsReference is a reference to a secret containing OpenStack credentials.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "secretName": { + SchemaProps: spec.SchemaProps{ + Description: "secretName is the name of a secret in the same namespace as the resource being provisioned. The secret must contain a key named `clouds.yaml` which contains an OpenStack clouds.yaml file. The secret may optionally contain a key named `cacert` containing a PEM-encoded CA certificate.", + Type: []string{"string"}, + Format: "", + }, + }, + "cloudName": { + SchemaProps: spec.SchemaProps{ + Description: "cloudName specifies the name of the entry in the clouds.yaml file to use.", + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"secretName", "cloudName"}, + }, + }, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_Domain(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "AddressScope is the Schema for an ORC resource.", + Description: "Domain is the Schema for an ORC resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "kind": { @@ -633,14 +738,14 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_AddressScope(ref commo SchemaProps: spec.SchemaProps{ Description: "spec specifies the desired state of the resource.", Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AddressScopeSpec"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainSpec"), }, }, "status": { SchemaProps: spec.SchemaProps{ Description: "status defines the observed state of the resource.", Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AddressScopeStatus"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainStatus"), }, }, }, @@ -648,15 +753,15 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_AddressScope(ref commo }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AddressScopeSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AddressScopeStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_AddressScopeFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_DomainFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "AddressScopeFilter defines an existing resource by its properties", + Description: "DomainFilter defines an existing resource by its properties", Type: []string{"object"}, Properties: map[string]spec.Schema{ "name": { @@ -666,23 +771,9 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_AddressScopeFilter(ref Format: "", }, }, - "projectRef": { - SchemaProps: spec.SchemaProps{ - Description: "projectRef is a reference to the ORC Project which this resource is associated with.", - Type: []string{"string"}, - Format: "", - }, - }, - "ipVersion": { - SchemaProps: spec.SchemaProps{ - Description: "ipVersion is the IP protocol version.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "shared": { + "enabled": { SchemaProps: spec.SchemaProps{ - Description: "shared indicates whether this resource is shared across all projects or not. By default, only admin users can change set this value.", + Description: "enabled defines whether a domain is enabled or not. Default is true. Note: Users can only authorize against an enabled domain (and any of its projects).", Type: []string{"boolean"}, Format: "", }, @@ -693,11 +784,11 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_AddressScopeFilter(ref } } -func schema_openstack_resource_controller_v2_api_v1alpha1_AddressScopeImport(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_DomainImport(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "AddressScopeImport specifies an existing resource which will be imported instead of creating a new one", + Description: "DomainImport specifies an existing resource which will be imported instead of creating a new one", Type: []string{"object"}, Properties: map[string]spec.Schema{ "id": { @@ -710,22 +801,22 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_AddressScopeImport(ref "filter": { SchemaProps: spec.SchemaProps{ Description: "filter contains a resource query which is expected to return a single result. The controller will continue to retry if filter returns no results. If filter returns multiple results the controller will set an error state and will not continue to retry.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AddressScopeFilter"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainFilter"), }, }, }, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AddressScopeFilter"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainFilter"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_AddressScopeList(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_DomainList(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "AddressScopeList contains a list of AddressScope.", + Description: "DomainList contains a list of Domain.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "kind": { @@ -751,13 +842,13 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_AddressScopeList(ref c }, "items": { SchemaProps: spec.SchemaProps{ - Description: "items contains a list of AddressScope.", + Description: "items contains a list of Domain.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AddressScope"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Domain"), }, }, }, @@ -768,15 +859,15 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_AddressScopeList(ref c }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AddressScope", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Domain", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_AddressScopeResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_DomainResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "AddressScopeResourceSpec contains the desired state of the resource.", + Description: "DomainResourceSpec contains the desired state of the resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "name": { @@ -786,40 +877,31 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_AddressScopeResourceSp Format: "", }, }, - "projectRef": { + "description": { SchemaProps: spec.SchemaProps{ - Description: "projectRef is a reference to the ORC Project which this resource is associated with.", + Description: "description is a human-readable description for the resource.", Type: []string{"string"}, Format: "", }, }, - "ipVersion": { - SchemaProps: spec.SchemaProps{ - Description: "ipVersion is the IP protocol version.", - Default: 0, - Type: []string{"integer"}, - Format: "int32", - }, - }, - "shared": { + "enabled": { SchemaProps: spec.SchemaProps{ - Description: "shared indicates whether this resource is shared across all projects or not. By default, only admin users can change set this value. We can't unshared a shared address scope; Neutron enforces this.", + Description: "enabled defines whether a domain is enabled or not. Default is true. Note: Users can only authorize against an enabled domain (and any of its projects).", Type: []string{"boolean"}, Format: "", }, }, }, - Required: []string{"ipVersion"}, }, }, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_AddressScopeResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_DomainResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "AddressScopeResourceStatus represents the observed state of the resource.", + Description: "DomainResourceStatus represents the observed state of the resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "name": { @@ -829,23 +911,16 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_AddressScopeResourceSt Format: "", }, }, - "projectID": { + "description": { SchemaProps: spec.SchemaProps{ - Description: "projectID is the ID of the Project to which the resource is associated.", + Description: "description is a human-readable description for the resource.", Type: []string{"string"}, Format: "", }, }, - "ipVersion": { - SchemaProps: spec.SchemaProps{ - Description: "ipVersion is the IP protocol version.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "shared": { + "enabled": { SchemaProps: spec.SchemaProps{ - Description: "shared indicates whether this resource is shared across all projects or not. By default, only admin users can change set this value.", + Description: "enabled defines whether a domain is enabled or not. Default is true. Note: Users can only authorize against an enabled domain (and any of its projects).", Type: []string{"boolean"}, Format: "", }, @@ -856,23 +931,23 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_AddressScopeResourceSt } } -func schema_openstack_resource_controller_v2_api_v1alpha1_AddressScopeSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_DomainSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "AddressScopeSpec defines the desired state of an ORC object.", + Description: "DomainSpec defines the desired state of an ORC object.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "import": { SchemaProps: spec.SchemaProps{ Description: "import refers to an existing OpenStack resource which will be imported instead of creating a new one.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AddressScopeImport"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainImport"), }, }, "resource": { SchemaProps: spec.SchemaProps{ Description: "resource specifies the desired state of the resource.\n\nresource may not be specified if the management policy is `unmanaged`.\n\nresource must be specified if the management policy is `managed`.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AddressScopeResourceSpec"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainResourceSpec"), }, }, "managementPolicy": { @@ -900,15 +975,15 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_AddressScopeSpec(ref c }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AddressScopeImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AddressScopeResourceSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainResourceSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_AddressScopeStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_DomainStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "AddressScopeStatus defines the observed state of an ORC resource.", + Description: "DomainStatus defines the observed state of an ORC resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "conditions": { @@ -945,128 +1020,135 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_AddressScopeStatus(ref "resource": { SchemaProps: spec.SchemaProps{ Description: "resource contains the observed state of the OpenStack resource.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AddressScopeResourceStatus"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainResourceStatus"), }, }, }, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AddressScopeResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_AllocationPool(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_Endpoint(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, + Description: "Endpoint is the Schema for an ORC resource.", + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "start": { + "kind": { SchemaProps: spec.SchemaProps{ - Description: "start is the first IP address in the allocation pool.", + Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", Type: []string{"string"}, Format: "", }, }, - "end": { + "apiVersion": { SchemaProps: spec.SchemaProps{ - Description: "end is the last IP address in the allocation pool.", + Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", Type: []string{"string"}, Format: "", }, }, + "metadata": { + SchemaProps: spec.SchemaProps{ + Description: "metadata contains the object metadata", + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), + }, + }, + "spec": { + SchemaProps: spec.SchemaProps{ + Description: "spec specifies the desired state of the resource.", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointSpec"), + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Description: "status defines the observed state of the resource.", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointStatus"), + }, + }, }, - Required: []string{"start", "end"}, + Required: []string{"spec"}, }, }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_AllocationPoolStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_EndpointFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, + Description: "EndpointFilter defines an existing resource by its properties", + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "start": { + "interface": { SchemaProps: spec.SchemaProps{ - Description: "start is the first IP address in the allocation pool.", + Description: "interface of the existing endpoint.", Type: []string{"string"}, Format: "", }, }, - "end": { + "serviceRef": { SchemaProps: spec.SchemaProps{ - Description: "end is the last IP address in the allocation pool.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_AllowedAddressPair(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "ip": { - SchemaProps: spec.SchemaProps{ - Description: "ip contains an IP address which a server connected to the port can send packets with. It can be an IP Address or a CIDR (if supported by the underlying extension plugin).", + Description: "serviceRef is a reference to the ORC Service which this resource is associated with.", Type: []string{"string"}, Format: "", }, }, - "mac": { + "url": { SchemaProps: spec.SchemaProps{ - Description: "mac contains a MAC address which a server connected to the port can send packets with. Defaults to the MAC address of the port.", + Description: "url is the URL of the existing endpoint.", Type: []string{"string"}, Format: "", }, }, }, - Required: []string{"ip"}, }, }, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_AllowedAddressPairStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_EndpointImport(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, + Description: "EndpointImport specifies an existing resource which will be imported instead of creating a new one", + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "ip": { + "id": { SchemaProps: spec.SchemaProps{ - Description: "ip contains an IP address which a server connected to the port can send packets with.", + Description: "id contains the unique identifier of an existing OpenStack resource. Note that when specifying an import by ID, the resource MUST already exist. The ORC object will enter an error state if the resource does not exist.", Type: []string{"string"}, Format: "", }, }, - "mac": { + "filter": { SchemaProps: spec.SchemaProps{ - Description: "mac contains a MAC address which a server connected to the port can send packets with.", - Type: []string{"string"}, - Format: "", + Description: "filter contains a resource query which is expected to return a single result. The controller will continue to retry if filter returns no results. If filter returns multiple results the controller will set an error state and will not continue to retry.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointFilter"), }, }, }, }, }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointFilter"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ApplicationCredential(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_EndpointList(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "ApplicationCredential is the Schema for an ORC resource.", + Description: "EndpointList contains a list of Endpoint.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "kind": { @@ -1085,98 +1167,122 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_ApplicationCredential( }, "metadata": { SchemaProps: spec.SchemaProps{ - Description: "metadata contains the object metadata", - Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "spec specifies the desired state of the resource.", + Description: "metadata contains the list metadata", Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ApplicationCredentialSpec"), + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), }, }, - "status": { + "items": { SchemaProps: spec.SchemaProps{ - Description: "status defines the observed state of the resource.", - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ApplicationCredentialStatus"), + Description: "items contains a list of Endpoint.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Endpoint"), + }, + }, + }, }, }, }, - Required: []string{"spec"}, + Required: []string{"items"}, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ApplicationCredentialSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ApplicationCredentialStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Endpoint", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ApplicationCredentialAccessRule(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_EndpointResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "ApplicationCredentialAccessRule defines an access rule", + Description: "EndpointResourceSpec contains the desired state of the resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ - "path": { + "description": { + SchemaProps: spec.SchemaProps{ + Description: "description is a human-readable description for the resource.", + Type: []string{"string"}, + Format: "", + }, + }, + "enabled": { + SchemaProps: spec.SchemaProps{ + Description: "enabled indicates whether the endpoint is enabled or not.", + Type: []string{"boolean"}, + Format: "", + }, + }, + "interface": { SchemaProps: spec.SchemaProps{ - Description: "path that the application credential is permitted to access", + Description: "interface indicates the visibility of the endpoint.", Type: []string{"string"}, Format: "", }, }, - "method": { + "url": { SchemaProps: spec.SchemaProps{ - Description: "method that the application credential is permitted to use for a given API endpoint", + Description: "url is the endpoint URL.", + Default: "", Type: []string{"string"}, Format: "", }, }, "serviceRef": { SchemaProps: spec.SchemaProps{ - Description: "serviceRef identifier for the service that the application credential is permitted to access", + Description: "serviceRef is a reference to the ORC Service which this resource is associated with.", Type: []string{"string"}, Format: "", }, }, }, + Required: []string{"interface", "url", "serviceRef"}, }, }, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ApplicationCredentialAccessRuleStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_EndpointResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, + Description: "EndpointResourceStatus represents the observed state of the resource.", + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "id": { + "description": { SchemaProps: spec.SchemaProps{ - Description: "id is the ID of this access rule", + Description: "description is a human-readable description for the resource.", Type: []string{"string"}, Format: "", }, }, - "path": { + "enabled": { + SchemaProps: spec.SchemaProps{ + Description: "enabled indicates whether the endpoint is enabled or not.", + Type: []string{"boolean"}, + Format: "", + }, + }, + "interface": { SchemaProps: spec.SchemaProps{ - Description: "path that the application credential is permitted to access", + Description: "interface indicates the visibility of the endpoint.", Type: []string{"string"}, Format: "", }, }, - "method": { + "url": { SchemaProps: spec.SchemaProps{ - Description: "method that the application credential is permitted to use for a given API endpoint", + Description: "url is the endpoint URL.", Type: []string{"string"}, Format: "", }, }, - "service": { + "serviceID": { SchemaProps: spec.SchemaProps{ - Description: "service type identifier for the service that the application credential is permitted to access", + Description: "serviceID is the ID of the Service to which the resource is associated.", Type: []string{"string"}, Format: "", }, @@ -1187,170 +1293,271 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_ApplicationCredentialA } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ApplicationCredentialFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_EndpointSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "ApplicationCredentialFilter defines an existing resource by its properties", + Description: "EndpointSpec defines the desired state of an ORC object.", Type: []string{"object"}, Properties: map[string]spec.Schema{ - "userRef": { + "import": { SchemaProps: spec.SchemaProps{ - Description: "userRef is a reference to the ORC User which this resource is associated with. Note: Due to the nature of the OpenStack API, managing application credentials for a user different than the one ORC is authenticated against can be computationally expensive. In the worst case, all application credentials of all users have to be queried.", - Type: []string{"string"}, - Format: "", + Description: "import refers to an existing OpenStack resource which will be imported instead of creating a new one.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointImport"), }, }, - "name": { + "resource": { SchemaProps: spec.SchemaProps{ - Description: "name of the existing resource", - Type: []string{"string"}, - Format: "", + Description: "resource specifies the desired state of the resource.\n\nresource may not be specified if the management policy is `unmanaged`.\n\nresource must be specified if the management policy is `managed`.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointResourceSpec"), }, }, - "description": { + "managementPolicy": { SchemaProps: spec.SchemaProps{ - Description: "description of the existing resource", + Description: "managementPolicy defines how ORC will treat the object. Valid values are `managed`: ORC will create, update, and delete the resource; `unmanaged`: ORC will import an existing resource, and will not apply updates to it or delete it.", Type: []string{"string"}, Format: "", }, }, + "managedOptions": { + SchemaProps: spec.SchemaProps{ + Description: "managedOptions specifies options which may be applied to managed objects.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions"), + }, + }, + "cloudCredentialsRef": { + SchemaProps: spec.SchemaProps{ + Description: "cloudCredentialsRef points to a secret containing OpenStack credentials", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference"), + }, + }, }, - Required: []string{"userRef"}, + Required: []string{"cloudCredentialsRef"}, }, }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointResourceSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ApplicationCredentialImport(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_EndpointStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "ApplicationCredentialImport specifies an existing resource which will be imported instead of creating a new one", + Description: "EndpointStatus defines the observed state of an ORC resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ + "conditions": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "type", + }, + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "conditions represents the observed status of the object. Known .status.conditions.type are: \"Available\", \"Progressing\"\n\nAvailable represents the availability of the OpenStack resource. If it is true then the resource is ready for use.\n\nProgressing indicates whether the controller is still attempting to reconcile the current state of the OpenStack resource to the desired state. Progressing will be False either because the desired state has been achieved, or because some terminal error prevents it from ever being achieved and the controller is no longer attempting to reconcile. If Progressing is True, an observer waiting on the resource should continue to wait.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Condition"), + }, + }, + }, + }, + }, "id": { SchemaProps: spec.SchemaProps{ - Description: "id contains the unique identifier of an existing OpenStack resource. Note that when specifying an import by ID, the resource MUST already exist. The ORC object will enter an error state if the resource does not exist.", + Description: "id is the unique identifier of the OpenStack resource.", Type: []string{"string"}, Format: "", }, }, - "filter": { + "resource": { SchemaProps: spec.SchemaProps{ - Description: "filter contains a resource query which is expected to return a single result. The controller will continue to retry if filter returns no results. If filter returns multiple results the controller will set an error state and will not continue to retry.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ApplicationCredentialFilter"), + Description: "resource contains the observed state of the OpenStack resource.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointResourceStatus"), }, }, }, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ApplicationCredentialFilter"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ApplicationCredentialList(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ExternalGateway(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "ApplicationCredentialList contains a list of ApplicationCredential.", - Type: []string{"object"}, + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "kind": { + "networkRef": { SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + Description: "networkRef is a reference to the ORC Network which the external gateway is on.", Type: []string{"string"}, Format: "", }, }, - "apiVersion": { + }, + Required: []string{"networkRef"}, + }, + }, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_ExternalGatewayStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "networkID": { SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + Description: "networkID is the ID of the network the gateway is on.", Type: []string{"string"}, Format: "", }, }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "metadata contains the list metadata", - Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "items contains a list of ApplicationCredential.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ApplicationCredential"), - }, - }, - }, - }, - }, }, - Required: []string{"items"}, }, }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ApplicationCredential", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ApplicationCredentialResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_FilterByKeystoneTags(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "ApplicationCredentialResourceSpec contains the desired state of the resource.", - Type: []string{"object"}, + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "name": { + "tags": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, SchemaProps: spec.SchemaProps{ - Description: "name will be the name of the created resource. If not specified, the name of the ORC object will be used.", - Type: []string{"string"}, - Format: "", + Description: "tags is a list of tags to filter by. If specified, the resource must have all of the tags specified to be included in the result.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, }, }, - "description": { + "tagsAny": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, SchemaProps: spec.SchemaProps{ - Description: "description is a human-readable description for the resource.", - Type: []string{"string"}, - Format: "", + Description: "tagsAny is a list of tags to filter by. If specified, the resource must have at least one of the tags specified to be included in the result.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, }, }, - "userRef": { + "notTags": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, SchemaProps: spec.SchemaProps{ - Description: "userRef is a reference to the ORC User which this resource is associated with. Note: Due to the nature of the OpenStack API, managing application credentials for a user different than the one ORC is authenticated against can be computationally expensive. In the worst case, all application credentials of all users have to be queried.", - Type: []string{"string"}, - Format: "", + Description: "notTags is a list of tags to filter by. If specified, resources which contain all of the given tags will be excluded from the result.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, }, }, - "unrestricted": { + "notTagsAny": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, SchemaProps: spec.SchemaProps{ - Description: "unrestricted is a flag indicating whether the application credential may be used for creation or destruction of other application credentials or trusts", - Type: []string{"boolean"}, - Format: "", + Description: "notTagsAny is a list of tags to filter by. If specified, resources which contain any of the given tags will be excluded from the result.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, }, }, - "secretRef": { + }, + }, + }, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_FilterByNeutronTags(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "tags": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, SchemaProps: spec.SchemaProps{ - Description: "secretRef is a reference to a Secret containing the application credential secret", - Type: []string{"string"}, - Format: "", + Description: "tags is a list of tags to filter by. If specified, the resource must have all of the tags specified to be included in the result.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, }, }, - "roleRefs": { + "tagsAny": { VendorExtensible: spec.VendorExtensible{ Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", + "x-kubernetes-list-type": "set", }, }, SchemaProps: spec.SchemaProps{ - Description: "roleRefs may only contain roles that the user has assigned on the project. If not provided, the roles assigned to the application credential will be the same as the roles in the current token.", + Description: "tagsAny is a list of tags to filter by. If specified, the resource must have at least one of the tags specified to be included in the result.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ @@ -1363,114 +1570,133 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_ApplicationCredentialR }, }, }, - "accessRules": { + "notTags": { VendorExtensible: spec.VendorExtensible{ Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", + "x-kubernetes-list-type": "set", }, }, SchemaProps: spec.SchemaProps{ - Description: "accessRules is a list of fine grained access control rules", + Description: "notTags is a list of tags to filter by. If specified, resources which contain all of the given tags will be excluded from the result.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ApplicationCredentialAccessRule"), + Default: "", + Type: []string{"string"}, + Format: "", }, }, }, }, }, - "expiresAt": { + "notTagsAny": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, SchemaProps: spec.SchemaProps{ - Description: "expiresAt is the time of expiration for the application credential. If unset, the application credential does not expire.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + Description: "notTagsAny is a list of tags to filter by. If specified, resources which contain any of the given tags will be excluded from the result.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, }, }, }, - Required: []string{"userRef", "secretRef"}, }, }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ApplicationCredentialAccessRule", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ApplicationCredentialResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_FilterByServerTags(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "ApplicationCredentialResourceStatus represents the observed state of the resource.", - Type: []string{"object"}, + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "name is a Human-readable name for the resource. Might not be unique.", - Type: []string{"string"}, - Format: "", + "tags": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, }, - }, - "description": { SchemaProps: spec.SchemaProps{ - Description: "description is a human-readable description for the resource.", - Type: []string{"string"}, - Format: "", + Description: "tags is a list of tags to filter by. If specified, the resource must have all of the tags specified to be included in the result.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, }, }, - "unrestricted": { - SchemaProps: spec.SchemaProps{ - Description: "unrestricted is a flag indicating whether the application credential may be used for creation or destruction of other application credentials or trusts", - Type: []string{"boolean"}, - Format: "", + "tagsAny": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, }, - }, - "projectID": { SchemaProps: spec.SchemaProps{ - Description: "projectID of the project the application credential was created for and that authentication requests using this application credential will be scoped to.", - Type: []string{"string"}, - Format: "", + Description: "tagsAny is a list of tags to filter by. If specified, the resource must have at least one of the tags specified to be included in the result.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, }, }, - "roles": { + "notTags": { VendorExtensible: spec.VendorExtensible{ Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", + "x-kubernetes-list-type": "set", }, }, SchemaProps: spec.SchemaProps{ - Description: "roles is a list of role objects may only contain roles that the user has assigned on the project", + Description: "notTags is a list of tags to filter by. If specified, resources which contain all of the given tags will be excluded from the result.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ApplicationCredentialRoleStatus"), + Default: "", + Type: []string{"string"}, + Format: "", }, }, }, }, }, - "expiresAt": { - SchemaProps: spec.SchemaProps{ - Description: "expiresAt is the time of expiration for the application credential. If unset, the application credential does not expire.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "accessRules": { + "notTagsAny": { VendorExtensible: spec.VendorExtensible{ Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", + "x-kubernetes-list-type": "set", }, }, SchemaProps: spec.SchemaProps{ - Description: "accessRules is a list of fine grained access control rules", + Description: "notTagsAny is a list of tags to filter by. If specified, resources which contain any of the given tags will be excluded from the result.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ApplicationCredentialAccessRuleStatus"), + Default: "", + Type: []string{"string"}, + Format: "", }, }, }, @@ -1479,34 +1705,25 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_ApplicationCredentialR }, }, }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ApplicationCredentialAccessRuleStatus", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ApplicationCredentialRoleStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ApplicationCredentialRoleStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_FixedIPStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ Type: []string{"object"}, Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "name of an existing role", - Type: []string{"string"}, - Format: "", - }, - }, - "id": { + "ip": { SchemaProps: spec.SchemaProps{ - Description: "id is the ID of a role", + Description: "ip contains a fixed IP address assigned to the port.", Type: []string{"string"}, Format: "", }, }, - "domainID": { + "subnetID": { SchemaProps: spec.SchemaProps{ - Description: "domainID of the domain of this role", + Description: "subnetID is the ID of the subnet this IP is allocated from.", Type: []string{"string"}, Format: "", }, @@ -1517,204 +1734,90 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_ApplicationCredentialR } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ApplicationCredentialSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_Flavor(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "ApplicationCredentialSpec defines the desired state of an ORC object.", + Description: "Flavor is the Schema for an ORC resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ - "import": { + "kind": { SchemaProps: spec.SchemaProps{ - Description: "import refers to an existing OpenStack resource which will be imported instead of creating a new one.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ApplicationCredentialImport"), + Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + Type: []string{"string"}, + Format: "", }, }, - "resource": { + "apiVersion": { SchemaProps: spec.SchemaProps{ - Description: "resource specifies the desired state of the resource.\n\nresource may not be specified if the management policy is `unmanaged`.\n\nresource must be specified if the management policy is `managed`.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ApplicationCredentialResourceSpec"), + Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + Type: []string{"string"}, + Format: "", }, }, - "managementPolicy": { + "metadata": { SchemaProps: spec.SchemaProps{ - Description: "managementPolicy defines how ORC will treat the object. Valid values are `managed`: ORC will create, update, and delete the resource; `unmanaged`: ORC will import an existing resource, and will not apply updates to it or delete it.", - Type: []string{"string"}, - Format: "", + Description: "metadata contains the object metadata", + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), }, }, - "managedOptions": { + "spec": { SchemaProps: spec.SchemaProps{ - Description: "managedOptions specifies options which may be applied to managed objects.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions"), + Description: "spec specifies the desired state of the resource.", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorSpec"), }, }, - "cloudCredentialsRef": { + "status": { SchemaProps: spec.SchemaProps{ - Description: "cloudCredentialsRef points to a secret containing OpenStack credentials", + Description: "status defines the observed state of the resource.", Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorStatus"), }, }, }, - Required: []string{"cloudCredentialsRef"}, + Required: []string{"spec"}, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ApplicationCredentialImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ApplicationCredentialResourceSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ApplicationCredentialStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_FlavorFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "ApplicationCredentialStatus defines the observed state of an ORC resource.", + Description: "FlavorFilter defines an existing resource by its properties", Type: []string{"object"}, Properties: map[string]spec.Schema{ - "conditions": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-map-keys": []interface{}{ - "type", - }, - "x-kubernetes-list-type": "map", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "conditions represents the observed status of the object. Known .status.conditions.type are: \"Available\", \"Progressing\"\n\nAvailable represents the availability of the OpenStack resource. If it is true then the resource is ready for use.\n\nProgressing indicates whether the controller is still attempting to reconcile the current state of the OpenStack resource to the desired state. Progressing will be False either because the desired state has been achieved, or because some terminal error prevents it from ever being achieved and the controller is no longer attempting to reconcile. If Progressing is True, an observer waiting on the resource should continue to wait.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Condition"), - }, - }, - }, - }, - }, - "id": { - SchemaProps: spec.SchemaProps{ - Description: "id is the unique identifier of the OpenStack resource.", - Type: []string{"string"}, - Format: "", - }, - }, - "resource": { - SchemaProps: spec.SchemaProps{ - Description: "resource contains the observed state of the OpenStack resource.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ApplicationCredentialResourceStatus"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ApplicationCredentialResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_CloudCredentialsReference(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "CloudCredentialsReference is a reference to a secret containing OpenStack credentials.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "secretName": { - SchemaProps: spec.SchemaProps{ - Description: "secretName is the name of a secret in the same namespace as the resource being provisioned. The secret must contain a key named `clouds.yaml` which contains an OpenStack clouds.yaml file. The secret may optionally contain a key named `cacert` containing a PEM-encoded CA certificate.", - Type: []string{"string"}, - Format: "", - }, - }, - "cloudName": { - SchemaProps: spec.SchemaProps{ - Description: "cloudName specifies the name of the entry in the clouds.yaml file to use.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"secretName", "cloudName"}, - }, - }, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_Domain(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Domain is the Schema for an ORC resource.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { + "name": { SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + Description: "name of the existing resource", Type: []string{"string"}, Format: "", }, }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "metadata contains the object metadata", - Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "spec specifies the desired state of the resource.", - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainSpec"), - }, - }, - "status": { + "ram": { SchemaProps: spec.SchemaProps{ - Description: "status defines the observed state of the resource.", - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainStatus"), + Description: "ram is the memory of the flavor, measured in MB.", + Type: []string{"integer"}, + Format: "int32", }, }, - }, - Required: []string{"spec"}, - }, - }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_DomainFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "DomainFilter defines an existing resource by its properties", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { + "vcpus": { SchemaProps: spec.SchemaProps{ - Description: "name of the existing resource", - Type: []string{"string"}, - Format: "", + Description: "vcpus is the number of vcpus for the flavor.", + Type: []string{"integer"}, + Format: "int32", }, }, - "enabled": { + "disk": { SchemaProps: spec.SchemaProps{ - Description: "enabled defines whether a domain is enabled or not. Default is true. Note: Users can only authorize against an enabled domain (and any of its projects).", - Type: []string{"boolean"}, - Format: "", + Description: "disk is the size of the root disk in GiB.", + Type: []string{"integer"}, + Format: "int32", }, }, }, @@ -1723,11 +1826,11 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_DomainFilter(ref commo } } -func schema_openstack_resource_controller_v2_api_v1alpha1_DomainImport(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_FlavorImport(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "DomainImport specifies an existing resource which will be imported instead of creating a new one", + Description: "FlavorImport specifies an existing resource which will be imported instead of creating a new one", Type: []string{"object"}, Properties: map[string]spec.Schema{ "id": { @@ -1740,22 +1843,22 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_DomainImport(ref commo "filter": { SchemaProps: spec.SchemaProps{ Description: "filter contains a resource query which is expected to return a single result. The controller will continue to retry if filter returns no results. If filter returns multiple results the controller will set an error state and will not continue to retry.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainFilter"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorFilter"), }, }, }, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainFilter"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorFilter"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_DomainList(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_FlavorList(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "DomainList contains a list of Domain.", + Description: "FlavorList contains a list of Flavor.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "kind": { @@ -1781,13 +1884,13 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_DomainList(ref common. }, "items": { SchemaProps: spec.SchemaProps{ - Description: "items contains a list of Domain.", + Description: "items contains a list of Flavor.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Domain"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Flavor"), }, }, }, @@ -1798,15 +1901,15 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_DomainList(ref common. }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Domain", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Flavor", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_DomainResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_FlavorResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "DomainResourceSpec contains the desired state of the resource.", + Description: "FlavorResourceSpec contains the desired state of a flavor", Type: []string{"object"}, Properties: map[string]spec.Schema{ "name": { @@ -1818,34 +1921,71 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_DomainResourceSpec(ref }, "description": { SchemaProps: spec.SchemaProps{ - Description: "description is a human-readable description for the resource.", + Description: "description contains a free form description of the flavor.", Type: []string{"string"}, Format: "", }, }, - "enabled": { + "ram": { SchemaProps: spec.SchemaProps{ - Description: "enabled defines whether a domain is enabled or not. Default is true. Note: Users can only authorize against an enabled domain (and any of its projects).", + Description: "ram is the memory of the flavor, measured in MB.", + Type: []string{"integer"}, + Format: "int32", + }, + }, + "vcpus": { + SchemaProps: spec.SchemaProps{ + Description: "vcpus is the number of vcpus for the flavor.", + Type: []string{"integer"}, + Format: "int32", + }, + }, + "disk": { + SchemaProps: spec.SchemaProps{ + Description: "disk is the size of the root disk that will be created in GiB. If 0 the root disk will be set to exactly the size of the image used to deploy the instance. However, in this case the scheduler cannot select the compute host based on the virtual image size. Therefore, 0 should only be used for volume booted instances or for testing purposes. Volume-backed instances can be enforced for flavors with zero root disk via the os_compute_api:servers:create:zero_disk_flavor policy rule.", + Default: 0, + Type: []string{"integer"}, + Format: "int32", + }, + }, + "swap": { + SchemaProps: spec.SchemaProps{ + Description: "swap is the size of a dedicated swap disk that will be allocated, in MiB. If 0 (the default), no dedicated swap disk will be created.", + Type: []string{"integer"}, + Format: "int32", + }, + }, + "isPublic": { + SchemaProps: spec.SchemaProps{ + Description: "isPublic flags a flavor as being available to all projects or not.", Type: []string{"boolean"}, Format: "", }, }, + "ephemeral": { + SchemaProps: spec.SchemaProps{ + Description: "ephemeral is the size of the ephemeral disk that will be created, in GiB. Ephemeral disks may be written over on server state changes. So should only be used as a scratch space for applications that are aware of its limitations. Defaults to 0.", + Type: []string{"integer"}, + Format: "int32", + }, + }, }, + Required: []string{"ram", "vcpus", "disk"}, }, }, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_DomainResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_FlavorResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "DomainResourceStatus represents the observed state of the resource.", + Description: "FlavorResourceStatus represents the observed state of the resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "name": { SchemaProps: spec.SchemaProps{ - Description: "name is a Human-readable name for the resource. Might not be unique.", + Description: "name is a Human-readable name for the flavor. Might not be unique.", Type: []string{"string"}, Format: "", }, @@ -1857,36 +1997,71 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_DomainResourceStatus(r Format: "", }, }, - "enabled": { + "ram": { SchemaProps: spec.SchemaProps{ - Description: "enabled defines whether a domain is enabled or not. Default is true. Note: Users can only authorize against an enabled domain (and any of its projects).", + Description: "ram is the memory of the flavor, measured in MB.", + Type: []string{"integer"}, + Format: "int32", + }, + }, + "vcpus": { + SchemaProps: spec.SchemaProps{ + Description: "vcpus is the number of vcpus for the flavor.", + Type: []string{"integer"}, + Format: "int32", + }, + }, + "disk": { + SchemaProps: spec.SchemaProps{ + Description: "disk is the size of the root disk that will be created in GiB.", + Type: []string{"integer"}, + Format: "int32", + }, + }, + "swap": { + SchemaProps: spec.SchemaProps{ + Description: "swap is the size of a dedicated swap disk that will be allocated, in MiB.", + Type: []string{"integer"}, + Format: "int32", + }, + }, + "isPublic": { + SchemaProps: spec.SchemaProps{ + Description: "isPublic flags a flavor as being available to all projects or not.", Type: []string{"boolean"}, Format: "", }, }, + "ephemeral": { + SchemaProps: spec.SchemaProps{ + Description: "ephemeral is the size of the ephemeral disk, in GiB.", + Type: []string{"integer"}, + Format: "int32", + }, + }, }, }, }, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_DomainSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_FlavorSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "DomainSpec defines the desired state of an ORC object.", + Description: "FlavorSpec defines the desired state of an ORC object.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "import": { SchemaProps: spec.SchemaProps{ Description: "import refers to an existing OpenStack resource which will be imported instead of creating a new one.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainImport"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorImport"), }, }, "resource": { SchemaProps: spec.SchemaProps{ Description: "resource specifies the desired state of the resource.\n\nresource may not be specified if the management policy is `unmanaged`.\n\nresource must be specified if the management policy is `managed`.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainResourceSpec"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorResourceSpec"), }, }, "managementPolicy": { @@ -1914,15 +2089,15 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_DomainSpec(ref common. }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainResourceSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorResourceSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_DomainStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_FlavorStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "DomainStatus defines the observed state of an ORC resource.", + Description: "FlavorStatus defines the observed state of an ORC resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "conditions": { @@ -1959,22 +2134,22 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_DomainStatus(ref commo "resource": { SchemaProps: spec.SchemaProps{ Description: "resource contains the observed state of the OpenStack resource.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainResourceStatus"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorResourceStatus"), }, }, }, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_Endpoint(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIP(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "Endpoint is the Schema for an ORC resource.", + Description: "FloatingIP is the Schema for an ORC resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "kind": { @@ -2002,14 +2177,14 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_Endpoint(ref common.Re SchemaProps: spec.SchemaProps{ Description: "spec specifies the desired state of the resource.", Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointSpec"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPSpec"), }, }, "status": { SchemaProps: spec.SchemaProps{ Description: "status defines the observed state of the resource.", Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointStatus"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPStatus"), }, }, }, @@ -2017,49 +2192,150 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_Endpoint(ref common.Re }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_EndpointFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "EndpointFilter defines an existing resource by its properties", + Description: "FloatingIPFilter specifies a query to select an OpenStack floatingip. At least one property must be set.", Type: []string{"object"}, Properties: map[string]spec.Schema{ - "interface": { + "floatingIP": { SchemaProps: spec.SchemaProps{ - Description: "interface of the existing endpoint.", + Description: "floatingIP is the floatingip address.", Type: []string{"string"}, Format: "", }, }, - "serviceRef": { + "description": { SchemaProps: spec.SchemaProps{ - Description: "serviceRef is a reference to the ORC Service which this resource is associated with.", + Description: "description of the existing resource", Type: []string{"string"}, Format: "", }, }, - "url": { + "floatingNetworkRef": { SchemaProps: spec.SchemaProps{ - Description: "url is the URL of the existing endpoint.", + Description: "floatingNetworkRef is a reference to the ORC Network which this resource is associated with.", Type: []string{"string"}, Format: "", }, }, + "portRef": { + SchemaProps: spec.SchemaProps{ + Description: "portRef is a reference to the ORC Port which this resource is associated with.", + Type: []string{"string"}, + Format: "", + }, + }, + "projectRef": { + SchemaProps: spec.SchemaProps{ + Description: "projectRef is a reference to the ORC Project this resource is associated with. Typically, only used by admin.", + Type: []string{"string"}, + Format: "", + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Description: "status is the status of the floatingip.", + Type: []string{"string"}, + Format: "", + }, + }, + "tags": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "tags is a list of tags to filter by. If specified, the resource must have all of the tags specified to be included in the result.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "tagsAny": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "tagsAny is a list of tags to filter by. If specified, the resource must have at least one of the tags specified to be included in the result.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "notTags": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "notTags is a list of tags to filter by. If specified, resources which contain all of the given tags will be excluded from the result.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "notTagsAny": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "notTagsAny is a list of tags to filter by. If specified, resources which contain any of the given tags will be excluded from the result.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, }, }, }, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_EndpointImport(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPImport(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "EndpointImport specifies an existing resource which will be imported instead of creating a new one", + Description: "FloatingIPImport specifies an existing resource which will be imported instead of creating a new one", Type: []string{"object"}, Properties: map[string]spec.Schema{ "id": { @@ -2072,22 +2348,22 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_EndpointImport(ref com "filter": { SchemaProps: spec.SchemaProps{ Description: "filter contains a resource query which is expected to return a single result. The controller will continue to retry if filter returns no results. If filter returns multiple results the controller will set an error state and will not continue to retry.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointFilter"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPFilter"), }, }, }, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointFilter"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPFilter"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_EndpointList(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPList(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "EndpointList contains a list of Endpoint.", + Description: "FloatingIPList contains a list of FloatingIP.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "kind": { @@ -2113,13 +2389,13 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_EndpointList(ref commo }, "items": { SchemaProps: spec.SchemaProps{ - Description: "items contains a list of Endpoint.", + Description: "items contains a list of FloatingIP.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Endpoint"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIP"), }, }, }, @@ -2130,15 +2406,15 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_EndpointList(ref commo }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Endpoint", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIP", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_EndpointResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "EndpointResourceSpec contains the desired state of the resource.", + Description: "FloatingIPResourceSpec contains the desired state of a floating IP", Type: []string{"object"}, Properties: map[string]spec.Schema{ "description": { @@ -2148,48 +2424,79 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_EndpointResourceSpec(r Format: "", }, }, - "enabled": { + "tags": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, SchemaProps: spec.SchemaProps{ - Description: "enabled indicates whether the endpoint is enabled or not.", - Type: []string{"boolean"}, + Description: "tags is a list of tags which will be applied to the floatingip.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "floatingNetworkRef": { + SchemaProps: spec.SchemaProps{ + Description: "floatingNetworkRef references the network to which the floatingip is associated.", + Type: []string{"string"}, Format: "", }, }, - "interface": { + "floatingSubnetRef": { SchemaProps: spec.SchemaProps{ - Description: "interface indicates the visibility of the endpoint.", + Description: "floatingSubnetRef references the subnet to which the floatingip is associated.", Type: []string{"string"}, Format: "", }, }, - "url": { + "floatingIP": { SchemaProps: spec.SchemaProps{ - Description: "url is the endpoint URL.", - Default: "", + Description: "floatingIP is the IP that will be assigned to the floatingip. If not set, it will be assigned automatically.", Type: []string{"string"}, Format: "", }, }, - "serviceRef": { + "portRef": { SchemaProps: spec.SchemaProps{ - Description: "serviceRef is a reference to the ORC Service which this resource is associated with.", + Description: "portRef is a reference to the ORC Port which this resource is associated with.", + Type: []string{"string"}, + Format: "", + }, + }, + "fixedIP": { + SchemaProps: spec.SchemaProps{ + Description: "fixedIP is the IP address of the port to which the floatingip is associated.", + Type: []string{"string"}, + Format: "", + }, + }, + "projectRef": { + SchemaProps: spec.SchemaProps{ + Description: "projectRef is a reference to the ORC Project this resource is associated with. Typically, only used by admin.", Type: []string{"string"}, Format: "", }, }, }, - Required: []string{"interface", "url", "serviceRef"}, }, }, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_EndpointResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "EndpointResourceStatus represents the observed state of the resource.", - Type: []string{"object"}, + Type: []string{"object"}, Properties: map[string]spec.Schema{ "description": { SchemaProps: spec.SchemaProps{ @@ -2198,57 +2505,126 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_EndpointResourceStatus Format: "", }, }, - "enabled": { + "floatingNetworkID": { SchemaProps: spec.SchemaProps{ - Description: "enabled indicates whether the endpoint is enabled or not.", - Type: []string{"boolean"}, + Description: "floatingNetworkID is the ID of the network to which the floatingip is associated.", + Type: []string{"string"}, Format: "", }, }, - "interface": { + "floatingIP": { SchemaProps: spec.SchemaProps{ - Description: "interface indicates the visibility of the endpoint.", + Description: "floatingIP is the IP address of the floatingip.", Type: []string{"string"}, Format: "", }, }, - "url": { + "portID": { SchemaProps: spec.SchemaProps{ - Description: "url is the endpoint URL.", + Description: "portID is the ID of the port to which the floatingip is associated.", Type: []string{"string"}, Format: "", }, }, - "serviceID": { + "fixedIP": { SchemaProps: spec.SchemaProps{ - Description: "serviceID is the ID of the Service to which the resource is associated.", + Description: "fixedIP is the IP address of the port to which the floatingip is associated.", Type: []string{"string"}, Format: "", }, }, - }, - }, - }, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_EndpointSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "EndpointSpec defines the desired state of an ORC object.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "import": { + "tenantID": { SchemaProps: spec.SchemaProps{ - Description: "import refers to an existing OpenStack resource which will be imported instead of creating a new one.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointImport"), + Description: "tenantID is the project owner of the resource.", + Type: []string{"string"}, + Format: "", }, }, - "resource": { + "projectID": { SchemaProps: spec.SchemaProps{ - Description: "resource specifies the desired state of the resource.\n\nresource may not be specified if the management policy is `unmanaged`.\n\nresource must be specified if the management policy is `managed`.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointResourceSpec"), + Description: "projectID is the project owner of the resource.", + Type: []string{"string"}, + Format: "", + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Description: "status indicates the current status of the resource.", + Type: []string{"string"}, + Format: "", + }, + }, + "routerID": { + SchemaProps: spec.SchemaProps{ + Description: "routerID is the ID of the router to which the floatingip is associated.", + Type: []string{"string"}, + Format: "", + }, + }, + "tags": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "tags is the list of tags on the resource.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "createdAt": { + SchemaProps: spec.SchemaProps{ + Description: "createdAt shows the date and time when the resource was created. The date and time stamp format is ISO 8601", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + "updatedAt": { + SchemaProps: spec.SchemaProps{ + Description: "updatedAt shows the date and time when the resource was updated. The date and time stamp format is ISO 8601", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + "revisionNumber": { + SchemaProps: spec.SchemaProps{ + Description: "revisionNumber optionally set via extensions/standard-attr-revisions", + Type: []string{"integer"}, + Format: "int64", + }, + }, + }, + }, + }, + Dependencies: []string{ + "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "FloatingIPSpec defines the desired state of an ORC object.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "import": { + SchemaProps: spec.SchemaProps{ + Description: "import refers to an existing OpenStack resource which will be imported instead of creating a new one.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPImport"), + }, + }, + "resource": { + SchemaProps: spec.SchemaProps{ + Description: "resource specifies the desired state of the resource.\n\nresource may not be specified if the management policy is `unmanaged`.\n\nresource must be specified if the management policy is `managed`.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPResourceSpec"), }, }, "managementPolicy": { @@ -2276,15 +2652,15 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_EndpointSpec(ref commo }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointResourceSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPResourceSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_EndpointStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "EndpointStatus defines the observed state of an ORC resource.", + Description: "FloatingIPStatus defines the observed state of an ORC resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "conditions": { @@ -2321,46 +2697,85 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_EndpointStatus(ref com "resource": { SchemaProps: spec.SchemaProps{ Description: "resource contains the observed state of the OpenStack resource.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointResourceStatus"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPResourceStatus"), }, }, }, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ExternalGateway(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_Group(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, + Description: "Group is the Schema for an ORC resource.", + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "networkRef": { + "kind": { SchemaProps: spec.SchemaProps{ - Description: "networkRef is a reference to the ORC Network which the external gateway is on.", + Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + Type: []string{"string"}, + Format: "", + }, + }, + "apiVersion": { + SchemaProps: spec.SchemaProps{ + Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", Type: []string{"string"}, Format: "", }, }, + "metadata": { + SchemaProps: spec.SchemaProps{ + Description: "metadata contains the object metadata", + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), + }, + }, + "spec": { + SchemaProps: spec.SchemaProps{ + Description: "spec specifies the desired state of the resource.", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupSpec"), + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Description: "status defines the observed state of the resource.", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupStatus"), + }, + }, }, - Required: []string{"networkRef"}, + Required: []string{"spec"}, }, }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ExternalGatewayStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_GroupFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, + Description: "GroupFilter defines an existing resource by its properties", + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "networkID": { + "name": { SchemaProps: spec.SchemaProps{ - Description: "networkID is the ID of the network the gateway is on.", + Description: "name of the existing resource", + Type: []string{"string"}, + Format: "", + }, + }, + "domainRef": { + SchemaProps: spec.SchemaProps{ + Description: "domainRef is a reference to the ORC Domain which this resource is associated with.", Type: []string{"string"}, Format: "", }, @@ -2371,182 +2786,145 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_ExternalGatewayStatus( } } -func schema_openstack_resource_controller_v2_api_v1alpha1_FilterByKeystoneTags(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_GroupImport(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, + Description: "GroupImport specifies an existing resource which will be imported instead of creating a new one", + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "tags": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, - }, + "id": { SchemaProps: spec.SchemaProps{ - Description: "tags is a list of tags to filter by. If specified, the resource must have all of the tags specified to be included in the result.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, + Description: "id contains the unique identifier of an existing OpenStack resource. Note that when specifying an import by ID, the resource MUST already exist. The ORC object will enter an error state if the resource does not exist.", + Type: []string{"string"}, + Format: "", }, }, - "tagsAny": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, - }, + "filter": { SchemaProps: spec.SchemaProps{ - Description: "tagsAny is a list of tags to filter by. If specified, the resource must have at least one of the tags specified to be included in the result.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, + Description: "filter contains a resource query which is expected to return a single result. The controller will continue to retry if filter returns no results. If filter returns multiple results the controller will set an error state and will not continue to retry.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupFilter"), }, }, - "notTags": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, + }, + }, + }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupFilter"}, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_GroupList(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "GroupList contains a list of Group.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "kind": { + SchemaProps: spec.SchemaProps{ + Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + Type: []string{"string"}, + Format: "", }, + }, + "apiVersion": { SchemaProps: spec.SchemaProps{ - Description: "notTags is a list of tags to filter by. If specified, resources which contain all of the given tags will be excluded from the result.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, + Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + Type: []string{"string"}, + Format: "", }, }, - "notTagsAny": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, + "metadata": { + SchemaProps: spec.SchemaProps{ + Description: "metadata contains the list metadata", + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), }, + }, + "items": { SchemaProps: spec.SchemaProps{ - Description: "notTagsAny is a list of tags to filter by. If specified, resources which contain any of the given tags will be excluded from the result.", + Description: "items contains a list of Group.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Group"), }, }, }, }, }, }, + Required: []string{"items"}, }, }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Group", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_FilterByNeutronTags(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_GroupResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, + Description: "GroupResourceSpec contains the desired state of the resource.", + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "tags": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, - }, + "name": { SchemaProps: spec.SchemaProps{ - Description: "tags is a list of tags to filter by. If specified, the resource must have all of the tags specified to be included in the result.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, + Description: "name will be the name of the created resource. If not specified, the name of the ORC object will be used.", + Type: []string{"string"}, + Format: "", }, }, - "tagsAny": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, - }, + "description": { SchemaProps: spec.SchemaProps{ - Description: "tagsAny is a list of tags to filter by. If specified, the resource must have at least one of the tags specified to be included in the result.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, + Description: "description is a human-readable description for the resource.", + Type: []string{"string"}, + Format: "", }, }, - "notTags": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, + "domainRef": { + SchemaProps: spec.SchemaProps{ + Description: "domainRef is a reference to the ORC Domain which this resource is associated with.", + Type: []string{"string"}, + Format: "", }, + }, + }, + }, + }, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_GroupResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "GroupResourceStatus represents the observed state of the resource.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "name": { SchemaProps: spec.SchemaProps{ - Description: "notTags is a list of tags to filter by. If specified, resources which contain all of the given tags will be excluded from the result.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, + Description: "name is a Human-readable name for the resource. Might not be unique.", + Type: []string{"string"}, + Format: "", }, }, - "notTagsAny": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, + "description": { + SchemaProps: spec.SchemaProps{ + Description: "description is a human-readable description for the resource.", + Type: []string{"string"}, + Format: "", }, + }, + "domainID": { SchemaProps: spec.SchemaProps{ - Description: "notTagsAny is a list of tags to filter by. If specified, resources which contain any of the given tags will be excluded from the result.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, + Description: "domainID is the ID of the Domain to which the resource is associated.", + Type: []string{"string"}, + Format: "", }, }, }, @@ -2555,114 +2933,123 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_FilterByNeutronTags(re } } -func schema_openstack_resource_controller_v2_api_v1alpha1_FilterByServerTags(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_GroupSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, + Description: "GroupSpec defines the desired state of an ORC object.", + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "tags": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, + "import": { + SchemaProps: spec.SchemaProps{ + Description: "import refers to an existing OpenStack resource which will be imported instead of creating a new one.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupImport"), }, + }, + "resource": { SchemaProps: spec.SchemaProps{ - Description: "tags is a list of tags to filter by. If specified, the resource must have all of the tags specified to be included in the result.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, + Description: "resource specifies the desired state of the resource.\n\nresource may not be specified if the management policy is `unmanaged`.\n\nresource must be specified if the management policy is `managed`.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupResourceSpec"), }, }, - "tagsAny": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, + "managementPolicy": { + SchemaProps: spec.SchemaProps{ + Description: "managementPolicy defines how ORC will treat the object. Valid values are `managed`: ORC will create, update, and delete the resource; `unmanaged`: ORC will import an existing resource, and will not apply updates to it or delete it.", + Type: []string{"string"}, + Format: "", }, + }, + "managedOptions": { SchemaProps: spec.SchemaProps{ - Description: "tagsAny is a list of tags to filter by. If specified, the resource must have at least one of the tags specified to be included in the result.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, + Description: "managedOptions specifies options which may be applied to managed objects.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions"), }, }, - "notTags": { + "cloudCredentialsRef": { + SchemaProps: spec.SchemaProps{ + Description: "cloudCredentialsRef points to a secret containing OpenStack credentials", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference"), + }, + }, + }, + Required: []string{"cloudCredentialsRef"}, + }, + }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupResourceSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions"}, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_GroupStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "GroupStatus defines the observed state of an ORC resource.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "conditions": { VendorExtensible: spec.VendorExtensible{ Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", + "x-kubernetes-list-map-keys": []interface{}{ + "type", + }, + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge", }, }, SchemaProps: spec.SchemaProps{ - Description: "notTags is a list of tags to filter by. If specified, resources which contain all of the given tags will be excluded from the result.", + Description: "conditions represents the observed status of the object. Known .status.conditions.type are: \"Available\", \"Progressing\"\n\nAvailable represents the availability of the OpenStack resource. If it is true then the resource is ready for use.\n\nProgressing indicates whether the controller is still attempting to reconcile the current state of the OpenStack resource to the desired state. Progressing will be False either because the desired state has been achieved, or because some terminal error prevents it from ever being achieved and the controller is no longer attempting to reconcile. If Progressing is True, an observer waiting on the resource should continue to wait.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Condition"), }, }, }, }, }, - "notTagsAny": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, + "id": { + SchemaProps: spec.SchemaProps{ + Description: "id is the unique identifier of the OpenStack resource.", + Type: []string{"string"}, + Format: "", }, + }, + "resource": { SchemaProps: spec.SchemaProps{ - Description: "notTagsAny is a list of tags to filter by. If specified, resources which contain any of the given tags will be excluded from the result.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, + Description: "resource contains the observed state of the OpenStack resource.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupResourceStatus"), }, }, }, }, }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_FixedIPStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_HostID(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, + Description: "HostID specifies how to determine the host ID for port binding. Exactly one of the fields must be set.", + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "ip": { + "id": { SchemaProps: spec.SchemaProps{ - Description: "ip contains a fixed IP address assigned to the port.", + Description: "id is the literal host ID string to use for binding:host_id. This is mutually exclusive with serverRef.", Type: []string{"string"}, Format: "", }, }, - "subnetID": { + "serverRef": { SchemaProps: spec.SchemaProps{ - Description: "subnetID is the ID of the subnet this IP is allocated from.", + Description: "serverRef is a reference to an ORC Server resource from which to retrieve the hostID for port binding. The hostID will be read from the Server's status.resource.hostID field. This is mutually exclusive with id.", Type: []string{"string"}, Format: "", }, @@ -2673,16 +3060,95 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_FixedIPStatus(ref comm } } -func schema_openstack_resource_controller_v2_api_v1alpha1_Flavor(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_HostRoute(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "Flavor is the Schema for an ORC resource.", - Type: []string{"object"}, + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "kind": { + "destination": { SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + Description: "destination for the additional route.", + Type: []string{"string"}, + Format: "", + }, + }, + "nextHop": { + SchemaProps: spec.SchemaProps{ + Description: "nextHop for the additional route.", + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"destination", "nextHop"}, + }, + }, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_HostRouteStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "destination": { + SchemaProps: spec.SchemaProps{ + Description: "destination for the additional route.", + Type: []string{"string"}, + Format: "", + }, + }, + "nextHop": { + SchemaProps: spec.SchemaProps{ + Description: "nextHop for the additional route.", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_IPv6Options(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "addressMode": { + SchemaProps: spec.SchemaProps{ + Description: "addressMode specifies mechanisms for assigning IPv6 IP addresses.", + Type: []string{"string"}, + Format: "", + }, + }, + "raMode": { + SchemaProps: spec.SchemaProps{ + Description: "raMode specifies the IPv6 router advertisement mode. It specifies whether the networking service should transmit ICMPv6 packets.", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_Image(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "Image is the Schema for an ORC resource.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "kind": { + SchemaProps: spec.SchemaProps{ + Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", Type: []string{"string"}, Format: "", }, @@ -2705,14 +3171,14 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_Flavor(ref common.Refe SchemaProps: spec.SchemaProps{ Description: "spec specifies the desired state of the resource.", Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorSpec"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageSpec"), }, }, "status": { SchemaProps: spec.SchemaProps{ Description: "status defines the observed state of the resource.", Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorStatus"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageStatus"), }, }, }, @@ -2720,111 +3186,160 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_Flavor(ref common.Refe }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_FlavorExtraSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ImageContent(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ Type: []string{"object"}, Properties: map[string]spec.Schema{ - "name": { + "containerFormat": { SchemaProps: spec.SchemaProps{ - Description: "name is the name of the extraspec", - Default: "", + Description: "containerFormat is the format of the image container. qcow2 and raw images do not usually have a container. This is specified as \"bare\", which is also the default. Permitted values are ami, ari, aki, bare, compressed, ovf, ova, and docker.", Type: []string{"string"}, Format: "", }, }, - "value": { + "diskFormat": { SchemaProps: spec.SchemaProps{ - Description: "value is the value of the extraspec", - Default: "", + Description: "diskFormat is the format of the disk image. Normal values are \"qcow2\", or \"raw\". Glance may be configured to support others.", Type: []string{"string"}, Format: "", }, }, + "download": { + SchemaProps: spec.SchemaProps{ + Description: "download describes how to obtain image data by downloading it from a URL. Must be set when creating a managed image.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageContentSourceDownload"), + }, + }, }, - Required: []string{"name", "value"}, + Required: []string{"diskFormat", "download"}, }, }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageContentSourceDownload"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_FlavorExtraSpecStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ImageContentSourceDownload(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ Type: []string{"object"}, Properties: map[string]spec.Schema{ - "name": { + "url": { SchemaProps: spec.SchemaProps{ - Description: "name is the name of the extraspec", + Description: "url containing image data", + Default: "", Type: []string{"string"}, Format: "", }, }, - "value": { + "decompress": { SchemaProps: spec.SchemaProps{ - Description: "value is the value of the extraspec", + Description: "decompress specifies that the source data must be decompressed with the given compression algorithm before being stored. Specifying Decompress will disable the use of Glance's web-download, as web-download cannot currently deterministically decompress downloaded content.", Type: []string{"string"}, Format: "", }, }, + "hash": { + SchemaProps: spec.SchemaProps{ + Description: "hash is a hash which will be used to verify downloaded data, i.e. before any decompression. If not specified, no hash verification will be performed. Specifying a Hash will disable the use of Glance's web-download, as web-download cannot currently deterministically verify the hash of downloaded content.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageHash"), + }, + }, }, + Required: []string{"url"}, }, }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageHash"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_FlavorFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ImageFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "FlavorFilter defines an existing resource by its properties", + Description: "ImageFilter defines a Glance query", Type: []string{"object"}, Properties: map[string]spec.Schema{ "name": { SchemaProps: spec.SchemaProps{ - Description: "name of the existing resource", + Description: "name specifies the name of a Glance image", Type: []string{"string"}, Format: "", }, }, - "ram": { + "visibility": { SchemaProps: spec.SchemaProps{ - Description: "ram is the memory of the flavor, measured in MB.", - Type: []string{"integer"}, - Format: "int32", + Description: "visibility specifies the visibility of a Glance image.", + Type: []string{"string"}, + Format: "", }, }, - "vcpus": { + "tags": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, SchemaProps: spec.SchemaProps{ - Description: "vcpus is the number of vcpus for the flavor.", - Type: []string{"integer"}, - Format: "int32", + Description: "tags is the list of tags on the resource.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, }, }, - "disk": { + }, + }, + }, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_ImageHash(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "algorithm": { SchemaProps: spec.SchemaProps{ - Description: "disk is the size of the root disk in GiB.", - Type: []string{"integer"}, - Format: "int32", + Description: "algorithm is the hash algorithm used to generate value.", + Type: []string{"string"}, + Format: "", + }, + }, + "value": { + SchemaProps: spec.SchemaProps{ + Description: "value is the hash of the image data using Algorithm. It must be hex encoded using lowercase letters.", + Type: []string{"string"}, + Format: "", }, }, }, + Required: []string{"algorithm", "value"}, }, }, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_FlavorImport(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ImageImport(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "FlavorImport specifies an existing resource which will be imported instead of creating a new one", + Description: "ImageImport specifies an existing resource which will be imported instead of creating a new one", Type: []string{"object"}, Properties: map[string]spec.Schema{ "id": { @@ -2837,22 +3352,22 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_FlavorImport(ref commo "filter": { SchemaProps: spec.SchemaProps{ Description: "filter contains a resource query which is expected to return a single result. The controller will continue to retry if filter returns no results. If filter returns multiple results the controller will set an error state and will not continue to retry.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorFilter"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageFilter"), }, }, }, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorFilter"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageFilter"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_FlavorList(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ImageList(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "FlavorList contains a list of Flavor.", + Description: "ImageList contains a list of Image.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "kind": { @@ -2878,13 +3393,13 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_FlavorList(ref common. }, "items": { SchemaProps: spec.SchemaProps{ - Description: "items contains a list of Flavor.", + Description: "items contains a list of Image.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Flavor"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Image"), }, }, }, @@ -2895,219 +3410,347 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_FlavorList(ref common. }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Flavor", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Image", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_FlavorResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ImageProperties(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "FlavorResourceSpec contains the desired state of a flavor", - Type: []string{"object"}, + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "name will be the name of the created resource. If not specified, the name of the ORC object will be used.", - Type: []string{"string"}, - Format: "", - }, - }, - "id": { + "architecture": { SchemaProps: spec.SchemaProps{ - Description: "id will be the id of the created resource. If not specified, a random UUID will be generated by OpenStack.", + Description: "architecture is the CPU architecture that must be supported by the hypervisor.", Type: []string{"string"}, Format: "", }, }, - "description": { + "hypervisorType": { SchemaProps: spec.SchemaProps{ - Description: "description contains a free form description of the flavor.", + Description: "hypervisorType is the hypervisor type", Type: []string{"string"}, Format: "", }, }, - "ram": { + "minDiskGB": { SchemaProps: spec.SchemaProps{ - Description: "ram is the memory of the flavor, measured in MB.", + Description: "minDiskGB is the minimum amount of disk space in GB that is required to boot the image", Type: []string{"integer"}, Format: "int32", }, }, - "vcpus": { + "minMemoryMB": { SchemaProps: spec.SchemaProps{ - Description: "vcpus is the number of vcpus for the flavor.", + Description: "minMemoryMB is the minimum amount of RAM in MB that is required to boot the image.", Type: []string{"integer"}, Format: "int32", }, }, - "disk": { + "hardware": { SchemaProps: spec.SchemaProps{ - Description: "disk is the size of the root disk that will be created in GiB. If 0 the root disk will be set to exactly the size of the image used to deploy the instance. However, in this case the scheduler cannot select the compute host based on the virtual image size. Therefore, 0 should only be used for volume booted instances or for testing purposes. Volume-backed instances can be enforced for flavors with zero root disk via the os_compute_api:servers:create:zero_disk_flavor policy rule.", - Default: 0, - Type: []string{"integer"}, - Format: "int32", + Description: "hardware is a set of properties which control the virtual hardware created by Nova.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImagePropertiesHardware"), }, }, - "swap": { + "operatingSystem": { SchemaProps: spec.SchemaProps{ - Description: "swap is the size of a dedicated swap disk that will be allocated, in MiB. If 0 (the default), no dedicated swap disk will be created.", - Type: []string{"integer"}, - Format: "int32", + Description: "operatingSystem is a set of properties that specify and influence the behavior of the operating system within the virtual machine.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImagePropertiesOperatingSystem"), }, }, - "extraSpecs": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-map-keys": []interface{}{ - "name", - }, - "x-kubernetes-list-type": "map", + }, + }, + }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImagePropertiesHardware", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImagePropertiesOperatingSystem"}, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_ImagePropertiesHardware(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "cpuSockets": { + SchemaProps: spec.SchemaProps{ + Description: "cpuSockets is the preferred number of sockets to expose to the guest", + Type: []string{"integer"}, + Format: "int32", + }, + }, + "cpuCores": { + SchemaProps: spec.SchemaProps{ + Description: "cpuCores is the preferred number of cores to expose to the guest", + Type: []string{"integer"}, + Format: "int32", + }, + }, + "cpuThreads": { + SchemaProps: spec.SchemaProps{ + Description: "cpuThreads is the preferred number of threads to expose to the guest", + Type: []string{"integer"}, + Format: "int32", + }, + }, + "cpuPolicy": { + SchemaProps: spec.SchemaProps{ + Description: "cpuPolicy is used to pin the virtual CPUs (vCPUs) of instances to the host's physical CPU cores (pCPUs). Host aggregates should be used to separate these pinned instances from unpinned instances as the latter will not respect the resourcing requirements of the former.\n\nPermitted values are shared (the default), and dedicated.\n\nshared: The guest vCPUs will be allowed to freely float across host pCPUs, albeit potentially constrained by NUMA policy.\n\ndedicated: The guest vCPUs will be strictly pinned to a set of host pCPUs. In the absence of an explicit vCPU topology request, the drivers typically expose all vCPUs as sockets with one core and one thread. When strict CPU pinning is in effect the guest CPU topology will be setup to match the topology of the CPUs to which it is pinned. This option implies an overcommit ratio of 1.0. For example, if a two vCPU guest is pinned to a single host core with two threads, then the guest will get a topology of one socket, one core, two threads.", + Type: []string{"string"}, + Format: "", + }, + }, + "cpuThreadPolicy": { + SchemaProps: spec.SchemaProps{ + Description: "cpuThreadPolicy further refines a CPUPolicy of 'dedicated' by stating how hardware CPU threads in a simultaneous multithreading-based (SMT) architecture be used. SMT-based architectures include Intel processors with Hyper-Threading technology. In these architectures, processor cores share a number of components with one or more other cores. Cores in such architectures are commonly referred to as hardware threads, while the cores that a given core share components with are known as thread siblings.\n\nPermitted values are prefer (the default), isolate, and require.\n\nprefer: The host may or may not have an SMT architecture. Where an SMT architecture is present, thread siblings are preferred.\n\nisolate: The host must not have an SMT architecture or must emulate a non-SMT architecture. If the host does not have an SMT architecture, each vCPU is placed on a different core as expected. If the host does have an SMT architecture - that is, one or more cores have thread siblings - then each vCPU is placed on a different physical core. No vCPUs from other guests are placed on the same core. All but one thread sibling on each utilized core is therefore guaranteed to be unusable.\n\nrequire: The host must have an SMT architecture. Each vCPU is allocated on thread siblings. If the host does not have an SMT architecture, then it is not used. If the host has an SMT architecture, but not enough cores with free thread siblings are available, then scheduling fails.", + Type: []string{"string"}, + Format: "", + }, + }, + "cdromBus": { + SchemaProps: spec.SchemaProps{ + Description: "cdromBus specifies the type of disk controller to attach CD-ROM devices to.", + Type: []string{"string"}, + Format: "", + }, + }, + "diskBus": { + SchemaProps: spec.SchemaProps{ + Description: "diskBus specifies the type of disk controller to attach disk devices to.", + Type: []string{"string"}, + Format: "", + }, + }, + "scsiModel": { + SchemaProps: spec.SchemaProps{ + Description: "scsiModel enables the use of VirtIO SCSI (virtio-scsi) to provide block device access for compute instances; by default, instances use VirtIO Block (virtio-blk). VirtIO SCSI is a para-virtualized SCSI controller device that provides improved scalability and performance, and supports advanced SCSI hardware.\n\nThe only permitted value is virtio-scsi.", + Type: []string{"string"}, + Format: "", + }, + }, + "vifModel": { + SchemaProps: spec.SchemaProps{ + Description: "vifModel specifies the model of virtual network interface device to use.\n\nPermitted values are e1000, e1000e, ne2k_pci, pcnet, rtl8139, virtio, and vmxnet3.", + Type: []string{"string"}, + Format: "", + }, + }, + "rngModel": { + SchemaProps: spec.SchemaProps{ + Description: "rngModel adds a random-number generator device to the image’s instances. This image property by itself does not guarantee that a hardware RNG will be used; it expresses a preference that may or may not be satisfied depending upon Nova configuration.", + Type: []string{"string"}, + Format: "", + }, + }, + "qemuGuestAgent": { + SchemaProps: spec.SchemaProps{ + Description: "qemuGuestAgent enables QEMU guest agent.", + Type: []string{"boolean"}, + Format: "", + }, + }, + }, + }, + }, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_ImagePropertiesOperatingSystem(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "distro": { + SchemaProps: spec.SchemaProps{ + Description: "distro is the common name of the operating system distribution in lowercase.", + Type: []string{"string"}, + Format: "", + }, + }, + "version": { + SchemaProps: spec.SchemaProps{ + Description: "version is the operating system version as specified by the distributor.", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_ImageResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "ImageResourceSpec contains the desired state of a Glance image", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "name": { + SchemaProps: spec.SchemaProps{ + Description: "name will be the name of the created Glance image. If not specified, the name of the Image object will be used.", + Type: []string{"string"}, + Format: "", + }, + }, + "protected": { + SchemaProps: spec.SchemaProps{ + Description: "protected specifies that the image is protected from deletion. If not specified, the default is false.", + Type: []string{"boolean"}, + Format: "", + }, + }, + "tags": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", }, }, SchemaProps: spec.SchemaProps{ - Description: "extraSpecs is a list of key-value pairs that define extra specifications for the flavor.", + Description: "tags is a list of tags which will be applied to the image. A tag has a maximum length of 255 characters.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorExtraSpec"), + Default: "", + Type: []string{"string"}, + Format: "", }, }, }, }, }, - "isPublic": { + "visibility": { SchemaProps: spec.SchemaProps{ - Description: "isPublic flags a flavor as being available to all projects or not.", - Type: []string{"boolean"}, + Description: "visibility of the image", + Type: []string{"string"}, Format: "", }, }, - "ephemeral": { + "properties": { SchemaProps: spec.SchemaProps{ - Description: "ephemeral is the size of the ephemeral disk that will be created, in GiB. Ephemeral disks may be written over on server state changes. So should only be used as a scratch space for applications that are aware of its limitations. Defaults to 0.", - Type: []string{"integer"}, - Format: "int32", + Description: "properties is metadata available to consumers of the image", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageProperties"), + }, + }, + "content": { + SchemaProps: spec.SchemaProps{ + Description: "content specifies how to obtain the image content.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageContent"), }, }, }, - Required: []string{"ram", "vcpus", "disk"}, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorExtraSpec"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageContent", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageProperties"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_FlavorResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ImageResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "FlavorResourceStatus represents the observed state of the resource.", + Description: "ImageResourceStatus represents the observed state of a Glance image", Type: []string{"object"}, Properties: map[string]spec.Schema{ "name": { SchemaProps: spec.SchemaProps{ - Description: "name is a Human-readable name for the flavor. Might not be unique.", + Description: "name is a Human-readable name for the image. Might not be unique.", Type: []string{"string"}, Format: "", }, }, - "description": { + "status": { SchemaProps: spec.SchemaProps{ - Description: "description is a human-readable description for the resource.", + Description: "status is the image status as reported by Glance", Type: []string{"string"}, Format: "", }, }, - "ram": { + "protected": { SchemaProps: spec.SchemaProps{ - Description: "ram is the memory of the flavor, measured in MB.", - Type: []string{"integer"}, - Format: "int32", + Description: "protected specifies that the image is protected from deletion.", + Type: []string{"boolean"}, + Format: "", }, }, - "vcpus": { + "visibility": { SchemaProps: spec.SchemaProps{ - Description: "vcpus is the number of vcpus for the flavor.", - Type: []string{"integer"}, - Format: "int32", + Description: "visibility of the image", + Type: []string{"string"}, + Format: "", }, }, - "disk": { + "hash": { SchemaProps: spec.SchemaProps{ - Description: "disk is the size of the root disk that will be created in GiB.", + Description: "hash is the hash of the image data published by Glance. Note that this is a hash of the data stored internally by Glance, which will have been decompressed and potentially format converted depending on server-side configuration which is not visible to clients. It is expected that this hash will usually differ from the download hash.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageHash"), + }, + }, + "sizeB": { + SchemaProps: spec.SchemaProps{ + Description: "sizeB is the size of the image data, in bytes", Type: []string{"integer"}, - Format: "int32", + Format: "int64", }, }, - "swap": { + "virtualSizeB": { SchemaProps: spec.SchemaProps{ - Description: "swap is the size of a dedicated swap disk that will be allocated, in MiB.", + Description: "virtualSizeB is the size of the disk the image data represents, in bytes", Type: []string{"integer"}, - Format: "int32", + Format: "int64", }, }, - "extraSpecs": { + "tags": { VendorExtensible: spec.VendorExtensible{ Extensions: spec.Extensions{ "x-kubernetes-list-type": "atomic", }, }, SchemaProps: spec.SchemaProps{ - Description: "extraSpecs is a map of key-value pairs that define extra specifications for the flavor.", + Description: "tags is the list of tags on the resource.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorExtraSpecStatus"), + Default: "", + Type: []string{"string"}, + Format: "", }, }, }, }, }, - "isPublic": { - SchemaProps: spec.SchemaProps{ - Description: "isPublic flags a flavor as being available to all projects or not.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "ephemeral": { - SchemaProps: spec.SchemaProps{ - Description: "ephemeral is the size of the ephemeral disk, in GiB.", - Type: []string{"integer"}, - Format: "int32", - }, - }, }, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorExtraSpecStatus"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageHash"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_FlavorSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ImageSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "FlavorSpec defines the desired state of an ORC object.", + Description: "ImageSpec defines the desired state of an ORC object.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "import": { SchemaProps: spec.SchemaProps{ Description: "import refers to an existing OpenStack resource which will be imported instead of creating a new one.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorImport"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageImport"), }, }, "resource": { SchemaProps: spec.SchemaProps{ Description: "resource specifies the desired state of the resource.\n\nresource may not be specified if the management policy is `unmanaged`.\n\nresource must be specified if the management policy is `managed`.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorResourceSpec"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageResourceSpec"), }, }, "managementPolicy": { @@ -3135,15 +3778,15 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_FlavorSpec(ref common. }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorResourceSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageResourceSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_FlavorStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ImageStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "FlavorStatus defines the observed state of an ORC resource.", + Description: "ImageStatus defines the observed state of an ORC resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "conditions": { @@ -3180,22 +3823,48 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_FlavorStatus(ref commo "resource": { SchemaProps: spec.SchemaProps{ Description: "resource contains the observed state of the OpenStack resource.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorResourceStatus"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageResourceStatus"), + }, + }, + "downloadAttempts": { + SchemaProps: spec.SchemaProps{ + Description: "downloadAttempts is the number of times the controller has attempted to download the image contents", + Type: []string{"integer"}, + Format: "int32", }, }, }, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIP(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ImageStatusExtra(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "FloatingIP is the Schema for an ORC resource.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "downloadAttempts": { + SchemaProps: spec.SchemaProps{ + Description: "downloadAttempts is the number of times the controller has attempted to download the image contents", + Type: []string{"integer"}, + Format: "int32", + }, + }, + }, + }, + }, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_KeyPair(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "KeyPair is the Schema for an ORC resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "kind": { @@ -3223,14 +3892,14 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIP(ref common. SchemaProps: spec.SchemaProps{ Description: "spec specifies the desired state of the resource.", Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPSpec"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairSpec"), }, }, "status": { SchemaProps: spec.SchemaProps{ Description: "status defines the observed state of the resource.", Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPStatus"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairStatus"), }, }, }, @@ -3238,155 +3907,40 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIP(ref common. }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_KeyPairFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "FloatingIPFilter specifies a query to select an OpenStack floatingip. At least one property must be set.", + Description: "KeyPairFilter defines an existing resource by its properties", Type: []string{"object"}, Properties: map[string]spec.Schema{ - "floatingIP": { - SchemaProps: spec.SchemaProps{ - Description: "floatingIP is the floatingip address.", - Type: []string{"string"}, - Format: "", - }, - }, - "description": { - SchemaProps: spec.SchemaProps{ - Description: "description of the existing resource", - Type: []string{"string"}, - Format: "", - }, - }, - "floatingNetworkRef": { - SchemaProps: spec.SchemaProps{ - Description: "floatingNetworkRef is a reference to the ORC Network which this resource is associated with.", - Type: []string{"string"}, - Format: "", - }, - }, - "portRef": { - SchemaProps: spec.SchemaProps{ - Description: "portRef is a reference to the ORC Port which this resource is associated with.", - Type: []string{"string"}, - Format: "", - }, - }, - "projectRef": { - SchemaProps: spec.SchemaProps{ - Description: "projectRef is a reference to the ORC Project this resource is associated with. Typically, only used by admin.", - Type: []string{"string"}, - Format: "", - }, - }, - "status": { + "name": { SchemaProps: spec.SchemaProps{ - Description: "status is the status of the floatingip.", + Description: "name of the existing Keypair", Type: []string{"string"}, Format: "", }, }, - "tags": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "tags is a list of tags to filter by. If specified, the resource must have all of the tags specified to be included in the result.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "tagsAny": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "tagsAny is a list of tags to filter by. If specified, the resource must have at least one of the tags specified to be included in the result.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "notTags": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "notTags is a list of tags to filter by. If specified, resources which contain all of the given tags will be excluded from the result.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "notTagsAny": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "notTagsAny is a list of tags to filter by. If specified, resources which contain any of the given tags will be excluded from the result.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, }, }, }, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPImport(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_KeyPairImport(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "FloatingIPImport specifies an existing resource which will be imported instead of creating a new one", + Description: "KeyPairImport specifies an existing resource which will be imported instead of creating a new one", Type: []string{"object"}, Properties: map[string]spec.Schema{ "id": { SchemaProps: spec.SchemaProps{ - Description: "id contains the unique identifier of an existing OpenStack resource. Note that when specifying an import by ID, the resource MUST already exist. The ORC object will enter an error state if the resource does not exist.", + Description: "id contains the name of an existing resource. Note: This resource uses the resource name as the unique identifier, not a UUID. When specifying an import by ID, the resource MUST already exist. The ORC object will enter an error state if the resource does not exist.", Type: []string{"string"}, Format: "", }, @@ -3394,22 +3948,22 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPImport(ref c "filter": { SchemaProps: spec.SchemaProps{ Description: "filter contains a resource query which is expected to return a single result. The controller will continue to retry if filter returns no results. If filter returns multiple results the controller will set an error state and will not continue to retry.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPFilter"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairFilter"), }, }, }, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPFilter"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairFilter"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPList(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_KeyPairList(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "FloatingIPList contains a list of FloatingIP.", + Description: "KeyPairList contains a list of KeyPair.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "kind": { @@ -3435,13 +3989,13 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPList(ref com }, "items": { SchemaProps: spec.SchemaProps{ - Description: "items contains a list of FloatingIP.", + Description: "items contains a list of KeyPair.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIP"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPair"), }, }, }, @@ -3452,82 +4006,76 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPList(ref com }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIP", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPair", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_KeyPairResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "FloatingIPResourceSpec contains the desired state of a floating IP", + Description: "KeyPairResourceSpec contains the desired state of the resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ - "description": { + "name": { SchemaProps: spec.SchemaProps{ - Description: "description is a human-readable description for the resource.", + Description: "name will be the name of the created resource. If not specified, the name of the ORC object will be used.", Type: []string{"string"}, Format: "", }, }, - "tags": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "tags is a list of tags which will be applied to the floatingip.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "floatingNetworkRef": { + "type": { SchemaProps: spec.SchemaProps{ - Description: "floatingNetworkRef references the network to which the floatingip is associated.", + Description: "type specifies the type of the Keypair. Allowed values are ssh or x509. If not specified, defaults to ssh.", Type: []string{"string"}, Format: "", }, }, - "floatingSubnetRef": { + "publicKey": { SchemaProps: spec.SchemaProps{ - Description: "floatingSubnetRef references the subnet to which the floatingip is associated.", + Description: "publicKey is the public key to import.", Type: []string{"string"}, Format: "", }, }, - "floatingIP": { + }, + Required: []string{"publicKey"}, + }, + }, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_KeyPairResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "KeyPairResourceStatus represents the observed state of the resource.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "name": { SchemaProps: spec.SchemaProps{ - Description: "floatingIP is the IP that will be assigned to the floatingip. If not set, it will be assigned automatically.", + Description: "name is a Human-readable name for the resource. Might not be unique.", Type: []string{"string"}, Format: "", }, }, - "portRef": { + "fingerprint": { SchemaProps: spec.SchemaProps{ - Description: "portRef is a reference to the ORC Port which this resource is associated with.", + Description: "fingerprint is the fingerprint of the public key", Type: []string{"string"}, Format: "", }, }, - "fixedIP": { + "publicKey": { SchemaProps: spec.SchemaProps{ - Description: "fixedIP is the IP address of the port to which the floatingip is associated.", + Description: "publicKey is the public key of the Keypair", Type: []string{"string"}, Format: "", }, }, - "projectRef": { + "type": { SchemaProps: spec.SchemaProps{ - Description: "projectRef is a reference to the ORC Project this resource is associated with. Typically, only used by admin.", + Description: "type is the type of the Keypair (ssh or x509)", Type: []string{"string"}, Format: "", }, @@ -3538,139 +4086,23 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPResourceSpec } } -func schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_KeyPairSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, + Description: "KeyPairSpec defines the desired state of an ORC object.", + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "description": { - SchemaProps: spec.SchemaProps{ - Description: "description is a human-readable description for the resource.", - Type: []string{"string"}, - Format: "", - }, - }, - "floatingNetworkID": { - SchemaProps: spec.SchemaProps{ - Description: "floatingNetworkID is the ID of the network to which the floatingip is associated.", - Type: []string{"string"}, - Format: "", - }, - }, - "floatingIP": { - SchemaProps: spec.SchemaProps{ - Description: "floatingIP is the IP address of the floatingip.", - Type: []string{"string"}, - Format: "", - }, - }, - "portID": { - SchemaProps: spec.SchemaProps{ - Description: "portID is the ID of the port to which the floatingip is associated.", - Type: []string{"string"}, - Format: "", - }, - }, - "fixedIP": { - SchemaProps: spec.SchemaProps{ - Description: "fixedIP is the IP address of the port to which the floatingip is associated.", - Type: []string{"string"}, - Format: "", - }, - }, - "tenantID": { - SchemaProps: spec.SchemaProps{ - Description: "tenantID is the project owner of the resource.", - Type: []string{"string"}, - Format: "", - }, - }, - "projectID": { - SchemaProps: spec.SchemaProps{ - Description: "projectID is the project owner of the resource.", - Type: []string{"string"}, - Format: "", - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "status indicates the current status of the resource.", - Type: []string{"string"}, - Format: "", - }, - }, - "routerID": { - SchemaProps: spec.SchemaProps{ - Description: "routerID is the ID of the router to which the floatingip is associated.", - Type: []string{"string"}, - Format: "", - }, - }, - "tags": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "tags is the list of tags on the resource.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "createdAt": { - SchemaProps: spec.SchemaProps{ - Description: "createdAt shows the date and time when the resource was created. The date and time stamp format is ISO 8601", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "updatedAt": { - SchemaProps: spec.SchemaProps{ - Description: "updatedAt shows the date and time when the resource was updated. The date and time stamp format is ISO 8601", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "revisionNumber": { - SchemaProps: spec.SchemaProps{ - Description: "revisionNumber optionally set via extensions/standard-attr-revisions", - Type: []string{"integer"}, - Format: "int64", - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "FloatingIPSpec defines the desired state of an ORC object.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "import": { + "import": { SchemaProps: spec.SchemaProps{ Description: "import refers to an existing OpenStack resource which will be imported instead of creating a new one.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPImport"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairImport"), }, }, "resource": { SchemaProps: spec.SchemaProps{ Description: "resource specifies the desired state of the resource.\n\nresource may not be specified if the management policy is `unmanaged`.\n\nresource must be specified if the management policy is `managed`.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPResourceSpec"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairResourceSpec"), }, }, "managementPolicy": { @@ -3698,15 +4130,15 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPSpec(ref com }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPResourceSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairResourceSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_KeyPairStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "FloatingIPStatus defines the observed state of an ORC resource.", + Description: "KeyPairStatus defines the observed state of an ORC resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "conditions": { @@ -3743,184 +4175,144 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPStatus(ref c "resource": { SchemaProps: spec.SchemaProps{ Description: "resource contains the observed state of the OpenStack resource.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPResourceStatus"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairResourceStatus"), }, }, }, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_Group(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_LoadBalancerFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "Group is the Schema for an ORC resource.", + Description: "LoadBalancerFilter defines an existing resource by its properties", Type: []string{"object"}, Properties: map[string]spec.Schema{ - "kind": { + "name": { SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + Description: "name of the existing resource", Type: []string{"string"}, Format: "", }, }, - "apiVersion": { + "description": { SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + Description: "description of the existing resource", Type: []string{"string"}, Format: "", }, }, - "metadata": { + "vipNetworkRef": { SchemaProps: spec.SchemaProps{ - Description: "metadata contains the object metadata", - Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), + Description: "vipNetworkRef is a reference to the ORC VipNetwork which this resource is associated with.", + Type: []string{"string"}, + Format: "", }, }, - "spec": { + "projectRef": { SchemaProps: spec.SchemaProps{ - Description: "spec specifies the desired state of the resource.", - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupSpec"), + Description: "projectRef is a reference to the ORC Project which this resource is associated with.", + Type: []string{"string"}, + Format: "", }, }, - "status": { + "vipSubnetRef": { SchemaProps: spec.SchemaProps{ - Description: "status defines the observed state of the resource.", - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupStatus"), + Description: "vipSubnetRef is a reference to the ORC VipSubnet which this resource is associated with.", + Type: []string{"string"}, + Format: "", + }, + }, + "vipPortRef": { + SchemaProps: spec.SchemaProps{ + Description: "vipPortRef is a reference to the ORC VipPort which this resource is associated with.", + Type: []string{"string"}, + Format: "", }, }, }, - Required: []string{"spec"}, }, }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_GroupFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_LoadBalancerResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "GroupFilter defines an existing resource by its properties", + Description: "LoadBalancerResourceSpec contains the desired state of the resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "name": { SchemaProps: spec.SchemaProps{ - Description: "name of the existing resource", + Description: "name will be the name of the created resource. If not specified, the name of the ORC object will be used.", Type: []string{"string"}, Format: "", }, }, - "domainRef": { + "description": { SchemaProps: spec.SchemaProps{ - Description: "domainRef is a reference to the ORC Domain which this resource is associated with.", + Description: "description is a human-readable description for the resource.", Type: []string{"string"}, Format: "", }, }, - }, - }, - }, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_GroupImport(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "GroupImport specifies an existing resource which will be imported instead of creating a new one", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "id": { + "subnetRef": { SchemaProps: spec.SchemaProps{ - Description: "id contains the unique identifier of an existing OpenStack resource. Note that when specifying an import by ID, the resource MUST already exist. The ORC object will enter an error state if the resource does not exist.", + Description: "subnetRef is a reference to the ORC Subnet which this resource is associated with.", Type: []string{"string"}, Format: "", }, }, - "filter": { - SchemaProps: spec.SchemaProps{ - Description: "filter contains a resource query which is expected to return a single result. The controller will continue to retry if filter returns no results. If filter returns multiple results the controller will set an error state and will not continue to retry.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupFilter"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupFilter"}, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_GroupList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "GroupList contains a list of Group.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { + "networkRef": { SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + Description: "networkRef is a reference to the ORC Network which this resource is associated with.", Type: []string{"string"}, Format: "", }, }, - "apiVersion": { + "portRef": { SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + Description: "portRef is a reference to the ORC Port which this resource is associated with.", Type: []string{"string"}, Format: "", }, }, - "metadata": { + "flavorRef": { SchemaProps: spec.SchemaProps{ - Description: "metadata contains the list metadata", - Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), + Description: "flavorRef is a reference to the ORC Flavor which this resource is associated with.", + Type: []string{"string"}, + Format: "", }, }, - "items": { + "projectRef": { SchemaProps: spec.SchemaProps{ - Description: "items contains a list of Group.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Group"), - }, - }, - }, + Description: "projectRef is a reference to the ORC Project which this resource is associated with.", + Type: []string{"string"}, + Format: "", }, }, }, - Required: []string{"items"}, }, }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Group", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_GroupResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_LoadBalancerResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "GroupResourceSpec contains the desired state of the resource.", + Description: "LoadBalancerResourceStatus represents the observed state of the resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "name": { SchemaProps: spec.SchemaProps{ - Description: "name will be the name of the created resource. If not specified, the name of the ORC object will be used.", + Description: "name is a Human-readable name for the resource. Might not be unique.", Type: []string{"string"}, Format: "", }, @@ -3932,43 +4324,37 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_GroupResourceSpec(ref Format: "", }, }, - "domainRef": { + "subnetID": { SchemaProps: spec.SchemaProps{ - Description: "domainRef is a reference to the ORC Domain which this resource is associated with.", + Description: "subnetID is the ID of the Subnet to which the resource is associated.", Type: []string{"string"}, Format: "", }, }, - }, - }, - }, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_GroupResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "GroupResourceStatus represents the observed state of the resource.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { + "networkID": { SchemaProps: spec.SchemaProps{ - Description: "name is a Human-readable name for the resource. Might not be unique.", + Description: "networkID is the ID of the Network to which the resource is associated.", Type: []string{"string"}, Format: "", }, }, - "description": { + "portID": { SchemaProps: spec.SchemaProps{ - Description: "description is a human-readable description for the resource.", + Description: "portID is the ID of the Port to which the resource is associated.", Type: []string{"string"}, Format: "", }, }, - "domainID": { + "flavorID": { SchemaProps: spec.SchemaProps{ - Description: "domainID is the ID of the Domain to which the resource is associated.", + Description: "flavorID is the ID of the Flavor to which the resource is associated.", + Type: []string{"string"}, + Format: "", + }, + }, + "projectID": { + SchemaProps: spec.SchemaProps{ + Description: "projectID is the ID of the Project to which the resource is associated.", Type: []string{"string"}, Format: "", }, @@ -3979,351 +4365,423 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_GroupResourceStatus(re } } -func schema_openstack_resource_controller_v2_api_v1alpha1_GroupSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ManagedOptions(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "GroupSpec defines the desired state of an ORC object.", - Type: []string{"object"}, + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "import": { + "onDelete": { SchemaProps: spec.SchemaProps{ - Description: "import refers to an existing OpenStack resource which will be imported instead of creating a new one.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupImport"), + Description: "onDelete specifies the behaviour of the controller when the ORC object is deleted. Options are `delete` - delete the OpenStack resource; `detach` - do not delete the OpenStack resource. If not specified, the default is `delete`.", + Type: []string{"string"}, + Format: "", }, }, - "resource": { + }, + }, + }, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_Network(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "Network is the Schema for an ORC resource.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "kind": { SchemaProps: spec.SchemaProps{ - Description: "resource specifies the desired state of the resource.\n\nresource may not be specified if the management policy is `unmanaged`.\n\nresource must be specified if the management policy is `managed`.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupResourceSpec"), + Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + Type: []string{"string"}, + Format: "", }, }, - "managementPolicy": { + "apiVersion": { SchemaProps: spec.SchemaProps{ - Description: "managementPolicy defines how ORC will treat the object. Valid values are `managed`: ORC will create, update, and delete the resource; `unmanaged`: ORC will import an existing resource, and will not apply updates to it or delete it.", + Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", Type: []string{"string"}, Format: "", }, }, - "managedOptions": { + "metadata": { SchemaProps: spec.SchemaProps{ - Description: "managedOptions specifies options which may be applied to managed objects.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions"), + Description: "metadata contains the object metadata", + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), }, }, - "cloudCredentialsRef": { + "spec": { SchemaProps: spec.SchemaProps{ - Description: "cloudCredentialsRef points to a secret containing OpenStack credentials", + Description: "spec specifies the desired state of the resource.", Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkSpec"), + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Description: "status defines the observed state of the resource.", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkStatus"), }, }, }, - Required: []string{"cloudCredentialsRef"}, + Required: []string{"spec"}, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupResourceSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_GroupStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_NetworkFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "GroupStatus defines the observed state of an ORC resource.", + Description: "NetworkFilter defines an existing resource by its properties", Type: []string{"object"}, Properties: map[string]spec.Schema{ - "conditions": { + "name": { + SchemaProps: spec.SchemaProps{ + Description: "name of the existing resource", + Type: []string{"string"}, + Format: "", + }, + }, + "description": { + SchemaProps: spec.SchemaProps{ + Description: "description of the existing resource", + Type: []string{"string"}, + Format: "", + }, + }, + "external": { + SchemaProps: spec.SchemaProps{ + Description: "external indicates whether the network has an external routing facility that’s not managed by the networking service.", + Type: []string{"boolean"}, + Format: "", + }, + }, + "projectRef": { + SchemaProps: spec.SchemaProps{ + Description: "projectRef is a reference to the ORC Project this resource is associated with. Typically, only used by admin.", + Type: []string{"string"}, + Format: "", + }, + }, + "tags": { VendorExtensible: spec.VendorExtensible{ Extensions: spec.Extensions{ - "x-kubernetes-list-map-keys": []interface{}{ - "type", + "x-kubernetes-list-type": "set", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "tags is a list of tags to filter by. If specified, the resource must have all of the tags specified to be included in the result.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, }, - "x-kubernetes-list-type": "map", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge", + }, + }, + }, + "tagsAny": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", }, }, SchemaProps: spec.SchemaProps{ - Description: "conditions represents the observed status of the object. Known .status.conditions.type are: \"Available\", \"Progressing\"\n\nAvailable represents the availability of the OpenStack resource. If it is true then the resource is ready for use.\n\nProgressing indicates whether the controller is still attempting to reconcile the current state of the OpenStack resource to the desired state. Progressing will be False either because the desired state has been achieved, or because some terminal error prevents it from ever being achieved and the controller is no longer attempting to reconcile. If Progressing is True, an observer waiting on the resource should continue to wait.", + Description: "tagsAny is a list of tags to filter by. If specified, the resource must have at least one of the tags specified to be included in the result.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Condition"), + Default: "", + Type: []string{"string"}, + Format: "", }, }, }, }, }, - "id": { + "notTags": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, SchemaProps: spec.SchemaProps{ - Description: "id is the unique identifier of the OpenStack resource.", - Type: []string{"string"}, - Format: "", + Description: "notTags is a list of tags to filter by. If specified, resources which contain all of the given tags will be excluded from the result.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, }, }, - "resource": { + "notTagsAny": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, SchemaProps: spec.SchemaProps{ - Description: "resource contains the observed state of the OpenStack resource.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupResourceStatus"), + Description: "notTagsAny is a list of tags to filter by. If specified, resources which contain any of the given tags will be excluded from the result.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, }, }, }, }, }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_HostID(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_NetworkImport(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "HostID specifies how to determine the host ID for port binding. Exactly one of the fields must be set.", + Description: "NetworkImport specifies an existing resource which will be imported instead of creating a new one", Type: []string{"object"}, Properties: map[string]spec.Schema{ "id": { SchemaProps: spec.SchemaProps{ - Description: "id is the literal host ID string to use for binding:host_id. This is mutually exclusive with serverRef.", + Description: "id contains the unique identifier of an existing OpenStack resource. Note that when specifying an import by ID, the resource MUST already exist. The ORC object will enter an error state if the resource does not exist.", Type: []string{"string"}, Format: "", }, }, - "serverRef": { + "filter": { SchemaProps: spec.SchemaProps{ - Description: "serverRef is a reference to an ORC Server resource from which to retrieve the hostID for port binding. The hostID will be read from the Server's status.resource.hostID field. This is mutually exclusive with id.", - Type: []string{"string"}, - Format: "", + Description: "filter contains a resource query which is expected to return a single result. The controller will continue to retry if filter returns no results. If filter returns multiple results the controller will set an error state and will not continue to retry.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkFilter"), }, }, }, }, }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkFilter"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_HostRoute(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_NetworkList(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, + Description: "NetworkList contains a list of Network.", + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "destination": { + "kind": { SchemaProps: spec.SchemaProps{ - Description: "destination for the additional route.", + Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", Type: []string{"string"}, Format: "", }, }, - "nextHop": { + "apiVersion": { SchemaProps: spec.SchemaProps{ - Description: "nextHop for the additional route.", + Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", Type: []string{"string"}, Format: "", }, }, + "metadata": { + SchemaProps: spec.SchemaProps{ + Description: "metadata contains the list metadata", + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), + }, + }, + "items": { + SchemaProps: spec.SchemaProps{ + Description: "items contains a list of Network.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Network"), + }, + }, + }, + }, + }, }, - Required: []string{"destination", "nextHop"}, + Required: []string{"items"}, }, }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Network", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_HostRouteStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_NetworkResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, + Description: "NetworkResourceSpec contains the desired state of a network", + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "destination": { + "name": { SchemaProps: spec.SchemaProps{ - Description: "destination for the additional route.", + Description: "name will be the name of the created resource. If not specified, the name of the ORC object will be used.", Type: []string{"string"}, Format: "", }, }, - "nextHop": { + "description": { SchemaProps: spec.SchemaProps{ - Description: "nextHop for the additional route.", + Description: "description is a human-readable description for the resource.", Type: []string{"string"}, Format: "", }, }, - }, - }, - }, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_IPv6Options(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "addressMode": { - SchemaProps: spec.SchemaProps{ - Description: "addressMode specifies mechanisms for assigning IPv6 IP addresses.", - Type: []string{"string"}, - Format: "", + "tags": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, }, - }, - "raMode": { SchemaProps: spec.SchemaProps{ - Description: "raMode specifies the IPv6 router advertisement mode. It specifies whether the networking service should transmit ICMPv6 packets.", - Type: []string{"string"}, - Format: "", + Description: "tags is a list of tags which will be applied to the network.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, }, }, - }, - }, - }, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_Image(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Image is the Schema for an ORC resource.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { + "adminStateUp": { SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, + Description: "adminStateUp is the administrative state of the network, which is up (true) or down (false)", + Type: []string{"boolean"}, Format: "", }, }, - "apiVersion": { + "dnsDomain": { SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + Description: "dnsDomain is the DNS domain of the network", Type: []string{"string"}, Format: "", }, }, - "metadata": { + "mtu": { SchemaProps: spec.SchemaProps{ - Description: "metadata contains the object metadata", - Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), + Description: "mtu is the the maximum transmission unit value to address fragmentation. Minimum value is 68 for IPv4, and 1280 for IPv6. Defaults to 1500.", + Type: []string{"integer"}, + Format: "int32", }, }, - "spec": { + "portSecurityEnabled": { SchemaProps: spec.SchemaProps{ - Description: "spec specifies the desired state of the resource.", - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageSpec"), + Description: "portSecurityEnabled is the port security status of the network. Valid values are enabled (true) and disabled (false). This value is used as the default value of port_security_enabled field of a newly created port.", + Type: []string{"boolean"}, + Format: "", }, }, - "status": { + "external": { SchemaProps: spec.SchemaProps{ - Description: "status defines the observed state of the resource.", - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageStatus"), + Description: "external indicates whether the network has an external routing facility that’s not managed by the networking service.", + Type: []string{"boolean"}, + Format: "", }, }, - }, - Required: []string{"spec"}, - }, - }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_ImageContent(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "containerFormat": { + "shared": { SchemaProps: spec.SchemaProps{ - Description: "containerFormat is the format of the image container. qcow2 and raw images do not usually have a container. This is specified as \"bare\", which is also the default. Permitted values are ami, ari, aki, bare, compressed, ovf, ova, and docker.", - Type: []string{"string"}, + Description: "shared indicates whether this resource is shared across all projects. By default, only administrative users can change this value.", + Type: []string{"boolean"}, Format: "", }, }, - "diskFormat": { + "availabilityZoneHints": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, SchemaProps: spec.SchemaProps{ - Description: "diskFormat is the format of the disk image. Normal values are \"qcow2\", or \"raw\". Glance may be configured to support others.", - Type: []string{"string"}, - Format: "", + Description: "availabilityZoneHints is the availability zone candidate for the network.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, }, }, - "download": { + "projectRef": { SchemaProps: spec.SchemaProps{ - Description: "download describes how to obtain image data by downloading it from a URL. Must be set when creating a managed image.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageContentSourceDownload"), + Description: "projectRef is a reference to the ORC Project this resource is associated with. Typically, only used by admin.", + Type: []string{"string"}, + Format: "", }, }, }, - Required: []string{"diskFormat", "download"}, }, }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageContentSourceDownload"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ImageContentSourceDownload(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_NetworkResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, + Description: "NetworkResourceStatus represents the observed state of the resource.", + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "url": { + "name": { SchemaProps: spec.SchemaProps{ - Description: "url containing image data", - Default: "", + Description: "name is a Human-readable name for the network. Might not be unique.", Type: []string{"string"}, Format: "", }, }, - "decompress": { + "description": { SchemaProps: spec.SchemaProps{ - Description: "decompress specifies that the source data must be decompressed with the given compression algorithm before being stored. Specifying Decompress will disable the use of Glance's web-download, as web-download cannot currently deterministically decompress downloaded content.", + Description: "description is a human-readable description for the resource.", Type: []string{"string"}, Format: "", }, }, - "hash": { - SchemaProps: spec.SchemaProps{ - Description: "hash is a hash which will be used to verify downloaded data, i.e. before any decompression. If not specified, no hash verification will be performed. Specifying a Hash will disable the use of Glance's web-download, as web-download cannot currently deterministically verify the hash of downloaded content.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageHash"), - }, - }, - }, - Required: []string{"url"}, - }, - }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageHash"}, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_ImageFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ImageFilter defines a Glance query", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { + "projectID": { SchemaProps: spec.SchemaProps{ - Description: "name specifies the name of a Glance image", + Description: "projectID is the project owner of the network.", Type: []string{"string"}, Format: "", }, }, - "visibility": { + "status": { SchemaProps: spec.SchemaProps{ - Description: "visibility specifies the visibility of a Glance image.", + Description: "status indicates whether network is currently operational. Possible values include `ACTIVE', `DOWN', `BUILD', or `ERROR'. Plug-ins might define additional values.", Type: []string{"string"}, Format: "", }, @@ -4331,7 +4789,7 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_ImageFilter(ref common "tags": { VendorExtensible: spec.VendorExtensible{ Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", + "x-kubernetes-list-type": "atomic", }, }, SchemaProps: spec.SchemaProps{ @@ -4348,418 +4806,363 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_ImageFilter(ref common }, }, }, - }, - }, - }, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_ImageHash(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "algorithm": { + "createdAt": { SchemaProps: spec.SchemaProps{ - Description: "algorithm is the hash algorithm used to generate value.", - Type: []string{"string"}, - Format: "", + Description: "createdAt shows the date and time when the resource was created. The date and time stamp format is ISO 8601", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), }, }, - "value": { + "updatedAt": { SchemaProps: spec.SchemaProps{ - Description: "value is the hash of the image data using Algorithm. It must be hex encoded using lowercase letters.", - Type: []string{"string"}, - Format: "", + Description: "updatedAt shows the date and time when the resource was updated. The date and time stamp format is ISO 8601", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), }, }, - }, - Required: []string{"algorithm", "value"}, - }, - }, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_ImageImport(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ImageImport specifies an existing resource which will be imported instead of creating a new one", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "id": { + "revisionNumber": { SchemaProps: spec.SchemaProps{ - Description: "id contains the unique identifier of an existing OpenStack resource. Note that when specifying an import by ID, the resource MUST already exist. The ORC object will enter an error state if the resource does not exist.", - Type: []string{"string"}, - Format: "", + Description: "revisionNumber optionally set via extensions/standard-attr-revisions", + Type: []string{"integer"}, + Format: "int64", }, }, - "filter": { + "adminStateUp": { SchemaProps: spec.SchemaProps{ - Description: "filter contains a resource query which is expected to return a single result. The controller will continue to retry if filter returns no results. If filter returns multiple results the controller will set an error state and will not continue to retry.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageFilter"), + Description: "adminStateUp is the administrative state of the network, which is up (true) or down (false).", + Type: []string{"boolean"}, + Format: "", }, }, - }, - }, - }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageFilter"}, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_ImageList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ImageList contains a list of Image.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "metadata contains the list metadata", - Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), + "availabilityZoneHints": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, }, - }, - "items": { SchemaProps: spec.SchemaProps{ - Description: "items contains a list of Image.", + Description: "availabilityZoneHints is the availability zone candidate for the network.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Image"), + Default: "", + Type: []string{"string"}, + Format: "", }, }, }, }, }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Image", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_ImageProperties(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "architecture": { + "dnsDomain": { SchemaProps: spec.SchemaProps{ - Description: "architecture is the CPU architecture that must be supported by the hypervisor.", + Description: "dnsDomain is the DNS domain of the network", Type: []string{"string"}, Format: "", }, }, - "hypervisorType": { + "mtu": { SchemaProps: spec.SchemaProps{ - Description: "hypervisorType is the hypervisor type", - Type: []string{"string"}, + Description: "mtu is the the maximum transmission unit value to address fragmentation. Minimum value is 68 for IPv4, and 1280 for IPv6.", + Type: []string{"integer"}, + Format: "int32", + }, + }, + "portSecurityEnabled": { + SchemaProps: spec.SchemaProps{ + Description: "portSecurityEnabled is the port security status of the network. Valid values are enabled (true) and disabled (false). This value is used as the default value of port_security_enabled field of a newly created port.", + Type: []string{"boolean"}, Format: "", }, }, - "minDiskGB": { + "provider": { SchemaProps: spec.SchemaProps{ - Description: "minDiskGB is the minimum amount of disk space in GB that is required to boot the image", - Type: []string{"integer"}, - Format: "int32", + Description: "provider contains provider-network properties.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProviderPropertiesStatus"), }, }, - "minMemoryMB": { + "external": { SchemaProps: spec.SchemaProps{ - Description: "minMemoryMB is the minimum amount of RAM in MB that is required to boot the image.", - Type: []string{"integer"}, - Format: "int32", + Description: "external defines whether the network may be used for creation of floating IPs. Only networks with this flag may be an external gateway for routers. The network must have an external routing facility that is not managed by the networking service. If the network is updated from external to internal the unused floating IPs of this network are automatically deleted when extension floatingip-autodelete-internal is present.", + Type: []string{"boolean"}, + Format: "", }, }, - "hardware": { + "shared": { SchemaProps: spec.SchemaProps{ - Description: "hardware is a set of properties which control the virtual hardware created by Nova.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImagePropertiesHardware"), + Description: "shared specifies whether the network resource can be accessed by any tenant.", + Type: []string{"boolean"}, + Format: "", }, }, - "operatingSystem": { + "subnets": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, + }, SchemaProps: spec.SchemaProps{ - Description: "operatingSystem is a set of properties that specify and influence the behavior of the operating system within the virtual machine.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImagePropertiesOperatingSystem"), + Description: "subnets associated with this network.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, }, }, }, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImagePropertiesHardware", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImagePropertiesOperatingSystem"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProviderPropertiesStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ImagePropertiesHardware(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_NetworkSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, + Description: "NetworkSpec defines the desired state of an ORC object.", + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "cpuSockets": { - SchemaProps: spec.SchemaProps{ - Description: "cpuSockets is the preferred number of sockets to expose to the guest", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "cpuCores": { - SchemaProps: spec.SchemaProps{ - Description: "cpuCores is the preferred number of cores to expose to the guest", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "cpuThreads": { + "import": { SchemaProps: spec.SchemaProps{ - Description: "cpuThreads is the preferred number of threads to expose to the guest", - Type: []string{"integer"}, - Format: "int32", + Description: "import refers to an existing OpenStack resource which will be imported instead of creating a new one.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkImport"), }, }, - "cpuPolicy": { + "resource": { SchemaProps: spec.SchemaProps{ - Description: "cpuPolicy is used to pin the virtual CPUs (vCPUs) of instances to the host's physical CPU cores (pCPUs). Host aggregates should be used to separate these pinned instances from unpinned instances as the latter will not respect the resourcing requirements of the former.\n\nPermitted values are shared (the default), and dedicated.\n\nshared: The guest vCPUs will be allowed to freely float across host pCPUs, albeit potentially constrained by NUMA policy.\n\ndedicated: The guest vCPUs will be strictly pinned to a set of host pCPUs. In the absence of an explicit vCPU topology request, the drivers typically expose all vCPUs as sockets with one core and one thread. When strict CPU pinning is in effect the guest CPU topology will be setup to match the topology of the CPUs to which it is pinned. This option implies an overcommit ratio of 1.0. For example, if a two vCPU guest is pinned to a single host core with two threads, then the guest will get a topology of one socket, one core, two threads.", - Type: []string{"string"}, - Format: "", + Description: "resource specifies the desired state of the resource.\n\nresource may not be specified if the management policy is `unmanaged`.\n\nresource must be specified if the management policy is `managed`.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkResourceSpec"), }, }, - "cpuThreadPolicy": { + "managementPolicy": { SchemaProps: spec.SchemaProps{ - Description: "cpuThreadPolicy further refines a CPUPolicy of 'dedicated' by stating how hardware CPU threads in a simultaneous multithreading-based (SMT) architecture be used. SMT-based architectures include Intel processors with Hyper-Threading technology. In these architectures, processor cores share a number of components with one or more other cores. Cores in such architectures are commonly referred to as hardware threads, while the cores that a given core share components with are known as thread siblings.\n\nPermitted values are prefer (the default), isolate, and require.\n\nprefer: The host may or may not have an SMT architecture. Where an SMT architecture is present, thread siblings are preferred.\n\nisolate: The host must not have an SMT architecture or must emulate a non-SMT architecture. If the host does not have an SMT architecture, each vCPU is placed on a different core as expected. If the host does have an SMT architecture - that is, one or more cores have thread siblings - then each vCPU is placed on a different physical core. No vCPUs from other guests are placed on the same core. All but one thread sibling on each utilized core is therefore guaranteed to be unusable.\n\nrequire: The host must have an SMT architecture. Each vCPU is allocated on thread siblings. If the host does not have an SMT architecture, then it is not used. If the host has an SMT architecture, but not enough cores with free thread siblings are available, then scheduling fails.", + Description: "managementPolicy defines how ORC will treat the object. Valid values are `managed`: ORC will create, update, and delete the resource; `unmanaged`: ORC will import an existing resource, and will not apply updates to it or delete it.", Type: []string{"string"}, Format: "", }, }, - "cdromBus": { + "managedOptions": { SchemaProps: spec.SchemaProps{ - Description: "cdromBus specifies the type of disk controller to attach CD-ROM devices to.", - Type: []string{"string"}, - Format: "", + Description: "managedOptions specifies options which may be applied to managed objects.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions"), }, }, - "diskBus": { + "cloudCredentialsRef": { SchemaProps: spec.SchemaProps{ - Description: "diskBus specifies the type of disk controller to attach disk devices to.", - Type: []string{"string"}, - Format: "", + Description: "cloudCredentialsRef points to a secret containing OpenStack credentials", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference"), }, }, - "scsiModel": { - SchemaProps: spec.SchemaProps{ - Description: "scsiModel enables the use of VirtIO SCSI (virtio-scsi) to provide block device access for compute instances; by default, instances use VirtIO Block (virtio-blk). VirtIO SCSI is a para-virtualized SCSI controller device that provides improved scalability and performance, and supports advanced SCSI hardware.\n\nThe only permitted value is virtio-scsi.", - Type: []string{"string"}, - Format: "", + }, + Required: []string{"cloudCredentialsRef"}, + }, + }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkResourceSpec"}, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_NetworkStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "NetworkStatus defines the observed state of an ORC resource.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "conditions": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "type", + }, + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge", + }, }, - }, - "vifModel": { SchemaProps: spec.SchemaProps{ - Description: "vifModel specifies the model of virtual network interface device to use.\n\nPermitted values are e1000, e1000e, ne2k_pci, pcnet, rtl8139, virtio, and vmxnet3.", - Type: []string{"string"}, - Format: "", + Description: "conditions represents the observed status of the object. Known .status.conditions.type are: \"Available\", \"Progressing\"\n\nAvailable represents the availability of the OpenStack resource. If it is true then the resource is ready for use.\n\nProgressing indicates whether the controller is still attempting to reconcile the current state of the OpenStack resource to the desired state. Progressing will be False either because the desired state has been achieved, or because some terminal error prevents it from ever being achieved and the controller is no longer attempting to reconcile. If Progressing is True, an observer waiting on the resource should continue to wait.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Condition"), + }, + }, + }, }, }, - "rngModel": { + "id": { SchemaProps: spec.SchemaProps{ - Description: "rngModel adds a random-number generator device to the image’s instances. This image property by itself does not guarantee that a hardware RNG will be used; it expresses a preference that may or may not be satisfied depending upon Nova configuration.", + Description: "id is the unique identifier of the OpenStack resource.", Type: []string{"string"}, Format: "", }, }, - "qemuGuestAgent": { + "resource": { SchemaProps: spec.SchemaProps{ - Description: "qemuGuestAgent enables QEMU guest agent.", - Type: []string{"boolean"}, - Format: "", + Description: "resource contains the observed state of the OpenStack resource.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkResourceStatus"), }, }, }, }, }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ImagePropertiesOperatingSystem(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_NeutronStatusMetadata(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ Type: []string{"object"}, Properties: map[string]spec.Schema{ - "distro": { + "createdAt": { SchemaProps: spec.SchemaProps{ - Description: "distro is the common name of the operating system distribution in lowercase.", - Type: []string{"string"}, - Format: "", + Description: "createdAt shows the date and time when the resource was created. The date and time stamp format is ISO 8601", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), }, }, - "version": { + "updatedAt": { SchemaProps: spec.SchemaProps{ - Description: "version is the operating system version as specified by the distributor.", - Type: []string{"string"}, - Format: "", + Description: "updatedAt shows the date and time when the resource was updated. The date and time stamp format is ISO 8601", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + "revisionNumber": { + SchemaProps: spec.SchemaProps{ + Description: "revisionNumber optionally set via extensions/standard-attr-revisions", + Type: []string{"integer"}, + Format: "int64", }, }, }, }, }, + Dependencies: []string{ + "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ImageResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_Port(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "ImageResourceSpec contains the desired state of a Glance image", + Description: "Port is the Schema for an ORC resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ - "name": { + "kind": { SchemaProps: spec.SchemaProps{ - Description: "name will be the name of the created Glance image. If not specified, the name of the Image object will be used.", + Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", Type: []string{"string"}, Format: "", }, }, - "protected": { + "apiVersion": { SchemaProps: spec.SchemaProps{ - Description: "protected specifies that the image is protected from deletion. If not specified, the default is false.", - Type: []string{"boolean"}, + Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + Type: []string{"string"}, Format: "", }, }, - "tags": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "tags is a list of tags which will be applied to the image. A tag has a maximum length of 255 characters.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "visibility": { + "metadata": { SchemaProps: spec.SchemaProps{ - Description: "visibility of the image", - Type: []string{"string"}, - Format: "", + Description: "metadata contains the object metadata", + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), }, }, - "properties": { + "spec": { SchemaProps: spec.SchemaProps{ - Description: "properties is metadata available to consumers of the image", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageProperties"), + Description: "spec specifies the desired state of the resource.", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortSpec"), }, }, - "content": { + "status": { SchemaProps: spec.SchemaProps{ - Description: "content specifies how to obtain the image content.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageContent"), + Description: "status defines the observed state of the resource.", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortStatus"), }, }, }, + Required: []string{"spec"}, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageContent", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageProperties"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ImageResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_PortFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "ImageResourceStatus represents the observed state of a Glance image", + Description: "PortFilter specifies a filter to select a port. At least one parameter must be specified.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "name": { SchemaProps: spec.SchemaProps{ - Description: "name is a Human-readable name for the image. Might not be unique.", + Description: "name of the existing resource", Type: []string{"string"}, Format: "", }, }, - "status": { + "description": { SchemaProps: spec.SchemaProps{ - Description: "status is the image status as reported by Glance", + Description: "description of the existing resource", Type: []string{"string"}, Format: "", }, }, - "protected": { + "networkRef": { SchemaProps: spec.SchemaProps{ - Description: "protected specifies that the image is protected from deletion.", - Type: []string{"boolean"}, + Description: "networkRef is a reference to the ORC Network which this port is associated with.", + Default: "", + Type: []string{"string"}, Format: "", }, }, - "visibility": { + "projectRef": { SchemaProps: spec.SchemaProps{ - Description: "visibility of the image", + Description: "projectRef is a reference to the ORC Project this resource is associated with. Typically, only used by admin.", Type: []string{"string"}, Format: "", }, }, - "hash": { - SchemaProps: spec.SchemaProps{ - Description: "hash is the hash of the image data published by Glance. Note that this is a hash of the data stored internally by Glance, which will have been decompressed and potentially format converted depending on server-side configuration which is not visible to clients. It is expected that this hash will usually differ from the download hash.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageHash"), - }, - }, - "sizeB": { + "adminStateUp": { SchemaProps: spec.SchemaProps{ - Description: "sizeB is the size of the image data, in bytes", - Type: []string{"integer"}, - Format: "int64", + Description: "adminStateUp is the administrative state of the port, which is up (true) or down (false).", + Type: []string{"boolean"}, + Format: "", }, }, - "virtualSizeB": { + "macAddress": { SchemaProps: spec.SchemaProps{ - Description: "virtualSizeB is the size of the disk the image data represents, in bytes", - Type: []string{"integer"}, - Format: "int64", + Description: "macAddress is the MAC address of the port.", + Type: []string{"string"}, + Format: "", }, }, "tags": { VendorExtensible: spec.VendorExtensible{ Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", + "x-kubernetes-list-type": "set", }, }, SchemaProps: spec.SchemaProps{ - Description: "tags is the list of tags on the resource.", + Description: "tags is a list of tags to filter by. If specified, the resource must have all of the tags specified to be included in the result.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ @@ -4772,145 +5175,105 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_ImageResourceStatus(re }, }, }, - }, - }, - }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageHash"}, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_ImageSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ImageSpec defines the desired state of an ORC object.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "import": { - SchemaProps: spec.SchemaProps{ - Description: "import refers to an existing OpenStack resource which will be imported instead of creating a new one.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageImport"), - }, - }, - "resource": { - SchemaProps: spec.SchemaProps{ - Description: "resource specifies the desired state of the resource.\n\nresource may not be specified if the management policy is `unmanaged`.\n\nresource must be specified if the management policy is `managed`.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageResourceSpec"), - }, - }, - "managementPolicy": { - SchemaProps: spec.SchemaProps{ - Description: "managementPolicy defines how ORC will treat the object. Valid values are `managed`: ORC will create, update, and delete the resource; `unmanaged`: ORC will import an existing resource, and will not apply updates to it or delete it.", - Type: []string{"string"}, - Format: "", - }, - }, - "managedOptions": { - SchemaProps: spec.SchemaProps{ - Description: "managedOptions specifies options which may be applied to managed objects.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions"), + "tagsAny": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, }, - }, - "cloudCredentialsRef": { SchemaProps: spec.SchemaProps{ - Description: "cloudCredentialsRef points to a secret containing OpenStack credentials", - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference"), + Description: "tagsAny is a list of tags to filter by. If specified, the resource must have at least one of the tags specified to be included in the result.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, }, }, - }, - Required: []string{"cloudCredentialsRef"}, - }, - }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageResourceSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions"}, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_ImageStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ImageStatus defines the observed state of an ORC resource.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "conditions": { + "notTags": { VendorExtensible: spec.VendorExtensible{ Extensions: spec.Extensions{ - "x-kubernetes-list-map-keys": []interface{}{ - "type", - }, - "x-kubernetes-list-type": "map", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge", + "x-kubernetes-list-type": "set", }, }, SchemaProps: spec.SchemaProps{ - Description: "conditions represents the observed status of the object. Known .status.conditions.type are: \"Available\", \"Progressing\"\n\nAvailable represents the availability of the OpenStack resource. If it is true then the resource is ready for use.\n\nProgressing indicates whether the controller is still attempting to reconcile the current state of the OpenStack resource to the desired state. Progressing will be False either because the desired state has been achieved, or because some terminal error prevents it from ever being achieved and the controller is no longer attempting to reconcile. If Progressing is True, an observer waiting on the resource should continue to wait.", + Description: "notTags is a list of tags to filter by. If specified, resources which contain all of the given tags will be excluded from the result.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Condition"), + Default: "", + Type: []string{"string"}, + Format: "", }, }, }, }, }, - "id": { - SchemaProps: spec.SchemaProps{ - Description: "id is the unique identifier of the OpenStack resource.", - Type: []string{"string"}, - Format: "", - }, - }, - "resource": { - SchemaProps: spec.SchemaProps{ - Description: "resource contains the observed state of the OpenStack resource.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageResourceStatus"), + "notTagsAny": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, }, - }, - "downloadAttempts": { SchemaProps: spec.SchemaProps{ - Description: "downloadAttempts is the number of times the controller has attempted to download the image contents", - Type: []string{"integer"}, - Format: "int32", + Description: "notTagsAny is a list of tags to filter by. If specified, resources which contain any of the given tags will be excluded from the result.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, }, }, }, }, }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ImageStatusExtra(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_PortImport(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, + Description: "PortImport specifies an existing resource which will be imported instead of creating a new one", + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "downloadAttempts": { + "id": { SchemaProps: spec.SchemaProps{ - Description: "downloadAttempts is the number of times the controller has attempted to download the image contents", - Type: []string{"integer"}, - Format: "int32", + Description: "id contains the unique identifier of an existing OpenStack resource. Note that when specifying an import by ID, the resource MUST already exist. The ORC object will enter an error state if the resource does not exist.", + Type: []string{"string"}, + Format: "", + }, + }, + "filter": { + SchemaProps: spec.SchemaProps{ + Description: "filter contains a resource query which is expected to return a single result. The controller will continue to retry if filter returns no results. If filter returns multiple results the controller will set an error state and will not continue to retry.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortFilter"), }, }, }, }, }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortFilter"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_KeyPair(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_PortList(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "KeyPair is the Schema for an ORC resource.", + Description: "PortList contains a list of Port.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "kind": { @@ -4929,246 +5292,485 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_KeyPair(ref common.Ref }, "metadata": { SchemaProps: spec.SchemaProps{ - Description: "metadata contains the object metadata", + Description: "metadata contains the list metadata", Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), }, }, - "spec": { + "items": { SchemaProps: spec.SchemaProps{ - Description: "spec specifies the desired state of the resource.", - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "status defines the observed state of the resource.", - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairStatus"), + Description: "items contains a list of Port.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Port"), + }, + }, + }, }, }, }, - Required: []string{"spec"}, + Required: []string{"items"}, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Port", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_KeyPairFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_PortRangeSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "KeyPairFilter defines an existing resource by its properties", - Type: []string{"object"}, + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "name": { + "min": { SchemaProps: spec.SchemaProps{ - Description: "name of the existing Keypair", - Type: []string{"string"}, - Format: "", + Description: "min is the minimum port number in the range that is matched by the security group rule. If the protocol is TCP, UDP, DCCP, SCTP or UDP-Lite this value must be less than or equal to the port_range_max attribute value. If the protocol is ICMP, this value must be an ICMP type", + Default: 0, + Type: []string{"integer"}, + Format: "int32", + }, + }, + "max": { + SchemaProps: spec.SchemaProps{ + Description: "max is the maximum port number in the range that is matched by the security group rule. If the protocol is TCP, UDP, DCCP, SCTP or UDP-Lite this value must be greater than or equal to the port_range_min attribute value. If the protocol is ICMP, this value must be an ICMP code.", + Default: 0, + Type: []string{"integer"}, + Format: "int32", }, }, }, + Required: []string{"min", "max"}, }, }, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_KeyPairImport(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_PortRangeStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "KeyPairImport specifies an existing resource which will be imported instead of creating a new one", - Type: []string{"object"}, + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "id": { + "min": { SchemaProps: spec.SchemaProps{ - Description: "id contains the name of an existing resource. Note: This resource uses the resource name as the unique identifier, not a UUID. When specifying an import by ID, the resource MUST already exist. The ORC object will enter an error state if the resource does not exist.", - Type: []string{"string"}, - Format: "", + Description: "min is the minimum port number in the range that is matched by the security group rule. If the protocol is TCP, UDP, DCCP, SCTP or UDP-Lite this value must be less than or equal to the port_range_max attribute value. If the protocol is ICMP, this value must be an ICMP type", + Default: 0, + Type: []string{"integer"}, + Format: "int32", }, }, - "filter": { + "max": { SchemaProps: spec.SchemaProps{ - Description: "filter contains a resource query which is expected to return a single result. The controller will continue to retry if filter returns no results. If filter returns multiple results the controller will set an error state and will not continue to retry.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairFilter"), + Description: "max is the maximum port number in the range that is matched by the security group rule. If the protocol is TCP, UDP, DCCP, SCTP or UDP-Lite this value must be greater than or equal to the port_range_min attribute value. If the protocol is ICMP, this value must be an ICMP code.", + Default: 0, + Type: []string{"integer"}, + Format: "int32", }, }, }, }, }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairFilter"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_KeyPairList(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_PortResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "KeyPairList contains a list of KeyPair.", - Type: []string{"object"}, + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "kind": { + "name": { SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + Description: "name is a human-readable name of the port. If not set, the object's name will be used.", Type: []string{"string"}, Format: "", }, }, - "apiVersion": { + "description": { SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + Description: "description is a human-readable description for the resource.", Type: []string{"string"}, Format: "", }, }, - "metadata": { + "networkRef": { SchemaProps: spec.SchemaProps{ - Description: "metadata contains the list metadata", - Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), + Description: "networkRef is a reference to the ORC Network which this port is associated with.", + Type: []string{"string"}, + Format: "", }, }, - "items": { + "tags": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, SchemaProps: spec.SchemaProps{ - Description: "items contains a list of KeyPair.", + Description: "tags is a list of tags which will be applied to the port.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "allowedAddressPairs": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "allowedAddressPairs are allowed addresses associated with this port.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPair"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AllowedAddressPair"), }, }, }, }, }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPair", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_KeyPairResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "KeyPairResourceSpec contains the desired state of the resource.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { + "addresses": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, + }, SchemaProps: spec.SchemaProps{ - Description: "name will be the name of the created resource. If not specified, the name of the ORC object will be used.", - Type: []string{"string"}, - Format: "", + Description: "addresses are the IP addresses for the port.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Address"), + }, + }, + }, }, }, - "type": { + "adminStateUp": { SchemaProps: spec.SchemaProps{ - Description: "type specifies the type of the Keypair. Allowed values are ssh or x509. If not specified, defaults to ssh.", - Type: []string{"string"}, + Description: "adminStateUp is the administrative state of the port, which is up (true) or down (false). The default value is true.", + Type: []string{"boolean"}, Format: "", }, }, - "publicKey": { + "securityGroupRefs": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, SchemaProps: spec.SchemaProps{ - Description: "publicKey is the public key to import.", - Type: []string{"string"}, - Format: "", + Description: "securityGroupRefs are the names of the security groups associated with this port.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, }, }, - }, - Required: []string{"publicKey"}, - }, - }, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_KeyPairResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "KeyPairResourceStatus represents the observed state of the resource.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { + "vnicType": { SchemaProps: spec.SchemaProps{ - Description: "name is a Human-readable name for the resource. Might not be unique.", + Description: "vnicType specifies the type of vNIC which this port should be attached to. This is used to determine which mechanism driver(s) to be used to bind the port. The valid values are normal, macvtap, direct, baremetal, direct-physical, virtio-forwarder, smart-nic and remote-managed, although these values will not be validated in this API to ensure compatibility with future neutron changes or custom implementations. What type of vNIC is actually available depends on deployments. If not specified, the Neutron default value is used.", Type: []string{"string"}, Format: "", }, }, - "fingerprint": { + "portSecurity": { SchemaProps: spec.SchemaProps{ - Description: "fingerprint is the fingerprint of the public key", + Description: "portSecurity controls port security for this port. When set to Enabled, port security is enabled. When set to Disabled, port security is disabled and SecurityGroupRefs must be empty. When set to Inherit (default), it takes the value from the network level.", Type: []string{"string"}, Format: "", }, }, - "publicKey": { + "projectRef": { SchemaProps: spec.SchemaProps{ - Description: "publicKey is the public key of the Keypair", + Description: "projectRef is a reference to the ORC Project this resource is associated with. Typically, only used by admin.", Type: []string{"string"}, Format: "", }, }, - "type": { + "macAddress": { SchemaProps: spec.SchemaProps{ - Description: "type is the type of the Keypair (ssh or x509)", + Description: "macAddress is the MAC address of the port.", Type: []string{"string"}, Format: "", }, }, + "hostID": { + SchemaProps: spec.SchemaProps{ + Description: "hostID specifies the host where the port will be bound. Note that when the port is attached to a server, OpenStack may rebind the port to the server's actual compute host, which may differ from the specified hostID if no matching scheduler hint is used. In this case the port's status will reflect the actual binding host, not the value specified here.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.HostID"), + }, + }, }, + Required: []string{"networkRef"}, }, }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Address", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AllowedAddressPair", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.HostID"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_KeyPairSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_PortResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "KeyPairSpec defines the desired state of an ORC object.", - Type: []string{"object"}, + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "import": { + "name": { SchemaProps: spec.SchemaProps{ - Description: "import refers to an existing OpenStack resource which will be imported instead of creating a new one.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairImport"), + Description: "name is the human-readable name of the resource. Might not be unique.", + Type: []string{"string"}, + Format: "", }, }, - "resource": { + "description": { SchemaProps: spec.SchemaProps{ - Description: "resource specifies the desired state of the resource.\n\nresource may not be specified if the management policy is `unmanaged`.\n\nresource must be specified if the management policy is `managed`.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairResourceSpec"), + Description: "description is a human-readable description for the resource.", + Type: []string{"string"}, + Format: "", }, }, - "managementPolicy": { + "networkID": { SchemaProps: spec.SchemaProps{ - Description: "managementPolicy defines how ORC will treat the object. Valid values are `managed`: ORC will create, update, and delete the resource; `unmanaged`: ORC will import an existing resource, and will not apply updates to it or delete it.", + Description: "networkID is the ID of the attached network.", Type: []string{"string"}, Format: "", }, }, - "managedOptions": { + "projectID": { SchemaProps: spec.SchemaProps{ - Description: "managedOptions specifies options which may be applied to managed objects.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions"), + Description: "projectID is the project owner of the resource.", + Type: []string{"string"}, + Format: "", }, }, - "cloudCredentialsRef": { + "status": { SchemaProps: spec.SchemaProps{ - Description: "cloudCredentialsRef points to a secret containing OpenStack credentials", - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference"), + Description: "status indicates the current status of the resource.", + Type: []string{"string"}, + Format: "", + }, + }, + "tags": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "tags is the list of tags on the resource.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "adminStateUp": { + SchemaProps: spec.SchemaProps{ + Description: "adminStateUp is the administrative state of the port, which is up (true) or down (false).", + Type: []string{"boolean"}, + Format: "", + }, + }, + "macAddress": { + SchemaProps: spec.SchemaProps{ + Description: "macAddress is the MAC address of the port.", + Type: []string{"string"}, + Format: "", + }, + }, + "deviceID": { + SchemaProps: spec.SchemaProps{ + Description: "deviceID is the ID of the device that uses this port.", + Type: []string{"string"}, + Format: "", + }, + }, + "deviceOwner": { + SchemaProps: spec.SchemaProps{ + Description: "deviceOwner is the entity type that uses this port.", + Type: []string{"string"}, + Format: "", + }, + }, + "allowedAddressPairs": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "allowedAddressPairs is a set of zero or more allowed address pair objects each where address pair object contains an IP address and MAC address.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AllowedAddressPairStatus"), + }, + }, + }, + }, + }, + "fixedIPs": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "fixedIPs is a set of zero or more fixed IP objects each where fixed IP object contains an IP address and subnet ID from which the IP address is assigned.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FixedIPStatus"), + }, + }, + }, + }, + }, + "securityGroups": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "securityGroups contains the IDs of security groups applied to the port.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "propagateUplinkStatus": { + SchemaProps: spec.SchemaProps{ + Description: "propagateUplinkStatus represents the uplink status propagation of the port.", + Type: []string{"boolean"}, + Format: "", + }, + }, + "vnicType": { + SchemaProps: spec.SchemaProps{ + Description: "vnicType is the type of vNIC which this port is attached to.", + Type: []string{"string"}, + Format: "", + }, + }, + "portSecurityEnabled": { + SchemaProps: spec.SchemaProps{ + Description: "portSecurityEnabled indicates whether port security is enabled or not.", + Type: []string{"boolean"}, + Format: "", + }, + }, + "hostID": { + SchemaProps: spec.SchemaProps{ + Description: "hostID is the ID of host where the port resides.", + Type: []string{"string"}, + Format: "", + }, + }, + "createdAt": { + SchemaProps: spec.SchemaProps{ + Description: "createdAt shows the date and time when the resource was created. The date and time stamp format is ISO 8601", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + "updatedAt": { + SchemaProps: spec.SchemaProps{ + Description: "updatedAt shows the date and time when the resource was updated. The date and time stamp format is ISO 8601", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + "revisionNumber": { + SchemaProps: spec.SchemaProps{ + Description: "revisionNumber optionally set via extensions/standard-attr-revisions", + Type: []string{"integer"}, + Format: "int64", + }, + }, + }, + }, + }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AllowedAddressPairStatus", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FixedIPStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_PortSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "PortSpec defines the desired state of an ORC object.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "import": { + SchemaProps: spec.SchemaProps{ + Description: "import refers to an existing OpenStack resource which will be imported instead of creating a new one.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortImport"), + }, + }, + "resource": { + SchemaProps: spec.SchemaProps{ + Description: "resource specifies the desired state of the resource.\n\nresource may not be specified if the management policy is `unmanaged`.\n\nresource must be specified if the management policy is `managed`.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortResourceSpec"), + }, + }, + "managementPolicy": { + SchemaProps: spec.SchemaProps{ + Description: "managementPolicy defines how ORC will treat the object. Valid values are `managed`: ORC will create, update, and delete the resource; `unmanaged`: ORC will import an existing resource, and will not apply updates to it or delete it.", + Type: []string{"string"}, + Format: "", + }, + }, + "managedOptions": { + SchemaProps: spec.SchemaProps{ + Description: "managedOptions specifies options which may be applied to managed objects.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions"), + }, + }, + "cloudCredentialsRef": { + SchemaProps: spec.SchemaProps{ + Description: "cloudCredentialsRef points to a secret containing OpenStack credentials", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference"), }, }, }, @@ -5176,15 +5778,15 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_KeyPairSpec(ref common }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairResourceSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortResourceSpec"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_KeyPairStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_PortStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "KeyPairStatus defines the observed state of an ORC resource.", + Description: "PortStatus defines the observed state of an ORC resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "conditions": { @@ -5221,41 +5823,22 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_KeyPairStatus(ref comm "resource": { SchemaProps: spec.SchemaProps{ Description: "resource contains the observed state of the OpenStack resource.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairResourceStatus"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortResourceStatus"), }, }, }, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_ManagedOptions(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "onDelete": { - SchemaProps: spec.SchemaProps{ - Description: "onDelete specifies the behaviour of the controller when the ORC object is deleted. Options are `delete` - delete the OpenStack resource; `detach` - do not delete the OpenStack resource. If not specified, the default is `delete`.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_Network(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_Project(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "Network is the Schema for an ORC resource.", + Description: "Project is the Schema for an ORC resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "kind": { @@ -5283,14 +5866,14 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_Network(ref common.Ref SchemaProps: spec.SchemaProps{ Description: "spec specifies the desired state of the resource.", Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkSpec"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectSpec"), }, }, "status": { SchemaProps: spec.SchemaProps{ Description: "status defines the observed state of the resource.", Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkStatus"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectStatus"), }, }, }, @@ -5298,15 +5881,15 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_Network(ref common.Ref }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_NetworkFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ProjectFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "NetworkFilter defines an existing resource by its properties", + Description: "ProjectFilter defines an existing resource by its properties", Type: []string{"object"}, Properties: map[string]spec.Schema{ "name": { @@ -5316,32 +5899,11 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_NetworkFilter(ref comm Format: "", }, }, - "description": { - SchemaProps: spec.SchemaProps{ - Description: "description of the existing resource", - Type: []string{"string"}, - Format: "", - }, - }, - "external": { - SchemaProps: spec.SchemaProps{ - Description: "external indicates whether the network has an external routing facility that’s not managed by the networking service.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "projectRef": { - SchemaProps: spec.SchemaProps{ - Description: "projectRef is a reference to the ORC Project this resource is associated with. Typically, only used by admin.", - Type: []string{"string"}, - Format: "", - }, - }, - "tags": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, + "tags": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, }, SchemaProps: spec.SchemaProps{ Description: "tags is a list of tags to filter by. If specified, the resource must have all of the tags specified to be included in the result.", @@ -5423,11 +5985,11 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_NetworkFilter(ref comm } } -func schema_openstack_resource_controller_v2_api_v1alpha1_NetworkImport(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ProjectImport(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "NetworkImport specifies an existing resource which will be imported instead of creating a new one", + Description: "ProjectImport specifies an existing resource which will be imported instead of creating a new one", Type: []string{"object"}, Properties: map[string]spec.Schema{ "id": { @@ -5440,22 +6002,22 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_NetworkImport(ref comm "filter": { SchemaProps: spec.SchemaProps{ Description: "filter contains a resource query which is expected to return a single result. The controller will continue to retry if filter returns no results. If filter returns multiple results the controller will set an error state and will not continue to retry.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkFilter"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectFilter"), }, }, }, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkFilter"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectFilter"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_NetworkList(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ProjectList(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "NetworkList contains a list of Network.", + Description: "ProjectList contains a list of Project.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "kind": { @@ -5481,13 +6043,13 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_NetworkList(ref common }, "items": { SchemaProps: spec.SchemaProps{ - Description: "items contains a list of Network.", + Description: "items contains a list of Project.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Network"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Project"), }, }, }, @@ -5498,15 +6060,15 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_NetworkList(ref common }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Network", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Project", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_NetworkResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ProjectResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "NetworkResourceSpec contains the desired state of a network", + Description: "ProjectResourceSpec contains the desired state of a project", Type: []string{"object"}, Properties: map[string]spec.Schema{ "name": { @@ -5518,81 +6080,26 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_NetworkResourceSpec(re }, "description": { SchemaProps: spec.SchemaProps{ - Description: "description is a human-readable description for the resource.", - Type: []string{"string"}, - Format: "", - }, - }, - "tags": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "tags is a list of tags which will be applied to the network.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "adminStateUp": { - SchemaProps: spec.SchemaProps{ - Description: "adminStateUp is the administrative state of the network, which is up (true) or down (false)", - Type: []string{"boolean"}, - Format: "", - }, - }, - "dnsDomain": { - SchemaProps: spec.SchemaProps{ - Description: "dnsDomain is the DNS domain of the network", + Description: "description contains a free form description of the project.", Type: []string{"string"}, Format: "", }, }, - "mtu": { - SchemaProps: spec.SchemaProps{ - Description: "mtu is the the maximum transmission unit value to address fragmentation. Minimum value is 68 for IPv4, and 1280 for IPv6. Defaults to 1500.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "portSecurityEnabled": { - SchemaProps: spec.SchemaProps{ - Description: "portSecurityEnabled is the port security status of the network. Valid values are enabled (true) and disabled (false). This value is used as the default value of port_security_enabled field of a newly created port.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "external": { - SchemaProps: spec.SchemaProps{ - Description: "external indicates whether the network has an external routing facility that’s not managed by the networking service.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "shared": { + "enabled": { SchemaProps: spec.SchemaProps{ - Description: "shared indicates whether this resource is shared across all projects. By default, only administrative users can change this value.", + Description: "enabled defines whether a project is enabled or not. Default is true.", Type: []string{"boolean"}, Format: "", }, }, - "availabilityZoneHints": { + "tags": { VendorExtensible: spec.VendorExtensible{ Extensions: spec.Extensions{ "x-kubernetes-list-type": "set", }, }, SchemaProps: spec.SchemaProps{ - Description: "availabilityZoneHints is the availability zone candidate for the network.", + Description: "tags is list of simple strings assigned to a project. Tags can be used to classify projects into groups.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ @@ -5605,29 +6112,22 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_NetworkResourceSpec(re }, }, }, - "projectRef": { - SchemaProps: spec.SchemaProps{ - Description: "projectRef is a reference to the ORC Project this resource is associated with. Typically, only used by admin.", - Type: []string{"string"}, - Format: "", - }, - }, }, }, }, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_NetworkResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ProjectResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "NetworkResourceStatus represents the observed state of the resource.", + Description: "ProjectResourceStatus represents the observed state of the resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "name": { SchemaProps: spec.SchemaProps{ - Description: "name is a Human-readable name for the network. Might not be unique.", + Description: "name is a Human-readable name for the project. Might not be unique.", Type: []string{"string"}, Format: "", }, @@ -5639,17 +6139,10 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_NetworkResourceStatus( Format: "", }, }, - "projectID": { - SchemaProps: spec.SchemaProps{ - Description: "projectID is the project owner of the network.", - Type: []string{"string"}, - Format: "", - }, - }, - "status": { + "enabled": { SchemaProps: spec.SchemaProps{ - Description: "status indicates whether network is currently operational. Possible values include `ACTIVE', `DOWN', `BUILD', or `ERROR'. Plug-ins might define additional values.", - Type: []string{"string"}, + Description: "enabled represents whether a project is enabled or not.", + Type: []string{"boolean"}, Format: "", }, }, @@ -5673,138 +6166,29 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_NetworkResourceStatus( }, }, }, - "createdAt": { - SchemaProps: spec.SchemaProps{ - Description: "createdAt shows the date and time when the resource was created. The date and time stamp format is ISO 8601", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "updatedAt": { - SchemaProps: spec.SchemaProps{ - Description: "updatedAt shows the date and time when the resource was updated. The date and time stamp format is ISO 8601", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "revisionNumber": { - SchemaProps: spec.SchemaProps{ - Description: "revisionNumber optionally set via extensions/standard-attr-revisions", - Type: []string{"integer"}, - Format: "int64", - }, - }, - "adminStateUp": { - SchemaProps: spec.SchemaProps{ - Description: "adminStateUp is the administrative state of the network, which is up (true) or down (false).", - Type: []string{"boolean"}, - Format: "", - }, - }, - "availabilityZoneHints": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "availabilityZoneHints is the availability zone candidate for the network.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "dnsDomain": { - SchemaProps: spec.SchemaProps{ - Description: "dnsDomain is the DNS domain of the network", - Type: []string{"string"}, - Format: "", - }, - }, - "mtu": { - SchemaProps: spec.SchemaProps{ - Description: "mtu is the the maximum transmission unit value to address fragmentation. Minimum value is 68 for IPv4, and 1280 for IPv6.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "portSecurityEnabled": { - SchemaProps: spec.SchemaProps{ - Description: "portSecurityEnabled is the port security status of the network. Valid values are enabled (true) and disabled (false). This value is used as the default value of port_security_enabled field of a newly created port.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "provider": { - SchemaProps: spec.SchemaProps{ - Description: "provider contains provider-network properties.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProviderPropertiesStatus"), - }, - }, - "external": { - SchemaProps: spec.SchemaProps{ - Description: "external defines whether the network may be used for creation of floating IPs. Only networks with this flag may be an external gateway for routers. The network must have an external routing facility that is not managed by the networking service. If the network is updated from external to internal the unused floating IPs of this network are automatically deleted when extension floatingip-autodelete-internal is present.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "shared": { - SchemaProps: spec.SchemaProps{ - Description: "shared specifies whether the network resource can be accessed by any tenant.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "subnets": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "subnets associated with this network.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, }, }, }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProviderPropertiesStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_NetworkSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ProjectSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "NetworkSpec defines the desired state of an ORC object.", + Description: "ProjectSpec defines the desired state of an ORC object.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "import": { SchemaProps: spec.SchemaProps{ Description: "import refers to an existing OpenStack resource which will be imported instead of creating a new one.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkImport"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectImport"), }, }, "resource": { SchemaProps: spec.SchemaProps{ Description: "resource specifies the desired state of the resource.\n\nresource may not be specified if the management policy is `unmanaged`.\n\nresource must be specified if the management policy is `managed`.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkResourceSpec"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectResourceSpec"), }, }, "managementPolicy": { @@ -5832,15 +6216,15 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_NetworkSpec(ref common }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkResourceSpec"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectResourceSpec"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_NetworkStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ProjectStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "NetworkStatus defines the observed state of an ORC resource.", + Description: "ProjectStatus defines the observed state of an ORC resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "conditions": { @@ -5877,55 +6261,55 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_NetworkStatus(ref comm "resource": { SchemaProps: spec.SchemaProps{ Description: "resource contains the observed state of the OpenStack resource.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkResourceStatus"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectResourceStatus"), }, }, }, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_NeutronStatusMetadata(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ProviderPropertiesStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ Type: []string{"object"}, Properties: map[string]spec.Schema{ - "createdAt": { + "networkType": { SchemaProps: spec.SchemaProps{ - Description: "createdAt shows the date and time when the resource was created. The date and time stamp format is ISO 8601", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + Description: "networkType is the type of physical network that this network should be mapped to. Supported values are flat, vlan, vxlan, and gre. Valid values depend on the networking back-end.", + Type: []string{"string"}, + Format: "", }, }, - "updatedAt": { + "physicalNetwork": { SchemaProps: spec.SchemaProps{ - Description: "updatedAt shows the date and time when the resource was updated. The date and time stamp format is ISO 8601", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + Description: "physicalNetwork is the physical network where this network should be implemented. The Networking API v2.0 does not provide a way to list available physical networks. For example, the Open vSwitch plug-in configuration file defines a symbolic name that maps to specific bridges on each compute host.", + Type: []string{"string"}, + Format: "", }, }, - "revisionNumber": { + "segmentationID": { SchemaProps: spec.SchemaProps{ - Description: "revisionNumber optionally set via extensions/standard-attr-revisions", + Description: "segmentationID is the ID of the isolated segment on the physical network. The network_type attribute defines the segmentation model. For example, if the network_type value is vlan, this ID is a vlan identifier. If the network_type value is gre, this ID is a gre key.", Type: []string{"integer"}, - Format: "int64", + Format: "int32", }, }, }, }, }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_Port(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_Role(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "Port is the Schema for an ORC resource.", + Description: "Role is the Schema for an ORC resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "kind": { @@ -5953,14 +6337,14 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_Port(ref common.Refere SchemaProps: spec.SchemaProps{ Description: "spec specifies the desired state of the resource.", Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortSpec"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleSpec"), }, }, "status": { SchemaProps: spec.SchemaProps{ Description: "status defines the observed state of the resource.", Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortStatus"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleStatus"), }, }, }, @@ -5968,15 +6352,15 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_Port(ref common.Refere }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_PortFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_RoleFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "PortFilter specifies a filter to select a port. At least one parameter must be specified.", + Description: "RoleFilter defines an existing resource by its properties", Type: []string{"object"}, Properties: map[string]spec.Schema{ "name": { @@ -5986,133 +6370,24 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_PortFilter(ref common. Format: "", }, }, - "description": { - SchemaProps: spec.SchemaProps{ - Description: "description of the existing resource", - Type: []string{"string"}, - Format: "", - }, - }, - "networkRef": { - SchemaProps: spec.SchemaProps{ - Description: "networkRef is a reference to the ORC Network which this port is associated with.", - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - "projectRef": { - SchemaProps: spec.SchemaProps{ - Description: "projectRef is a reference to the ORC Project this resource is associated with. Typically, only used by admin.", - Type: []string{"string"}, - Format: "", - }, - }, - "adminStateUp": { - SchemaProps: spec.SchemaProps{ - Description: "adminStateUp is the administrative state of the port, which is up (true) or down (false).", - Type: []string{"boolean"}, - Format: "", - }, - }, - "macAddress": { + "domainRef": { SchemaProps: spec.SchemaProps{ - Description: "macAddress is the MAC address of the port.", + Description: "domainRef is a reference to the ORC Domain which this resource is associated with.", Type: []string{"string"}, Format: "", }, }, - "tags": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "tags is a list of tags to filter by. If specified, the resource must have all of the tags specified to be included in the result.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "tagsAny": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "tagsAny is a list of tags to filter by. If specified, the resource must have at least one of the tags specified to be included in the result.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "notTags": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "notTags is a list of tags to filter by. If specified, resources which contain all of the given tags will be excluded from the result.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "notTagsAny": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "notTagsAny is a list of tags to filter by. If specified, resources which contain any of the given tags will be excluded from the result.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, }, }, }, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_PortImport(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_RoleImport(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "PortImport specifies an existing resource which will be imported instead of creating a new one", + Description: "RoleImport specifies an existing resource which will be imported instead of creating a new one", Type: []string{"object"}, Properties: map[string]spec.Schema{ "id": { @@ -6125,22 +6400,22 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_PortImport(ref common. "filter": { SchemaProps: spec.SchemaProps{ Description: "filter contains a resource query which is expected to return a single result. The controller will continue to retry if filter returns no results. If filter returns multiple results the controller will set an error state and will not continue to retry.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortFilter"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleFilter"), }, }, }, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortFilter"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleFilter"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_PortList(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_RoleList(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "PortList contains a list of Port.", + Description: "RoleList contains a list of Role.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "kind": { @@ -6166,13 +6441,13 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_PortList(ref common.Re }, "items": { SchemaProps: spec.SchemaProps{ - Description: "items contains a list of Port.", + Description: "items contains a list of Role.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Port"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Role"), }, }, }, @@ -6183,59 +6458,70 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_PortList(ref common.Re }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Port", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Role", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_PortRangeSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_RoleResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, + Description: "RoleResourceSpec contains the desired state of the resource.", + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "min": { + "name": { SchemaProps: spec.SchemaProps{ - Description: "min is the minimum port number in the range that is matched by the security group rule. If the protocol is TCP, UDP, DCCP, SCTP or UDP-Lite this value must be less than or equal to the port_range_max attribute value. If the protocol is ICMP, this value must be an ICMP type", - Default: 0, - Type: []string{"integer"}, - Format: "int32", + Description: "name will be the name of the created resource. If not specified, the name of the ORC object will be used.", + Type: []string{"string"}, + Format: "", }, }, - "max": { + "description": { SchemaProps: spec.SchemaProps{ - Description: "max is the maximum port number in the range that is matched by the security group rule. If the protocol is TCP, UDP, DCCP, SCTP or UDP-Lite this value must be greater than or equal to the port_range_min attribute value. If the protocol is ICMP, this value must be an ICMP code.", - Default: 0, - Type: []string{"integer"}, - Format: "int32", + Description: "description is a human-readable description for the resource.", + Type: []string{"string"}, + Format: "", + }, + }, + "domainRef": { + SchemaProps: spec.SchemaProps{ + Description: "domainRef is a reference to the ORC Domain which this resource is associated with.", + Type: []string{"string"}, + Format: "", }, }, }, - Required: []string{"min", "max"}, }, }, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_PortRangeStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_RoleResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, + Description: "RoleResourceStatus represents the observed state of the resource.", + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "min": { + "name": { SchemaProps: spec.SchemaProps{ - Description: "min is the minimum port number in the range that is matched by the security group rule. If the protocol is TCP, UDP, DCCP, SCTP or UDP-Lite this value must be less than or equal to the port_range_max attribute value. If the protocol is ICMP, this value must be an ICMP type", - Default: 0, - Type: []string{"integer"}, - Format: "int32", + Description: "name is a Human-readable name for the resource. Might not be unique.", + Type: []string{"string"}, + Format: "", }, }, - "max": { + "description": { SchemaProps: spec.SchemaProps{ - Description: "max is the maximum port number in the range that is matched by the security group rule. If the protocol is TCP, UDP, DCCP, SCTP or UDP-Lite this value must be greater than or equal to the port_range_min attribute value. If the protocol is ICMP, this value must be an ICMP code.", - Default: 0, - Type: []string{"integer"}, - Format: "int32", + Description: "description is a human-readable description for the resource.", + Type: []string{"string"}, + Format: "", + }, + }, + "domainID": { + SchemaProps: spec.SchemaProps{ + Description: "domainID is the ID of the Domain to which the resource is associated.", + Type: []string{"string"}, + Format: "", }, }, }, @@ -6244,227 +6530,181 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_PortRangeStatus(ref co } } -func schema_openstack_resource_controller_v2_api_v1alpha1_PortResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_RoleSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, + Description: "RoleSpec defines the desired state of an ORC object.", + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "name": { + "import": { SchemaProps: spec.SchemaProps{ - Description: "name is a human-readable name of the port. If not set, the object's name will be used.", - Type: []string{"string"}, - Format: "", + Description: "import refers to an existing OpenStack resource which will be imported instead of creating a new one.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleImport"), }, }, - "description": { + "resource": { SchemaProps: spec.SchemaProps{ - Description: "description is a human-readable description for the resource.", - Type: []string{"string"}, - Format: "", + Description: "resource specifies the desired state of the resource.\n\nresource may not be specified if the management policy is `unmanaged`.\n\nresource must be specified if the management policy is `managed`.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleResourceSpec"), }, }, - "networkRef": { + "managementPolicy": { SchemaProps: spec.SchemaProps{ - Description: "networkRef is a reference to the ORC Network which this port is associated with.", + Description: "managementPolicy defines how ORC will treat the object. Valid values are `managed`: ORC will create, update, and delete the resource; `unmanaged`: ORC will import an existing resource, and will not apply updates to it or delete it.", Type: []string{"string"}, Format: "", }, }, - "tags": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, - }, + "managedOptions": { SchemaProps: spec.SchemaProps{ - Description: "tags is a list of tags which will be applied to the port.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, + Description: "managedOptions specifies options which may be applied to managed objects.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions"), }, }, - "allowedAddressPairs": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, + "cloudCredentialsRef": { SchemaProps: spec.SchemaProps{ - Description: "allowedAddressPairs are allowed addresses associated with this port.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AllowedAddressPair"), - }, - }, - }, + Description: "cloudCredentialsRef points to a secret containing OpenStack credentials", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference"), }, }, - "addresses": { + }, + Required: []string{"cloudCredentialsRef"}, + }, + }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleResourceSpec"}, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_RoleStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "RoleStatus defines the observed state of an ORC resource.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "conditions": { VendorExtensible: spec.VendorExtensible{ Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "addresses are the IP addresses for the port.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Address"), - }, + "x-kubernetes-list-map-keys": []interface{}{ + "type", }, - }, - }, - }, - "adminStateUp": { - SchemaProps: spec.SchemaProps{ - Description: "adminStateUp is the administrative state of the port, which is up (true) or down (false). The default value is true.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "securityGroupRefs": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge", }, }, SchemaProps: spec.SchemaProps{ - Description: "securityGroupRefs are references to the security groups associated with this port.", + Description: "conditions represents the observed status of the object. Known .status.conditions.type are: \"Available\", \"Progressing\"\n\nAvailable represents the availability of the OpenStack resource. If it is true then the resource is ready for use.\n\nProgressing indicates whether the controller is still attempting to reconcile the current state of the OpenStack resource to the desired state. Progressing will be False either because the desired state has been achieved, or because some terminal error prevents it from ever being achieved and the controller is no longer attempting to reconcile. If Progressing is True, an observer waiting on the resource should continue to wait.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Condition"), }, }, }, }, }, - "vnicType": { + "id": { SchemaProps: spec.SchemaProps{ - Description: "vnicType specifies the type of vNIC which this port should be attached to. This is used to determine which mechanism driver(s) to be used to bind the port. The valid values are normal, macvtap, direct, baremetal, direct-physical, virtio-forwarder, smart-nic and remote-managed, although these values will not be validated in this API to ensure compatibility with future neutron changes or custom implementations. What type of vNIC is actually available depends on deployments. If not specified, the Neutron default value is used.", + Description: "id is the unique identifier of the OpenStack resource.", Type: []string{"string"}, Format: "", }, }, - "portSecurity": { + "resource": { SchemaProps: spec.SchemaProps{ - Description: "portSecurity controls port security for this port. When set to Enabled, port security is enabled. When set to Disabled, port security is disabled and SecurityGroupRefs must be empty. When set to Inherit (default), it takes the value from the network level.", - Type: []string{"string"}, - Format: "", + Description: "resource contains the observed state of the OpenStack resource.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleResourceStatus"), }, }, - "projectRef": { + }, + }, + }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_Router(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "Router is the Schema for an ORC resource.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "kind": { SchemaProps: spec.SchemaProps{ - Description: "projectRef is a reference to the ORC Project this resource is associated with. Typically, only used by admin.", + Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", Type: []string{"string"}, Format: "", }, }, - "macAddress": { + "apiVersion": { SchemaProps: spec.SchemaProps{ - Description: "macAddress is the MAC address of the port.", + Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", Type: []string{"string"}, Format: "", }, }, - "hostID": { + "metadata": { SchemaProps: spec.SchemaProps{ - Description: "hostID specifies the host where the port will be bound. Note that when the port is attached to a server, OpenStack may rebind the port to the server's actual compute host, which may differ from the specified hostID if no matching scheduler hint is used. In this case the port's status will reflect the actual binding host, not the value specified here.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.HostID"), + Description: "metadata contains the object metadata", + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), }, }, - "trustedVIF": { + "spec": { SchemaProps: spec.SchemaProps{ - Description: "trustedVIF indicates whether the VF for the port will become trusted by physical function to perform some privileged operations. Only admin users can create ports with this field.", - Type: []string{"boolean"}, - Format: "", + Description: "spec specifies the desired state of the resource.", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterSpec"), }, }, - "valueSpecs": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-map-keys": []interface{}{ - "key", - }, - "x-kubernetes-list-type": "map", - }, - }, + "status": { SchemaProps: spec.SchemaProps{ - Description: "valueSpecs 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. This was meant to work similar to the property on Heat port resource. Since this depends on the underlying implementation, we can't predict its fields, and therefore, we don't know how to reconcile them in advance. Use this field wisely and be aware of the expected behavior.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortValueSpec"), - }, - }, - }, + Description: "status defines the observed state of the resource.", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterStatus"), }, }, }, - Required: []string{"networkRef"}, + Required: []string{"spec"}, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Address", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AllowedAddressPair", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.HostID", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortValueSpec"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_PortResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_RouterFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, + Description: "RouterFilter specifies a query to select an OpenStack router. At least one property must be set.", + Type: []string{"object"}, Properties: map[string]spec.Schema{ "name": { SchemaProps: spec.SchemaProps{ - Description: "name is the human-readable name of the resource. Might not be unique.", + Description: "name of the existing resource", Type: []string{"string"}, Format: "", }, }, "description": { SchemaProps: spec.SchemaProps{ - Description: "description is a human-readable description for the resource.", - Type: []string{"string"}, - Format: "", - }, - }, - "networkID": { - SchemaProps: spec.SchemaProps{ - Description: "networkID is the ID of the attached network.", - Type: []string{"string"}, - Format: "", - }, - }, - "projectID": { - SchemaProps: spec.SchemaProps{ - Description: "projectID is the project owner of the resource.", + Description: "description of the existing resource", Type: []string{"string"}, Format: "", }, }, - "status": { + "projectRef": { SchemaProps: spec.SchemaProps{ - Description: "status indicates the current status of the resource.", + Description: "projectRef is a reference to the ORC Project this resource is associated with. Typically, only used by admin.", Type: []string{"string"}, Format: "", }, @@ -6472,11 +6712,11 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_PortResourceStatus(ref "tags": { VendorExtensible: spec.VendorExtensible{ Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", + "x-kubernetes-list-type": "set", }, }, SchemaProps: spec.SchemaProps{ - Description: "tags is the list of tags on the resource.", + Description: "tags is a list of tags to filter by. If specified, the resource must have all of the tags specified to be included in the result.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ @@ -6489,80 +6729,54 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_PortResourceStatus(ref }, }, }, - "adminStateUp": { - SchemaProps: spec.SchemaProps{ - Description: "adminStateUp is the administrative state of the port, which is up (true) or down (false).", - Type: []string{"boolean"}, - Format: "", - }, - }, - "macAddress": { - SchemaProps: spec.SchemaProps{ - Description: "macAddress is the MAC address of the port.", - Type: []string{"string"}, - Format: "", - }, - }, - "deviceID": { - SchemaProps: spec.SchemaProps{ - Description: "deviceID is the ID of the device that uses this port.", - Type: []string{"string"}, - Format: "", - }, - }, - "deviceOwner": { - SchemaProps: spec.SchemaProps{ - Description: "deviceOwner is the entity type that uses this port.", - Type: []string{"string"}, - Format: "", - }, - }, - "allowedAddressPairs": { + "tagsAny": { VendorExtensible: spec.VendorExtensible{ Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", + "x-kubernetes-list-type": "set", }, }, SchemaProps: spec.SchemaProps{ - Description: "allowedAddressPairs is a set of zero or more allowed address pair objects each where address pair object contains an IP address and MAC address.", + Description: "tagsAny is a list of tags to filter by. If specified, the resource must have at least one of the tags specified to be included in the result.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AllowedAddressPairStatus"), + Default: "", + Type: []string{"string"}, + Format: "", }, }, }, }, }, - "fixedIPs": { + "notTags": { VendorExtensible: spec.VendorExtensible{ Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", + "x-kubernetes-list-type": "set", }, }, SchemaProps: spec.SchemaProps{ - Description: "fixedIPs is a set of zero or more fixed IP objects each where fixed IP object contains an IP address and subnet ID from which the IP address is assigned.", + Description: "notTags is a list of tags to filter by. If specified, resources which contain all of the given tags will be excluded from the result.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FixedIPStatus"), + Default: "", + Type: []string{"string"}, + Format: "", }, }, }, }, }, - "securityGroups": { + "notTagsAny": { VendorExtensible: spec.VendorExtensible{ Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", + "x-kubernetes-list-type": "set", }, }, SchemaProps: spec.SchemaProps{ - Description: "securityGroups contains the IDs of security groups applied to the port.", + Description: "notTagsAny is a list of tags to filter by. If specified, resources which contain any of the given tags will be excluded from the result.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ @@ -6575,122 +6789,181 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_PortResourceStatus(ref }, }, }, - "propagateUplinkStatus": { - SchemaProps: spec.SchemaProps{ - Description: "propagateUplinkStatus represents the uplink status propagation of the port.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "vnicType": { + }, + }, + }, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_RouterImport(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "RouterImport specifies an existing resource which will be imported instead of creating a new one", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "id": { SchemaProps: spec.SchemaProps{ - Description: "vnicType is the type of vNIC which this port is attached to.", + Description: "id contains the unique identifier of an existing OpenStack resource. Note that when specifying an import by ID, the resource MUST already exist. The ORC object will enter an error state if the resource does not exist.", Type: []string{"string"}, Format: "", }, }, - "portSecurityEnabled": { + "filter": { SchemaProps: spec.SchemaProps{ - Description: "portSecurityEnabled indicates whether port security is enabled or not.", - Type: []string{"boolean"}, - Format: "", + Description: "filter contains a resource query which is expected to return a single result. The controller will continue to retry if filter returns no results. If filter returns multiple results the controller will set an error state and will not continue to retry.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterFilter"), }, }, - "hostID": { + }, + }, + }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterFilter"}, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_RouterInterface(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "RouterInterface is the Schema for an ORC resource.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "kind": { SchemaProps: spec.SchemaProps{ - Description: "hostID is the ID of host where the port resides.", + Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", Type: []string{"string"}, Format: "", }, }, - "trustedVIF": { + "apiVersion": { SchemaProps: spec.SchemaProps{ - Description: "trustedVIF indicates whether the VF for the port will become trusted by physical function to perform some privileged operations.", - Type: []string{"boolean"}, + Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + Type: []string{"string"}, Format: "", }, }, - "createdAt": { + "metadata": { SchemaProps: spec.SchemaProps{ - Description: "createdAt shows the date and time when the resource was created. The date and time stamp format is ISO 8601", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + Description: "metadata contains the object metadata.", + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), }, }, - "updatedAt": { + "spec": { SchemaProps: spec.SchemaProps{ - Description: "updatedAt shows the date and time when the resource was updated. The date and time stamp format is ISO 8601", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + Description: "spec specifies the desired state of the resource.", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterInterfaceSpec"), }, }, - "revisionNumber": { + "status": { SchemaProps: spec.SchemaProps{ - Description: "revisionNumber optionally set via extensions/standard-attr-revisions", - Type: []string{"integer"}, - Format: "int64", + Description: "status defines the observed state of the resource.", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterInterfaceStatus"), }, }, }, + Required: []string{"spec"}, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AllowedAddressPairStatus", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FixedIPStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterInterfaceSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterInterfaceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_PortSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_RouterInterfaceList(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "PortSpec defines the desired state of an ORC object.", + Description: "RouterInterfaceList contains a list of RouterInterface.", Type: []string{"object"}, Properties: map[string]spec.Schema{ - "import": { + "kind": { SchemaProps: spec.SchemaProps{ - Description: "import refers to an existing OpenStack resource which will be imported instead of creating a new one.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortImport"), + Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + Type: []string{"string"}, + Format: "", }, }, - "resource": { + "apiVersion": { SchemaProps: spec.SchemaProps{ - Description: "resource specifies the desired state of the resource.\n\nresource may not be specified if the management policy is `unmanaged`.\n\nresource must be specified if the management policy is `managed`.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortResourceSpec"), + Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + Type: []string{"string"}, + Format: "", }, }, - "managementPolicy": { + "metadata": { SchemaProps: spec.SchemaProps{ - Description: "managementPolicy defines how ORC will treat the object. Valid values are `managed`: ORC will create, update, and delete the resource; `unmanaged`: ORC will import an existing resource, and will not apply updates to it or delete it.", + Description: "metadata contains the list metadata.", + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), + }, + }, + "items": { + SchemaProps: spec.SchemaProps{ + Description: "items contains a list of RouterInterface.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterInterface"), + }, + }, + }, + }, + }, + }, + Required: []string{"items"}, + }, + }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterInterface", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_RouterInterfaceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "type": { + SchemaProps: spec.SchemaProps{ + Description: "type specifies the type of the router interface.", Type: []string{"string"}, Format: "", }, }, - "managedOptions": { + "routerRef": { SchemaProps: spec.SchemaProps{ - Description: "managedOptions specifies options which may be applied to managed objects.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions"), + Description: "routerRef references the router to which this interface belongs.", + Type: []string{"string"}, + Format: "", }, }, - "cloudCredentialsRef": { + "subnetRef": { SchemaProps: spec.SchemaProps{ - Description: "cloudCredentialsRef points to a secret containing OpenStack credentials", - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference"), + Description: "subnetRef references the subnet the router interface is created on.", + Type: []string{"string"}, + Format: "", }, }, }, - Required: []string{"cloudCredentialsRef"}, + Required: []string{"type", "routerRef"}, }, }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortResourceSpec"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_PortStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_RouterInterfaceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "PortStatus defines the observed state of an ORC resource.", - Type: []string{"object"}, + Type: []string{"object"}, Properties: map[string]spec.Schema{ "conditions": { VendorExtensible: spec.VendorExtensible{ @@ -6718,57 +6991,24 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_PortStatus(ref common. }, "id": { SchemaProps: spec.SchemaProps{ - Description: "id is the unique identifier of the OpenStack resource.", + Description: "id is the unique identifier of the port created for the router interface", Type: []string{"string"}, Format: "", }, }, - "resource": { - SchemaProps: spec.SchemaProps{ - Description: "resource contains the observed state of the OpenStack resource.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortResourceStatus"), - }, - }, }, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_PortValueSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "key": { - SchemaProps: spec.SchemaProps{ - Description: "key is the name of the Neutron API extension parameter.", - Type: []string{"string"}, - Format: "", - }, - }, - "value": { - SchemaProps: spec.SchemaProps{ - Description: "value is the value of the Neutron API extension parameter.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"key", "value"}, - }, - }, + "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_Project(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_RouterList(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "Project is the Schema for an ORC resource.", + Description: "RouterList contains a list of Router.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "kind": { @@ -6787,51 +7027,50 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_Project(ref common.Ref }, "metadata": { SchemaProps: spec.SchemaProps{ - Description: "metadata contains the object metadata", - Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "spec specifies the desired state of the resource.", + Description: "metadata contains the list metadata", Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectSpec"), + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), }, }, - "status": { + "items": { SchemaProps: spec.SchemaProps{ - Description: "status defines the observed state of the resource.", - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectStatus"), + Description: "items contains a list of Router.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Router"), + }, + }, + }, }, }, }, - Required: []string{"spec"}, + Required: []string{"items"}, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Router", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ProjectFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_RouterResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "ProjectFilter defines an existing resource by its properties", - Type: []string{"object"}, + Type: []string{"object"}, Properties: map[string]spec.Schema{ "name": { SchemaProps: spec.SchemaProps{ - Description: "name of the existing resource", + Description: "name is a human-readable name of the router. If not set, the object's name will be used.", Type: []string{"string"}, Format: "", }, }, - "domainRef": { + "description": { SchemaProps: spec.SchemaProps{ - Description: "domainRef is a reference to the ORC Domain which this resource is associated with.", + Description: "description is a human-readable description for the resource.", Type: []string{"string"}, Format: "", }, @@ -6843,7 +7082,7 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_ProjectFilter(ref comm }, }, SchemaProps: spec.SchemaProps{ - Description: "tags is a list of tags to filter by. If specified, the resource must have all of the tags specified to be included in the result.", + Description: "tags is a list of tags which will be applied to the router.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ @@ -6856,54 +7095,47 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_ProjectFilter(ref comm }, }, }, - "tagsAny": { + "adminStateUp": { + SchemaProps: spec.SchemaProps{ + Description: "adminStateUp represents the administrative state of the resource, which is up (true) or down (false). Default is true.", + Type: []string{"boolean"}, + Format: "", + }, + }, + "externalGateways": { VendorExtensible: spec.VendorExtensible{ Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", + "x-kubernetes-list-type": "atomic", }, }, SchemaProps: spec.SchemaProps{ - Description: "tagsAny is a list of tags to filter by. If specified, the resource must have at least one of the tags specified to be included in the result.", + Description: "externalGateways is a list of external gateways for the router. Multiple gateways are not currently supported by ORC.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ExternalGateway"), + }, }, }, }, }, - "notTags": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, - }, + "distributed": { SchemaProps: spec.SchemaProps{ - Description: "notTags is a list of tags to filter by. If specified, resources which contain all of the given tags will be excluded from the result.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, + Description: "distributed indicates whether the router is distributed or not. It is available when dvr extension is enabled.", + Type: []string{"boolean"}, + Format: "", }, }, - "notTagsAny": { + "availabilityZoneHints": { VendorExtensible: spec.VendorExtensible{ Extensions: spec.Extensions{ "x-kubernetes-list-type": "set", }, }, SchemaProps: spec.SchemaProps{ - Description: "notTagsAny is a list of tags to filter by. If specified, resources which contain any of the given tags will be excluded from the result.", + Description: "availabilityZoneHints is the availability zone candidate for the router.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ @@ -6916,134 +7148,63 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_ProjectFilter(ref comm }, }, }, - }, - }, - }, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_ProjectImport(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ProjectImport specifies an existing resource which will be imported instead of creating a new one", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "id": { - SchemaProps: spec.SchemaProps{ - Description: "id contains the unique identifier of an existing OpenStack resource. Note that when specifying an import by ID, the resource MUST already exist. The ORC object will enter an error state if the resource does not exist.", - Type: []string{"string"}, - Format: "", - }, - }, - "filter": { - SchemaProps: spec.SchemaProps{ - Description: "filter contains a resource query which is expected to return a single result. The controller will continue to retry if filter returns no results. If filter returns multiple results the controller will set an error state and will not continue to retry.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectFilter"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectFilter"}, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_ProjectList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ProjectList contains a list of Project.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { + "projectRef": { SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + Description: "projectRef is a reference to the ORC Project this resource is associated with. Typically, only used by admin.", Type: []string{"string"}, Format: "", }, }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "metadata contains the list metadata", - Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "items contains a list of Project.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Project"), - }, - }, - }, - }, - }, }, - Required: []string{"items"}, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Project", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ExternalGateway"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ProjectResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_RouterResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "ProjectResourceSpec contains the desired state of a project", - Type: []string{"object"}, + Type: []string{"object"}, Properties: map[string]spec.Schema{ "name": { SchemaProps: spec.SchemaProps{ - Description: "name will be the name of the created resource. If not specified, the name of the ORC object will be used.", + Description: "name is the human-readable name of the resource. Might not be unique.", Type: []string{"string"}, Format: "", }, }, "description": { SchemaProps: spec.SchemaProps{ - Description: "description contains a free form description of the project.", + Description: "description is a human-readable description for the resource.", Type: []string{"string"}, Format: "", }, }, - "domainRef": { + "projectID": { SchemaProps: spec.SchemaProps{ - Description: "domainRef is a reference to the ORC Domain which this resource is associated with.", + Description: "projectID is the project owner of the resource.", Type: []string{"string"}, Format: "", }, }, - "enabled": { + "status": { SchemaProps: spec.SchemaProps{ - Description: "enabled defines whether a project is enabled or not. Default is true.", - Type: []string{"boolean"}, + Description: "status indicates the current status of the resource.", + Type: []string{"string"}, Format: "", }, }, "tags": { VendorExtensible: spec.VendorExtensible{ Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", + "x-kubernetes-list-type": "atomic", }, }, SchemaProps: spec.SchemaProps{ - Description: "tags is list of simple strings assigned to a project. Tags can be used to classify projects into groups.", + Description: "tags is the list of tags on the resource.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ @@ -7056,55 +7217,40 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_ProjectResourceSpec(re }, }, }, - }, - }, - }, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_ProjectResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ProjectResourceStatus represents the observed state of the resource.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "name is a Human-readable name for the project. Might not be unique.", - Type: []string{"string"}, - Format: "", - }, - }, - "description": { + "adminStateUp": { SchemaProps: spec.SchemaProps{ - Description: "description is a human-readable description for the resource.", - Type: []string{"string"}, + Description: "adminStateUp is the administrative state of the router, which is up (true) or down (false).", + Type: []string{"boolean"}, Format: "", }, }, - "domainID": { - SchemaProps: spec.SchemaProps{ - Description: "domainID is the ID of the Domain to which the resource is associated.", - Type: []string{"string"}, - Format: "", + "externalGateways": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, }, - }, - "enabled": { SchemaProps: spec.SchemaProps{ - Description: "enabled represents whether a project is enabled or not.", - Type: []string{"boolean"}, - Format: "", + Description: "externalGateways is a list of external gateways for the router.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ExternalGatewayStatus"), + }, + }, + }, }, }, - "tags": { + "availabilityZoneHints": { VendorExtensible: spec.VendorExtensible{ Extensions: spec.Extensions{ "x-kubernetes-list-type": "atomic", }, }, SchemaProps: spec.SchemaProps{ - Description: "tags is the list of tags on the resource.", + Description: "availabilityZoneHints is the availability zone candidate for the router.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ @@ -7120,26 +7266,28 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_ProjectResourceStatus( }, }, }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ExternalGatewayStatus"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ProjectSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_RouterSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "ProjectSpec defines the desired state of an ORC object.", + Description: "RouterSpec defines the desired state of an ORC object.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "import": { SchemaProps: spec.SchemaProps{ Description: "import refers to an existing OpenStack resource which will be imported instead of creating a new one.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectImport"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterImport"), }, }, "resource": { SchemaProps: spec.SchemaProps{ Description: "resource specifies the desired state of the resource.\n\nresource may not be specified if the management policy is `unmanaged`.\n\nresource must be specified if the management policy is `managed`.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectResourceSpec"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterResourceSpec"), }, }, "managementPolicy": { @@ -7167,15 +7315,15 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_ProjectSpec(ref common }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectResourceSpec"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterResourceSpec"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ProjectStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_RouterStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "ProjectStatus defines the observed state of an ORC resource.", + Description: "RouterStatus defines the observed state of an ORC resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "conditions": { @@ -7212,55 +7360,22 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_ProjectStatus(ref comm "resource": { SchemaProps: spec.SchemaProps{ Description: "resource contains the observed state of the OpenStack resource.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectResourceStatus"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterResourceStatus"), }, }, }, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_ProviderPropertiesStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "networkType": { - SchemaProps: spec.SchemaProps{ - Description: "networkType is the type of physical network that this network should be mapped to. Supported values are flat, vlan, vxlan, and gre. Valid values depend on the networking back-end.", - Type: []string{"string"}, - Format: "", - }, - }, - "physicalNetwork": { - SchemaProps: spec.SchemaProps{ - Description: "physicalNetwork is the physical network where this network should be implemented. The Networking API v2.0 does not provide a way to list available physical networks. For example, the Open vSwitch plug-in configuration file defines a symbolic name that maps to specific bridges on each compute host.", - Type: []string{"string"}, - Format: "", - }, - }, - "segmentationID": { - SchemaProps: spec.SchemaProps{ - Description: "segmentationID is the ID of the isolated segment on the physical network. The network_type attribute defines the segmentation model. For example, if the network_type value is vlan, this ID is a vlan identifier. If the network_type value is gre, this ID is a gre key.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - }, - }, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_Role(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroup(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "Role is the Schema for an ORC resource.", + Description: "SecurityGroup is the Schema for an ORC resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "kind": { @@ -7288,14 +7403,14 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_Role(ref common.Refere SchemaProps: spec.SchemaProps{ Description: "spec specifies the desired state of the resource.", Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleSpec"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupSpec"), }, }, "status": { SchemaProps: spec.SchemaProps{ Description: "status defines the observed state of the resource.", Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleStatus"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupStatus"), }, }, }, @@ -7303,15 +7418,15 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_Role(ref common.Refere }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_RoleFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "RoleFilter defines an existing resource by its properties", + Description: "SecurityGroupFilter defines an existing resource by its properties", Type: []string{"object"}, Properties: map[string]spec.Schema{ "name": { @@ -7321,24 +7436,111 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_RoleFilter(ref common. Format: "", }, }, - "domainRef": { + "description": { SchemaProps: spec.SchemaProps{ - Description: "domainRef is a reference to the ORC Domain which this resource is associated with.", + Description: "description of the existing resource", Type: []string{"string"}, Format: "", }, }, - }, - }, - }, + "projectRef": { + SchemaProps: spec.SchemaProps{ + Description: "projectRef is a reference to the ORC Project this resource is associated with. Typically, only used by admin.", + Type: []string{"string"}, + Format: "", + }, + }, + "tags": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "tags is a list of tags to filter by. If specified, the resource must have all of the tags specified to be included in the result.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "tagsAny": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "tagsAny is a list of tags to filter by. If specified, the resource must have at least one of the tags specified to be included in the result.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "notTags": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "notTags is a list of tags to filter by. If specified, resources which contain all of the given tags will be excluded from the result.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "notTagsAny": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "notTagsAny is a list of tags to filter by. If specified, resources which contain any of the given tags will be excluded from the result.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + }, + }, + }, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_RoleImport(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupImport(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "RoleImport specifies an existing resource which will be imported instead of creating a new one", + Description: "SecurityGroupImport specifies an existing resource which will be imported instead of creating a new one", Type: []string{"object"}, Properties: map[string]spec.Schema{ "id": { @@ -7351,22 +7553,22 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_RoleImport(ref common. "filter": { SchemaProps: spec.SchemaProps{ Description: "filter contains a resource query which is expected to return a single result. The controller will continue to retry if filter returns no results. If filter returns multiple results the controller will set an error state and will not continue to retry.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleFilter"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupFilter"), }, }, }, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleFilter"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupFilter"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_RoleList(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupList(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "RoleList contains a list of Role.", + Description: "SecurityGroupList contains a list of SecurityGroup.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "kind": { @@ -7392,13 +7594,13 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_RoleList(ref common.Re }, "items": { SchemaProps: spec.SchemaProps{ - Description: "items contains a list of Role.", + Description: "items contains a list of SecurityGroup.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Role"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroup"), }, }, }, @@ -7409,15 +7611,15 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_RoleList(ref common.Re }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Role", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroup", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_RoleResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "RoleResourceSpec contains the desired state of the resource.", + Description: "SecurityGroupResourceSpec contains the desired state of a security group", Type: []string{"object"}, Properties: map[string]spec.Schema{ "name": { @@ -7434,43 +7636,55 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_RoleResourceSpec(ref c Format: "", }, }, - "domainRef": { + "tags": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, SchemaProps: spec.SchemaProps{ - Description: "domainRef is a reference to the ORC Domain which this resource is associated with.", - Type: []string{"string"}, - Format: "", + Description: "tags is a list of tags which will be applied to the security group.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, }, }, - }, - }, - }, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_RoleResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "RoleResourceStatus represents the observed state of the resource.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { + "stateful": { SchemaProps: spec.SchemaProps{ - Description: "name is a Human-readable name for the resource. Might not be unique.", - Type: []string{"string"}, + Description: "stateful indicates if the security group is stateful or stateless.", + Type: []string{"boolean"}, Format: "", }, }, - "description": { + "rules": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, + }, SchemaProps: spec.SchemaProps{ - Description: "description is a human-readable description for the resource.", - Type: []string{"string"}, - Format: "", + Description: "rules is a list of security group rules belonging to this SG.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupRule"), + }, + }, + }, }, }, - "domainID": { + "projectRef": { SchemaProps: spec.SchemaProps{ - Description: "domainID is the ID of the Domain to which the resource is associated.", + Description: "projectRef is a reference to the ORC Project this resource is associated with. Typically, only used by admin.", Type: []string{"string"}, Format: "", }, @@ -7478,443 +7692,292 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_RoleResourceStatus(ref }, }, }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupRule"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_RoleSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "RoleSpec defines the desired state of an ORC object.", + Description: "SecurityGroupResourceStatus represents the observed state of the resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ - "import": { - SchemaProps: spec.SchemaProps{ - Description: "import refers to an existing OpenStack resource which will be imported instead of creating a new one.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleImport"), - }, - }, - "resource": { - SchemaProps: spec.SchemaProps{ - Description: "resource specifies the desired state of the resource.\n\nresource may not be specified if the management policy is `unmanaged`.\n\nresource must be specified if the management policy is `managed`.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleResourceSpec"), - }, - }, - "managementPolicy": { + "name": { SchemaProps: spec.SchemaProps{ - Description: "managementPolicy defines how ORC will treat the object. Valid values are `managed`: ORC will create, update, and delete the resource; `unmanaged`: ORC will import an existing resource, and will not apply updates to it or delete it.", + Description: "name is a Human-readable name for the security group. Might not be unique.", Type: []string{"string"}, Format: "", }, }, - "managedOptions": { + "description": { SchemaProps: spec.SchemaProps{ - Description: "managedOptions specifies options which may be applied to managed objects.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions"), + Description: "description is a human-readable description for the resource.", + Type: []string{"string"}, + Format: "", }, }, - "cloudCredentialsRef": { + "projectID": { SchemaProps: spec.SchemaProps{ - Description: "cloudCredentialsRef points to a secret containing OpenStack credentials", - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference"), + Description: "projectID is the project owner of the security group.", + Type: []string{"string"}, + Format: "", }, }, - }, - Required: []string{"cloudCredentialsRef"}, - }, - }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleResourceSpec"}, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_RoleStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "RoleStatus defines the observed state of an ORC resource.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "conditions": { + "tags": { VendorExtensible: spec.VendorExtensible{ Extensions: spec.Extensions{ - "x-kubernetes-list-map-keys": []interface{}{ - "type", - }, - "x-kubernetes-list-type": "map", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge", + "x-kubernetes-list-type": "atomic", }, }, SchemaProps: spec.SchemaProps{ - Description: "conditions represents the observed status of the object. Known .status.conditions.type are: \"Available\", \"Progressing\"\n\nAvailable represents the availability of the OpenStack resource. If it is true then the resource is ready for use.\n\nProgressing indicates whether the controller is still attempting to reconcile the current state of the OpenStack resource to the desired state. Progressing will be False either because the desired state has been achieved, or because some terminal error prevents it from ever being achieved and the controller is no longer attempting to reconcile. If Progressing is True, an observer waiting on the resource should continue to wait.", + Description: "tags is the list of tags on the resource.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Condition"), + Default: "", + Type: []string{"string"}, + Format: "", }, }, }, }, }, - "id": { + "stateful": { SchemaProps: spec.SchemaProps{ - Description: "id is the unique identifier of the OpenStack resource.", - Type: []string{"string"}, + Description: "stateful indicates if the security group is stateful or stateless.", + Type: []string{"boolean"}, Format: "", }, }, - "resource": { - SchemaProps: spec.SchemaProps{ - Description: "resource contains the observed state of the OpenStack resource.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleResourceStatus"), - }, + "rules": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "rules is a list of security group rules belonging to this SG.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupRuleStatus"), + }, + }, + }, + }, + }, + "createdAt": { + SchemaProps: spec.SchemaProps{ + Description: "createdAt shows the date and time when the resource was created. The date and time stamp format is ISO 8601", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + "updatedAt": { + SchemaProps: spec.SchemaProps{ + Description: "updatedAt shows the date and time when the resource was updated. The date and time stamp format is ISO 8601", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + "revisionNumber": { + SchemaProps: spec.SchemaProps{ + Description: "revisionNumber optionally set via extensions/standard-attr-revisions", + Type: []string{"integer"}, + Format: "int64", + }, }, }, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupRuleStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_Router(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupRule(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "Router is the Schema for an ORC resource.", + Description: "SecurityGroupRule defines a Security Group rule", Type: []string{"object"}, Properties: map[string]spec.Schema{ - "kind": { + "description": { SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + Description: "description is a human-readable description for the resource.", Type: []string{"string"}, Format: "", }, }, - "apiVersion": { + "direction": { SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + Description: "direction represents the direction in which the security group rule is applied. Can be ingress or egress.", Type: []string{"string"}, Format: "", }, }, - "metadata": { + "remoteIPPrefix": { SchemaProps: spec.SchemaProps{ - Description: "metadata contains the object metadata", - Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), + Description: "remoteIPPrefix is an IP address block. Should match the Ethertype (IPv4 or IPv6)", + Type: []string{"string"}, + Format: "", }, }, - "spec": { + "protocol": { SchemaProps: spec.SchemaProps{ - Description: "spec specifies the desired state of the resource.", - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterSpec"), + Description: "protocol is the IP protocol is represented by a string", + Type: []string{"string"}, + Format: "", }, }, - "status": { + "ethertype": { SchemaProps: spec.SchemaProps{ - Description: "status defines the observed state of the resource.", - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterStatus"), + Description: "ethertype must be IPv4 or IPv6, and addresses represented in CIDR must match the ingress or egress rules.", + Type: []string{"string"}, + Format: "", + }, + }, + "portRange": { + SchemaProps: spec.SchemaProps{ + Description: "portRange sets the minimum and maximum ports range that the security group rule matches. If the protocol is [tcp, udp, dccp sctp,udplite] PortRange.Min must be less than or equal to the PortRange.Max attribute value. If the protocol is ICMP, this PortRamge.Min must be an ICMP code and PortRange.Max should be an ICMP type", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortRangeSpec"), }, }, }, - Required: []string{"spec"}, + Required: []string{"ethertype"}, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortRangeSpec"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_RouterFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupRuleStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "RouterFilter specifies a query to select an OpenStack router. At least one property must be set.", - Type: []string{"object"}, + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "name": { + "id": { SchemaProps: spec.SchemaProps{ - Description: "name of the existing resource", + Description: "id is the ID of the security group rule.", Type: []string{"string"}, Format: "", }, }, "description": { SchemaProps: spec.SchemaProps{ - Description: "description of the existing resource", + Description: "description is a human-readable description for the resource.", Type: []string{"string"}, Format: "", }, }, - "projectRef": { + "direction": { SchemaProps: spec.SchemaProps{ - Description: "projectRef is a reference to the ORC Project this resource is associated with. Typically, only used by admin.", + Description: "direction represents the direction in which the security group rule is applied. Can be ingress or egress.", Type: []string{"string"}, Format: "", }, }, - "tags": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "tags is a list of tags to filter by. If specified, the resource must have all of the tags specified to be included in the result.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "tagsAny": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, - }, + "remoteGroupID": { SchemaProps: spec.SchemaProps{ - Description: "tagsAny is a list of tags to filter by. If specified, the resource must have at least one of the tags specified to be included in the result.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, + Description: "remoteGroupID is the remote group UUID to associate with this security group rule RemoteGroupID", + Type: []string{"string"}, + Format: "", }, }, - "notTags": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, - }, + "remoteIPPrefix": { SchemaProps: spec.SchemaProps{ - Description: "notTags is a list of tags to filter by. If specified, resources which contain all of the given tags will be excluded from the result.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, + Description: "remoteIPPrefix is an IP address block. Should match the Ethertype (IPv4 or IPv6)", + Type: []string{"string"}, + Format: "", }, }, - "notTagsAny": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, - }, + "protocol": { SchemaProps: spec.SchemaProps{ - Description: "notTagsAny is a list of tags to filter by. If specified, resources which contain any of the given tags will be excluded from the result.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, + Description: "protocol is the IP protocol can be represented by a string, an integer, or null", + Type: []string{"string"}, + Format: "", }, }, - }, - }, - }, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_RouterImport(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "RouterImport specifies an existing resource which will be imported instead of creating a new one", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "id": { + "ethertype": { SchemaProps: spec.SchemaProps{ - Description: "id contains the unique identifier of an existing OpenStack resource. Note that when specifying an import by ID, the resource MUST already exist. The ORC object will enter an error state if the resource does not exist.", + Description: "ethertype must be IPv4 or IPv6, and addresses represented in CIDR must match the ingress or egress rules.", Type: []string{"string"}, Format: "", }, }, - "filter": { + "portRange": { SchemaProps: spec.SchemaProps{ - Description: "filter contains a resource query which is expected to return a single result. The controller will continue to retry if filter returns no results. If filter returns multiple results the controller will set an error state and will not continue to retry.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterFilter"), + Description: "portRange sets the minimum and maximum ports range that the security group rule matches. If the protocol is [tcp, udp, dccp sctp,udplite] PortRange.Min must be less than or equal to the PortRange.Max attribute value. If the protocol is ICMP, this PortRamge.Min must be an ICMP code and PortRange.Max should be an ICMP type", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortRangeStatus"), }, }, }, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterFilter"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortRangeStatus"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_RouterInterface(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "RouterInterface is the Schema for an ORC resource.", + Description: "SecurityGroupSpec defines the desired state of an ORC object.", Type: []string{"object"}, Properties: map[string]spec.Schema{ - "kind": { + "import": { SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", + Description: "import refers to an existing OpenStack resource which will be imported instead of creating a new one.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupImport"), }, }, - "apiVersion": { + "resource": { SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", + Description: "resource specifies the desired state of the resource.\n\nresource may not be specified if the management policy is `unmanaged`.\n\nresource must be specified if the management policy is `managed`.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupResourceSpec"), }, }, - "metadata": { + "managementPolicy": { SchemaProps: spec.SchemaProps{ - Description: "metadata contains the object metadata.", - Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), + Description: "managementPolicy defines how ORC will treat the object. Valid values are `managed`: ORC will create, update, and delete the resource; `unmanaged`: ORC will import an existing resource, and will not apply updates to it or delete it.", + Type: []string{"string"}, + Format: "", }, }, - "spec": { + "managedOptions": { SchemaProps: spec.SchemaProps{ - Description: "spec specifies the desired state of the resource.", - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterInterfaceSpec"), + Description: "managedOptions specifies options which may be applied to managed objects.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions"), }, }, - "status": { + "cloudCredentialsRef": { SchemaProps: spec.SchemaProps{ - Description: "status defines the observed state of the resource.", + Description: "cloudCredentialsRef points to a secret containing OpenStack credentials", Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterInterfaceStatus"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference"), }, }, }, - Required: []string{"spec"}, + Required: []string{"cloudCredentialsRef"}, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterInterfaceSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterInterfaceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupResourceSpec"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_RouterInterfaceList(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "RouterInterfaceList contains a list of RouterInterface.", + Description: "SecurityGroupStatus defines the observed state of an ORC resource.", Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "metadata contains the list metadata.", - Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "items contains a list of RouterInterface.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterInterface"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterInterface", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_RouterInterfaceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "type": { - SchemaProps: spec.SchemaProps{ - Description: "type specifies the type of the router interface.", - Type: []string{"string"}, - Format: "", - }, - }, - "routerRef": { - SchemaProps: spec.SchemaProps{ - Description: "routerRef references the router to which this interface belongs.", - Type: []string{"string"}, - Format: "", - }, - }, - "subnetRef": { - SchemaProps: spec.SchemaProps{ - Description: "subnetRef references the subnet the router interface is created on.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"type", "routerRef"}, - }, - }, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_RouterInterfaceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, Properties: map[string]spec.Schema{ "conditions": { VendorExtensible: spec.VendorExtensible{ @@ -7942,24 +8005,30 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_RouterInterfaceStatus( }, "id": { SchemaProps: spec.SchemaProps{ - Description: "id is the unique identifier of the port created for the router interface", + Description: "id is the unique identifier of the OpenStack resource.", Type: []string{"string"}, Format: "", }, }, + "resource": { + SchemaProps: spec.SchemaProps{ + Description: "resource contains the observed state of the OpenStack resource.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupResourceStatus"), + }, + }, }, }, }, Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_RouterList(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_Server(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "RouterList contains a list of Router.", + Description: "Server is the Schema for an ORC resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "kind": { @@ -7978,50 +8047,51 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_RouterList(ref common. }, "metadata": { SchemaProps: spec.SchemaProps{ - Description: "metadata contains the list metadata", + Description: "metadata contains the object metadata", Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), }, }, - "items": { + "spec": { SchemaProps: spec.SchemaProps{ - Description: "items contains a list of Router.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Router"), - }, - }, - }, + Description: "spec specifies the desired state of the resource.", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerSpec"), + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Description: "status defines the observed state of the resource.", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerStatus"), }, }, }, - Required: []string{"items"}, + Required: []string{"spec"}, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Router", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_RouterResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ServerFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, + Description: "ServerFilter defines an existing resource by its properties", + Type: []string{"object"}, Properties: map[string]spec.Schema{ "name": { SchemaProps: spec.SchemaProps{ - Description: "name is a human-readable name of the router. If not set, the object's name will be used.", + Description: "name of the existing resource", Type: []string{"string"}, Format: "", }, }, - "description": { + "availabilityZone": { SchemaProps: spec.SchemaProps{ - Description: "description is a human-readable description for the resource.", + Description: "availabilityZone is the availability zone of the existing resource", Type: []string{"string"}, Format: "", }, @@ -8033,7 +8103,7 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_RouterResourceSpec(ref }, }, SchemaProps: spec.SchemaProps{ - Description: "tags is a list of tags which will be applied to the router.", + Description: "tags is a list of tags to filter by. If specified, the resource must have all of the tags specified to be included in the result.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ @@ -8046,47 +8116,34 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_RouterResourceSpec(ref }, }, }, - "adminStateUp": { - SchemaProps: spec.SchemaProps{ - Description: "adminStateUp represents the administrative state of the resource, which is up (true) or down (false). Default is true.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "externalGateways": { + "tagsAny": { VendorExtensible: spec.VendorExtensible{ Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", + "x-kubernetes-list-type": "set", }, }, SchemaProps: spec.SchemaProps{ - Description: "externalGateways is a list of external gateways for the router. Multiple gateways are not currently supported by ORC.", + Description: "tagsAny is a list of tags to filter by. If specified, the resource must have at least one of the tags specified to be included in the result.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ExternalGateway"), + Default: "", + Type: []string{"string"}, + Format: "", }, }, }, }, }, - "distributed": { - SchemaProps: spec.SchemaProps{ - Description: "distributed indicates whether the router is distributed or not. It is available when dvr extension is enabled.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "availabilityZoneHints": { + "notTags": { VendorExtensible: spec.VendorExtensible{ Extensions: spec.Extensions{ "x-kubernetes-list-type": "set", }, }, SchemaProps: spec.SchemaProps{ - Description: "availabilityZoneHints is the availability zone candidate for the router.", + Description: "notTags is a list of tags to filter by. If specified, resources which contain all of the given tags will be excluded from the result.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ @@ -8099,234 +8156,136 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_RouterResourceSpec(ref }, }, }, - "projectRef": { + "notTagsAny": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, SchemaProps: spec.SchemaProps{ - Description: "projectRef is a reference to the ORC Project this resource is associated with. Typically, only used by admin.", - Type: []string{"string"}, - Format: "", + Description: "notTagsAny is a list of tags to filter by. If specified, resources which contain any of the given tags will be excluded from the result.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, }, }, }, }, }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ExternalGateway"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_RouterResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroup(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, + Description: "ServerGroup is the Schema for an ORC resource.", + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "name is the human-readable name of the resource. Might not be unique.", - Type: []string{"string"}, - Format: "", - }, - }, - "description": { + "kind": { SchemaProps: spec.SchemaProps{ - Description: "description is a human-readable description for the resource.", + Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", Type: []string{"string"}, Format: "", }, }, - "projectID": { + "apiVersion": { SchemaProps: spec.SchemaProps{ - Description: "projectID is the project owner of the resource.", + Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", Type: []string{"string"}, Format: "", }, }, - "status": { + "metadata": { SchemaProps: spec.SchemaProps{ - Description: "status indicates the current status of the resource.", - Type: []string{"string"}, - Format: "", + Description: "metadata contains the object metadata", + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), }, }, - "tags": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, + "spec": { SchemaProps: spec.SchemaProps{ - Description: "tags is the list of tags on the resource.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, + Description: "spec specifies the desired state of the resource.", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupSpec"), }, }, - "adminStateUp": { + "status": { SchemaProps: spec.SchemaProps{ - Description: "adminStateUp is the administrative state of the router, which is up (true) or down (false).", - Type: []string{"boolean"}, - Format: "", - }, - }, - "externalGateways": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "externalGateways is a list of external gateways for the router.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ExternalGatewayStatus"), - }, - }, - }, - }, - }, - "availabilityZoneHints": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "availabilityZoneHints is the availability zone candidate for the router.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, + Description: "status defines the observed state of the resource.", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupStatus"), }, }, }, + Required: []string{"spec"}, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ExternalGatewayStatus"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_RouterSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "RouterSpec defines the desired state of an ORC object.", + Description: "ServerGroupFilter defines an existing resource by its properties", Type: []string{"object"}, Properties: map[string]spec.Schema{ - "import": { - SchemaProps: spec.SchemaProps{ - Description: "import refers to an existing OpenStack resource which will be imported instead of creating a new one.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterImport"), - }, - }, - "resource": { - SchemaProps: spec.SchemaProps{ - Description: "resource specifies the desired state of the resource.\n\nresource may not be specified if the management policy is `unmanaged`.\n\nresource must be specified if the management policy is `managed`.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterResourceSpec"), - }, - }, - "managementPolicy": { + "name": { SchemaProps: spec.SchemaProps{ - Description: "managementPolicy defines how ORC will treat the object. Valid values are `managed`: ORC will create, update, and delete the resource; `unmanaged`: ORC will import an existing resource, and will not apply updates to it or delete it.", + Description: "name of the existing resource", Type: []string{"string"}, Format: "", }, }, - "managedOptions": { - SchemaProps: spec.SchemaProps{ - Description: "managedOptions specifies options which may be applied to managed objects.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions"), - }, - }, - "cloudCredentialsRef": { - SchemaProps: spec.SchemaProps{ - Description: "cloudCredentialsRef points to a secret containing OpenStack credentials", - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference"), - }, - }, }, - Required: []string{"cloudCredentialsRef"}, }, }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterResourceSpec"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_RouterStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupImport(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "RouterStatus defines the observed state of an ORC resource.", + Description: "ServerGroupImport specifies an existing resource which will be imported instead of creating a new one", Type: []string{"object"}, Properties: map[string]spec.Schema{ - "conditions": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-map-keys": []interface{}{ - "type", - }, - "x-kubernetes-list-type": "map", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "conditions represents the observed status of the object. Known .status.conditions.type are: \"Available\", \"Progressing\"\n\nAvailable represents the availability of the OpenStack resource. If it is true then the resource is ready for use.\n\nProgressing indicates whether the controller is still attempting to reconcile the current state of the OpenStack resource to the desired state. Progressing will be False either because the desired state has been achieved, or because some terminal error prevents it from ever being achieved and the controller is no longer attempting to reconcile. If Progressing is True, an observer waiting on the resource should continue to wait.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Condition"), - }, - }, - }, - }, - }, "id": { SchemaProps: spec.SchemaProps{ - Description: "id is the unique identifier of the OpenStack resource.", + Description: "id contains the unique identifier of an existing OpenStack resource. Note that when specifying an import by ID, the resource MUST already exist. The ORC object will enter an error state if the resource does not exist.", Type: []string{"string"}, Format: "", }, }, - "resource": { + "filter": { SchemaProps: spec.SchemaProps{ - Description: "resource contains the observed state of the OpenStack resource.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterResourceStatus"), + Description: "filter contains a resource query which is expected to return a single result. The controller will continue to retry if filter returns no results. If filter returns multiple results the controller will set an error state and will not continue to retry.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupFilter"), }, }, }, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupFilter"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroup(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupList(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "SecurityGroup is the Schema for an ORC resource.", + Description: "ServerGroupList contains a list of ServerGroup.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "kind": { @@ -8345,1848 +8304,359 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroup(ref comm }, "metadata": { SchemaProps: spec.SchemaProps{ - Description: "metadata contains the object metadata", - Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "spec specifies the desired state of the resource.", + Description: "metadata contains the list metadata", Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupSpec"), + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), }, }, - "status": { + "items": { SchemaProps: spec.SchemaProps{ - Description: "status defines the observed state of the resource.", - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupStatus"), + Description: "items contains a list of ServerGroup.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroup"), + }, + }, + }, }, }, }, - Required: []string{"spec"}, + Required: []string{"items"}, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroup", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "SecurityGroupFilter defines an existing resource by its properties", + Description: "ServerGroupResourceSpec contains the desired state of a servergroup", Type: []string{"object"}, Properties: map[string]spec.Schema{ "name": { SchemaProps: spec.SchemaProps{ - Description: "name of the existing resource", - Type: []string{"string"}, - Format: "", - }, - }, - "description": { - SchemaProps: spec.SchemaProps{ - Description: "description of the existing resource", + Description: "name will be the name of the created resource. If not specified, the name of the ORC object will be used.", Type: []string{"string"}, Format: "", }, }, - "projectRef": { + "policy": { SchemaProps: spec.SchemaProps{ - Description: "projectRef is a reference to the ORC Project this resource is associated with. Typically, only used by admin.", + Description: "policy is the policy to use for the server group.", Type: []string{"string"}, Format: "", }, }, - "tags": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "tags is a list of tags to filter by. If specified, the resource must have all of the tags specified to be included in the result.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "tagsAny": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "tagsAny is a list of tags to filter by. If specified, the resource must have at least one of the tags specified to be included in the result.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "notTags": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "notTags is a list of tags to filter by. If specified, resources which contain all of the given tags will be excluded from the result.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "notTagsAny": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, - }, + "rules": { SchemaProps: spec.SchemaProps{ - Description: "notTagsAny is a list of tags to filter by. If specified, resources which contain any of the given tags will be excluded from the result.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, + Description: "rules is the rules to use for the server group.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupRules"), }, }, }, + Required: []string{"policy"}, }, }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupRules"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupImport(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "SecurityGroupImport specifies an existing resource which will be imported instead of creating a new one", + Description: "ServerGroupResourceStatus represents the observed state of the resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ - "id": { + "name": { SchemaProps: spec.SchemaProps{ - Description: "id contains the unique identifier of an existing OpenStack resource. Note that when specifying an import by ID, the resource MUST already exist. The ORC object will enter an error state if the resource does not exist.", + Description: "name is a Human-readable name for the servergroup. Might not be unique.", Type: []string{"string"}, Format: "", }, }, - "filter": { + "policy": { SchemaProps: spec.SchemaProps{ - Description: "filter contains a resource query which is expected to return a single result. The controller will continue to retry if filter returns no results. If filter returns multiple results the controller will set an error state and will not continue to retry.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupFilter"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupFilter"}, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "SecurityGroupList contains a list of SecurityGroup.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + Description: "policy is the policy of the servergroup.", Type: []string{"string"}, Format: "", }, }, - "apiVersion": { + "projectID": { SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + Description: "projectID is the project owner of the resource.", Type: []string{"string"}, Format: "", }, }, - "metadata": { + "userID": { SchemaProps: spec.SchemaProps{ - Description: "metadata contains the list metadata", - Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), + Description: "userID of the server group.", + Type: []string{"string"}, + Format: "", }, }, - "items": { + "rules": { SchemaProps: spec.SchemaProps{ - Description: "items contains a list of SecurityGroup.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroup"), - }, - }, - }, + Description: "rules is the rules of the server group.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupRulesStatus"), }, }, }, - Required: []string{"items"}, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroup", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupRulesStatus"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupRules(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "SecurityGroupResourceSpec contains the desired state of a security group", - Type: []string{"object"}, + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "name will be the name of the created resource. If not specified, the name of the ORC object will be used.", - Type: []string{"string"}, - Format: "", - }, - }, - "description": { - SchemaProps: spec.SchemaProps{ - Description: "description is a human-readable description for the resource.", - Type: []string{"string"}, - Format: "", - }, - }, - "tags": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "tags is a list of tags which will be applied to the security group.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "stateful": { - SchemaProps: spec.SchemaProps{ - Description: "stateful indicates if the security group is stateful or stateless.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "rules": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "rules is a list of security group rules belonging to this SG.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupRule"), - }, - }, - }, - }, - }, - "projectRef": { + "maxServerPerHost": { SchemaProps: spec.SchemaProps{ - Description: "projectRef is a reference to the ORC Project this resource is associated with. Typically, only used by admin.", - Type: []string{"string"}, - Format: "", + Description: "maxServerPerHost specifies how many servers can reside on a single compute host. It can be used only with the \"anti-affinity\" policy.", + Type: []string{"integer"}, + Format: "int32", }, }, }, }, }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupRule"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupRulesStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "SecurityGroupResourceStatus represents the observed state of the resource.", - Type: []string{"object"}, + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "name is a Human-readable name for the security group. Might not be unique.", - Type: []string{"string"}, - Format: "", - }, - }, - "description": { - SchemaProps: spec.SchemaProps{ - Description: "description is a human-readable description for the resource.", - Type: []string{"string"}, - Format: "", - }, - }, - "projectID": { - SchemaProps: spec.SchemaProps{ - Description: "projectID is the project owner of the security group.", - Type: []string{"string"}, - Format: "", - }, - }, - "tags": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "tags is the list of tags on the resource.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "stateful": { - SchemaProps: spec.SchemaProps{ - Description: "stateful indicates if the security group is stateful or stateless.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "rules": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "rules is a list of security group rules belonging to this SG.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupRuleStatus"), - }, - }, - }, - }, - }, - "createdAt": { - SchemaProps: spec.SchemaProps{ - Description: "createdAt shows the date and time when the resource was created. The date and time stamp format is ISO 8601", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "updatedAt": { - SchemaProps: spec.SchemaProps{ - Description: "updatedAt shows the date and time when the resource was updated. The date and time stamp format is ISO 8601", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "revisionNumber": { + "maxServerPerHost": { SchemaProps: spec.SchemaProps{ - Description: "revisionNumber optionally set via extensions/standard-attr-revisions", + Description: "maxServerPerHost specifies how many servers can reside on a single compute host. It can be used only with the \"anti-affinity\" policy.", Type: []string{"integer"}, - Format: "int64", + Format: "int32", }, }, }, }, }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupRuleStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupRule(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "SecurityGroupRule defines a Security Group rule", + Description: "ServerGroupSpec defines the desired state of an ORC object.", Type: []string{"object"}, Properties: map[string]spec.Schema{ - "description": { - SchemaProps: spec.SchemaProps{ - Description: "description is a human-readable description for the resource.", - Type: []string{"string"}, - Format: "", - }, - }, - "direction": { + "import": { SchemaProps: spec.SchemaProps{ - Description: "direction represents the direction in which the security group rule is applied. Can be ingress or egress.", - Type: []string{"string"}, - Format: "", + Description: "import refers to an existing OpenStack resource which will be imported instead of creating a new one.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupImport"), }, }, - "remoteIPPrefix": { + "resource": { SchemaProps: spec.SchemaProps{ - Description: "remoteIPPrefix is an IP address block. Should match the Ethertype (IPv4 or IPv6)", - Type: []string{"string"}, - Format: "", + Description: "resource specifies the desired state of the resource.\n\nresource may not be specified if the management policy is `unmanaged`.\n\nresource must be specified if the management policy is `managed`.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupResourceSpec"), }, }, - "protocol": { + "managementPolicy": { SchemaProps: spec.SchemaProps{ - Description: "protocol is the IP protocol is represented by a string", + Description: "managementPolicy defines how ORC will treat the object. Valid values are `managed`: ORC will create, update, and delete the resource; `unmanaged`: ORC will import an existing resource, and will not apply updates to it or delete it.", Type: []string{"string"}, Format: "", }, }, - "ethertype": { + "managedOptions": { SchemaProps: spec.SchemaProps{ - Description: "ethertype must be IPv4 or IPv6, and addresses represented in CIDR must match the ingress or egress rules.", - Type: []string{"string"}, - Format: "", + Description: "managedOptions specifies options which may be applied to managed objects.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions"), }, }, - "portRange": { - SchemaProps: spec.SchemaProps{ - Description: "portRange sets the minimum and maximum ports range that the security group rule matches. If the protocol is [tcp, udp, dccp sctp,udplite] PortRange.Min must be less than or equal to the PortRange.Max attribute value. If the protocol is ICMP, this PortRamge.Min must be an ICMP code and PortRange.Max should be an ICMP type", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortRangeSpec"), - }, - }, - }, - Required: []string{"ethertype"}, - }, - }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortRangeSpec"}, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupRuleStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "id": { - SchemaProps: spec.SchemaProps{ - Description: "id is the ID of the security group rule.", - Type: []string{"string"}, - Format: "", - }, - }, - "description": { - SchemaProps: spec.SchemaProps{ - Description: "description is a human-readable description for the resource.", - Type: []string{"string"}, - Format: "", - }, - }, - "direction": { - SchemaProps: spec.SchemaProps{ - Description: "direction represents the direction in which the security group rule is applied. Can be ingress or egress.", - Type: []string{"string"}, - Format: "", - }, - }, - "remoteGroupID": { - SchemaProps: spec.SchemaProps{ - Description: "remoteGroupID is the remote group UUID to associate with this security group rule RemoteGroupID", - Type: []string{"string"}, - Format: "", - }, - }, - "remoteIPPrefix": { - SchemaProps: spec.SchemaProps{ - Description: "remoteIPPrefix is an IP address block. Should match the Ethertype (IPv4 or IPv6)", - Type: []string{"string"}, - Format: "", - }, - }, - "protocol": { - SchemaProps: spec.SchemaProps{ - Description: "protocol is the IP protocol can be represented by a string, an integer, or null", - Type: []string{"string"}, - Format: "", - }, - }, - "ethertype": { - SchemaProps: spec.SchemaProps{ - Description: "ethertype must be IPv4 or IPv6, and addresses represented in CIDR must match the ingress or egress rules.", - Type: []string{"string"}, - Format: "", - }, - }, - "portRange": { - SchemaProps: spec.SchemaProps{ - Description: "portRange sets the minimum and maximum ports range that the security group rule matches. If the protocol is [tcp, udp, dccp sctp,udplite] PortRange.Min must be less than or equal to the PortRange.Max attribute value. If the protocol is ICMP, this PortRamge.Min must be an ICMP code and PortRange.Max should be an ICMP type", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortRangeStatus"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortRangeStatus"}, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "SecurityGroupSpec defines the desired state of an ORC object.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "import": { - SchemaProps: spec.SchemaProps{ - Description: "import refers to an existing OpenStack resource which will be imported instead of creating a new one.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupImport"), - }, - }, - "resource": { - SchemaProps: spec.SchemaProps{ - Description: "resource specifies the desired state of the resource.\n\nresource may not be specified if the management policy is `unmanaged`.\n\nresource must be specified if the management policy is `managed`.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupResourceSpec"), - }, - }, - "managementPolicy": { - SchemaProps: spec.SchemaProps{ - Description: "managementPolicy defines how ORC will treat the object. Valid values are `managed`: ORC will create, update, and delete the resource; `unmanaged`: ORC will import an existing resource, and will not apply updates to it or delete it.", - Type: []string{"string"}, - Format: "", - }, - }, - "managedOptions": { - SchemaProps: spec.SchemaProps{ - Description: "managedOptions specifies options which may be applied to managed objects.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions"), - }, - }, - "cloudCredentialsRef": { + "cloudCredentialsRef": { SchemaProps: spec.SchemaProps{ Description: "cloudCredentialsRef points to a secret containing OpenStack credentials", Default: map[string]interface{}{}, Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference"), }, }, - }, - Required: []string{"cloudCredentialsRef"}, - }, - }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupResourceSpec"}, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "SecurityGroupStatus defines the observed state of an ORC resource.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "conditions": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-map-keys": []interface{}{ - "type", - }, - "x-kubernetes-list-type": "map", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "conditions represents the observed status of the object. Known .status.conditions.type are: \"Available\", \"Progressing\"\n\nAvailable represents the availability of the OpenStack resource. If it is true then the resource is ready for use.\n\nProgressing indicates whether the controller is still attempting to reconcile the current state of the OpenStack resource to the desired state. Progressing will be False either because the desired state has been achieved, or because some terminal error prevents it from ever being achieved and the controller is no longer attempting to reconcile. If Progressing is True, an observer waiting on the resource should continue to wait.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Condition"), - }, - }, - }, - }, - }, - "id": { - SchemaProps: spec.SchemaProps{ - Description: "id is the unique identifier of the OpenStack resource.", - Type: []string{"string"}, - Format: "", - }, - }, - "resource": { - SchemaProps: spec.SchemaProps{ - Description: "resource contains the observed state of the OpenStack resource.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupResourceStatus"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_Server(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Server is the Schema for an ORC resource.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "metadata contains the object metadata", - Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "spec specifies the desired state of the resource.", - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "status defines the observed state of the resource.", - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerStatus"), - }, - }, - }, - Required: []string{"spec"}, - }, - }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_ServerBootVolumeSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ServerBootVolumeSpec defines the boot volume for boot-from-volume server creation. When specified, the server boots from this volume instead of an image.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "volumeRef": { - SchemaProps: spec.SchemaProps{ - Description: "volumeRef is a reference to a Volume object. The volume must be bootable (created from an image) and available before server creation.", - Type: []string{"string"}, - Format: "", - }, - }, - "tag": { - SchemaProps: spec.SchemaProps{ - Description: "tag is the device tag applied to the volume.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"volumeRef"}, - }, - }, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_ServerFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ServerFilter defines an existing resource by its properties", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "name of the existing resource", - Type: []string{"string"}, - Format: "", - }, - }, - "availabilityZone": { - SchemaProps: spec.SchemaProps{ - Description: "availabilityZone is the availability zone of the existing resource", - Type: []string{"string"}, - Format: "", - }, - }, - "tags": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "tags is a list of tags to filter by. If specified, the resource must have all of the tags specified to be included in the result.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "tagsAny": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "tagsAny is a list of tags to filter by. If specified, the resource must have at least one of the tags specified to be included in the result.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "notTags": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "notTags is a list of tags to filter by. If specified, resources which contain all of the given tags will be excluded from the result.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "notTagsAny": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "notTagsAny is a list of tags to filter by. If specified, resources which contain any of the given tags will be excluded from the result.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - }, - }, - }, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroup(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ServerGroup is the Schema for an ORC resource.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "metadata contains the object metadata", - Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "spec specifies the desired state of the resource.", - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "status defines the observed state of the resource.", - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupStatus"), - }, - }, - }, - Required: []string{"spec"}, - }, - }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ServerGroupFilter defines an existing resource by its properties", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "name of the existing resource", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupImport(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ServerGroupImport specifies an existing resource which will be imported instead of creating a new one", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "id": { - SchemaProps: spec.SchemaProps{ - Description: "id contains the unique identifier of an existing OpenStack resource. Note that when specifying an import by ID, the resource MUST already exist. The ORC object will enter an error state if the resource does not exist.", - Type: []string{"string"}, - Format: "", - }, - }, - "filter": { - SchemaProps: spec.SchemaProps{ - Description: "filter contains a resource query which is expected to return a single result. The controller will continue to retry if filter returns no results. If filter returns multiple results the controller will set an error state and will not continue to retry.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupFilter"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupFilter"}, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ServerGroupList contains a list of ServerGroup.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "metadata contains the list metadata", - Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "items contains a list of ServerGroup.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroup"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroup", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ServerGroupResourceSpec contains the desired state of a servergroup", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "name will be the name of the created resource. If not specified, the name of the ORC object will be used.", - Type: []string{"string"}, - Format: "", - }, - }, - "policy": { - SchemaProps: spec.SchemaProps{ - Description: "policy is the policy to use for the server group.", - Type: []string{"string"}, - Format: "", - }, - }, - "rules": { - SchemaProps: spec.SchemaProps{ - Description: "rules is the rules to use for the server group.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupRules"), - }, - }, - }, - Required: []string{"policy"}, - }, - }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupRules"}, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ServerGroupResourceStatus represents the observed state of the resource.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "name is a Human-readable name for the servergroup. Might not be unique.", - Type: []string{"string"}, - Format: "", - }, - }, - "policy": { - SchemaProps: spec.SchemaProps{ - Description: "policy is the policy of the servergroup.", - Type: []string{"string"}, - Format: "", - }, - }, - "projectID": { - SchemaProps: spec.SchemaProps{ - Description: "projectID is the project owner of the resource.", - Type: []string{"string"}, - Format: "", - }, - }, - "userID": { - SchemaProps: spec.SchemaProps{ - Description: "userID of the server group.", - Type: []string{"string"}, - Format: "", - }, - }, - "rules": { - SchemaProps: spec.SchemaProps{ - Description: "rules is the rules of the server group.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupRulesStatus"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupRulesStatus"}, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupRules(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "maxServerPerHost": { - SchemaProps: spec.SchemaProps{ - Description: "maxServerPerHost specifies how many servers can reside on a single compute host. It can be used only with the \"anti-affinity\" policy.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - }, - }, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupRulesStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "maxServerPerHost": { - SchemaProps: spec.SchemaProps{ - Description: "maxServerPerHost specifies how many servers can reside on a single compute host. It can be used only with the \"anti-affinity\" policy.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - }, - }, - }, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ServerGroupSpec defines the desired state of an ORC object.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "import": { - SchemaProps: spec.SchemaProps{ - Description: "import refers to an existing OpenStack resource which will be imported instead of creating a new one.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupImport"), - }, - }, - "resource": { - SchemaProps: spec.SchemaProps{ - Description: "resource specifies the desired state of the resource.\n\nresource may not be specified if the management policy is `unmanaged`.\n\nresource must be specified if the management policy is `managed`.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupResourceSpec"), - }, - }, - "managementPolicy": { - SchemaProps: spec.SchemaProps{ - Description: "managementPolicy defines how ORC will treat the object. Valid values are `managed`: ORC will create, update, and delete the resource; `unmanaged`: ORC will import an existing resource, and will not apply updates to it or delete it.", - Type: []string{"string"}, - Format: "", - }, - }, - "managedOptions": { - SchemaProps: spec.SchemaProps{ - Description: "managedOptions specifies options which may be applied to managed objects.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions"), - }, - }, - "cloudCredentialsRef": { - SchemaProps: spec.SchemaProps{ - Description: "cloudCredentialsRef points to a secret containing OpenStack credentials", - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference"), - }, - }, - }, - Required: []string{"cloudCredentialsRef"}, - }, - }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupResourceSpec"}, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ServerGroupStatus defines the observed state of an ORC resource.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "conditions": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-map-keys": []interface{}{ - "type", - }, - "x-kubernetes-list-type": "map", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "conditions represents the observed status of the object. Known .status.conditions.type are: \"Available\", \"Progressing\"\n\nAvailable represents the availability of the OpenStack resource. If it is true then the resource is ready for use.\n\nProgressing indicates whether the controller is still attempting to reconcile the current state of the OpenStack resource to the desired state. Progressing will be False either because the desired state has been achieved, or because some terminal error prevents it from ever being achieved and the controller is no longer attempting to reconcile. If Progressing is True, an observer waiting on the resource should continue to wait.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Condition"), - }, - }, - }, - }, - }, - "id": { - SchemaProps: spec.SchemaProps{ - Description: "id is the unique identifier of the OpenStack resource.", - Type: []string{"string"}, - Format: "", - }, - }, - "resource": { - SchemaProps: spec.SchemaProps{ - Description: "resource contains the observed state of the OpenStack resource.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupResourceStatus"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_ServerImport(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ServerImport specifies an existing resource which will be imported instead of creating a new one", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "id": { - SchemaProps: spec.SchemaProps{ - Description: "id contains the unique identifier of an existing OpenStack resource. Note that when specifying an import by ID, the resource MUST already exist. The ORC object will enter an error state if the resource does not exist.", - Type: []string{"string"}, - Format: "", - }, - }, - "filter": { - SchemaProps: spec.SchemaProps{ - Description: "filter contains a resource query which is expected to return a single result. The controller will continue to retry if filter returns no results. If filter returns multiple results the controller will set an error state and will not continue to retry.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerFilter"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerFilter"}, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_ServerInterfaceFixedIP(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "ipAddress": { - SchemaProps: spec.SchemaProps{ - Description: "ipAddress is the IP address assigned to the port.", - Type: []string{"string"}, - Format: "", - }, - }, - "subnetID": { - SchemaProps: spec.SchemaProps{ - Description: "subnetID is the ID of the subnet from which the IP address is allocated.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_ServerInterfaceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "portID": { - SchemaProps: spec.SchemaProps{ - Description: "portID is the ID of a port attached to the server.", - Type: []string{"string"}, - Format: "", - }, - }, - "netID": { - SchemaProps: spec.SchemaProps{ - Description: "netID is the ID of the network to which the interface is attached.", - Type: []string{"string"}, - Format: "", - }, - }, - "macAddr": { - SchemaProps: spec.SchemaProps{ - Description: "macAddr is the MAC address of the interface.", - Type: []string{"string"}, - Format: "", - }, - }, - "portState": { - SchemaProps: spec.SchemaProps{ - Description: "portState is the state of the port (e.g., ACTIVE, DOWN).", - Type: []string{"string"}, - Format: "", - }, - }, - "fixedIPs": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "fixedIPs is the list of fixed IP addresses assigned to the interface.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerInterfaceFixedIP"), - }, - }, - }, - }, - }, - }, - }, - }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerInterfaceFixedIP"}, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_ServerList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ServerList contains a list of Server.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "metadata contains the list metadata", - Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "items contains a list of Server.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Server"), - }, - }, - }, - }, - }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Server", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_ServerMetadata(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ServerMetadata represents a key-value pair for server metadata.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "key": { - SchemaProps: spec.SchemaProps{ - Description: "key is the metadata key.", - Type: []string{"string"}, - Format: "", - }, - }, - "value": { - SchemaProps: spec.SchemaProps{ - Description: "value is the metadata value.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"key", "value"}, - }, - }, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_ServerMetadataStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ServerMetadataStatus represents a key-value pair for server metadata in status.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "key": { - SchemaProps: spec.SchemaProps{ - Description: "key is the metadata key.", - Type: []string{"string"}, - Format: "", - }, - }, - "value": { - SchemaProps: spec.SchemaProps{ - Description: "value is the metadata value.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_ServerPortSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "portRef": { - SchemaProps: spec.SchemaProps{ - Description: "portRef is a reference to a Port object. Server creation will wait for this port to be created and available.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_ServerResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ServerResourceSpec contains the desired state of a server", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "name will be the name of the created resource. If not specified, the name of the ORC object will be used.", - Type: []string{"string"}, - Format: "", - }, - }, - "imageRef": { - SchemaProps: spec.SchemaProps{ - Description: "imageRef references the image to use for the server instance. This field is required unless bootVolume is specified for boot-from-volume.", - Type: []string{"string"}, - Format: "", - }, - }, - "flavorRef": { - SchemaProps: spec.SchemaProps{ - Description: "flavorRef references the flavor to use for the server instance.", - Type: []string{"string"}, - Format: "", - }, - }, - "bootVolume": { - SchemaProps: spec.SchemaProps{ - Description: "bootVolume specifies a volume to boot from instead of an image. When specified, imageRef must be omitted. The volume must be bootable (created from an image using imageRef in the Volume spec).", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerBootVolumeSpec"), - }, - }, - "userData": { - SchemaProps: spec.SchemaProps{ - Description: "userData specifies data which will be made available to the server at boot time, either via the metadata service or a config drive. It is typically read by a configuration service such as cloud-init or ignition.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.UserDataSpec"), - }, - }, - "ports": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "ports defines a list of ports which will be attached to the server.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerPortSpec"), - }, - }, - }, - }, - }, - "volumes": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "volumes is a list of volumes attached to the server.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerVolumeSpec"), - }, - }, - }, - }, - }, - "availabilityZone": { - SchemaProps: spec.SchemaProps{ - Description: "availabilityZone is the availability zone in which to create the server.", - Type: []string{"string"}, - Format: "", - }, - }, - "keypairRef": { - SchemaProps: spec.SchemaProps{ - Description: "keypairRef is a reference to a KeyPair object. The server will be created with this keypair for SSH access.", - Type: []string{"string"}, - Format: "", - }, - }, - "tags": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "tags is a list of tags which will be applied to the server.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "metadata": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "metadata is a list of metadata key-value pairs which will be set on the server.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerMetadata"), - }, - }, - }, - }, - }, - "configDrive": { - SchemaProps: spec.SchemaProps{ - Description: "configDrive specifies whether to attach a config drive to the server. When true, configuration data will be available via a special drive instead of the metadata service.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "schedulerHints": { - SchemaProps: spec.SchemaProps{ - Description: "schedulerHints provides hints to the Nova scheduler for server placement.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerSchedulerHints"), - }, - }, - }, - Required: []string{"flavorRef", "ports"}, - }, - }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerBootVolumeSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerMetadata", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerPortSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerSchedulerHints", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerVolumeSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.UserDataSpec"}, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_ServerResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ServerResourceStatus represents the observed state of the resource.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "name is the human-readable name of the resource. Might not be unique.", - Type: []string{"string"}, - Format: "", - }, - }, - "hostID": { - SchemaProps: spec.SchemaProps{ - Description: "hostID is the host where the server is located in the cloud.", - Type: []string{"string"}, - Format: "", - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "status contains the current operational status of the server, such as IN_PROGRESS or ACTIVE.", - Type: []string{"string"}, - Format: "", - }, - }, - "imageID": { - SchemaProps: spec.SchemaProps{ - Description: "imageID indicates the OS image used to deploy the server.", - Type: []string{"string"}, - Format: "", - }, - }, - "availabilityZone": { - SchemaProps: spec.SchemaProps{ - Description: "availabilityZone is the availability zone where the server is located.", - Type: []string{"string"}, - Format: "", - }, - }, - "serverGroups": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "serverGroups is a slice of strings containing the UUIDs of the server groups to which the server belongs. Currently this can contain at most one entry.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "volumes": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "volumes contains the volumes attached to the server.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerVolumeStatus"), - }, - }, - }, - }, - }, - "interfaces": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "interfaces contains the list of interfaces attached to the server.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerInterfaceStatus"), - }, - }, - }, - }, - }, - "tags": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "tags is the list of tags on the resource.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "metadata": { + }, + Required: []string{"cloudCredentialsRef"}, + }, + }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupResourceSpec"}, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "ServerGroupStatus defines the observed state of an ORC resource.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "conditions": { VendorExtensible: spec.VendorExtensible{ Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", + "x-kubernetes-list-map-keys": []interface{}{ + "type", + }, + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge", }, }, SchemaProps: spec.SchemaProps{ - Description: "metadata is the list of metadata key-value pairs on the resource.", + Description: "conditions represents the observed status of the object. Known .status.conditions.type are: \"Available\", \"Progressing\"\n\nAvailable represents the availability of the OpenStack resource. If it is true then the resource is ready for use.\n\nProgressing indicates whether the controller is still attempting to reconcile the current state of the OpenStack resource to the desired state. Progressing will be False either because the desired state has been achieved, or because some terminal error prevents it from ever being achieved and the controller is no longer attempting to reconcile. If Progressing is True, an observer waiting on the resource should continue to wait.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerMetadataStatus"), + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Condition"), }, }, }, }, }, - "configDrive": { + "id": { SchemaProps: spec.SchemaProps{ - Description: "configDrive indicates whether the server was booted with a config drive.", - Type: []string{"boolean"}, + Description: "id is the unique identifier of the OpenStack resource.", + Type: []string{"string"}, Format: "", }, }, + "resource": { + SchemaProps: spec.SchemaProps{ + Description: "resource contains the observed state of the OpenStack resource.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupResourceStatus"), + }, + }, }, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerInterfaceStatus", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerMetadataStatus", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerVolumeStatus"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ServerSchedulerHints(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ServerImport(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "ServerSchedulerHints provides hints to the Nova scheduler for server placement.", + Description: "ServerImport specifies an existing resource which will be imported instead of creating a new one", Type: []string{"object"}, Properties: map[string]spec.Schema{ - "serverGroupRef": { + "id": { SchemaProps: spec.SchemaProps{ - Description: "serverGroupRef is a reference to a ServerGroup object. The server will be scheduled on a host in the specified server group.", + Description: "id contains the unique identifier of an existing OpenStack resource. Note that when specifying an import by ID, the resource MUST already exist. The ORC object will enter an error state if the resource does not exist.", Type: []string{"string"}, Format: "", }, }, - "differentHostServerRefs": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, - }, + "filter": { SchemaProps: spec.SchemaProps{ - Description: "differentHostServerRefs is a list of references to Server objects. The server will be scheduled on a different host than all specified servers.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, + Description: "filter contains a resource query which is expected to return a single result. The controller will continue to retry if filter returns no results. If filter returns multiple results the controller will set an error state and will not continue to retry.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerFilter"), }, }, - "sameHostServerRefs": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, - }, + }, + }, + }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerFilter"}, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_ServerInterfaceFixedIP(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "ipAddress": { SchemaProps: spec.SchemaProps{ - Description: "sameHostServerRefs is a list of references to Server objects. The server will be scheduled on the same host as all specified servers.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, + Description: "ipAddress is the IP address assigned to the port.", + Type: []string{"string"}, + Format: "", }, }, - "query": { + "subnetID": { SchemaProps: spec.SchemaProps{ - Description: "query is a conditional statement that results in compute nodes able to host the server.", + Description: "subnetID is the ID of the subnet from which the IP address is allocated.", Type: []string{"string"}, Format: "", }, }, - "targetCell": { + }, + }, + }, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_ServerInterfaceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "portID": { SchemaProps: spec.SchemaProps{ - Description: "targetCell is a cell name where the server will be placed.", + Description: "portID is the ID of a port attached to the server.", Type: []string{"string"}, Format: "", }, }, - "differentCell": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, + "netID": { + SchemaProps: spec.SchemaProps{ + Description: "netID is the ID of the network to which the interface is attached.", + Type: []string{"string"}, + Format: "", }, + }, + "macAddr": { SchemaProps: spec.SchemaProps{ - Description: "differentCell is a list of cell names where the server should not be placed.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, + Description: "macAddr is the MAC address of the interface.", + Type: []string{"string"}, + Format: "", }, }, - "buildNearHostIP": { + "portState": { SchemaProps: spec.SchemaProps{ - Description: "buildNearHostIP specifies a subnet of compute nodes to host the server. The host IP should be provided in an CIDR format like 10.10.10.10/24.", + Description: "portState is the state of the port (e.g., ACTIVE, DOWN).", Type: []string{"string"}, Format: "", }, }, - "additionalProperties": { + "fixedIPs": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, + }, SchemaProps: spec.SchemaProps{ - Description: "additionalProperties is a map of arbitrary key/value pairs that are not validated by Nova.", - Type: []string{"object"}, - AdditionalProperties: &spec.SchemaOrBool{ - Allows: true, + Description: "fixedIPs is the list of fixed IP addresses assigned to the interface.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerInterfaceFixedIP"), }, }, }, @@ -10195,145 +8665,126 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_ServerSchedulerHints(r }, }, }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerInterfaceFixedIP"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ServerSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ServerList(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "ServerSpec defines the desired state of an ORC object.", + Description: "ServerList contains a list of Server.", Type: []string{"object"}, Properties: map[string]spec.Schema{ - "import": { - SchemaProps: spec.SchemaProps{ - Description: "import refers to an existing OpenStack resource which will be imported instead of creating a new one.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerImport"), - }, - }, - "resource": { + "kind": { SchemaProps: spec.SchemaProps{ - Description: "resource specifies the desired state of the resource.\n\nresource may not be specified if the management policy is `unmanaged`.\n\nresource must be specified if the management policy is `managed`.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerResourceSpec"), + Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + Type: []string{"string"}, + Format: "", }, }, - "managementPolicy": { + "apiVersion": { SchemaProps: spec.SchemaProps{ - Description: "managementPolicy defines how ORC will treat the object. Valid values are `managed`: ORC will create, update, and delete the resource; `unmanaged`: ORC will import an existing resource, and will not apply updates to it or delete it.", + Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", Type: []string{"string"}, Format: "", }, }, - "managedOptions": { + "metadata": { SchemaProps: spec.SchemaProps{ - Description: "managedOptions specifies options which may be applied to managed objects.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions"), + Description: "metadata contains the list metadata", + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), }, }, - "cloudCredentialsRef": { + "items": { SchemaProps: spec.SchemaProps{ - Description: "cloudCredentialsRef points to a secret containing OpenStack credentials", - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference"), + Description: "items contains a list of Server.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Server"), + }, + }, + }, }, }, }, - Required: []string{"cloudCredentialsRef"}, + Required: []string{"items"}, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerResourceSpec"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Server", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ServerStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ServerMetadata(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "ServerStatus defines the observed state of an ORC resource.", + Description: "ServerMetadata represents a key-value pair for server metadata.", Type: []string{"object"}, Properties: map[string]spec.Schema{ - "conditions": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-map-keys": []interface{}{ - "type", - }, - "x-kubernetes-list-type": "map", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "conditions represents the observed status of the object. Known .status.conditions.type are: \"Available\", \"Progressing\"\n\nAvailable represents the availability of the OpenStack resource. If it is true then the resource is ready for use.\n\nProgressing indicates whether the controller is still attempting to reconcile the current state of the OpenStack resource to the desired state. Progressing will be False either because the desired state has been achieved, or because some terminal error prevents it from ever being achieved and the controller is no longer attempting to reconcile. If Progressing is True, an observer waiting on the resource should continue to wait.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Condition"), - }, - }, - }, - }, - }, - "id": { + "key": { SchemaProps: spec.SchemaProps{ - Description: "id is the unique identifier of the OpenStack resource.", + Description: "key is the metadata key.", Type: []string{"string"}, Format: "", }, }, - "resource": { + "value": { SchemaProps: spec.SchemaProps{ - Description: "resource contains the observed state of the OpenStack resource.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerResourceStatus"), + Description: "value is the metadata value.", + Type: []string{"string"}, + Format: "", }, }, }, + Required: []string{"key", "value"}, }, }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ServerVolumeSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ServerMetadataStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, + Description: "ServerMetadataStatus represents a key-value pair for server metadata in status.", + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "volumeRef": { + "key": { SchemaProps: spec.SchemaProps{ - Description: "volumeRef is a reference to a Volume object. Server creation will wait for this volume to be created and available.", + Description: "key is the metadata key.", Type: []string{"string"}, Format: "", }, }, - "device": { + "value": { SchemaProps: spec.SchemaProps{ - Description: "device is the name of the device, such as `/dev/vdb`. Omit for auto-assignment", + Description: "value is the metadata value.", Type: []string{"string"}, Format: "", }, }, }, - Required: []string{"volumeRef"}, }, }, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ServerVolumeStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ServerPortSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ Type: []string{"object"}, Properties: map[string]spec.Schema{ - "id": { + "portRef": { SchemaProps: spec.SchemaProps{ - Description: "id is the ID of a volume attached to the server.", + Description: "portRef is a reference to a Port object. Server creation will wait for this port to be created and available.", Type: []string{"string"}, Format: "", }, @@ -10344,236 +8795,296 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_ServerVolumeStatus(ref } } -func schema_openstack_resource_controller_v2_api_v1alpha1_Service(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ServerResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "Service is the Schema for an ORC resource.", + Description: "ServerResourceSpec contains the desired state of a server", Type: []string{"object"}, Properties: map[string]spec.Schema{ - "kind": { + "name": { SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + Description: "name will be the name of the created resource. If not specified, the name of the ORC object will be used.", Type: []string{"string"}, Format: "", }, }, - "apiVersion": { + "imageRef": { SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + Description: "imageRef references the image to use for the server instance. NOTE: This is not required in case of boot from volume.", Type: []string{"string"}, Format: "", }, }, - "metadata": { + "flavorRef": { SchemaProps: spec.SchemaProps{ - Description: "metadata contains the object metadata", - Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), + Description: "flavorRef references the flavor to use for the server instance.", + Type: []string{"string"}, + Format: "", }, }, - "spec": { + "userData": { SchemaProps: spec.SchemaProps{ - Description: "spec specifies the desired state of the resource.", - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceSpec"), + Description: "userData specifies data which will be made available to the server at boot time, either via the metadata service or a config drive. It is typically read by a configuration service such as cloud-init or ignition.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.UserDataSpec"), }, }, - "status": { + "ports": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, + }, SchemaProps: spec.SchemaProps{ - Description: "status defines the observed state of the resource.", - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceStatus"), + Description: "ports defines a list of ports which will be attached to the server.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerPortSpec"), + }, + }, + }, }, }, - }, - Required: []string{"spec"}, - }, - }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_ServiceFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ServiceFilter defines an existing resource by its properties", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { + "volumes": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, + }, SchemaProps: spec.SchemaProps{ - Description: "name of the existing resource", - Type: []string{"string"}, - Format: "", + Description: "volumes is a list of volumes attached to the server.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerVolumeSpec"), + }, + }, + }, }, }, - "type": { + "serverGroupRef": { SchemaProps: spec.SchemaProps{ - Description: "type of the existing resource", + Description: "serverGroupRef is a reference to a ServerGroup object. The server will be created in the server group.", Type: []string{"string"}, Format: "", }, }, - }, - }, - }, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_ServiceImport(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ServiceImport specifies an existing resource which will be imported instead of creating a new one", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "id": { + "availabilityZone": { SchemaProps: spec.SchemaProps{ - Description: "id contains the unique identifier of an existing OpenStack resource. Note that when specifying an import by ID, the resource MUST already exist. The ORC object will enter an error state if the resource does not exist.", + Description: "availabilityZone is the availability zone in which to create the server.", Type: []string{"string"}, Format: "", }, }, - "filter": { - SchemaProps: spec.SchemaProps{ - Description: "filter contains a resource query which is expected to return a single result. The controller will continue to retry if filter returns no results. If filter returns multiple results the controller will set an error state and will not continue to retry.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceFilter"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceFilter"}, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_ServiceList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ServiceList contains a list of Service.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { + "keypairRef": { SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + Description: "keypairRef is a reference to a KeyPair object. The server will be created with this keypair for SSH access.", Type: []string{"string"}, Format: "", }, }, - "apiVersion": { + "tags": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", + Description: "tags is a list of tags which will be applied to the server.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, }, }, "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "metadata contains the list metadata", - Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, }, - }, - "items": { SchemaProps: spec.SchemaProps{ - Description: "items contains a list of Service.", + Description: "metadata is a list of metadata key-value pairs which will be set on the server.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Service"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerMetadata"), }, }, }, }, }, + "configDrive": { + SchemaProps: spec.SchemaProps{ + Description: "configDrive specifies whether to attach a config drive to the server. When true, configuration data will be available via a special drive instead of the metadata service.", + Type: []string{"boolean"}, + Format: "", + }, + }, }, - Required: []string{"items"}, + Required: []string{"imageRef", "flavorRef", "ports"}, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Service", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerMetadata", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerPortSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerVolumeSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.UserDataSpec"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ServiceResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ServerResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "ServiceResourceSpec contains the desired state of the resource.", + Description: "ServerResourceStatus represents the observed state of the resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "name": { SchemaProps: spec.SchemaProps{ - Description: "name indicates the name of service. If not specified, the name of the ORC resource will be used.", + Description: "name is the human-readable name of the resource. Might not be unique.", Type: []string{"string"}, Format: "", }, }, - "description": { + "hostID": { SchemaProps: spec.SchemaProps{ - Description: "description indicates the description of service.", + Description: "hostID is the host where the server is located in the cloud.", Type: []string{"string"}, Format: "", }, }, - "type": { + "status": { SchemaProps: spec.SchemaProps{ - Description: "type indicates which resource the service is responsible for.", + Description: "status contains the current operational status of the server, such as IN_PROGRESS or ACTIVE.", Type: []string{"string"}, Format: "", }, }, - "enabled": { + "imageID": { SchemaProps: spec.SchemaProps{ - Description: "enabled indicates whether the service is enabled or not.", - Type: []string{"boolean"}, + Description: "imageID indicates the OS image used to deploy the server.", + Type: []string{"string"}, + Format: "", + }, + }, + "availabilityZone": { + SchemaProps: spec.SchemaProps{ + Description: "availabilityZone is the availability zone where the server is located.", + Type: []string{"string"}, Format: "", }, - }, - }, - Required: []string{"type"}, - }, - }, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_ServiceResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ServiceResourceStatus represents the observed state of the resource.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { + }, + "serverGroups": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "serverGroups is a slice of strings containing the UUIDs of the server groups to which the server belongs. Currently this can contain at most one entry.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "volumes": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "volumes contains the volumes attached to the server.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerVolumeStatus"), + }, + }, + }, + }, + }, + "interfaces": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, + }, SchemaProps: spec.SchemaProps{ - Description: "name indicates the name of service.", - Type: []string{"string"}, - Format: "", + Description: "interfaces contains the list of interfaces attached to the server.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerInterfaceStatus"), + }, + }, + }, }, }, - "description": { + "tags": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, + }, SchemaProps: spec.SchemaProps{ - Description: "description indicates the description of service.", - Type: []string{"string"}, - Format: "", + Description: "tags is the list of tags on the resource.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, }, }, - "type": { + "metadata": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, + }, SchemaProps: spec.SchemaProps{ - Description: "type indicates which resource the service is responsible for.", - Type: []string{"string"}, - Format: "", + Description: "metadata is the list of metadata key-value pairs on the resource.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerMetadataStatus"), + }, + }, + }, }, }, - "enabled": { + "configDrive": { SchemaProps: spec.SchemaProps{ - Description: "enabled indicates whether the service is enabled or not.", + Description: "configDrive indicates whether the server was booted with a config drive.", Type: []string{"boolean"}, Format: "", }, @@ -10581,26 +9092,28 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_ServiceResourceStatus( }, }, }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerInterfaceStatus", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerMetadataStatus", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerVolumeStatus"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ServiceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ServerSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "ServiceSpec defines the desired state of an ORC object.", + Description: "ServerSpec defines the desired state of an ORC object.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "import": { SchemaProps: spec.SchemaProps{ Description: "import refers to an existing OpenStack resource which will be imported instead of creating a new one.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceImport"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerImport"), }, }, "resource": { SchemaProps: spec.SchemaProps{ Description: "resource specifies the desired state of the resource.\n\nresource may not be specified if the management policy is `unmanaged`.\n\nresource must be specified if the management policy is `managed`.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceResourceSpec"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerResourceSpec"), }, }, "managementPolicy": { @@ -10628,15 +9141,15 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_ServiceSpec(ref common }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceResourceSpec"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerResourceSpec"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ServiceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ServerStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "ServiceStatus defines the observed state of an ORC resource.", + Description: "ServerStatus defines the observed state of an ORC resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "conditions": { @@ -10673,22 +9186,68 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_ServiceStatus(ref comm "resource": { SchemaProps: spec.SchemaProps{ Description: "resource contains the observed state of the OpenStack resource.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceResourceStatus"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerResourceStatus"), }, }, }, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_ServerVolumeSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "volumeRef": { + SchemaProps: spec.SchemaProps{ + Description: "volumeRef is a reference to a Volume object. Server creation will wait for this volume to be created and available.", + Type: []string{"string"}, + Format: "", + }, + }, + "device": { + SchemaProps: spec.SchemaProps{ + Description: "device is the name of the device, such as `/dev/vdb`. Omit for auto-assignment", + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"volumeRef"}, + }, + }, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_ServerVolumeStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "id": { + SchemaProps: spec.SchemaProps{ + Description: "id is the ID of a volume attached to the server.", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ShareNetwork(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_Service(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "ShareNetwork is the Schema for an ORC resource.", + Description: "Service is the Schema for an ORC resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "kind": { @@ -10716,14 +9275,14 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_ShareNetwork(ref commo SchemaProps: spec.SchemaProps{ Description: "spec specifies the desired state of the resource.", Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ShareNetworkSpec"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceSpec"), }, }, "status": { SchemaProps: spec.SchemaProps{ Description: "status defines the observed state of the resource.", Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ShareNetworkStatus"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceStatus"), }, }, }, @@ -10731,15 +9290,15 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_ShareNetwork(ref commo }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ShareNetworkSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ShareNetworkStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ShareNetworkFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ServiceFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "ShareNetworkFilter defines an existing resource by its properties", + Description: "ServiceFilter defines an existing resource by its properties", Type: []string{"object"}, Properties: map[string]spec.Schema{ "name": { @@ -10749,9 +9308,9 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_ShareNetworkFilter(ref Format: "", }, }, - "description": { + "type": { SchemaProps: spec.SchemaProps{ - Description: "description of the existing resource", + Description: "type of the existing resource", Type: []string{"string"}, Format: "", }, @@ -10762,11 +9321,11 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_ShareNetworkFilter(ref } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ShareNetworkImport(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ServiceImport(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "ShareNetworkImport specifies an existing resource which will be imported instead of creating a new one", + Description: "ServiceImport specifies an existing resource which will be imported instead of creating a new one", Type: []string{"object"}, Properties: map[string]spec.Schema{ "id": { @@ -10779,22 +9338,22 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_ShareNetworkImport(ref "filter": { SchemaProps: spec.SchemaProps{ Description: "filter contains a resource query which is expected to return a single result. The controller will continue to retry if filter returns no results. If filter returns multiple results the controller will set an error state and will not continue to retry.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ShareNetworkFilter"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceFilter"), }, }, }, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ShareNetworkFilter"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceFilter"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ShareNetworkList(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ServiceList(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "ShareNetworkList contains a list of ShareNetwork.", + Description: "ServiceList contains a list of Service.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "kind": { @@ -10820,13 +9379,13 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_ShareNetworkList(ref c }, "items": { SchemaProps: spec.SchemaProps{ - Description: "items contains a list of ShareNetwork.", + Description: "items contains a list of Service.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ShareNetwork"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Service"), }, }, }, @@ -10837,159 +9396,110 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_ShareNetworkList(ref c }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ShareNetwork", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Service", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ShareNetworkResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ServiceResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "ShareNetworkResourceSpec contains the desired state of the resource.", + Description: "ServiceResourceSpec contains the desired state of the resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "name": { SchemaProps: spec.SchemaProps{ - Description: "name will be the name of the created resource. If not specified, the name of the ORC object will be used.", + Description: "name indicates the name of service. If not specified, the name of the ORC resource will be used.", Type: []string{"string"}, Format: "", }, }, "description": { SchemaProps: spec.SchemaProps{ - Description: "description is a human-readable description for the resource.", + Description: "description indicates the description of service.", Type: []string{"string"}, Format: "", }, }, - "networkRef": { + "type": { SchemaProps: spec.SchemaProps{ - Description: "networkRef is a reference to the ORC Network which this resource is associated with.", + Description: "type indicates which resource the service is responsible for.", Type: []string{"string"}, Format: "", }, }, - "subnetRef": { + "enabled": { SchemaProps: spec.SchemaProps{ - Description: "subnetRef is a reference to the ORC Subnet which this resource is associated with.", - Type: []string{"string"}, + Description: "enabled indicates whether the service is enabled or not.", + Type: []string{"boolean"}, Format: "", }, }, }, + Required: []string{"type"}, }, }, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ShareNetworkResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ServiceResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "ShareNetworkResourceStatus represents the observed state of the resource.", + Description: "ServiceResourceStatus represents the observed state of the resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "name": { SchemaProps: spec.SchemaProps{ - Description: "name is a Human-readable name for the resource.", + Description: "name indicates the name of service.", Type: []string{"string"}, Format: "", }, }, "description": { SchemaProps: spec.SchemaProps{ - Description: "description is a human-readable description for the resource.", - Type: []string{"string"}, - Format: "", - }, - }, - "neutronNetID": { - SchemaProps: spec.SchemaProps{ - Description: "neutronNetID is the Neutron network ID.", - Type: []string{"string"}, - Format: "", - }, - }, - "neutronSubnetID": { - SchemaProps: spec.SchemaProps{ - Description: "neutronSubnetID is the Neutron subnet ID.", - Type: []string{"string"}, - Format: "", - }, - }, - "networkType": { - SchemaProps: spec.SchemaProps{ - Description: "networkType is the network type (e.g., vlan, vxlan, flat).", + Description: "description indicates the description of service.", Type: []string{"string"}, Format: "", }, }, - "segmentationID": { - SchemaProps: spec.SchemaProps{ - Description: "segmentationID is the segmentation ID of the network.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "cidr": { + "type": { SchemaProps: spec.SchemaProps{ - Description: "cidr is the CIDR of the subnet.", - Default: "", + Description: "type indicates which resource the service is responsible for.", Type: []string{"string"}, Format: "", }, }, - "ipVersion": { - SchemaProps: spec.SchemaProps{ - Description: "ipVersion is the IP version (4 or 6).", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "projectID": { + "enabled": { SchemaProps: spec.SchemaProps{ - Description: "projectID is the ID of the project that owns the share network.", - Type: []string{"string"}, + Description: "enabled indicates whether the service is enabled or not.", + Type: []string{"boolean"}, Format: "", }, }, - "createdAt": { - SchemaProps: spec.SchemaProps{ - Description: "createdAt shows the date and time when the resource was created.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "updatedAt": { - SchemaProps: spec.SchemaProps{ - Description: "updatedAt shows the date and time when the resource was updated.", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, }, }, }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ShareNetworkSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ServiceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "ShareNetworkSpec defines the desired state of an ORC object.", + Description: "ServiceSpec defines the desired state of an ORC object.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "import": { SchemaProps: spec.SchemaProps{ Description: "import refers to an existing OpenStack resource which will be imported instead of creating a new one.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ShareNetworkImport"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceImport"), }, }, "resource": { SchemaProps: spec.SchemaProps{ Description: "resource specifies the desired state of the resource.\n\nresource may not be specified if the management policy is `unmanaged`.\n\nresource must be specified if the management policy is `managed`.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ShareNetworkResourceSpec"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceResourceSpec"), }, }, "managementPolicy": { @@ -11017,15 +9527,15 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_ShareNetworkSpec(ref c }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ShareNetworkImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ShareNetworkResourceSpec"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceResourceSpec"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ShareNetworkStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ServiceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "ShareNetworkStatus defines the observed state of an ORC resource.", + Description: "ServiceStatus defines the observed state of an ORC resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "conditions": { @@ -11062,14 +9572,14 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_ShareNetworkStatus(ref "resource": { SchemaProps: spec.SchemaProps{ Description: "resource contains the observed state of the OpenStack resource.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ShareNetworkResourceStatus"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceResourceStatus"), }, }, }, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ShareNetworkResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, } } @@ -12702,13 +11212,6 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_UserResourceSpec(ref c Format: "", }, }, - "passwordRef": { - SchemaProps: spec.SchemaProps{ - Description: "passwordRef is a reference to a Secret containing the password for this user. The Secret must contain a key named \"password\". If not specified, the user is created without a password.", - Type: []string{"string"}, - Format: "", - }, - }, }, }, }, @@ -12757,20 +11260,6 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_UserResourceStatus(ref Format: "", }, }, - "passwordExpiresAt": { - SchemaProps: spec.SchemaProps{ - Description: "passwordExpiresAt is the timestamp at which the user's password expires.", - Type: []string{"string"}, - Format: "", - }, - }, - "appliedPasswordRef": { - SchemaProps: spec.SchemaProps{ - Description: "appliedPasswordRef is the name of the Secret containing the password that was last applied to the OpenStack resource.", - Type: []string{"string"}, - Format: "", - }, - }, }, }, }, diff --git a/config/rbac/role.yaml b/config/rbac/role.yaml index 4991cff67..bbf80abb3 100644 --- a/config/rbac/role.yaml +++ b/config/rbac/role.yaml @@ -26,6 +26,7 @@ rules: - groups - images - keypairs + - loadbalancers - networks - ports - projects @@ -62,6 +63,7 @@ rules: - groups/status - images/status - keypairs/status + - loadbalancers/status - networks/status - ports/status - projects/status diff --git a/config/samples/openstack_v1alpha1_loadbalancer.yaml b/config/samples/openstack_v1alpha1_loadbalancer.yaml new file mode 100644 index 000000000..bb18845fa --- /dev/null +++ b/config/samples/openstack_v1alpha1_loadbalancer.yaml @@ -0,0 +1,14 @@ +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: LoadBalancer +metadata: + name: loadbalancer-sample +spec: + cloudCredentialsRef: + # TODO(scaffolding): Use openstack-admin if the resource needs admin credentials to be created + cloudName: openstack + secretName: openstack-clouds + managementPolicy: managed + resource: + description: Sample LoadBalancer + # TODO(scaffolding): Add all fields the resource supports diff --git a/internal/controllers/loadbalancer/actuator.go b/internal/controllers/loadbalancer/actuator.go new file mode 100644 index 000000000..6e92caef1 --- /dev/null +++ b/internal/controllers/loadbalancer/actuator.go @@ -0,0 +1,353 @@ +/* +Copyright 2026 The ORC Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package loadbalancer + +import ( + "context" + "iter" + + "github.com/gophercloud/gophercloud/v2/openstack/loadbalancer/v2/loadbalancers" + corev1 "k8s.io/api/core/v1" + "k8s.io/utils/ptr" + ctrl "sigs.k8s.io/controller-runtime" + "sigs.k8s.io/controller-runtime/pkg/client" + + orcv1alpha1 "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1" + "github.com/k-orc/openstack-resource-controller/v2/internal/controllers/generic/interfaces" + "github.com/k-orc/openstack-resource-controller/v2/internal/controllers/generic/progress" + "github.com/k-orc/openstack-resource-controller/v2/internal/logging" + "github.com/k-orc/openstack-resource-controller/v2/internal/osclients" + "github.com/k-orc/openstack-resource-controller/v2/internal/util/dependency" + orcerrors "github.com/k-orc/openstack-resource-controller/v2/internal/util/errors" +) + +// OpenStack resource types +type ( + osResourceT = loadbalancers.LoadBalancer + + createResourceActuator = interfaces.CreateResourceActuator[orcObjectPT, orcObjectT, filterT, osResourceT] + deleteResourceActuator = interfaces.DeleteResourceActuator[orcObjectPT, orcObjectT, osResourceT] + resourceReconciler = interfaces.ResourceReconciler[orcObjectPT, osResourceT] + helperFactory = interfaces.ResourceHelperFactory[orcObjectPT, orcObjectT, resourceSpecT, filterT, osResourceT] +) + +type loadbalancerActuator struct { + osClient osclients.LoadBalancerClient + k8sClient client.Client +} + +var _ createResourceActuator = loadbalancerActuator{} +var _ deleteResourceActuator = loadbalancerActuator{} + +func (loadbalancerActuator) GetResourceID(osResource *osResourceT) string { + return osResource.ID +} + +func (actuator loadbalancerActuator) GetOSResourceByID(ctx context.Context, id string) (*osResourceT, progress.ReconcileStatus) { + resource, err := actuator.osClient.GetLoadBalancer(ctx, id) + if err != nil { + return nil, progress.WrapError(err) + } + return resource, nil +} + +func (actuator loadbalancerActuator) ListOSResourcesForAdoption(ctx context.Context, orcObject orcObjectPT) (iter.Seq2[*osResourceT, error], bool) { + resourceSpec := orcObject.Spec.Resource + if resourceSpec == nil { + return nil, false + } + + // TODO(scaffolding) If you need to filter resources on fields that the List() function + // of gophercloud does not support, it's possible to perform client-side filtering. + // Check osclients.ResourceFilter + + listOpts := loadbalancers.ListOpts{ + Name: getResourceName(orcObject), + Description: ptr.Deref(resourceSpec.Description, ""), + } + + return actuator.osClient.ListLoadBalancers(ctx, listOpts), true +} + +func (actuator loadbalancerActuator) ListOSResourcesForImport(ctx context.Context, obj orcObjectPT, filter filterT) (iter.Seq2[*osResourceT, error], progress.ReconcileStatus) { + // TODO(scaffolding) If you need to filter resources on fields that the List() function + // of gophercloud does not support, it's possible to perform client-side filtering. + // Check osclients.ResourceFilter + var reconcileStatus progress.ReconcileStatus + + vipNetwork, rs := dependency.FetchDependency( + ctx, actuator.k8sClient, obj.Namespace, + filter.VipNetworkRef, "VipNetwork", + func(dep *orcv1alpha1.VipNetwork) bool { return orcv1alpha1.IsAvailable(dep) && dep.Status.ID != nil }, + ) + reconcileStatus = reconcileStatus.WithReconcileStatus(rs) + + project, rs := dependency.FetchDependency( + ctx, actuator.k8sClient, obj.Namespace, + filter.ProjectRef, "Project", + func(dep *orcv1alpha1.Project) bool { return orcv1alpha1.IsAvailable(dep) && dep.Status.ID != nil }, + ) + reconcileStatus = reconcileStatus.WithReconcileStatus(rs) + + vipSubnet, rs := dependency.FetchDependency( + ctx, actuator.k8sClient, obj.Namespace, + filter.VipSubnetRef, "VipSubnet", + func(dep *orcv1alpha1.VipSubnet) bool { return orcv1alpha1.IsAvailable(dep) && dep.Status.ID != nil }, + ) + reconcileStatus = reconcileStatus.WithReconcileStatus(rs) + + vipPort, rs := dependency.FetchDependency( + ctx, actuator.k8sClient, obj.Namespace, + filter.VipPortRef, "VipPort", + func(dep *orcv1alpha1.VipPort) bool { return orcv1alpha1.IsAvailable(dep) && dep.Status.ID != nil }, + ) + reconcileStatus = reconcileStatus.WithReconcileStatus(rs) + + if needsReschedule, _ := reconcileStatus.NeedsReschedule(); needsReschedule { + return nil, reconcileStatus + } + + listOpts := loadbalancers.ListOpts{ + Name: string(ptr.Deref(filter.Name, "")), + Description: string(ptr.Deref(filter.Description, "")), + VipNetworkID: ptr.Deref(vipNetwork.Status.ID, ""), + ProjectID: ptr.Deref(project.Status.ID, ""), + VipSubnetID: ptr.Deref(vipSubnet.Status.ID, ""), + VipPortID: ptr.Deref(vipPort.Status.ID, ""), + // TODO(scaffolding): Add more import filters + } + + return actuator.osClient.ListLoadBalancers(ctx, listOpts), reconcileStatus +} + +func (actuator loadbalancerActuator) CreateResource(ctx context.Context, obj orcObjectPT) (*osResourceT, progress.ReconcileStatus) { + resource := obj.Spec.Resource + + if resource == nil { + // Should have been caught by API validation + return nil, progress.WrapError( + orcerrors.Terminal(orcv1alpha1.ConditionReasonInvalidConfiguration, "Creation requested, but spec.resource is not set")) + } + var reconcileStatus progress.ReconcileStatus + + var subnetID string + if resource.SubnetRef != nil { + subnet, subnetDepRS := subnetDependency.GetDependency( + ctx, actuator.k8sClient, obj, func(dep *orcv1alpha1.Subnet) bool { + return orcv1alpha1.IsAvailable(dep) && dep.Status.ID != nil + }, + ) + reconcileStatus = reconcileStatus.WithReconcileStatus(subnetDepRS) + if subnet != nil { + subnetID = ptr.Deref(subnet.Status.ID, "") + } + } + + var networkID string + if resource.NetworkRef != nil { + network, networkDepRS := networkDependency.GetDependency( + ctx, actuator.k8sClient, obj, func(dep *orcv1alpha1.Network) bool { + return orcv1alpha1.IsAvailable(dep) && dep.Status.ID != nil + }, + ) + reconcileStatus = reconcileStatus.WithReconcileStatus(networkDepRS) + if network != nil { + networkID = ptr.Deref(network.Status.ID, "") + } + } + + var portID string + if resource.PortRef != nil { + port, portDepRS := portDependency.GetDependency( + ctx, actuator.k8sClient, obj, func(dep *orcv1alpha1.Port) bool { + return orcv1alpha1.IsAvailable(dep) && dep.Status.ID != nil + }, + ) + reconcileStatus = reconcileStatus.WithReconcileStatus(portDepRS) + if port != nil { + portID = ptr.Deref(port.Status.ID, "") + } + } + + var flavorID string + if resource.FlavorRef != nil { + flavor, flavorDepRS := flavorDependency.GetDependency( + ctx, actuator.k8sClient, obj, func(dep *orcv1alpha1.Flavor) bool { + return orcv1alpha1.IsAvailable(dep) && dep.Status.ID != nil + }, + ) + reconcileStatus = reconcileStatus.WithReconcileStatus(flavorDepRS) + if flavor != nil { + flavorID = ptr.Deref(flavor.Status.ID, "") + } + } + + var projectID string + if resource.ProjectRef != nil { + project, projectDepRS := projectDependency.GetDependency( + ctx, actuator.k8sClient, obj, func(dep *orcv1alpha1.Project) bool { + return orcv1alpha1.IsAvailable(dep) && dep.Status.ID != nil + }, + ) + reconcileStatus = reconcileStatus.WithReconcileStatus(projectDepRS) + if project != nil { + projectID = ptr.Deref(project.Status.ID, "") + } + } + if needsReschedule, _ := reconcileStatus.NeedsReschedule(); needsReschedule { + return nil, reconcileStatus + } + createOpts := loadbalancers.CreateOpts{ + Name: getResourceName(obj), + Description: ptr.Deref(resource.Description, ""), + SubnetID: subnetID, + NetworkID: networkID, + PortID: portID, + FlavorID: flavorID, + ProjectID: projectID, + // TODO(scaffolding): Add more fields + } + + osResource, err := actuator.osClient.CreateLoadBalancer(ctx, createOpts) + if err != nil { + // We should require the spec to be updated before retrying a create which returned a conflict + if !orcerrors.IsRetryable(err) { + err = orcerrors.Terminal(orcv1alpha1.ConditionReasonInvalidConfiguration, "invalid configuration creating resource: "+err.Error(), err) + } + return nil, progress.WrapError(err) + } + + return osResource, nil +} + +func (actuator loadbalancerActuator) DeleteResource(ctx context.Context, _ orcObjectPT, resource *osResourceT) progress.ReconcileStatus { + return progress.WrapError(actuator.osClient.DeleteLoadBalancer(ctx, resource.ID)) +} + +func (actuator loadbalancerActuator) updateResource(ctx context.Context, obj orcObjectPT, osResource *osResourceT) progress.ReconcileStatus { + log := ctrl.LoggerFrom(ctx) + resource := obj.Spec.Resource + if resource == nil { + // Should have been caught by API validation + return progress.WrapError( + orcerrors.Terminal(orcv1alpha1.ConditionReasonInvalidConfiguration, "Update requested, but spec.resource is not set")) + } + + updateOpts := loadbalancers.UpdateOpts{} + + handleNameUpdate(&updateOpts, obj, osResource) + handleDescriptionUpdate(&updateOpts, resource, osResource) + + // TODO(scaffolding): add handler for all fields supporting mutability + + needsUpdate, err := needsUpdate(updateOpts) + if err != nil { + return progress.WrapError( + orcerrors.Terminal(orcv1alpha1.ConditionReasonInvalidConfiguration, "invalid configuration updating resource: "+err.Error(), err)) + } + if !needsUpdate { + log.V(logging.Debug).Info("No changes") + return nil + } + + _, err = actuator.osClient.UpdateLoadBalancer(ctx, osResource.ID, updateOpts) + + // We should require the spec to be updated before retrying an update which returned a conflict + if orcerrors.IsConflict(err) { + err = orcerrors.Terminal(orcv1alpha1.ConditionReasonInvalidConfiguration, "invalid configuration updating resource: "+err.Error(), err) + } + + if err != nil { + return progress.WrapError(err) + } + + return progress.NeedsRefresh() +} + +func needsUpdate(updateOpts loadbalancers.UpdateOpts) (bool, error) { + updateOptsMap, err := updateOpts.ToLoadBalancerUpdateMap() + if err != nil { + return false, err + } + + updateMap, ok := updateOptsMap["load_balancer"].(map[string]any) + if !ok { + updateMap = make(map[string]any) + } + + return len(updateMap) > 0, nil +} + +func handleNameUpdate(updateOpts *loadbalancers.UpdateOpts, obj orcObjectPT, osResource *osResourceT) { + name := getResourceName(obj) + if osResource.Name != name { + updateOpts.Name = &name + } +} + +func handleDescriptionUpdate(updateOpts *loadbalancers.UpdateOpts, resource *resourceSpecT, osResource *osResourceT) { + description := ptr.Deref(resource.Description, "") + if osResource.Description != description { + updateOpts.Description = &description + } +} + +func (actuator loadbalancerActuator) GetResourceReconcilers(ctx context.Context, orcObject orcObjectPT, osResource *osResourceT, controller interfaces.ResourceController) ([]resourceReconciler, progress.ReconcileStatus) { + return []resourceReconciler{ + actuator.updateResource, + }, nil +} + +type loadbalancerHelperFactory struct{} + +var _ helperFactory = loadbalancerHelperFactory{} + +func newActuator(ctx context.Context, orcObject *orcv1alpha1.LoadBalancer, controller interfaces.ResourceController) (loadbalancerActuator, progress.ReconcileStatus) { + log := ctrl.LoggerFrom(ctx) + + // Ensure credential secrets exist and have our finalizer + _, reconcileStatus := credentialsDependency.GetDependencies(ctx, controller.GetK8sClient(), orcObject, func(*corev1.Secret) bool { return true }) + if needsReschedule, _ := reconcileStatus.NeedsReschedule(); needsReschedule { + return loadbalancerActuator{}, reconcileStatus + } + + clientScope, err := controller.GetScopeFactory().NewClientScopeFromObject(ctx, controller.GetK8sClient(), log, orcObject) + if err != nil { + return loadbalancerActuator{}, progress.WrapError(err) + } + osClient, err := clientScope.NewLoadBalancerClient() + if err != nil { + return loadbalancerActuator{}, progress.WrapError(err) + } + + return loadbalancerActuator{ + osClient: osClient, + k8sClient: controller.GetK8sClient(), + }, nil +} + +func (loadbalancerHelperFactory) NewAPIObjectAdapter(obj orcObjectPT) adapterI { + return loadbalancerAdapter{obj} +} + +func (loadbalancerHelperFactory) NewCreateActuator(ctx context.Context, orcObject orcObjectPT, controller interfaces.ResourceController) (createResourceActuator, progress.ReconcileStatus) { + return newActuator(ctx, orcObject, controller) +} + +func (loadbalancerHelperFactory) NewDeleteActuator(ctx context.Context, orcObject orcObjectPT, controller interfaces.ResourceController) (deleteResourceActuator, progress.ReconcileStatus) { + return newActuator(ctx, orcObject, controller) +} diff --git a/internal/controllers/loadbalancer/actuator_test.go b/internal/controllers/loadbalancer/actuator_test.go new file mode 100644 index 000000000..852606942 --- /dev/null +++ b/internal/controllers/loadbalancer/actuator_test.go @@ -0,0 +1,119 @@ +/* +Copyright 2026 The ORC Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package loadbalancer + +import ( + "testing" + + "github.com/gophercloud/gophercloud/v2/openstack/loadbalancer/v2/loadbalancers" + orcv1alpha1 "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1" + "k8s.io/utils/ptr" +) + +func TestNeedsUpdate(t *testing.T) { + testCases := []struct { + name string + updateOpts loadbalancers.UpdateOpts + expectChange bool + }{ + { + name: "Empty base opts", + updateOpts: loadbalancers.UpdateOpts{}, + expectChange: false, + }, + { + name: "Updated opts", + updateOpts: loadbalancers.UpdateOpts{Name: ptr.To("updated")}, + expectChange: true, + }, + } + + for _, tt := range testCases { + t.Run(tt.name, func(t *testing.T) { + got, _ := needsUpdate(tt.updateOpts) + if got != tt.expectChange { + t.Errorf("Expected change: %v, got: %v", tt.expectChange, got) + } + }) + } +} + +func TestHandleNameUpdate(t *testing.T) { + ptrToName := ptr.To[orcv1alpha1.OpenStackName] + testCases := []struct { + name string + newValue *orcv1alpha1.OpenStackName + existingValue string + expectChange bool + }{ + {name: "Identical", newValue: ptrToName("name"), existingValue: "name", expectChange: false}, + {name: "Different", newValue: ptrToName("new-name"), existingValue: "name", expectChange: true}, + {name: "No value provided, existing is identical to object name", newValue: nil, existingValue: "object-name", expectChange: false}, + {name: "No value provided, existing is different from object name", newValue: nil, existingValue: "different-from-object-name", expectChange: true}, + } + + for _, tt := range testCases { + t.Run(tt.name, func(t *testing.T) { + resource := &orcv1alpha1.LoadBalancer{} + resource.Name = "object-name" + resource.Spec = orcv1alpha1.LoadBalancerSpec{ + Resource: &orcv1alpha1.LoadBalancerResourceSpec{Name: tt.newValue}, + } + osResource := &osResourceT{Name: tt.existingValue} + + updateOpts := loadbalancers.UpdateOpts{} + handleNameUpdate(&updateOpts, resource, osResource) + + got, _ := needsUpdate(updateOpts) + if got != tt.expectChange { + t.Errorf("Expected change: %v, got: %v", tt.expectChange, got) + } + }) + + } +} + +func TestHandleDescriptionUpdate(t *testing.T) { + ptrToDescription := ptr.To[string] + testCases := []struct { + name string + newValue *string + existingValue string + expectChange bool + }{ + {name: "Identical", newValue: ptrToDescription("desc"), existingValue: "desc", expectChange: false}, + {name: "Different", newValue: ptrToDescription("new-desc"), existingValue: "desc", expectChange: true}, + {name: "No value provided, existing is set", newValue: nil, existingValue: "desc", expectChange: true}, + {name: "No value provided, existing is empty", newValue: nil, existingValue: "", expectChange: false}, + } + + for _, tt := range testCases { + t.Run(tt.name, func(t *testing.T) { + resource := &orcv1alpha1.LoadBalancerResourceSpec{Description: tt.newValue} + osResource := &osResourceT{Description: tt.existingValue} + + updateOpts := loadbalancers.UpdateOpts{} + handleDescriptionUpdate(&updateOpts, resource, osResource) + + got, _ := needsUpdate(updateOpts) + if got != tt.expectChange { + t.Errorf("Expected change: %v, got: %v", tt.expectChange, got) + } + }) + + } +} diff --git a/internal/controllers/loadbalancer/controller.go b/internal/controllers/loadbalancer/controller.go new file mode 100644 index 000000000..492aa5a7d --- /dev/null +++ b/internal/controllers/loadbalancer/controller.go @@ -0,0 +1,261 @@ +/* +Copyright 2026 The ORC Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package loadbalancer + +import ( + "context" + "errors" + + ctrl "sigs.k8s.io/controller-runtime" + "sigs.k8s.io/controller-runtime/pkg/builder" + "sigs.k8s.io/controller-runtime/pkg/controller" + + orcv1alpha1 "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1" + + "github.com/k-orc/openstack-resource-controller/v2/internal/controllers/generic/interfaces" + "github.com/k-orc/openstack-resource-controller/v2/internal/controllers/generic/reconciler" + "github.com/k-orc/openstack-resource-controller/v2/internal/scope" + "github.com/k-orc/openstack-resource-controller/v2/internal/util/credentials" + "github.com/k-orc/openstack-resource-controller/v2/internal/util/dependency" + "github.com/k-orc/openstack-resource-controller/v2/pkg/predicates" +) + +const controllerName = "loadbalancer" + +// +kubebuilder:rbac:groups=openstack.k-orc.cloud,resources=loadbalancers,verbs=get;list;watch;create;update;patch;delete +// +kubebuilder:rbac:groups=openstack.k-orc.cloud,resources=loadbalancers/status,verbs=get;update;patch + +type loadbalancerReconcilerConstructor struct { + scopeFactory scope.Factory +} + +func New(scopeFactory scope.Factory) interfaces.Controller { + return loadbalancerReconcilerConstructor{scopeFactory: scopeFactory} +} + +func (loadbalancerReconcilerConstructor) GetName() string { + return controllerName +} + +var subnetDependency = dependency.NewDeletionGuardDependency[*orcv1alpha1.LoadBalancerList, *orcv1alpha1.Subnet]( + "spec.resource.subnetRef", + func(loadbalancer *orcv1alpha1.LoadBalancer) []string { + resource := loadbalancer.Spec.Resource + if resource == nil || resource.SubnetRef == nil { + return nil + } + return []string{string(*resource.SubnetRef)} + }, + finalizer, externalObjectFieldOwner, +) + +var networkDependency = dependency.NewDeletionGuardDependency[*orcv1alpha1.LoadBalancerList, *orcv1alpha1.Network]( + "spec.resource.networkRef", + func(loadbalancer *orcv1alpha1.LoadBalancer) []string { + resource := loadbalancer.Spec.Resource + if resource == nil || resource.NetworkRef == nil { + return nil + } + return []string{string(*resource.NetworkRef)} + }, + finalizer, externalObjectFieldOwner, +) + +var portDependency = dependency.NewDeletionGuardDependency[*orcv1alpha1.LoadBalancerList, *orcv1alpha1.Port]( + "spec.resource.portRef", + func(loadbalancer *orcv1alpha1.LoadBalancer) []string { + resource := loadbalancer.Spec.Resource + if resource == nil || resource.PortRef == nil { + return nil + } + return []string{string(*resource.PortRef)} + }, + finalizer, externalObjectFieldOwner, +) + +var flavorDependency = dependency.NewDeletionGuardDependency[*orcv1alpha1.LoadBalancerList, *orcv1alpha1.Flavor]( + "spec.resource.flavorRef", + func(loadbalancer *orcv1alpha1.LoadBalancer) []string { + resource := loadbalancer.Spec.Resource + if resource == nil || resource.FlavorRef == nil { + return nil + } + return []string{string(*resource.FlavorRef)} + }, + finalizer, externalObjectFieldOwner, +) + +var projectDependency = dependency.NewDeletionGuardDependency[*orcv1alpha1.LoadBalancerList, *orcv1alpha1.Project]( + "spec.resource.projectRef", + func(loadbalancer *orcv1alpha1.LoadBalancer) []string { + resource := loadbalancer.Spec.Resource + if resource == nil || resource.ProjectRef == nil { + return nil + } + return []string{string(*resource.ProjectRef)} + }, + finalizer, externalObjectFieldOwner, +) + +var vipNetworkImportDependency = dependency.NewDependency[*orcv1alpha1.LoadBalancerList, *orcv1alpha1.VipNetwork]( + "spec.import.filter.vipNetworkRef", + func(loadbalancer *orcv1alpha1.LoadBalancer) []string { + resource := loadbalancer.Spec.Import + if resource == nil || resource.Filter == nil || resource.Filter.VipNetworkRef == nil { + return nil + } + return []string{string(*resource.Filter.VipNetworkRef)} + }, +) + +var projectImportDependency = dependency.NewDependency[*orcv1alpha1.LoadBalancerList, *orcv1alpha1.Project]( + "spec.import.filter.projectRef", + func(loadbalancer *orcv1alpha1.LoadBalancer) []string { + resource := loadbalancer.Spec.Import + if resource == nil || resource.Filter == nil || resource.Filter.ProjectRef == nil { + return nil + } + return []string{string(*resource.Filter.ProjectRef)} + }, +) + +var vipSubnetImportDependency = dependency.NewDependency[*orcv1alpha1.LoadBalancerList, *orcv1alpha1.VipSubnet]( + "spec.import.filter.vipSubnetRef", + func(loadbalancer *orcv1alpha1.LoadBalancer) []string { + resource := loadbalancer.Spec.Import + if resource == nil || resource.Filter == nil || resource.Filter.VipSubnetRef == nil { + return nil + } + return []string{string(*resource.Filter.VipSubnetRef)} + }, +) + +var vipPortImportDependency = dependency.NewDependency[*orcv1alpha1.LoadBalancerList, *orcv1alpha1.VipPort]( + "spec.import.filter.vipPortRef", + func(loadbalancer *orcv1alpha1.LoadBalancer) []string { + resource := loadbalancer.Spec.Import + if resource == nil || resource.Filter == nil || resource.Filter.VipPortRef == nil { + return nil + } + return []string{string(*resource.Filter.VipPortRef)} + }, +) + +// SetupWithManager sets up the controller with the Manager. +func (c loadbalancerReconcilerConstructor) SetupWithManager(ctx context.Context, mgr ctrl.Manager, options controller.Options) error { + log := ctrl.LoggerFrom(ctx) + k8sClient := mgr.GetClient() + + subnetWatchEventHandler, err := subnetDependency.WatchEventHandler(log, k8sClient) + if err != nil { + return err + } + + networkWatchEventHandler, err := networkDependency.WatchEventHandler(log, k8sClient) + if err != nil { + return err + } + + portWatchEventHandler, err := portDependency.WatchEventHandler(log, k8sClient) + if err != nil { + return err + } + + flavorWatchEventHandler, err := flavorDependency.WatchEventHandler(log, k8sClient) + if err != nil { + return err + } + + projectWatchEventHandler, err := projectDependency.WatchEventHandler(log, k8sClient) + if err != nil { + return err + } + + vipNetworkImportWatchEventHandler, err := vipNetworkImportDependency.WatchEventHandler(log, k8sClient) + if err != nil { + return err + } + + projectImportWatchEventHandler, err := projectImportDependency.WatchEventHandler(log, k8sClient) + if err != nil { + return err + } + + vipSubnetImportWatchEventHandler, err := vipSubnetImportDependency.WatchEventHandler(log, k8sClient) + if err != nil { + return err + } + + vipPortImportWatchEventHandler, err := vipPortImportDependency.WatchEventHandler(log, k8sClient) + if err != nil { + return err + } + + builder := ctrl.NewControllerManagedBy(mgr). + WithOptions(options). + Watches(&orcv1alpha1.Subnet{}, subnetWatchEventHandler, + builder.WithPredicates(predicates.NewBecameAvailable(log, &orcv1alpha1.Subnet{})), + ). + Watches(&orcv1alpha1.Network{}, networkWatchEventHandler, + builder.WithPredicates(predicates.NewBecameAvailable(log, &orcv1alpha1.Network{})), + ). + Watches(&orcv1alpha1.Port{}, portWatchEventHandler, + builder.WithPredicates(predicates.NewBecameAvailable(log, &orcv1alpha1.Port{})), + ). + Watches(&orcv1alpha1.Flavor{}, flavorWatchEventHandler, + builder.WithPredicates(predicates.NewBecameAvailable(log, &orcv1alpha1.Flavor{})), + ). + Watches(&orcv1alpha1.Project{}, projectWatchEventHandler, + builder.WithPredicates(predicates.NewBecameAvailable(log, &orcv1alpha1.Project{})), + ). + // A second watch is necessary because we need a different handler that omits deletion guards + Watches(&orcv1alpha1.VipNetwork{}, vipNetworkImportWatchEventHandler, + builder.WithPredicates(predicates.NewBecameAvailable(log, &orcv1alpha1.VipNetwork{})), + ). + // A second watch is necessary because we need a different handler that omits deletion guards + Watches(&orcv1alpha1.Project{}, projectImportWatchEventHandler, + builder.WithPredicates(predicates.NewBecameAvailable(log, &orcv1alpha1.Project{})), + ). + // A second watch is necessary because we need a different handler that omits deletion guards + Watches(&orcv1alpha1.VipSubnet{}, vipSubnetImportWatchEventHandler, + builder.WithPredicates(predicates.NewBecameAvailable(log, &orcv1alpha1.VipSubnet{})), + ). + // A second watch is necessary because we need a different handler that omits deletion guards + Watches(&orcv1alpha1.VipPort{}, vipPortImportWatchEventHandler, + builder.WithPredicates(predicates.NewBecameAvailable(log, &orcv1alpha1.VipPort{})), + ). + For(&orcv1alpha1.LoadBalancer{}) + + if err := errors.Join( + subnetDependency.AddToManager(ctx, mgr), + networkDependency.AddToManager(ctx, mgr), + portDependency.AddToManager(ctx, mgr), + flavorDependency.AddToManager(ctx, mgr), + projectDependency.AddToManager(ctx, mgr), + vipNetworkImportDependency.AddToManager(ctx, mgr), + projectImportDependency.AddToManager(ctx, mgr), + vipSubnetImportDependency.AddToManager(ctx, mgr), + vipPortImportDependency.AddToManager(ctx, mgr), + credentialsDependency.AddToManager(ctx, mgr), + credentials.AddCredentialsWatch(log, mgr.GetClient(), builder, credentialsDependency), + ); err != nil { + return err + } + + r := reconciler.NewController(controllerName, mgr.GetClient(), c.scopeFactory, loadbalancerHelperFactory{}, loadbalancerStatusWriter{}) + return builder.Complete(&r) +} diff --git a/internal/controllers/loadbalancer/status.go b/internal/controllers/loadbalancer/status.go new file mode 100644 index 000000000..dbf0b654a --- /dev/null +++ b/internal/controllers/loadbalancer/status.go @@ -0,0 +1,68 @@ +/* +Copyright 2026 The ORC Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package loadbalancer + +import ( + "github.com/go-logr/logr" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + + orcv1alpha1 "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1" + "github.com/k-orc/openstack-resource-controller/v2/internal/controllers/generic/interfaces" + "github.com/k-orc/openstack-resource-controller/v2/internal/controllers/generic/progress" + orcapplyconfigv1alpha1 "github.com/k-orc/openstack-resource-controller/v2/pkg/clients/applyconfiguration/api/v1alpha1" +) + +type loadbalancerStatusWriter struct{} + +type objectApplyT = orcapplyconfigv1alpha1.LoadBalancerApplyConfiguration +type statusApplyT = orcapplyconfigv1alpha1.LoadBalancerStatusApplyConfiguration + +var _ interfaces.ResourceStatusWriter[*orcv1alpha1.LoadBalancer, *osResourceT, *objectApplyT, *statusApplyT] = loadbalancerStatusWriter{} + +func (loadbalancerStatusWriter) GetApplyConfig(name, namespace string) *objectApplyT { + return orcapplyconfigv1alpha1.LoadBalancer(name, namespace) +} + +func (loadbalancerStatusWriter) ResourceAvailableStatus(orcObject *orcv1alpha1.LoadBalancer, osResource *osResourceT) (metav1.ConditionStatus, progress.ReconcileStatus) { + if osResource == nil { + if orcObject.Status.ID == nil { + return metav1.ConditionFalse, nil + } else { + return metav1.ConditionUnknown, nil + } + } + return metav1.ConditionTrue, nil +} + +func (loadbalancerStatusWriter) ApplyResourceStatus(log logr.Logger, osResource *osResourceT, statusApply *statusApplyT) { + resourceStatus := orcapplyconfigv1alpha1.LoadBalancerResourceStatus(). + WithSubnetID(osResource.SubnetID). + WithNetworkID(osResource.NetworkID). + WithPortID(osResource.PortID). + WithFlavorID(osResource.FlavorID). + WithProjectID(osResource.ProjectID). + WithName(osResource.Name) + + // TODO(scaffolding): add all of the fields supported in the LoadBalancerResourceStatus struct + // If a zero-value isn't expected in the response, place it behind a conditional + + if osResource.Description != "" { + resourceStatus.WithDescription(osResource.Description) + } + + statusApply.WithResource(resourceStatus) +} diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-create-full/00-assert.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-create-full/00-assert.yaml new file mode 100644 index 000000000..51a73c327 --- /dev/null +++ b/internal/controllers/loadbalancer/tests/loadbalancer-create-full/00-assert.yaml @@ -0,0 +1,53 @@ +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: LoadBalancer +metadata: + name: loadbalancer-create-full +status: + resource: + name: loadbalancer-create-full-override + description: LoadBalancer from "create full" test + # TODO(scaffolding): Add all fields the resource supports + conditions: + - type: Available + status: "True" + reason: Success + - type: Progressing + status: "False" + reason: Success +--- +apiVersion: kuttl.dev/v1beta1 +kind: TestAssert +resourceRefs: + - apiVersion: openstack.k-orc.cloud/v1alpha1 + kind: LoadBalancer + name: loadbalancer-create-full + ref: loadbalancer + - apiVersion: openstack.k-orc.cloud/v1alpha1 + kind: Subnet + name: loadbalancer-create-full + ref: subnet + - apiVersion: openstack.k-orc.cloud/v1alpha1 + kind: Network + name: loadbalancer-create-full + ref: network + - apiVersion: openstack.k-orc.cloud/v1alpha1 + kind: Port + name: loadbalancer-create-full + ref: port + - apiVersion: openstack.k-orc.cloud/v1alpha1 + kind: Flavor + name: loadbalancer-create-full + ref: flavor + - apiVersion: openstack.k-orc.cloud/v1alpha1 + kind: Project + name: loadbalancer-create-full + ref: project +assertAll: + - celExpr: "loadbalancer.status.id != ''" + - celExpr: "loadbalancer.status.resource.subnetID == subnet.status.id" + - celExpr: "loadbalancer.status.resource.networkID == network.status.id" + - celExpr: "loadbalancer.status.resource.portID == port.status.id" + - celExpr: "loadbalancer.status.resource.flavorID == flavor.status.id" + - celExpr: "loadbalancer.status.resource.projectID == project.status.id" + # TODO(scaffolding): Add more checks diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-create-full/00-create-resource.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-create-full/00-create-resource.yaml new file mode 100644 index 000000000..1f3d9fd6e --- /dev/null +++ b/internal/controllers/loadbalancer/tests/loadbalancer-create-full/00-create-resource.yaml @@ -0,0 +1,85 @@ +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: Subnet +metadata: + name: loadbalancer-create-full +spec: + cloudCredentialsRef: + # TODO(scaffolding): Use openstack-admin if the resouce needs admin credentials to be created + cloudName: openstack + secretName: openstack-clouds + managementPolicy: managed + # TODO(scaffolding): Add the necessary fields to create the resource + resource: {} +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: Network +metadata: + name: loadbalancer-create-full +spec: + cloudCredentialsRef: + # TODO(scaffolding): Use openstack-admin if the resouce needs admin credentials to be created + cloudName: openstack + secretName: openstack-clouds + managementPolicy: managed + # TODO(scaffolding): Add the necessary fields to create the resource + resource: {} +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: Port +metadata: + name: loadbalancer-create-full +spec: + cloudCredentialsRef: + # TODO(scaffolding): Use openstack-admin if the resouce needs admin credentials to be created + cloudName: openstack + secretName: openstack-clouds + managementPolicy: managed + # TODO(scaffolding): Add the necessary fields to create the resource + resource: {} +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: Flavor +metadata: + name: loadbalancer-create-full +spec: + cloudCredentialsRef: + # TODO(scaffolding): Use openstack-admin if the resouce needs admin credentials to be created + cloudName: openstack + secretName: openstack-clouds + managementPolicy: managed + # TODO(scaffolding): Add the necessary fields to create the resource + resource: {} +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: Project +metadata: + name: loadbalancer-create-full +spec: + cloudCredentialsRef: + # TODO(scaffolding): Use openstack-admin if the resouce needs admin credentials to be created + cloudName: openstack + secretName: openstack-clouds + managementPolicy: managed + # TODO(scaffolding): Add the necessary fields to create the resource + resource: {} +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: LoadBalancer +metadata: + name: loadbalancer-create-full +spec: + cloudCredentialsRef: + # TODO(scaffolding): Use openstack-admin if the resouce needs admin credentials to be created + cloudName: openstack + secretName: openstack-clouds + managementPolicy: managed + resource: + name: loadbalancer-create-full-override + description: LoadBalancer from "create full" test + subnetRef: loadbalancer-create-full + networkRef: loadbalancer-create-full + portRef: loadbalancer-create-full + flavorRef: loadbalancer-create-full + projectRef: loadbalancer-create-full + # TODO(scaffolding): Add all fields the resource supports diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-create-full/00-secret.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-create-full/00-secret.yaml new file mode 100644 index 000000000..045711ee7 --- /dev/null +++ b/internal/controllers/loadbalancer/tests/loadbalancer-create-full/00-secret.yaml @@ -0,0 +1,6 @@ +--- +apiVersion: kuttl.dev/v1beta1 +kind: TestStep +commands: + - command: kubectl create secret generic openstack-clouds --from-file=clouds.yaml=${E2E_KUTTL_OSCLOUDS} ${E2E_KUTTL_CACERT_OPT} + namespaced: true diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-create-full/README.md b/internal/controllers/loadbalancer/tests/loadbalancer-create-full/README.md new file mode 100644 index 000000000..44bd88dfc --- /dev/null +++ b/internal/controllers/loadbalancer/tests/loadbalancer-create-full/README.md @@ -0,0 +1,11 @@ +# Create a LoadBalancer with all the options + +## Step 00 + +Create a LoadBalancer using all available fields, and verify that the observed state corresponds to the spec. + +Also validate that the OpenStack resource uses the name from the spec when it is specified. + +## Reference + +https://k-orc.cloud/development/writing-tests/#create-full diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-create-minimal/00-assert.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-create-minimal/00-assert.yaml new file mode 100644 index 000000000..9230c2c73 --- /dev/null +++ b/internal/controllers/loadbalancer/tests/loadbalancer-create-minimal/00-assert.yaml @@ -0,0 +1,27 @@ +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: LoadBalancer +metadata: + name: loadbalancer-create-minimal +status: + resource: + name: loadbalancer-create-minimal + # TODO(scaffolding): Add all fields the resource supports + conditions: + - type: Available + status: "True" + reason: Success + - type: Progressing + status: "False" + reason: Success +--- +apiVersion: kuttl.dev/v1beta1 +kind: TestAssert +resourceRefs: + - apiVersion: openstack.k-orc.cloud/v1alpha1 + kind: LoadBalancer + name: loadbalancer-create-minimal + ref: loadbalancer +assertAll: + - celExpr: "loadbalancer.status.id != ''" + # TODO(scaffolding): Add more checks diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-create-minimal/00-create-resource.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-create-minimal/00-create-resource.yaml new file mode 100644 index 000000000..750dbd630 --- /dev/null +++ b/internal/controllers/loadbalancer/tests/loadbalancer-create-minimal/00-create-resource.yaml @@ -0,0 +1,14 @@ +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: LoadBalancer +metadata: + name: loadbalancer-create-minimal +spec: + cloudCredentialsRef: + # TODO(scaffolding): Use openstack-admin if the resouce needs admin credentials to be created + cloudName: openstack + secretName: openstack-clouds + managementPolicy: managed + # TODO(scaffolding): Only add the mandatory fields. It's possible the resource + # doesn't have mandatory fields, in that case, leave it empty. + resource: {} diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-create-minimal/00-secret.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-create-minimal/00-secret.yaml new file mode 100644 index 000000000..045711ee7 --- /dev/null +++ b/internal/controllers/loadbalancer/tests/loadbalancer-create-minimal/00-secret.yaml @@ -0,0 +1,6 @@ +--- +apiVersion: kuttl.dev/v1beta1 +kind: TestStep +commands: + - command: kubectl create secret generic openstack-clouds --from-file=clouds.yaml=${E2E_KUTTL_OSCLOUDS} ${E2E_KUTTL_CACERT_OPT} + namespaced: true diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-create-minimal/01-assert.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-create-minimal/01-assert.yaml new file mode 100644 index 000000000..c116ae4b8 --- /dev/null +++ b/internal/controllers/loadbalancer/tests/loadbalancer-create-minimal/01-assert.yaml @@ -0,0 +1,11 @@ +--- +apiVersion: kuttl.dev/v1beta1 +kind: TestAssert +resourceRefs: + - apiVersion: v1 + kind: Secret + name: openstack-clouds + ref: secret +assertAll: + - celExpr: "secret.metadata.deletionTimestamp != 0" + - celExpr: "'openstack.k-orc.cloud/loadbalancer' in secret.metadata.finalizers" diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-create-minimal/01-delete-secret.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-create-minimal/01-delete-secret.yaml new file mode 100644 index 000000000..1620791b9 --- /dev/null +++ b/internal/controllers/loadbalancer/tests/loadbalancer-create-minimal/01-delete-secret.yaml @@ -0,0 +1,7 @@ +--- +apiVersion: kuttl.dev/v1beta1 +kind: TestStep +commands: + # We expect the deletion to hang due to the finalizer, so use --wait=false + - command: kubectl delete secret openstack-clouds --wait=false + namespaced: true diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-create-minimal/README.md b/internal/controllers/loadbalancer/tests/loadbalancer-create-minimal/README.md new file mode 100644 index 000000000..07e0ca5b6 --- /dev/null +++ b/internal/controllers/loadbalancer/tests/loadbalancer-create-minimal/README.md @@ -0,0 +1,15 @@ +# Create a LoadBalancer with the minimum options + +## Step 00 + +Create a minimal LoadBalancer, that sets only the required fields, and verify that the observed state corresponds to the spec. + +Also validate that the OpenStack resource uses the name of the ORC object when no name is explicitly specified. + +## Step 01 + +Try deleting the secret and ensure that it is not deleted thanks to the finalizer. + +## Reference + +https://k-orc.cloud/development/writing-tests/#create-minimal diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-dependency/00-assert.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-dependency/00-assert.yaml new file mode 100644 index 000000000..3b21fdb81 --- /dev/null +++ b/internal/controllers/loadbalancer/tests/loadbalancer-dependency/00-assert.yaml @@ -0,0 +1,90 @@ +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: LoadBalancer +metadata: + name: loadbalancer-dependency-no-secret +status: + conditions: + - type: Available + message: Waiting for Secret/loadbalancer-dependency to be created + status: "False" + reason: Progressing + - type: Progressing + message: Waiting for Secret/loadbalancer-dependency to be created + status: "True" + reason: Progressing +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: LoadBalancer +metadata: + name: loadbalancer-dependency-no-subnet +status: + conditions: + - type: Available + message: Waiting for Subnet/loadbalancer-dependency to be created + status: "False" + reason: Progressing + - type: Progressing + message: Waiting for Subnet/loadbalancer-dependency to be created + status: "True" + reason: Progressing +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: LoadBalancer +metadata: + name: loadbalancer-dependency-no-network +status: + conditions: + - type: Available + message: Waiting for Network/loadbalancer-dependency to be created + status: "False" + reason: Progressing + - type: Progressing + message: Waiting for Network/loadbalancer-dependency to be created + status: "True" + reason: Progressing +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: LoadBalancer +metadata: + name: loadbalancer-dependency-no-port +status: + conditions: + - type: Available + message: Waiting for Port/loadbalancer-dependency to be created + status: "False" + reason: Progressing + - type: Progressing + message: Waiting for Port/loadbalancer-dependency to be created + status: "True" + reason: Progressing +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: LoadBalancer +metadata: + name: loadbalancer-dependency-no-flavor +status: + conditions: + - type: Available + message: Waiting for Flavor/loadbalancer-dependency to be created + status: "False" + reason: Progressing + - type: Progressing + message: Waiting for Flavor/loadbalancer-dependency to be created + status: "True" + reason: Progressing +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: LoadBalancer +metadata: + name: loadbalancer-dependency-no-project +status: + conditions: + - type: Available + message: Waiting for Project/loadbalancer-dependency to be created + status: "False" + reason: Progressing + - type: Progressing + message: Waiting for Project/loadbalancer-dependency to be created + status: "True" + reason: Progressing diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-dependency/00-create-resources-missing-deps.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-dependency/00-create-resources-missing-deps.yaml new file mode 100644 index 000000000..3410659ca --- /dev/null +++ b/internal/controllers/loadbalancer/tests/loadbalancer-dependency/00-create-resources-missing-deps.yaml @@ -0,0 +1,84 @@ + +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: LoadBalancer +metadata: + name: loadbalancer-dependency-no-subnet +spec: + cloudCredentialsRef: + # TODO(scaffolding): Use openstack-admin if the resouce needs admin credentials to be created + cloudName: openstack + secretName: openstack-clouds + managementPolicy: managed + resource: + subnetRef: loadbalancer-dependency + # TODO(scaffolding): Add the necessary fields to create the resource +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: LoadBalancer +metadata: + name: loadbalancer-dependency-no-network +spec: + cloudCredentialsRef: + # TODO(scaffolding): Use openstack-admin if the resouce needs admin credentials to be created + cloudName: openstack + secretName: openstack-clouds + managementPolicy: managed + resource: + networkRef: loadbalancer-dependency + # TODO(scaffolding): Add the necessary fields to create the resource +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: LoadBalancer +metadata: + name: loadbalancer-dependency-no-port +spec: + cloudCredentialsRef: + # TODO(scaffolding): Use openstack-admin if the resouce needs admin credentials to be created + cloudName: openstack + secretName: openstack-clouds + managementPolicy: managed + resource: + portRef: loadbalancer-dependency + # TODO(scaffolding): Add the necessary fields to create the resource +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: LoadBalancer +metadata: + name: loadbalancer-dependency-no-flavor +spec: + cloudCredentialsRef: + # TODO(scaffolding): Use openstack-admin if the resouce needs admin credentials to be created + cloudName: openstack + secretName: openstack-clouds + managementPolicy: managed + resource: + flavorRef: loadbalancer-dependency + # TODO(scaffolding): Add the necessary fields to create the resource +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: LoadBalancer +metadata: + name: loadbalancer-dependency-no-project +spec: + cloudCredentialsRef: + # TODO(scaffolding): Use openstack-admin if the resouce needs admin credentials to be created + cloudName: openstack + secretName: openstack-clouds + managementPolicy: managed + resource: + projectRef: loadbalancer-dependency + # TODO(scaffolding): Add the necessary fields to create the resource +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: LoadBalancer +metadata: + name: loadbalancer-dependency-no-secret +spec: + cloudCredentialsRef: + # TODO(scaffolding): Use openstack-admin if the resouce needs admin credentials to be created + cloudName: openstack + secretName: loadbalancer-dependency + managementPolicy: managed + # TODO(scaffolding): Add the necessary fields to create the resource + resource: {} diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-dependency/00-secret.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-dependency/00-secret.yaml new file mode 100644 index 000000000..045711ee7 --- /dev/null +++ b/internal/controllers/loadbalancer/tests/loadbalancer-dependency/00-secret.yaml @@ -0,0 +1,6 @@ +--- +apiVersion: kuttl.dev/v1beta1 +kind: TestStep +commands: + - command: kubectl create secret generic openstack-clouds --from-file=clouds.yaml=${E2E_KUTTL_OSCLOUDS} ${E2E_KUTTL_CACERT_OPT} + namespaced: true diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-dependency/01-assert.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-dependency/01-assert.yaml new file mode 100644 index 000000000..5db640da1 --- /dev/null +++ b/internal/controllers/loadbalancer/tests/loadbalancer-dependency/01-assert.yaml @@ -0,0 +1,90 @@ +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: LoadBalancer +metadata: + name: loadbalancer-dependency-no-secret +status: + conditions: + - type: Available + message: OpenStack resource is available + status: "True" + reason: Success + - type: Progressing + message: OpenStack resource is up to date + status: "False" + reason: Success +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: LoadBalancer +metadata: + name: loadbalancer-dependency-no-subnet +status: + conditions: + - type: Available + message: OpenStack resource is available + status: "True" + reason: Success + - type: Progressing + message: OpenStack resource is up to date + status: "False" + reason: Success +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: LoadBalancer +metadata: + name: loadbalancer-dependency-no-network +status: + conditions: + - type: Available + message: OpenStack resource is available + status: "True" + reason: Success + - type: Progressing + message: OpenStack resource is up to date + status: "False" + reason: Success +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: LoadBalancer +metadata: + name: loadbalancer-dependency-no-port +status: + conditions: + - type: Available + message: OpenStack resource is available + status: "True" + reason: Success + - type: Progressing + message: OpenStack resource is up to date + status: "False" + reason: Success +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: LoadBalancer +metadata: + name: loadbalancer-dependency-no-flavor +status: + conditions: + - type: Available + message: OpenStack resource is available + status: "True" + reason: Success + - type: Progressing + message: OpenStack resource is up to date + status: "False" + reason: Success +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: LoadBalancer +metadata: + name: loadbalancer-dependency-no-project +status: + conditions: + - type: Available + message: OpenStack resource is available + status: "True" + reason: Success + - type: Progressing + message: OpenStack resource is up to date + status: "False" + reason: Success diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-dependency/01-create-dependencies.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-dependency/01-create-dependencies.yaml new file mode 100644 index 000000000..db46fcfdf --- /dev/null +++ b/internal/controllers/loadbalancer/tests/loadbalancer-dependency/01-create-dependencies.yaml @@ -0,0 +1,71 @@ +--- +apiVersion: kuttl.dev/v1beta1 +kind: TestStep +commands: + - command: kubectl create secret generic loadbalancer-dependency --from-file=clouds.yaml=${E2E_KUTTL_OSCLOUDS} ${E2E_KUTTL_CACERT_OPT} + namespaced: true +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: Subnet +metadata: + name: loadbalancer-dependency +spec: + cloudCredentialsRef: + # TODO(scaffolding): Use openstack-admin if the resouce needs admin credentials to be created + cloudName: openstack + secretName: openstack-clouds + managementPolicy: managed + # TODO(scaffolding): Add the necessary fields to create the resource + resource: {} +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: Network +metadata: + name: loadbalancer-dependency +spec: + cloudCredentialsRef: + # TODO(scaffolding): Use openstack-admin if the resouce needs admin credentials to be created + cloudName: openstack + secretName: openstack-clouds + managementPolicy: managed + # TODO(scaffolding): Add the necessary fields to create the resource + resource: {} +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: Port +metadata: + name: loadbalancer-dependency +spec: + cloudCredentialsRef: + # TODO(scaffolding): Use openstack-admin if the resouce needs admin credentials to be created + cloudName: openstack + secretName: openstack-clouds + managementPolicy: managed + # TODO(scaffolding): Add the necessary fields to create the resource + resource: {} +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: Flavor +metadata: + name: loadbalancer-dependency +spec: + cloudCredentialsRef: + # TODO(scaffolding): Use openstack-admin if the resouce needs admin credentials to be created + cloudName: openstack + secretName: openstack-clouds + managementPolicy: managed + # TODO(scaffolding): Add the necessary fields to create the resource + resource: {} +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: Project +metadata: + name: loadbalancer-dependency +spec: + cloudCredentialsRef: + # TODO(scaffolding): Use openstack-admin if the resouce needs admin credentials to be created + cloudName: openstack + secretName: openstack-clouds + managementPolicy: managed + # TODO(scaffolding): Add the necessary fields to create the resource + resource: {} diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-dependency/02-assert.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-dependency/02-assert.yaml new file mode 100644 index 000000000..9f9aa44fe --- /dev/null +++ b/internal/controllers/loadbalancer/tests/loadbalancer-dependency/02-assert.yaml @@ -0,0 +1,41 @@ +--- +apiVersion: kuttl.dev/v1beta1 +kind: TestAssert +resourceRefs: + - apiVersion: openstack.k-orc.cloud/v1alpha1 + kind: Subnet + name: loadbalancer-dependency + ref: subnet + - apiVersion: openstack.k-orc.cloud/v1alpha1 + kind: Network + name: loadbalancer-dependency + ref: network + - apiVersion: openstack.k-orc.cloud/v1alpha1 + kind: Port + name: loadbalancer-dependency + ref: port + - apiVersion: openstack.k-orc.cloud/v1alpha1 + kind: Flavor + name: loadbalancer-dependency + ref: flavor + - apiVersion: openstack.k-orc.cloud/v1alpha1 + kind: Project + name: loadbalancer-dependency + ref: project + - apiVersion: v1 + kind: Secret + name: loadbalancer-dependency + ref: secret +assertAll: + - celExpr: "subnet.metadata.deletionTimestamp != 0" + - celExpr: "'openstack.k-orc.cloud/loadbalancer' in subnet.metadata.finalizers" + - celExpr: "network.metadata.deletionTimestamp != 0" + - celExpr: "'openstack.k-orc.cloud/loadbalancer' in network.metadata.finalizers" + - celExpr: "port.metadata.deletionTimestamp != 0" + - celExpr: "'openstack.k-orc.cloud/loadbalancer' in port.metadata.finalizers" + - celExpr: "flavor.metadata.deletionTimestamp != 0" + - celExpr: "'openstack.k-orc.cloud/loadbalancer' in flavor.metadata.finalizers" + - celExpr: "project.metadata.deletionTimestamp != 0" + - celExpr: "'openstack.k-orc.cloud/loadbalancer' in project.metadata.finalizers" + - celExpr: "secret.metadata.deletionTimestamp != 0" + - celExpr: "'openstack.k-orc.cloud/loadbalancer' in secret.metadata.finalizers" diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-dependency/02-delete-dependencies.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-dependency/02-delete-dependencies.yaml new file mode 100644 index 000000000..601628e32 --- /dev/null +++ b/internal/controllers/loadbalancer/tests/loadbalancer-dependency/02-delete-dependencies.yaml @@ -0,0 +1,17 @@ +--- +apiVersion: kuttl.dev/v1beta1 +kind: TestStep +commands: + # We expect the deletion to hang due to the finalizer, so use --wait=false + - command: kubectl delete subnet loadbalancer-dependency --wait=false + namespaced: true + - command: kubectl delete network loadbalancer-dependency --wait=false + namespaced: true + - command: kubectl delete port loadbalancer-dependency --wait=false + namespaced: true + - command: kubectl delete flavor loadbalancer-dependency --wait=false + namespaced: true + - command: kubectl delete project loadbalancer-dependency --wait=false + namespaced: true + - command: kubectl delete secret loadbalancer-dependency --wait=false + namespaced: true diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-dependency/03-assert.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-dependency/03-assert.yaml new file mode 100644 index 000000000..c87e7cb8a --- /dev/null +++ b/internal/controllers/loadbalancer/tests/loadbalancer-dependency/03-assert.yaml @@ -0,0 +1,17 @@ +--- +apiVersion: kuttl.dev/v1beta1 +kind: TestAssert +commands: +# Dependencies that were prevented deletion before should now be gone +- script: "! kubectl get subnet loadbalancer-dependency --namespace $NAMESPACE" + skipLogOutput: true +- script: "! kubectl get network loadbalancer-dependency --namespace $NAMESPACE" + skipLogOutput: true +- script: "! kubectl get port loadbalancer-dependency --namespace $NAMESPACE" + skipLogOutput: true +- script: "! kubectl get flavor loadbalancer-dependency --namespace $NAMESPACE" + skipLogOutput: true +- script: "! kubectl get project loadbalancer-dependency --namespace $NAMESPACE" + skipLogOutput: true +- script: "! kubectl get secret loadbalancer-dependency --namespace $NAMESPACE" + skipLogOutput: true diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-dependency/03-delete-resources.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-dependency/03-delete-resources.yaml new file mode 100644 index 000000000..7fe29cc28 --- /dev/null +++ b/internal/controllers/loadbalancer/tests/loadbalancer-dependency/03-delete-resources.yaml @@ -0,0 +1,22 @@ +--- +apiVersion: kuttl.dev/v1beta1 +kind: TestStep +delete: +- apiVersion: openstack.k-orc.cloud/v1alpha1 + kind: LoadBalancer + name: loadbalancer-dependency-no-secret +- apiVersion: openstack.k-orc.cloud/v1alpha1 + kind: LoadBalancer + name: loadbalancer-dependency-no-subnet +- apiVersion: openstack.k-orc.cloud/v1alpha1 + kind: LoadBalancer + name: loadbalancer-dependency-no-network +- apiVersion: openstack.k-orc.cloud/v1alpha1 + kind: LoadBalancer + name: loadbalancer-dependency-no-port +- apiVersion: openstack.k-orc.cloud/v1alpha1 + kind: LoadBalancer + name: loadbalancer-dependency-no-flavor +- apiVersion: openstack.k-orc.cloud/v1alpha1 + kind: LoadBalancer + name: loadbalancer-dependency-no-project diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-dependency/README.md b/internal/controllers/loadbalancer/tests/loadbalancer-dependency/README.md new file mode 100644 index 000000000..b1a05802f --- /dev/null +++ b/internal/controllers/loadbalancer/tests/loadbalancer-dependency/README.md @@ -0,0 +1,21 @@ +# Creation and deletion dependencies + +## Step 00 + +Create LoadBalancers referencing non-existing resources. Each LoadBalancer is dependent on other non-existing resource. Verify that the LoadBalancers are waiting for the needed resources to be created externally. + +## Step 01 + +Create the missing dependencies and verify all the LoadBalancers are available. + +## Step 02 + +Delete all the dependencies and check that ORC prevents deletion since there is still a resource that depends on them. + +## Step 03 + +Delete the LoadBalancers and validate that all resources are gone. + +## Reference + +https://k-orc.cloud/development/writing-tests/#dependency diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/00-assert.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/00-assert.yaml new file mode 100644 index 000000000..c084e2354 --- /dev/null +++ b/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/00-assert.yaml @@ -0,0 +1,23 @@ +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: LoadBalancer +metadata: + name: loadbalancer-import-dependency +status: + conditions: + - type: Available + message: |- + Waiting for VipNetwork/loadbalancer-import-dependency to be ready + Waiting for Project/loadbalancer-import-dependency to be ready + Waiting for VipSubnet/loadbalancer-import-dependency to be ready + Waiting for VipPort/loadbalancer-import-dependency to be ready + status: "False" + reason: Progressing + - type: Progressing + message: |- + Waiting for VipNetwork/loadbalancer-import-dependency to be ready + Waiting for Project/loadbalancer-import-dependency to be ready + Waiting for VipSubnet/loadbalancer-import-dependency to be ready + Waiting for VipPort/loadbalancer-import-dependency to be ready + status: "True" + reason: Progressing diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/00-import-resource.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/00-import-resource.yaml new file mode 100644 index 000000000..0f94ea83c --- /dev/null +++ b/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/00-import-resource.yaml @@ -0,0 +1,68 @@ +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: VipNetwork +metadata: + name: loadbalancer-import-dependency +spec: + cloudCredentialsRef: + cloudName: openstack + secretName: openstack-clouds + managementPolicy: unmanaged + import: + filter: + name: loadbalancer-import-dependency-external +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: Project +metadata: + name: loadbalancer-import-dependency +spec: + cloudCredentialsRef: + cloudName: openstack + secretName: openstack-clouds + managementPolicy: unmanaged + import: + filter: + name: loadbalancer-import-dependency-external +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: VipSubnet +metadata: + name: loadbalancer-import-dependency +spec: + cloudCredentialsRef: + cloudName: openstack + secretName: openstack-clouds + managementPolicy: unmanaged + import: + filter: + name: loadbalancer-import-dependency-external +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: VipPort +metadata: + name: loadbalancer-import-dependency +spec: + cloudCredentialsRef: + cloudName: openstack + secretName: openstack-clouds + managementPolicy: unmanaged + import: + filter: + name: loadbalancer-import-dependency-external +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: LoadBalancer +metadata: + name: loadbalancer-import-dependency +spec: + cloudCredentialsRef: + cloudName: openstack + secretName: openstack-clouds + managementPolicy: unmanaged + import: + filter: + vipNetworkRef: loadbalancer-import-dependency + projectRef: loadbalancer-import-dependency + vipSubnetRef: loadbalancer-import-dependency + vipPortRef: loadbalancer-import-dependency diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/00-secret.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/00-secret.yaml new file mode 100644 index 000000000..045711ee7 --- /dev/null +++ b/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/00-secret.yaml @@ -0,0 +1,6 @@ +--- +apiVersion: kuttl.dev/v1beta1 +kind: TestStep +commands: + - command: kubectl create secret generic openstack-clouds --from-file=clouds.yaml=${E2E_KUTTL_OSCLOUDS} ${E2E_KUTTL_CACERT_OPT} + namespaced: true diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/01-assert.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/01-assert.yaml new file mode 100644 index 000000000..5f40565be --- /dev/null +++ b/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/01-assert.yaml @@ -0,0 +1,38 @@ +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: LoadBalancer +metadata: + name: loadbalancer-import-dependency-not-this-one +status: + conditions: + - type: Available + message: OpenStack resource is available + status: "True" + reason: Success + - type: Progressing + message: OpenStack resource is up to date + status: "False" + reason: Success +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: LoadBalancer +metadata: + name: loadbalancer-import-dependency +status: + conditions: + - type: Available + message: |- + Waiting for VipNetwork/loadbalancer-import-dependency to be ready + Waiting for Project/loadbalancer-import-dependency to be ready + Waiting for VipSubnet/loadbalancer-import-dependency to be ready + Waiting for VipPort/loadbalancer-import-dependency to be ready + status: "False" + reason: Progressing + - type: Progressing + message: |- + Waiting for VipNetwork/loadbalancer-import-dependency to be ready + Waiting for Project/loadbalancer-import-dependency to be ready + Waiting for VipSubnet/loadbalancer-import-dependency to be ready + Waiting for VipPort/loadbalancer-import-dependency to be ready + status: "True" + reason: Progressing diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/01-create-trap-resource.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/01-create-trap-resource.yaml new file mode 100644 index 000000000..1c28e72bf --- /dev/null +++ b/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/01-create-trap-resource.yaml @@ -0,0 +1,70 @@ +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: VipNetwork +metadata: + name: loadbalancer-import-dependency-not-this-one +spec: + cloudCredentialsRef: + # TODO(scaffolding): Use openstack-admin if the resouce needs admin credentials to be created + cloudName: openstack + secretName: openstack-clouds + managementPolicy: managed + # TODO(scaffolding): Add the necessary fields to create the resource + resource: {} +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: Project +metadata: + name: loadbalancer-import-dependency-not-this-one +spec: + cloudCredentialsRef: + # TODO(scaffolding): Use openstack-admin if the resouce needs admin credentials to be created + cloudName: openstack + secretName: openstack-clouds + managementPolicy: managed + # TODO(scaffolding): Add the necessary fields to create the resource + resource: {} +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: VipSubnet +metadata: + name: loadbalancer-import-dependency-not-this-one +spec: + cloudCredentialsRef: + # TODO(scaffolding): Use openstack-admin if the resouce needs admin credentials to be created + cloudName: openstack + secretName: openstack-clouds + managementPolicy: managed + # TODO(scaffolding): Add the necessary fields to create the resource + resource: {} +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: VipPort +metadata: + name: loadbalancer-import-dependency-not-this-one +spec: + cloudCredentialsRef: + # TODO(scaffolding): Use openstack-admin if the resouce needs admin credentials to be created + cloudName: openstack + secretName: openstack-clouds + managementPolicy: managed + # TODO(scaffolding): Add the necessary fields to create the resource + resource: {} +--- +# This `loadbalancer-import-dependency-not-this-one` should not be picked by the import filter +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: LoadBalancer +metadata: + name: loadbalancer-import-dependency-not-this-one +spec: + cloudCredentialsRef: + # TODO(scaffolding): Use openstack-admin if the resouce needs admin credentials to be created + cloudName: openstack + secretName: openstack-clouds + managementPolicy: managed + resource: + vipNetworkRef: loadbalancer-import-dependency-not-this-one + projectRef: loadbalancer-import-dependency-not-this-one + vipSubnetRef: loadbalancer-import-dependency-not-this-one + vipPortRef: loadbalancer-import-dependency-not-this-one + # TODO(scaffolding): Add the necessary fields to create the resource diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/02-assert.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/02-assert.yaml new file mode 100644 index 000000000..bb1dd685b --- /dev/null +++ b/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/02-assert.yaml @@ -0,0 +1,49 @@ +--- +apiVersion: kuttl.dev/v1beta1 +kind: TestAssert +resourceRefs: + - apiVersion: openstack.k-orc.cloud/v1alpha1 + kind: LoadBalancer + name: loadbalancer-import-dependency + ref: loadbalancer1 + - apiVersion: openstack.k-orc.cloud/v1alpha1 + kind: LoadBalancer + name: loadbalancer-import-dependency-not-this-one + ref: loadbalancer2 + - apiVersion: openstack.k-orc.cloud/v1alpha1 + kind: VipNetwork + name: loadbalancer-import-dependency + ref: vipNetwork + - apiVersion: openstack.k-orc.cloud/v1alpha1 + kind: Project + name: loadbalancer-import-dependency + ref: project + - apiVersion: openstack.k-orc.cloud/v1alpha1 + kind: VipSubnet + name: loadbalancer-import-dependency + ref: vipSubnet + - apiVersion: openstack.k-orc.cloud/v1alpha1 + kind: VipPort + name: loadbalancer-import-dependency + ref: vipPort +assertAll: + - celExpr: "loadbalancer1.status.id != loadbalancer2.status.id" + - celExpr: "loadbalancer1.status.resource.vipNetworkID == vipNetwork.status.id" + - celExpr: "loadbalancer1.status.resource.projectID == project.status.id" + - celExpr: "loadbalancer1.status.resource.vipSubnetID == vipSubnet.status.id" + - celExpr: "loadbalancer1.status.resource.vipPortID == vipPort.status.id" +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: LoadBalancer +metadata: + name: loadbalancer-import-dependency +status: + conditions: + - type: Available + message: OpenStack resource is available + status: "True" + reason: Success + - type: Progressing + message: OpenStack resource is up to date + status: "False" + reason: Success diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/02-create-resource.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/02-create-resource.yaml new file mode 100644 index 000000000..1d5ff803d --- /dev/null +++ b/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/02-create-resource.yaml @@ -0,0 +1,69 @@ +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: VipNetwork +metadata: + name: loadbalancer-import-dependency-external +spec: + cloudCredentialsRef: + # TODO(scaffolding): Use openstack-admin if the resouce needs admin credentials to be created + cloudName: openstack + secretName: openstack-clouds + managementPolicy: managed + # TODO(scaffolding): Add the necessary fields to create the resource + resource: {} +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: Project +metadata: + name: loadbalancer-import-dependency-external +spec: + cloudCredentialsRef: + # TODO(scaffolding): Use openstack-admin if the resouce needs admin credentials to be created + cloudName: openstack + secretName: openstack-clouds + managementPolicy: managed + # TODO(scaffolding): Add the necessary fields to create the resource + resource: {} +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: VipSubnet +metadata: + name: loadbalancer-import-dependency-external +spec: + cloudCredentialsRef: + # TODO(scaffolding): Use openstack-admin if the resouce needs admin credentials to be created + cloudName: openstack + secretName: openstack-clouds + managementPolicy: managed + # TODO(scaffolding): Add the necessary fields to create the resource + resource: {} +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: VipPort +metadata: + name: loadbalancer-import-dependency-external +spec: + cloudCredentialsRef: + # TODO(scaffolding): Use openstack-admin if the resouce needs admin credentials to be created + cloudName: openstack + secretName: openstack-clouds + managementPolicy: managed + # TODO(scaffolding): Add the necessary fields to create the resource + resource: {} +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: LoadBalancer +metadata: + name: loadbalancer-import-dependency-external +spec: + cloudCredentialsRef: + # TODO(scaffolding): Use openstack-admin if the resouce needs admin credentials to be created + cloudName: openstack-admin + secretName: openstack-clouds + managementPolicy: managed + resource: + vipNetworkRef: loadbalancer-import-dependency-external + projectRef: loadbalancer-import-dependency-external + vipSubnetRef: loadbalancer-import-dependency-external + vipPortRef: loadbalancer-import-dependency-external + # TODO(scaffolding): Add the necessary fields to create the resource diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/03-assert.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/03-assert.yaml new file mode 100644 index 000000000..8a3a6bcc9 --- /dev/null +++ b/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/03-assert.yaml @@ -0,0 +1,12 @@ +--- +apiVersion: kuttl.dev/v1beta1 +kind: TestAssert +commands: +- script: "! kubectl get vipnetwork loadbalancer-import-dependency --namespace $NAMESPACE" + skipLogOutput: true +- script: "! kubectl get project loadbalancer-import-dependency --namespace $NAMESPACE" + skipLogOutput: true +- script: "! kubectl get vipsubnet loadbalancer-import-dependency --namespace $NAMESPACE" + skipLogOutput: true +- script: "! kubectl get vipport loadbalancer-import-dependency --namespace $NAMESPACE" + skipLogOutput: true diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/03-delete-import-dependencies.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/03-delete-import-dependencies.yaml new file mode 100644 index 000000000..06db478c4 --- /dev/null +++ b/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/03-delete-import-dependencies.yaml @@ -0,0 +1,13 @@ +--- +apiVersion: kuttl.dev/v1beta1 +kind: TestStep +commands: + # We should be able to delete the import dependencies + - command: kubectl delete vipnetwork loadbalancer-import-dependency + namespaced: true + - command: kubectl delete project loadbalancer-import-dependency + namespaced: true + - command: kubectl delete vipsubnet loadbalancer-import-dependency + namespaced: true + - command: kubectl delete vipport loadbalancer-import-dependency + namespaced: true diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/04-assert.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/04-assert.yaml new file mode 100644 index 000000000..0aa186534 --- /dev/null +++ b/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/04-assert.yaml @@ -0,0 +1,6 @@ +--- +apiVersion: kuttl.dev/v1beta1 +kind: TestAssert +commands: +- script: "! kubectl get loadbalancer loadbalancer-import-dependency --namespace $NAMESPACE" + skipLogOutput: true diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/04-delete-resource.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/04-delete-resource.yaml new file mode 100644 index 000000000..4d83e9aff --- /dev/null +++ b/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/04-delete-resource.yaml @@ -0,0 +1,7 @@ +--- +apiVersion: kuttl.dev/v1beta1 +kind: TestStep +delete: + - apiVersion: openstack.k-orc.cloud/v1alpha1 + kind: LoadBalancer + name: loadbalancer-import-dependency diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/README.md b/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/README.md new file mode 100644 index 000000000..15004d8ca --- /dev/null +++ b/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/README.md @@ -0,0 +1,29 @@ +# Check dependency handling for imported LoadBalancer + +## Step 00 + +Import a LoadBalancer that references other imported resources. The referenced imported resources have no matching resources yet. +Verify the LoadBalancer is waiting for the dependency to be ready. + +## Step 01 + +Create a LoadBalancer matching the import filter, except for referenced resources, and verify that it's not being imported. + +## Step 02 + +Create the referenced resources and a LoadBalancer matching the import filters. + +Verify that the observed status on the imported LoadBalancer corresponds to the spec of the created LoadBalancer. + +## Step 03 + +Delete the referenced resources and check that ORC does not prevent deletion. The OpenStack resources still exist because they +were imported resources and we only deleted the ORC representation of it. + +## Step 04 + +Delete the LoadBalancer and validate that all resources are gone. + +## Reference + +https://k-orc.cloud/development/writing-tests/#import-dependency diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-import-error/00-assert.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-import-error/00-assert.yaml new file mode 100644 index 000000000..310f9510b --- /dev/null +++ b/internal/controllers/loadbalancer/tests/loadbalancer-import-error/00-assert.yaml @@ -0,0 +1,30 @@ +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: LoadBalancer +metadata: + name: loadbalancer-import-error-external-1 +status: + conditions: + - type: Available + message: OpenStack resource is available + status: "True" + reason: Success + - type: Progressing + message: OpenStack resource is up to date + status: "False" + reason: Success +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: LoadBalancer +metadata: + name: loadbalancer-import-error-external-2 +status: + conditions: + - type: Available + message: OpenStack resource is available + status: "True" + reason: Success + - type: Progressing + message: OpenStack resource is up to date + status: "False" + reason: Success diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-import-error/00-create-resources.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-import-error/00-create-resources.yaml new file mode 100644 index 000000000..37ab64de5 --- /dev/null +++ b/internal/controllers/loadbalancer/tests/loadbalancer-import-error/00-create-resources.yaml @@ -0,0 +1,28 @@ +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: LoadBalancer +metadata: + name: loadbalancer-import-error-external-1 +spec: + cloudCredentialsRef: + # TODO(scaffolding): Use openstack-admin if the resouce needs admin credentials to be created + cloudName: openstack + secretName: openstack-clouds + managementPolicy: managed + resource: + description: LoadBalancer from "import error" test + # TODO(scaffolding): add any required field +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: LoadBalancer +metadata: + name: loadbalancer-import-error-external-2 +spec: + cloudCredentialsRef: + # TODO(scaffolding): Use openstack-admin if the resouce needs admin credentials to be created + cloudName: openstack + secretName: openstack-clouds + managementPolicy: managed + resource: + description: LoadBalancer from "import error" test + # TODO(scaffolding): add any required field diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-import-error/00-secret.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-import-error/00-secret.yaml new file mode 100644 index 000000000..045711ee7 --- /dev/null +++ b/internal/controllers/loadbalancer/tests/loadbalancer-import-error/00-secret.yaml @@ -0,0 +1,6 @@ +--- +apiVersion: kuttl.dev/v1beta1 +kind: TestStep +commands: + - command: kubectl create secret generic openstack-clouds --from-file=clouds.yaml=${E2E_KUTTL_OSCLOUDS} ${E2E_KUTTL_CACERT_OPT} + namespaced: true diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-import-error/01-assert.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-import-error/01-assert.yaml new file mode 100644 index 000000000..1629ec940 --- /dev/null +++ b/internal/controllers/loadbalancer/tests/loadbalancer-import-error/01-assert.yaml @@ -0,0 +1,15 @@ +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: LoadBalancer +metadata: + name: loadbalancer-import-error +status: + conditions: + - type: Available + message: found more than one matching OpenStack resource during import + status: "False" + reason: InvalidConfiguration + - type: Progressing + message: found more than one matching OpenStack resource during import + status: "False" + reason: InvalidConfiguration diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-import-error/01-import-resource.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-import-error/01-import-resource.yaml new file mode 100644 index 000000000..23918c0b0 --- /dev/null +++ b/internal/controllers/loadbalancer/tests/loadbalancer-import-error/01-import-resource.yaml @@ -0,0 +1,13 @@ +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: LoadBalancer +metadata: + name: loadbalancer-import-error +spec: + cloudCredentialsRef: + cloudName: openstack + secretName: openstack-clouds + managementPolicy: unmanaged + import: + filter: + description: LoadBalancer from "import error" test diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-import-error/README.md b/internal/controllers/loadbalancer/tests/loadbalancer-import-error/README.md new file mode 100644 index 000000000..3f9d4cf84 --- /dev/null +++ b/internal/controllers/loadbalancer/tests/loadbalancer-import-error/README.md @@ -0,0 +1,13 @@ +# Import LoadBalancer with more than one matching resources + +## Step 00 + +Create two LoadBalancers with identical specs. + +## Step 01 + +Ensure that an imported LoadBalancer with a filter matching the resources returns an error. + +## Reference + +https://k-orc.cloud/development/writing-tests/#import-error diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-import/00-assert.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-import/00-assert.yaml new file mode 100644 index 000000000..86f108f68 --- /dev/null +++ b/internal/controllers/loadbalancer/tests/loadbalancer-import/00-assert.yaml @@ -0,0 +1,15 @@ +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: LoadBalancer +metadata: + name: loadbalancer-import +status: + conditions: + - type: Available + message: Waiting for OpenStack resource to be created externally + status: "False" + reason: Progressing + - type: Progressing + message: Waiting for OpenStack resource to be created externally + status: "True" + reason: Progressing diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-import/00-import-resource.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-import/00-import-resource.yaml new file mode 100644 index 000000000..b5f3c6de4 --- /dev/null +++ b/internal/controllers/loadbalancer/tests/loadbalancer-import/00-import-resource.yaml @@ -0,0 +1,15 @@ +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: LoadBalancer +metadata: + name: loadbalancer-import +spec: + cloudCredentialsRef: + cloudName: openstack + secretName: openstack-clouds + managementPolicy: unmanaged + import: + filter: + name: loadbalancer-import-external + description: LoadBalancer loadbalancer-import-external from "loadbalancer-import" test + # TODO(scaffolding): Add all fields supported by the filter diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-import/00-secret.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-import/00-secret.yaml new file mode 100644 index 000000000..045711ee7 --- /dev/null +++ b/internal/controllers/loadbalancer/tests/loadbalancer-import/00-secret.yaml @@ -0,0 +1,6 @@ +--- +apiVersion: kuttl.dev/v1beta1 +kind: TestStep +commands: + - command: kubectl create secret generic openstack-clouds --from-file=clouds.yaml=${E2E_KUTTL_OSCLOUDS} ${E2E_KUTTL_CACERT_OPT} + namespaced: true diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-import/01-assert.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-import/01-assert.yaml new file mode 100644 index 000000000..aa4e17c01 --- /dev/null +++ b/internal/controllers/loadbalancer/tests/loadbalancer-import/01-assert.yaml @@ -0,0 +1,34 @@ +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: LoadBalancer +metadata: + name: loadbalancer-import-external-not-this-one +status: + conditions: + - type: Available + message: OpenStack resource is available + status: "True" + reason: Success + - type: Progressing + message: OpenStack resource is up to date + status: "False" + reason: Success + resource: + name: loadbalancer-import-external-not-this-one + description: LoadBalancer loadbalancer-import-external from "loadbalancer-import" test + # TODO(scaffolding): Add fields necessary to match filter +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: LoadBalancer +metadata: + name: loadbalancer-import +status: + conditions: + - type: Available + message: Waiting for OpenStack resource to be created externally + status: "False" + reason: Progressing + - type: Progressing + message: Waiting for OpenStack resource to be created externally + status: "True" + reason: Progressing diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-import/01-create-trap-resource.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-import/01-create-trap-resource.yaml new file mode 100644 index 000000000..fea259b60 --- /dev/null +++ b/internal/controllers/loadbalancer/tests/loadbalancer-import/01-create-trap-resource.yaml @@ -0,0 +1,17 @@ +--- +# This `loadbalancer-import-external-not-this-one` resource serves two purposes: +# - ensure that we can successfully create another resource which name is a substring of it (i.e. it's not being adopted) +# - ensure that importing a resource which name is a substring of it will not pick this one. +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: LoadBalancer +metadata: + name: loadbalancer-import-external-not-this-one +spec: + cloudCredentialsRef: + # TODO(scaffolding): Use openstack-admin if the resouce needs admin credentials to be created + cloudName: openstack + secretName: openstack-clouds + managementPolicy: managed + resource: + description: LoadBalancer loadbalancer-import-external from "loadbalancer-import" test + # TODO(scaffolding): Add fields necessary to match filter diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-import/02-assert.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-import/02-assert.yaml new file mode 100644 index 000000000..7678b3e49 --- /dev/null +++ b/internal/controllers/loadbalancer/tests/loadbalancer-import/02-assert.yaml @@ -0,0 +1,33 @@ +--- +apiVersion: kuttl.dev/v1beta1 +kind: TestAssert +resourceRefs: + - apiVersion: openstack.k-orc.cloud/v1alpha1 + kind: LoadBalancer + name: loadbalancer-import-external + ref: loadbalancer1 + - apiVersion: openstack.k-orc.cloud/v1alpha1 + kind: LoadBalancer + name: loadbalancer-import-external-not-this-one + ref: loadbalancer2 +assertAll: + - celExpr: "loadbalancer1.status.id != loadbalancer2.status.id" +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: LoadBalancer +metadata: + name: loadbalancer-import +status: + conditions: + - type: Available + message: OpenStack resource is available + status: "True" + reason: Success + - type: Progressing + message: OpenStack resource is up to date + status: "False" + reason: Success + resource: + name: loadbalancer-import-external + description: LoadBalancer loadbalancer-import-external from "loadbalancer-import" test + # TODO(scaffolding): Add all fields the resource supports diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-import/02-create-resource.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-import/02-create-resource.yaml new file mode 100644 index 000000000..5c55a3b64 --- /dev/null +++ b/internal/controllers/loadbalancer/tests/loadbalancer-import/02-create-resource.yaml @@ -0,0 +1,14 @@ +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: LoadBalancer +metadata: + name: loadbalancer-import-external +spec: + cloudCredentialsRef: + # TODO(scaffolding): Use openstack-admin if the resouce needs admin credentials to be created + cloudName: openstack + secretName: openstack-clouds + managementPolicy: managed + resource: + description: LoadBalancer loadbalancer-import-external from "loadbalancer-import" test + # TODO(scaffolding): Add fields necessary to match filter diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-import/README.md b/internal/controllers/loadbalancer/tests/loadbalancer-import/README.md new file mode 100644 index 000000000..090224429 --- /dev/null +++ b/internal/controllers/loadbalancer/tests/loadbalancer-import/README.md @@ -0,0 +1,18 @@ +# Import LoadBalancer + +## Step 00 + +Import a loadbalancer that matches all fields in the filter, and verify it is waiting for the external resource to be created. + +## Step 01 + +Create a loadbalancer whose name is a superstring of the one specified in the import filter, otherwise matching the filter, and verify that it's not being imported. + +## Step 02 + +Create a loadbalancer matching the filter and verify that the observed status on the imported loadbalancer corresponds to the spec of the created loadbalancer. +Also, confirm that it does not adopt any loadbalancer whose name is a superstring of its own. + +## Reference + +https://k-orc.cloud/development/writing-tests/#import diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-update/00-assert.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-update/00-assert.yaml new file mode 100644 index 000000000..bc7dffe84 --- /dev/null +++ b/internal/controllers/loadbalancer/tests/loadbalancer-update/00-assert.yaml @@ -0,0 +1,26 @@ +--- +apiVersion: kuttl.dev/v1beta1 +kind: TestAssert +resourceRefs: + - apiVersion: openstack.k-orc.cloud/v1alpha1 + kind: LoadBalancer + name: loadbalancer-update + ref: loadbalancer +assertAll: + - celExpr: "!has(loadbalancer.status.resource.description)" +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: LoadBalancer +metadata: + name: loadbalancer-update +status: + resource: + name: loadbalancer-update + # TODO(scaffolding): Add matches for more fields + conditions: + - type: Available + status: "True" + reason: Success + - type: Progressing + status: "False" + reason: Success diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-update/00-minimal-resource.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-update/00-minimal-resource.yaml new file mode 100644 index 000000000..b0a66b498 --- /dev/null +++ b/internal/controllers/loadbalancer/tests/loadbalancer-update/00-minimal-resource.yaml @@ -0,0 +1,14 @@ +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: LoadBalancer +metadata: + name: loadbalancer-update +spec: + cloudCredentialsRef: + # TODO(scaffolding): Use openstack-admin if the resouce needs admin credentials to be created or updated + cloudName: openstack + secretName: openstack-clouds + managementPolicy: managed + # TODO(scaffolding): Only add the mandatory fields. It's possible the resource + # doesn't have mandatory fields, in that case, leave it empty. + resource: {} diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-update/00-prerequisites.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-update/00-prerequisites.yaml new file mode 100644 index 000000000..045711ee7 --- /dev/null +++ b/internal/controllers/loadbalancer/tests/loadbalancer-update/00-prerequisites.yaml @@ -0,0 +1,6 @@ +--- +apiVersion: kuttl.dev/v1beta1 +kind: TestStep +commands: + - command: kubectl create secret generic openstack-clouds --from-file=clouds.yaml=${E2E_KUTTL_OSCLOUDS} ${E2E_KUTTL_CACERT_OPT} + namespaced: true diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-update/01-assert.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-update/01-assert.yaml new file mode 100644 index 000000000..9cd82b42f --- /dev/null +++ b/internal/controllers/loadbalancer/tests/loadbalancer-update/01-assert.yaml @@ -0,0 +1,17 @@ +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: LoadBalancer +metadata: + name: loadbalancer-update +status: + resource: + name: loadbalancer-update-updated + description: loadbalancer-update-updated + # TODO(scaffolding): match all fields that were modified + conditions: + - type: Available + status: "True" + reason: Success + - type: Progressing + status: "False" + reason: Success diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-update/01-updated-resource.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-update/01-updated-resource.yaml new file mode 100644 index 000000000..4b0cebf26 --- /dev/null +++ b/internal/controllers/loadbalancer/tests/loadbalancer-update/01-updated-resource.yaml @@ -0,0 +1,10 @@ +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: LoadBalancer +metadata: + name: loadbalancer-update +spec: + resource: + name: loadbalancer-update-updated + description: loadbalancer-update-updated + # TODO(scaffolding): update all mutable fields diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-update/02-assert.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-update/02-assert.yaml new file mode 100644 index 000000000..82a2efd49 --- /dev/null +++ b/internal/controllers/loadbalancer/tests/loadbalancer-update/02-assert.yaml @@ -0,0 +1,26 @@ +--- +apiVersion: kuttl.dev/v1beta1 +kind: TestAssert +resourceRefs: + - apiVersion: openstack.k-orc.cloud/v1alpha1 + kind: LoadBalancer + name: loadbalancer-update + ref: loadbalancer +assertAll: + - celExpr: "!has(loadbalancer.status.resource.description)" +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: LoadBalancer +metadata: + name: loadbalancer-update +status: + resource: + name: loadbalancer-update + # TODO(scaffolding): validate that updated fields were all reverted to their original value + conditions: + - type: Available + status: "True" + reason: Success + - type: Progressing + status: "False" + reason: Success diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-update/02-reverted-resource.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-update/02-reverted-resource.yaml new file mode 100644 index 000000000..2c6c253ff --- /dev/null +++ b/internal/controllers/loadbalancer/tests/loadbalancer-update/02-reverted-resource.yaml @@ -0,0 +1,7 @@ +# NOTE: kuttl only does patch updates, which means we can't delete a field. +# We have to use a kubectl apply command instead. +apiVersion: kuttl.dev/v1beta1 +kind: TestStep +commands: + - command: kubectl replace -f 00-minimal-resource.yaml + namespaced: true diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-update/README.md b/internal/controllers/loadbalancer/tests/loadbalancer-update/README.md new file mode 100644 index 000000000..9dafb19c4 --- /dev/null +++ b/internal/controllers/loadbalancer/tests/loadbalancer-update/README.md @@ -0,0 +1,17 @@ +# Update LoadBalancer + +## Step 00 + +Create a LoadBalancer using only mandatory fields. + +## Step 01 + +Update all mutable fields. + +## Step 02 + +Revert the resource to its original value and verify that the resulting object matches its state when first created. + +## Reference + +https://k-orc.cloud/development/writing-tests/#update diff --git a/internal/osclients/loadbalancer.go b/internal/osclients/loadbalancer.go new file mode 100644 index 000000000..d28574583 --- /dev/null +++ b/internal/osclients/loadbalancer.go @@ -0,0 +1,104 @@ +/* +Copyright 2026 The ORC Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package osclients + +import ( + "context" + "fmt" + "iter" + + "github.com/gophercloud/gophercloud/v2" + "github.com/gophercloud/gophercloud/v2/openstack" + "github.com/gophercloud/gophercloud/v2/openstack/loadbalancer/v2/loadbalancers" + "github.com/gophercloud/utils/v2/openstack/clientconfig" +) + +type LoadBalancerClient interface { + ListLoadBalancers(ctx context.Context, listOpts loadbalancers.ListOptsBuilder) iter.Seq2[*loadbalancers.LoadBalancer, error] + CreateLoadBalancer(ctx context.Context, opts loadbalancers.CreateOptsBuilder) (*loadbalancers.LoadBalancer, error) + DeleteLoadBalancer(ctx context.Context, resourceID string) error + GetLoadBalancer(ctx context.Context, resourceID string) (*loadbalancers.LoadBalancer, error) + UpdateLoadBalancer(ctx context.Context, id string, opts loadbalancers.UpdateOptsBuilder) (*loadbalancers.LoadBalancer, error) +} + +type loadbalancerClient struct{ client *gophercloud.ServiceClient } + +// NewLoadBalancerClient returns a new OpenStack client. +func NewLoadBalancerClient(providerClient *gophercloud.ProviderClient, providerClientOpts *clientconfig.ClientOpts) (LoadBalancerClient, error) { + client, err := openstack.NewLoadBalancerV2(providerClient, gophercloud.EndpointOpts{ + Region: providerClientOpts.RegionName, + Availability: clientconfig.GetEndpointType(providerClientOpts.EndpointType), + }) + + if err != nil { + return nil, fmt.Errorf("failed to create loadbalancer service client: %v", err) + } + + return &loadbalancerClient{client}, nil +} + +func (c loadbalancerClient) ListLoadBalancers(ctx context.Context, listOpts loadbalancers.ListOptsBuilder) iter.Seq2[*loadbalancers.LoadBalancer, error] { + pager := loadbalancers.List(c.client, listOpts) + return func(yield func(*loadbalancers.LoadBalancer, error) bool) { + _ = pager.EachPage(ctx, yieldPage(loadbalancers.ExtractLoadBalancers, yield)) + } +} + +func (c loadbalancerClient) CreateLoadBalancer(ctx context.Context, opts loadbalancers.CreateOptsBuilder) (*loadbalancers.LoadBalancer, error) { + return loadbalancers.Create(ctx, c.client, opts).Extract() +} + +func (c loadbalancerClient) DeleteLoadBalancer(ctx context.Context, resourceID string) error { + return loadbalancers.Delete(ctx, c.client, resourceID).ExtractErr() +} + +func (c loadbalancerClient) GetLoadBalancer(ctx context.Context, resourceID string) (*loadbalancers.LoadBalancer, error) { + return loadbalancers.Get(ctx, c.client, resourceID).Extract() +} + +func (c loadbalancerClient) UpdateLoadBalancer(ctx context.Context, id string, opts loadbalancers.UpdateOptsBuilder) (*loadbalancers.LoadBalancer, error) { + return loadbalancers.Update(ctx, c.client, id, opts).Extract() +} + +type loadbalancerErrorClient struct{ error } + +// NewLoadBalancerErrorClient returns a LoadBalancerClient in which every method returns the given error. +func NewLoadBalancerErrorClient(e error) LoadBalancerClient { + return loadbalancerErrorClient{e} +} + +func (e loadbalancerErrorClient) ListLoadBalancers(_ context.Context, _ loadbalancers.ListOptsBuilder) iter.Seq2[*loadbalancers.LoadBalancer, error] { + return func(yield func(*loadbalancers.LoadBalancer, error) bool) { + yield(nil, e.error) + } +} + +func (e loadbalancerErrorClient) CreateLoadBalancer(_ context.Context, _ loadbalancers.CreateOptsBuilder) (*loadbalancers.LoadBalancer, error) { + return nil, e.error +} + +func (e loadbalancerErrorClient) DeleteLoadBalancer(_ context.Context, _ string) error { + return e.error +} + +func (e loadbalancerErrorClient) GetLoadBalancer(_ context.Context, _ string) (*loadbalancers.LoadBalancer, error) { + return nil, e.error +} + +func (e loadbalancerErrorClient) UpdateLoadBalancer(_ context.Context, _ string, _ loadbalancers.UpdateOptsBuilder) (*loadbalancers.LoadBalancer, error) { + return nil, e.error +} diff --git a/website/docs/crd-reference.md b/website/docs/crd-reference.md index 1ccbb7352..fd70e764b 100644 --- a/website/docs/crd-reference.md +++ b/website/docs/crd-reference.md @@ -2190,6 +2190,8 @@ _Appears in:_ - [GroupFilter](#groupfilter) - [GroupResourceSpec](#groupresourcespec) - [HostID](#hostid) +- [LoadBalancerFilter](#loadbalancerfilter) +- [LoadBalancerResourceSpec](#loadbalancerresourcespec) - [NetworkFilter](#networkfilter) - [NetworkResourceSpec](#networkresourcespec) - [PortFilter](#portfilter) @@ -2221,6 +2223,12 @@ _Appears in:_ + + + + + + #### MAC _Underlying type:_ _string_ @@ -2614,6 +2622,8 @@ _Appears in:_ - [ImageResourceSpec](#imageresourcespec) - [KeyPairFilter](#keypairfilter) - [KeyPairResourceSpec](#keypairresourcespec) +- [LoadBalancerFilter](#loadbalancerfilter) +- [LoadBalancerResourceSpec](#loadbalancerresourcespec) - [NetworkFilter](#networkfilter) - [NetworkResourceSpec](#networkresourcespec) - [PortFilter](#portfilter) From ca190efe068cb05fb500fd031bb01d7ca28d15e1 Mon Sep 17 00:00:00 2001 From: eshulman2 Date: Thu, 25 Dec 2025 11:28:54 +0200 Subject: [PATCH 3/3] OSASINFRA-4029: loadbalancer: add LoadBalancer controller Add support for OpenStack Octavia Load Balancer resources. This includes: - LoadBalancer CRD with support for VIP subnet/network/port references - Controller with create, update, delete, and import capabilities - Status reporting with provisioning and operating status - Dependency resolution for Subnet, Network, Port, and Project references - Kuttl tests for create, update, import, and dependency scenarios Closes #619 --- .github/workflows/generate.yaml | 1 + PROJECT | 8 + api/v1alpha1/loadbalancer_types.go | 188 +- api/v1alpha1/zz_generated.deepcopy.go | 220 +- .../zz_generated.loadbalancer-resource.go | 179 + cmd/manager/main.go | 2 + cmd/models-schema/zz_generated.openapi.go | 10113 ++++++++++------ cmd/resource-generator/main.go | 3 + .../openstack.k-orc.cloud_loadbalancers.yaml | 528 + config/crd/kustomization.yaml | 1 + .../bases/orc.clusterserviceversion.yaml | 5 + config/samples/kustomization.yaml | 1 + .../openstack_v1alpha1_loadbalancer.yaml | 14 +- internal/controllers/loadbalancer/actuator.go | 173 +- .../controllers/loadbalancer/actuator_test.go | 197 + .../controllers/loadbalancer/controller.go | 42 +- internal/controllers/loadbalancer/status.go | 37 +- .../loadbalancer-create-full/00-assert.yaml | 22 +- .../00-create-resource.yaml | 57 +- .../00-assert.yaml | 13 +- .../00-create-resource.yaml | 31 +- .../01-assert.yaml | 1 + .../loadbalancer-dependency/00-assert.yaml | 42 +- .../00-create-resources-missing-deps.yaml | 52 +- .../loadbalancer-dependency/01-assert.yaml | 29 +- .../01-create-dependencies.yaml | 40 +- .../loadbalancer-dependency/02-assert.yaml | 13 +- .../02-delete-dependencies.yaml | 6 +- .../loadbalancer-dependency/03-assert.yaml | 5 +- .../03-delete-resources.yaml | 3 - .../00-assert.yaml | 12 +- .../00-import-resource.yaml | 19 +- .../01-assert.yaml | 16 +- .../01-create-trap-resource.yaml | 49 +- .../02-assert.yaml | 19 +- .../02-create-resource.yaml | 47 +- .../03-assert.yaml | 7 +- .../03-delete-import-dependencies.yaml | 6 +- .../04-assert.yaml | 1 + .../loadbalancer-import-error/00-assert.yaml | 8 +- .../00-create-resources.yaml | 31 +- .../00-import-resource.yaml | 31 +- .../tests/loadbalancer-import/01-assert.yaml | 7 +- .../01-create-trap-resource.yaml | 3 +- .../tests/loadbalancer-import/02-assert.yaml | 28 +- .../02-create-resource.yaml | 8 +- .../tests/loadbalancer-update/00-assert.yaml | 22 +- .../00-minimal-resource.yaml | 6 +- .../loadbalancer-update/00-prerequisites.yaml | 25 + .../tests/loadbalancer-update/01-assert.yaml | 4 +- .../01-updated-resource.yaml | 5 +- .../tests/loadbalancer-update/02-assert.yaml | 5 +- .../loadbalancer/zz_generated.adapter.go | 88 + .../loadbalancer/zz_generated.controller.go | 45 + internal/osclients/loadbalancer.go | 2 +- internal/osclients/mock/doc.go | 3 + internal/osclients/mock/loadbalancer.go | 131 + internal/scope/mock.go | 7 + internal/scope/provider.go | 4 + internal/scope/scope.go | 1 + kuttl-test.yaml | 1 + .../api/v1alpha1/loadbalancer.go | 281 + .../api/v1alpha1/loadbalancerfilter.go | 159 + .../api/v1alpha1/loadbalancerimport.go | 48 + .../api/v1alpha1/loadbalancerresourcespec.go | 144 + .../v1alpha1/loadbalancerresourcestatus.go | 158 + .../api/v1alpha1/loadbalancerspec.go | 79 + .../api/v1alpha1/loadbalancerstatus.go | 66 + .../applyconfiguration/internal/internal.go | 210 + pkg/clients/applyconfiguration/utils.go | 14 + .../typed/api/v1alpha1/api_client.go | 5 + .../api/v1alpha1/fake/fake_api_client.go | 4 + .../api/v1alpha1/fake/fake_loadbalancer.go | 53 + .../typed/api/v1alpha1/generated_expansion.go | 2 + .../typed/api/v1alpha1/loadbalancer.go | 74 + .../api/v1alpha1/interface.go | 7 + .../api/v1alpha1/loadbalancer.go | 102 + .../informers/externalversions/generic.go | 2 + .../api/v1alpha1/expansion_generated.go | 8 + .../listers/api/v1alpha1/loadbalancer.go | 70 + website/docs/crd-reference.md | 177 + 81 files changed, 9926 insertions(+), 4404 deletions(-) create mode 100644 api/v1alpha1/zz_generated.loadbalancer-resource.go create mode 100644 config/crd/bases/openstack.k-orc.cloud_loadbalancers.yaml create mode 100644 internal/controllers/loadbalancer/zz_generated.adapter.go create mode 100644 internal/controllers/loadbalancer/zz_generated.controller.go create mode 100644 internal/osclients/mock/loadbalancer.go create mode 100644 pkg/clients/applyconfiguration/api/v1alpha1/loadbalancer.go create mode 100644 pkg/clients/applyconfiguration/api/v1alpha1/loadbalancerfilter.go create mode 100644 pkg/clients/applyconfiguration/api/v1alpha1/loadbalancerimport.go create mode 100644 pkg/clients/applyconfiguration/api/v1alpha1/loadbalancerresourcespec.go create mode 100644 pkg/clients/applyconfiguration/api/v1alpha1/loadbalancerresourcestatus.go create mode 100644 pkg/clients/applyconfiguration/api/v1alpha1/loadbalancerspec.go create mode 100644 pkg/clients/applyconfiguration/api/v1alpha1/loadbalancerstatus.go create mode 100644 pkg/clients/clientset/clientset/typed/api/v1alpha1/fake/fake_loadbalancer.go create mode 100644 pkg/clients/clientset/clientset/typed/api/v1alpha1/loadbalancer.go create mode 100644 pkg/clients/informers/externalversions/api/v1alpha1/loadbalancer.go create mode 100644 pkg/clients/listers/api/v1alpha1/loadbalancer.go diff --git a/.github/workflows/generate.yaml b/.github/workflows/generate.yaml index e568fb9e4..df300cd56 100644 --- a/.github/workflows/generate.yaml +++ b/.github/workflows/generate.yaml @@ -16,6 +16,7 @@ jobs: - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # tag=v6.0.3 with: persist-credentials: false + fetch-depth: 0 - run: | make generate diff --git a/PROJECT b/PROJECT index e5a188a8b..80b340025 100644 --- a/PROJECT +++ b/PROJECT @@ -80,6 +80,14 @@ resources: kind: KeyPair path: github.com/k-orc/openstack-resource-controller/api/v1alpha1 version: v1alpha1 +- api: + crdVersion: v1 + namespaced: true + domain: k-orc.cloud + group: openstack + kind: LoadBalancer + path: github.com/k-orc/openstack-resource-controller/api/v1alpha1 + version: v1alpha1 - api: crdVersion: v1 namespaced: true diff --git a/api/v1alpha1/loadbalancer_types.go b/api/v1alpha1/loadbalancer_types.go index e583804e8..929a7ae88 100644 --- a/api/v1alpha1/loadbalancer_types.go +++ b/api/v1alpha1/loadbalancer_types.go @@ -16,7 +16,21 @@ limitations under the License. package v1alpha1 +// Octavia provisioning status values +const ( + LoadbalancerProvisioningStatusActive = "ACTIVE" + LoadbalancerProvisioningStatusError = "ERROR" + LoadbalancerProvisioningStatusPendingCreate = "PENDING_CREATE" + LoadbalancerProvisioningStatusPendingUpdate = "PENDING_UPDATE" + LoadbalancerProvisioningStatusPendingDelete = "PENDING_DELETE" +) + +// +kubebuilder:validation:MinLength:=1 +// +kubebuilder:validation:MaxLength:=255 +type LoadBalancerTag string + // LoadBalancerResourceSpec contains the desired state of the resource. +// +kubebuilder:validation:XValidation:rule="has(self.vipSubnetRef) || has(self.vipNetworkRef) || has(self.vipPortRef)",message="at least one of vipSubnetRef, vipNetworkRef, or vipPortRef must be specified" type LoadBalancerResourceSpec struct { // name will be the name of the created resource. If not specified, the // name of the ORC object will be used. @@ -29,22 +43,24 @@ type LoadBalancerResourceSpec struct { // +optional Description *string `json:"description,omitempty"` - // subnetRef is a reference to the ORC Subnet which this resource is associated with. + // vipSubnetRef is the subnet on which to allocate the load balancer's address. // +optional - // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="subnetRef is immutable" - SubnetRef *KubernetesNameRef `json:"subnetRef,omitempty"` + // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="vipSubnetRef is immutable" + VIPSubnetRef *KubernetesNameRef `json:"vipSubnetRef,omitempty"` - // networkRef is a reference to the ORC Network which this resource is associated with. + // vipNetworkRef is the network on which to allocate the load balancer's address. // +optional - // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="networkRef is immutable" - NetworkRef *KubernetesNameRef `json:"networkRef,omitempty"` + // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="vipNetworkRef is immutable" + VIPNetworkRef *KubernetesNameRef `json:"vipNetworkRef,omitempty"` - // portRef is a reference to the ORC Port which this resource is associated with. + // vipPortRef is a reference to a neutron port to use for the VIP. If the port + // has more than one subnet you must specify either vipSubnetRef or vipAddress + // to clarify which address should be used for the VIP. // +optional - // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="portRef is immutable" - PortRef *KubernetesNameRef `json:"portRef,omitempty"` + // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="vipPortRef is immutable" + VIPPortRef *KubernetesNameRef `json:"vipPortRef,omitempty"` - // flavorRef is a reference to the ORC Flavor which this resource is associated with. + // flavorRef is a reference to the ORC Compute Flavor which this resource is associated with. // +optional // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="flavorRef is immutable" FlavorRef *KubernetesNameRef `json:"flavorRef,omitempty"` @@ -54,13 +70,33 @@ type LoadBalancerResourceSpec struct { // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="projectRef is immutable" ProjectRef *KubernetesNameRef `json:"projectRef,omitempty"` - // TODO(scaffolding): Add more types. - // To see what is supported, you can take inspiration from the CreateOpts structure from - // github.com/gophercloud/gophercloud/v2/openstack/loadbalancer/v2/loadbalancers - // - // Until you have implemented mutability for the field, you must add a CEL validation - // preventing the field being modified: - // `// +kubebuilder:validation:XValidation:rule="self == oldSelf",message=" is immutable"` + // adminStateUp is the administrative state of the load balancer, which is up (true) or down (false) + // +optional + AdminStateUp *bool `json:"adminStateUp,omitempty"` + + // availabilityZone is the availability zone in which to create the load balancer. + // +kubebuilder:validation:MaxLength=255 + // +optional + // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="availabilityZone is immutable" + AvailabilityZone string `json:"availabilityZone,omitempty"` + + // provider is the name of the load balancer provider. + // +kubebuilder:validation:MaxLength=255 + // +optional + // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="provider is immutable" + Provider string `json:"provider,omitempty"` + + // vipAddress is the specific IP address to use for the VIP (optional). + // If not specified, one is allocated automatically from the subnet. + // +optional + // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="vipAddress is immutable" + VIPAddress *IPvAny `json:"vipAddress,omitempty"` + + // tags is a list of tags which will be applied to the load balancer. + // +kubebuilder:validation:MaxItems:=64 + // +listType=set + // +optional + Tags []LoadBalancerTag `json:"tags,omitempty"` } // LoadBalancerFilter defines an existing resource by its properties @@ -76,25 +112,66 @@ type LoadBalancerFilter struct { // +optional Description *string `json:"description,omitempty"` - // vipNetworkRef is a reference to the ORC VipNetwork which this resource is associated with. + // projectRef is a reference to the ORC Project this resource is associated with. + // Typically, only used by admin. + // +optional + ProjectRef *KubernetesNameRef `json:"projectRef,omitempty"` + + // vipSubnetRef filters by the subnet on which the load balancer's address is allocated. // +optional - VipNetworkRef *KubernetesNameRef `json:"vipNetworkRef,omitempty"` + VIPSubnetRef *KubernetesNameRef `json:"vipSubnetRef,omitempty"` - // projectRef is a reference to the ORC Project which this resource is associated with. + // vipNetworkRef filters by the network on which the load balancer's address is allocated. // +optional - ProjectRef *KubernetesNameRef `json:"projectRef,omitempty"` + VIPNetworkRef *KubernetesNameRef `json:"vipNetworkRef,omitempty"` + + // vipPortRef filters by the neutron port used for the VIP. + // +optional + VIPPortRef *KubernetesNameRef `json:"vipPortRef,omitempty"` - // vipSubnetRef is a reference to the ORC VipSubnet which this resource is associated with. + // availabilityZone is the availability zone in which to create the load balancer. + // +kubebuilder:validation:MaxLength=255 // +optional - VipSubnetRef *KubernetesNameRef `json:"vipSubnetRef,omitempty"` + AvailabilityZone string `json:"availabilityZone,omitempty"` - // vipPortRef is a reference to the ORC VipPort which this resource is associated with. + // provider filters by the name of the load balancer provider. + // +kubebuilder:validation:MaxLength=255 // +optional - VipPortRef *KubernetesNameRef `json:"vipPortRef,omitempty"` + Provider string `json:"provider,omitempty"` - // TODO(scaffolding): Add more types. - // To see what is supported, you can take inspiration from the ListOpts structure from - // github.com/gophercloud/gophercloud/v2/openstack/loadbalancer/v2/loadbalancers + // vipAddress filters by the IP address of the load balancer's VIP. + // +kubebuilder:validation:MaxLength=64 + // +optional + VIPAddress string `json:"vipAddress,omitempty"` + + // tags is a list of tags to filter by. If specified, the resource must + // have all of the tags specified to be included in the result. + // +listType=set + // +optional + // +kubebuilder:validation:MaxItems:=64 + Tags []LoadBalancerTag `json:"tags,omitempty"` + + // tagsAny is a list of tags to filter by. If specified, the resource + // must have at least one of the tags specified to be included in the + // result. + // +listType=set + // +optional + // +kubebuilder:validation:MaxItems:=64 + TagsAny []LoadBalancerTag `json:"tagsAny,omitempty"` + + // notTags is a list of tags to filter by. If specified, resources which + // contain all of the given tags will be excluded from the result. + // +listType=set + // +optional + // +kubebuilder:validation:MaxItems:=64 + NotTags []LoadBalancerTag `json:"notTags,omitempty"` + + // notTagsAny is a list of tags to filter by. If specified, resources + // which contain any of the given tags will be excluded from the result. + // +listType=set + // +optional + // +kubebuilder:validation:MaxItems:=64 + NotTagsAny []LoadBalancerTag `json:"notTagsAny,omitempty"` } // LoadBalancerResourceStatus represents the observed state of the resource. @@ -109,22 +186,22 @@ type LoadBalancerResourceStatus struct { // +optional Description string `json:"description,omitempty"` - // subnetID is the ID of the Subnet to which the resource is associated. + // vipSubnetID is the ID of the Subnet to which the resource is associated. // +kubebuilder:validation:MaxLength=1024 // +optional - SubnetID string `json:"subnetID,omitempty"` + VIPSubnetID string `json:"vipSubnetID,omitempty"` - // networkID is the ID of the Network to which the resource is associated. + // vipNetworkID is the ID of the Network to which the resource is associated. // +kubebuilder:validation:MaxLength=1024 // +optional - NetworkID string `json:"networkID,omitempty"` + VIPNetworkID string `json:"vipNetworkID,omitempty"` - // portID is the ID of the Port to which the resource is associated. + // vipPortID is the ID of the Port to which the resource is associated. // +kubebuilder:validation:MaxLength=1024 // +optional - PortID string `json:"portID,omitempty"` + VIPPortID string `json:"vipPortID,omitempty"` - // flavorID is the ID of the Flavor to which the resource is associated. + // flavorID is the ID of the Compute Flavor to which the resource is associated. // +kubebuilder:validation:MaxLength=1024 // +optional FlavorID string `json:"flavorID,omitempty"` @@ -134,7 +211,42 @@ type LoadBalancerResourceStatus struct { // +optional ProjectID string `json:"projectID,omitempty"` - // TODO(scaffolding): Add more types. - // To see what is supported, you can take inspiration from the LoadBalancer structure from - // github.com/gophercloud/gophercloud/v2/openstack/loadbalancer/v2/loadbalancers + // adminStateUp is the administrative state of the load balancer, + // which is up (true) or down (false). + // +optional + AdminStateUp *bool `json:"adminStateUp,omitempty"` + + // tags is the list of tags on the resource. + // +listType=atomic + // +optional + // +kubebuilder:validation:MaxItems:=64 + // +kubebuilder:validation:items:MaxLength=255 + Tags []string `json:"tags,omitempty"` + + // availabilityZone is the availability zone where the load balancer is located. + // +kubebuilder:validation:MaxLength=1024 + // +optional + AvailabilityZone string `json:"availabilityZone,omitempty"` + + // provisioningStatus is the provisioning status of the load balancer. + // This value is ACTIVE, PENDING_CREATE or ERROR. + // +kubebuilder:validation:MaxLength=1024 + // +optional + ProvisioningStatus string `json:"provisioningStatus,omitempty"` + + // operatingStatus is the operating status of the load balancer, + // such as ONLINE or OFFLINE. + // +kubebuilder:validation:MaxLength=1024 + // +optional + OperatingStatus string `json:"operatingStatus,omitempty"` + + // provider is the name of the load balancer provider. + // +kubebuilder:validation:MaxLength=1024 + // +optional + Provider string `json:"provider,omitempty"` + + // vipAddress is the IP address of the load balancer's VIP. + // +optional + // +kubebuilder:validation:MaxLength=64 + VIPAddress string `json:"vipAddress,omitempty"` } diff --git a/api/v1alpha1/zz_generated.deepcopy.go b/api/v1alpha1/zz_generated.deepcopy.go index c767ba03b..6b189a2c3 100644 --- a/api/v1alpha1/zz_generated.deepcopy.go +++ b/api/v1alpha1/zz_generated.deepcopy.go @@ -2815,6 +2815,33 @@ func (in *KeyPairStatus) DeepCopy() *KeyPairStatus { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *LoadBalancer) DeepCopyInto(out *LoadBalancer) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + in.Status.DeepCopyInto(&out.Status) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadBalancer. +func (in *LoadBalancer) DeepCopy() *LoadBalancer { + if in == nil { + return nil + } + out := new(LoadBalancer) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *LoadBalancer) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *LoadBalancerFilter) DeepCopyInto(out *LoadBalancerFilter) { *out = *in @@ -2828,26 +2855,46 @@ func (in *LoadBalancerFilter) DeepCopyInto(out *LoadBalancerFilter) { *out = new(string) **out = **in } - if in.VipNetworkRef != nil { - in, out := &in.VipNetworkRef, &out.VipNetworkRef + if in.ProjectRef != nil { + in, out := &in.ProjectRef, &out.ProjectRef *out = new(KubernetesNameRef) **out = **in } - if in.ProjectRef != nil { - in, out := &in.ProjectRef, &out.ProjectRef + if in.VIPSubnetRef != nil { + in, out := &in.VIPSubnetRef, &out.VIPSubnetRef *out = new(KubernetesNameRef) **out = **in } - if in.VipSubnetRef != nil { - in, out := &in.VipSubnetRef, &out.VipSubnetRef + if in.VIPNetworkRef != nil { + in, out := &in.VIPNetworkRef, &out.VIPNetworkRef *out = new(KubernetesNameRef) **out = **in } - if in.VipPortRef != nil { - in, out := &in.VipPortRef, &out.VipPortRef + if in.VIPPortRef != nil { + in, out := &in.VIPPortRef, &out.VIPPortRef *out = new(KubernetesNameRef) **out = **in } + if in.Tags != nil { + in, out := &in.Tags, &out.Tags + *out = make([]LoadBalancerTag, len(*in)) + copy(*out, *in) + } + if in.TagsAny != nil { + in, out := &in.TagsAny, &out.TagsAny + *out = make([]LoadBalancerTag, len(*in)) + copy(*out, *in) + } + if in.NotTags != nil { + in, out := &in.NotTags, &out.NotTags + *out = make([]LoadBalancerTag, len(*in)) + copy(*out, *in) + } + if in.NotTagsAny != nil { + in, out := &in.NotTagsAny, &out.NotTagsAny + *out = make([]LoadBalancerTag, len(*in)) + copy(*out, *in) + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadBalancerFilter. @@ -2860,6 +2907,63 @@ func (in *LoadBalancerFilter) DeepCopy() *LoadBalancerFilter { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *LoadBalancerImport) DeepCopyInto(out *LoadBalancerImport) { + *out = *in + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.Filter != nil { + in, out := &in.Filter, &out.Filter + *out = new(LoadBalancerFilter) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadBalancerImport. +func (in *LoadBalancerImport) DeepCopy() *LoadBalancerImport { + if in == nil { + return nil + } + out := new(LoadBalancerImport) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *LoadBalancerList) DeepCopyInto(out *LoadBalancerList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]LoadBalancer, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadBalancerList. +func (in *LoadBalancerList) DeepCopy() *LoadBalancerList { + if in == nil { + return nil + } + out := new(LoadBalancerList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *LoadBalancerList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *LoadBalancerResourceSpec) DeepCopyInto(out *LoadBalancerResourceSpec) { *out = *in @@ -2873,18 +2977,18 @@ func (in *LoadBalancerResourceSpec) DeepCopyInto(out *LoadBalancerResourceSpec) *out = new(string) **out = **in } - if in.SubnetRef != nil { - in, out := &in.SubnetRef, &out.SubnetRef + if in.VIPSubnetRef != nil { + in, out := &in.VIPSubnetRef, &out.VIPSubnetRef *out = new(KubernetesNameRef) **out = **in } - if in.NetworkRef != nil { - in, out := &in.NetworkRef, &out.NetworkRef + if in.VIPNetworkRef != nil { + in, out := &in.VIPNetworkRef, &out.VIPNetworkRef *out = new(KubernetesNameRef) **out = **in } - if in.PortRef != nil { - in, out := &in.PortRef, &out.PortRef + if in.VIPPortRef != nil { + in, out := &in.VIPPortRef, &out.VIPPortRef *out = new(KubernetesNameRef) **out = **in } @@ -2898,6 +3002,21 @@ func (in *LoadBalancerResourceSpec) DeepCopyInto(out *LoadBalancerResourceSpec) *out = new(KubernetesNameRef) **out = **in } + if in.AdminStateUp != nil { + in, out := &in.AdminStateUp, &out.AdminStateUp + *out = new(bool) + **out = **in + } + if in.VIPAddress != nil { + in, out := &in.VIPAddress, &out.VIPAddress + *out = new(IPvAny) + **out = **in + } + if in.Tags != nil { + in, out := &in.Tags, &out.Tags + *out = make([]LoadBalancerTag, len(*in)) + copy(*out, *in) + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadBalancerResourceSpec. @@ -2913,6 +3032,16 @@ func (in *LoadBalancerResourceSpec) DeepCopy() *LoadBalancerResourceSpec { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *LoadBalancerResourceStatus) DeepCopyInto(out *LoadBalancerResourceStatus) { *out = *in + if in.AdminStateUp != nil { + in, out := &in.AdminStateUp, &out.AdminStateUp + *out = new(bool) + **out = **in + } + if in.Tags != nil { + in, out := &in.Tags, &out.Tags + *out = make([]string, len(*in)) + copy(*out, *in) + } } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadBalancerResourceStatus. @@ -2925,6 +3054,69 @@ func (in *LoadBalancerResourceStatus) DeepCopy() *LoadBalancerResourceStatus { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *LoadBalancerSpec) DeepCopyInto(out *LoadBalancerSpec) { + *out = *in + if in.Import != nil { + in, out := &in.Import, &out.Import + *out = new(LoadBalancerImport) + (*in).DeepCopyInto(*out) + } + if in.Resource != nil { + in, out := &in.Resource, &out.Resource + *out = new(LoadBalancerResourceSpec) + (*in).DeepCopyInto(*out) + } + if in.ManagedOptions != nil { + in, out := &in.ManagedOptions, &out.ManagedOptions + *out = new(ManagedOptions) + **out = **in + } + out.CloudCredentialsRef = in.CloudCredentialsRef +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadBalancerSpec. +func (in *LoadBalancerSpec) DeepCopy() *LoadBalancerSpec { + if in == nil { + return nil + } + out := new(LoadBalancerSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *LoadBalancerStatus) DeepCopyInto(out *LoadBalancerStatus) { + *out = *in + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]v1.Condition, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.Resource != nil { + in, out := &in.Resource, &out.Resource + *out = new(LoadBalancerResourceStatus) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadBalancerStatus. +func (in *LoadBalancerStatus) DeepCopy() *LoadBalancerStatus { + if in == nil { + return nil + } + out := new(LoadBalancerStatus) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ManagedOptions) DeepCopyInto(out *ManagedOptions) { *out = *in diff --git a/api/v1alpha1/zz_generated.loadbalancer-resource.go b/api/v1alpha1/zz_generated.loadbalancer-resource.go new file mode 100644 index 000000000..94aaf64f8 --- /dev/null +++ b/api/v1alpha1/zz_generated.loadbalancer-resource.go @@ -0,0 +1,179 @@ +// Code generated by resource-generator. DO NOT EDIT. +/* +Copyright The ORC Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package v1alpha1 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// LoadBalancerImport specifies an existing resource which will be imported instead of +// creating a new one +// +kubebuilder:validation:MinProperties:=1 +// +kubebuilder:validation:MaxProperties:=1 +type LoadBalancerImport struct { + // id contains the unique identifier of an existing OpenStack resource. Note + // that when specifying an import by ID, the resource MUST already exist. + // The ORC object will enter an error state if the resource does not exist. + // +kubebuilder:validation:Format:=uuid + // +kubebuilder:validation:MaxLength:=36 + // +optional + ID *string `json:"id,omitempty"` //nolint:kubeapilinter + + // filter contains a resource query which is expected to return a single + // result. The controller will continue to retry if filter returns no + // results. If filter returns multiple results the controller will set an + // error state and will not continue to retry. + // +optional + Filter *LoadBalancerFilter `json:"filter,omitempty"` +} + +// LoadBalancerSpec defines the desired state of an ORC object. +// +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'managed' ? has(self.resource) : true",message="resource must be specified when policy is managed" +// +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'managed' ? !has(self.__import__) : true",message="import may not be specified when policy is managed" +// +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'unmanaged' ? !has(self.resource) : true",message="resource may not be specified when policy is unmanaged" +// +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'unmanaged' ? has(self.__import__) : true",message="import must be specified when policy is unmanaged" +// +kubebuilder:validation:XValidation:rule="has(self.managedOptions) ? self.managementPolicy == 'managed' : true",message="managedOptions may only be provided when policy is managed" +type LoadBalancerSpec struct { + // import refers to an existing OpenStack resource which will be imported instead of + // creating a new one. + // +optional + Import *LoadBalancerImport `json:"import,omitempty"` + + // resource specifies the desired state of the resource. + // + // resource may not be specified if the management policy is `unmanaged`. + // + // resource must be specified if the management policy is `managed`. + // +optional + Resource *LoadBalancerResourceSpec `json:"resource,omitempty"` + + // managementPolicy defines how ORC will treat the object. Valid values are + // `managed`: ORC will create, update, and delete the resource; `unmanaged`: + // ORC will import an existing resource, and will not apply updates to it or + // delete it. + // +kubebuilder:validation:XValidation:rule="self == oldSelf",message="managementPolicy is immutable" + // +kubebuilder:default:=managed + // +optional + ManagementPolicy ManagementPolicy `json:"managementPolicy,omitempty"` + + // managedOptions specifies options which may be applied to managed objects. + // +optional + ManagedOptions *ManagedOptions `json:"managedOptions,omitempty"` + + // cloudCredentialsRef points to a secret containing OpenStack credentials + // +required + CloudCredentialsRef CloudCredentialsReference `json:"cloudCredentialsRef,omitzero"` +} + +// LoadBalancerStatus defines the observed state of an ORC resource. +type LoadBalancerStatus struct { + // conditions represents the observed status of the object. + // Known .status.conditions.type are: "Available", "Progressing" + // + // Available represents the availability of the OpenStack resource. If it is + // true then the resource is ready for use. + // + // Progressing indicates whether the controller is still attempting to + // reconcile the current state of the OpenStack resource to the desired + // state. Progressing will be False either because the desired state has + // been achieved, or because some terminal error prevents it from ever being + // achieved and the controller is no longer attempting to reconcile. If + // Progressing is True, an observer waiting on the resource should continue + // to wait. + // + // +kubebuilder:validation:MaxItems:=32 + // +patchMergeKey=type + // +patchStrategy=merge + // +listType=map + // +listMapKey=type + // +optional + Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"` + + // id is the unique identifier of the OpenStack resource. + // +kubebuilder:validation:MaxLength:=1024 + // +optional + ID *string `json:"id,omitempty"` + + // resource contains the observed state of the OpenStack resource. + // +optional + Resource *LoadBalancerResourceStatus `json:"resource,omitempty"` +} + +var _ ObjectWithConditions = &LoadBalancer{} + +func (i *LoadBalancer) GetConditions() []metav1.Condition { + return i.Status.Conditions +} + +// +genclient +// +kubebuilder:object:root=true +// +kubebuilder:resource:categories=openstack +// +kubebuilder:subresource:status +// +kubebuilder:printcolumn:name="ID",type="string",JSONPath=".status.id",description="Resource ID" +// +kubebuilder:printcolumn:name="Available",type="string",JSONPath=".status.conditions[?(@.type=='Available')].status",description="Availability status of resource" +// +kubebuilder:printcolumn:name="Message",type="string",JSONPath=".status.conditions[?(@.type=='Progressing')].message",description="Message describing current progress status" + +// LoadBalancer is the Schema for an ORC resource. +type LoadBalancer struct { + metav1.TypeMeta `json:",inline"` + + // metadata contains the object metadata + // +optional + metav1.ObjectMeta `json:"metadata,omitempty"` + + // spec specifies the desired state of the resource. + // +required + Spec LoadBalancerSpec `json:"spec,omitzero"` + + // status defines the observed state of the resource. + // +optional + Status LoadBalancerStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// LoadBalancerList contains a list of LoadBalancer. +type LoadBalancerList struct { + metav1.TypeMeta `json:",inline"` + + // metadata contains the list metadata + // +optional + metav1.ListMeta `json:"metadata,omitempty"` + + // items contains a list of LoadBalancer. + // +required + Items []LoadBalancer `json:"items"` +} + +func (l *LoadBalancerList) GetItems() []LoadBalancer { + return l.Items +} + +func init() { + SchemeBuilder.Register(&LoadBalancer{}, &LoadBalancerList{}) +} + +func (i *LoadBalancer) GetCloudCredentialsRef() (*string, *CloudCredentialsReference) { + if i == nil { + return nil, nil + } + + return &i.Namespace, &i.Spec.CloudCredentialsRef +} + +var _ CloudCredentialsRefProvider = &LoadBalancer{} diff --git a/cmd/manager/main.go b/cmd/manager/main.go index 9addc552d..e6ab706fb 100644 --- a/cmd/manager/main.go +++ b/cmd/manager/main.go @@ -37,6 +37,7 @@ import ( "github.com/k-orc/openstack-resource-controller/v2/internal/controllers/group" "github.com/k-orc/openstack-resource-controller/v2/internal/controllers/image" "github.com/k-orc/openstack-resource-controller/v2/internal/controllers/keypair" + "github.com/k-orc/openstack-resource-controller/v2/internal/controllers/loadbalancer" "github.com/k-orc/openstack-resource-controller/v2/internal/controllers/network" "github.com/k-orc/openstack-resource-controller/v2/internal/controllers/port" "github.com/k-orc/openstack-resource-controller/v2/internal/controllers/project" @@ -138,6 +139,7 @@ func main() { keypair.New(scopeFactory), group.New(scopeFactory), role.New(scopeFactory), + loadbalancer.New(scopeFactory), } restConfig := ctrl.GetConfigOrDie() diff --git a/cmd/models-schema/zz_generated.openapi.go b/cmd/models-schema/zz_generated.openapi.go index 556c03d04..a668c0fef 100644 --- a/cmd/models-schema/zz_generated.openapi.go +++ b/cmd/models-schema/zz_generated.openapi.go @@ -30,230 +30,267 @@ import ( func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenAPIDefinition { return map[string]common.OpenAPIDefinition{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Address": schema_openstack_resource_controller_v2_api_v1alpha1_Address(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AllocationPool": schema_openstack_resource_controller_v2_api_v1alpha1_AllocationPool(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AllocationPoolStatus": schema_openstack_resource_controller_v2_api_v1alpha1_AllocationPoolStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AllowedAddressPair": schema_openstack_resource_controller_v2_api_v1alpha1_AllowedAddressPair(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AllowedAddressPairStatus": schema_openstack_resource_controller_v2_api_v1alpha1_AllowedAddressPairStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference": schema_openstack_resource_controller_v2_api_v1alpha1_CloudCredentialsReference(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Domain": schema_openstack_resource_controller_v2_api_v1alpha1_Domain(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainFilter": schema_openstack_resource_controller_v2_api_v1alpha1_DomainFilter(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainImport": schema_openstack_resource_controller_v2_api_v1alpha1_DomainImport(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainList": schema_openstack_resource_controller_v2_api_v1alpha1_DomainList(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_DomainResourceSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_DomainResourceStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainSpec": schema_openstack_resource_controller_v2_api_v1alpha1_DomainSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainStatus": schema_openstack_resource_controller_v2_api_v1alpha1_DomainStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Endpoint": schema_openstack_resource_controller_v2_api_v1alpha1_Endpoint(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointFilter": schema_openstack_resource_controller_v2_api_v1alpha1_EndpointFilter(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointImport": schema_openstack_resource_controller_v2_api_v1alpha1_EndpointImport(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointList": schema_openstack_resource_controller_v2_api_v1alpha1_EndpointList(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_EndpointResourceSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_EndpointResourceStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointSpec": schema_openstack_resource_controller_v2_api_v1alpha1_EndpointSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointStatus": schema_openstack_resource_controller_v2_api_v1alpha1_EndpointStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ExternalGateway": schema_openstack_resource_controller_v2_api_v1alpha1_ExternalGateway(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ExternalGatewayStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ExternalGatewayStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FilterByKeystoneTags": schema_openstack_resource_controller_v2_api_v1alpha1_FilterByKeystoneTags(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FilterByNeutronTags": schema_openstack_resource_controller_v2_api_v1alpha1_FilterByNeutronTags(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FilterByServerTags": schema_openstack_resource_controller_v2_api_v1alpha1_FilterByServerTags(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FixedIPStatus": schema_openstack_resource_controller_v2_api_v1alpha1_FixedIPStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Flavor": schema_openstack_resource_controller_v2_api_v1alpha1_Flavor(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorFilter": schema_openstack_resource_controller_v2_api_v1alpha1_FlavorFilter(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorImport": schema_openstack_resource_controller_v2_api_v1alpha1_FlavorImport(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorList": schema_openstack_resource_controller_v2_api_v1alpha1_FlavorList(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_FlavorResourceSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_FlavorResourceStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorSpec": schema_openstack_resource_controller_v2_api_v1alpha1_FlavorSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorStatus": schema_openstack_resource_controller_v2_api_v1alpha1_FlavorStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIP": schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIP(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPFilter": schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPFilter(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPImport": schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPImport(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPList": schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPList(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPResourceSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPResourceStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPSpec": schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPStatus": schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Group": schema_openstack_resource_controller_v2_api_v1alpha1_Group(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupFilter": schema_openstack_resource_controller_v2_api_v1alpha1_GroupFilter(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupImport": schema_openstack_resource_controller_v2_api_v1alpha1_GroupImport(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupList": schema_openstack_resource_controller_v2_api_v1alpha1_GroupList(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_GroupResourceSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_GroupResourceStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupSpec": schema_openstack_resource_controller_v2_api_v1alpha1_GroupSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupStatus": schema_openstack_resource_controller_v2_api_v1alpha1_GroupStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.HostID": schema_openstack_resource_controller_v2_api_v1alpha1_HostID(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.HostRoute": schema_openstack_resource_controller_v2_api_v1alpha1_HostRoute(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.HostRouteStatus": schema_openstack_resource_controller_v2_api_v1alpha1_HostRouteStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.IPv6Options": schema_openstack_resource_controller_v2_api_v1alpha1_IPv6Options(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Image": schema_openstack_resource_controller_v2_api_v1alpha1_Image(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageContent": schema_openstack_resource_controller_v2_api_v1alpha1_ImageContent(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageContentSourceDownload": schema_openstack_resource_controller_v2_api_v1alpha1_ImageContentSourceDownload(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageFilter": schema_openstack_resource_controller_v2_api_v1alpha1_ImageFilter(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageHash": schema_openstack_resource_controller_v2_api_v1alpha1_ImageHash(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageImport": schema_openstack_resource_controller_v2_api_v1alpha1_ImageImport(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageList": schema_openstack_resource_controller_v2_api_v1alpha1_ImageList(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageProperties": schema_openstack_resource_controller_v2_api_v1alpha1_ImageProperties(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImagePropertiesHardware": schema_openstack_resource_controller_v2_api_v1alpha1_ImagePropertiesHardware(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImagePropertiesOperatingSystem": schema_openstack_resource_controller_v2_api_v1alpha1_ImagePropertiesOperatingSystem(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_ImageResourceSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ImageResourceStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageSpec": schema_openstack_resource_controller_v2_api_v1alpha1_ImageSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ImageStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageStatusExtra": schema_openstack_resource_controller_v2_api_v1alpha1_ImageStatusExtra(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPair": schema_openstack_resource_controller_v2_api_v1alpha1_KeyPair(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairFilter": schema_openstack_resource_controller_v2_api_v1alpha1_KeyPairFilter(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairImport": schema_openstack_resource_controller_v2_api_v1alpha1_KeyPairImport(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairList": schema_openstack_resource_controller_v2_api_v1alpha1_KeyPairList(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_KeyPairResourceSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_KeyPairResourceStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairSpec": schema_openstack_resource_controller_v2_api_v1alpha1_KeyPairSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairStatus": schema_openstack_resource_controller_v2_api_v1alpha1_KeyPairStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.LoadBalancerFilter": schema_openstack_resource_controller_v2_api_v1alpha1_LoadBalancerFilter(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.LoadBalancerResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_LoadBalancerResourceSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.LoadBalancerResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_LoadBalancerResourceStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions": schema_openstack_resource_controller_v2_api_v1alpha1_ManagedOptions(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Network": schema_openstack_resource_controller_v2_api_v1alpha1_Network(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkFilter": schema_openstack_resource_controller_v2_api_v1alpha1_NetworkFilter(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkImport": schema_openstack_resource_controller_v2_api_v1alpha1_NetworkImport(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkList": schema_openstack_resource_controller_v2_api_v1alpha1_NetworkList(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_NetworkResourceSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_NetworkResourceStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkSpec": schema_openstack_resource_controller_v2_api_v1alpha1_NetworkSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkStatus": schema_openstack_resource_controller_v2_api_v1alpha1_NetworkStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NeutronStatusMetadata": schema_openstack_resource_controller_v2_api_v1alpha1_NeutronStatusMetadata(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Port": schema_openstack_resource_controller_v2_api_v1alpha1_Port(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortFilter": schema_openstack_resource_controller_v2_api_v1alpha1_PortFilter(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortImport": schema_openstack_resource_controller_v2_api_v1alpha1_PortImport(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortList": schema_openstack_resource_controller_v2_api_v1alpha1_PortList(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortRangeSpec": schema_openstack_resource_controller_v2_api_v1alpha1_PortRangeSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortRangeStatus": schema_openstack_resource_controller_v2_api_v1alpha1_PortRangeStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_PortResourceSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_PortResourceStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortSpec": schema_openstack_resource_controller_v2_api_v1alpha1_PortSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortStatus": schema_openstack_resource_controller_v2_api_v1alpha1_PortStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Project": schema_openstack_resource_controller_v2_api_v1alpha1_Project(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectFilter": schema_openstack_resource_controller_v2_api_v1alpha1_ProjectFilter(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectImport": schema_openstack_resource_controller_v2_api_v1alpha1_ProjectImport(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectList": schema_openstack_resource_controller_v2_api_v1alpha1_ProjectList(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_ProjectResourceSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ProjectResourceStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectSpec": schema_openstack_resource_controller_v2_api_v1alpha1_ProjectSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ProjectStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProviderPropertiesStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ProviderPropertiesStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Role": schema_openstack_resource_controller_v2_api_v1alpha1_Role(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleFilter": schema_openstack_resource_controller_v2_api_v1alpha1_RoleFilter(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleImport": schema_openstack_resource_controller_v2_api_v1alpha1_RoleImport(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleList": schema_openstack_resource_controller_v2_api_v1alpha1_RoleList(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_RoleResourceSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_RoleResourceStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleSpec": schema_openstack_resource_controller_v2_api_v1alpha1_RoleSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleStatus": schema_openstack_resource_controller_v2_api_v1alpha1_RoleStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Router": schema_openstack_resource_controller_v2_api_v1alpha1_Router(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterFilter": schema_openstack_resource_controller_v2_api_v1alpha1_RouterFilter(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterImport": schema_openstack_resource_controller_v2_api_v1alpha1_RouterImport(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterInterface": schema_openstack_resource_controller_v2_api_v1alpha1_RouterInterface(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterInterfaceList": schema_openstack_resource_controller_v2_api_v1alpha1_RouterInterfaceList(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterInterfaceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_RouterInterfaceSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterInterfaceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_RouterInterfaceStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterList": schema_openstack_resource_controller_v2_api_v1alpha1_RouterList(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_RouterResourceSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_RouterResourceStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterSpec": schema_openstack_resource_controller_v2_api_v1alpha1_RouterSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterStatus": schema_openstack_resource_controller_v2_api_v1alpha1_RouterStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroup": schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroup(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupFilter": schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupFilter(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupImport": schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupImport(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupList": schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupList(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupResourceSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupResourceStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupRule": schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupRule(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupRuleStatus": schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupRuleStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupSpec": schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupStatus": schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Server": schema_openstack_resource_controller_v2_api_v1alpha1_Server(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerFilter": schema_openstack_resource_controller_v2_api_v1alpha1_ServerFilter(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroup": schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroup(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupFilter": schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupFilter(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupImport": schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupImport(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupList": schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupList(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupResourceSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupResourceStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupRules": schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupRules(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupRulesStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupRulesStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupSpec": schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerImport": schema_openstack_resource_controller_v2_api_v1alpha1_ServerImport(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerInterfaceFixedIP": schema_openstack_resource_controller_v2_api_v1alpha1_ServerInterfaceFixedIP(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerInterfaceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ServerInterfaceStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerList": schema_openstack_resource_controller_v2_api_v1alpha1_ServerList(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerMetadata": schema_openstack_resource_controller_v2_api_v1alpha1_ServerMetadata(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerMetadataStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ServerMetadataStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerPortSpec": schema_openstack_resource_controller_v2_api_v1alpha1_ServerPortSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_ServerResourceSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ServerResourceStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerSpec": schema_openstack_resource_controller_v2_api_v1alpha1_ServerSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ServerStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerVolumeSpec": schema_openstack_resource_controller_v2_api_v1alpha1_ServerVolumeSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerVolumeStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ServerVolumeStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Service": schema_openstack_resource_controller_v2_api_v1alpha1_Service(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceFilter": schema_openstack_resource_controller_v2_api_v1alpha1_ServiceFilter(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceImport": schema_openstack_resource_controller_v2_api_v1alpha1_ServiceImport(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceList": schema_openstack_resource_controller_v2_api_v1alpha1_ServiceList(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_ServiceResourceSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ServiceResourceStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_ServiceSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ServiceStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Subnet": schema_openstack_resource_controller_v2_api_v1alpha1_Subnet(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SubnetFilter": schema_openstack_resource_controller_v2_api_v1alpha1_SubnetFilter(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SubnetGateway": schema_openstack_resource_controller_v2_api_v1alpha1_SubnetGateway(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SubnetImport": schema_openstack_resource_controller_v2_api_v1alpha1_SubnetImport(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SubnetList": schema_openstack_resource_controller_v2_api_v1alpha1_SubnetList(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SubnetResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_SubnetResourceSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SubnetResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_SubnetResourceStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SubnetSpec": schema_openstack_resource_controller_v2_api_v1alpha1_SubnetSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SubnetStatus": schema_openstack_resource_controller_v2_api_v1alpha1_SubnetStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Trunk": schema_openstack_resource_controller_v2_api_v1alpha1_Trunk(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.TrunkFilter": schema_openstack_resource_controller_v2_api_v1alpha1_TrunkFilter(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.TrunkImport": schema_openstack_resource_controller_v2_api_v1alpha1_TrunkImport(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.TrunkList": schema_openstack_resource_controller_v2_api_v1alpha1_TrunkList(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.TrunkResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_TrunkResourceSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.TrunkResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_TrunkResourceStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.TrunkSpec": schema_openstack_resource_controller_v2_api_v1alpha1_TrunkSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.TrunkStatus": schema_openstack_resource_controller_v2_api_v1alpha1_TrunkStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.TrunkSubportSpec": schema_openstack_resource_controller_v2_api_v1alpha1_TrunkSubportSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.TrunkSubportStatus": schema_openstack_resource_controller_v2_api_v1alpha1_TrunkSubportStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.User": schema_openstack_resource_controller_v2_api_v1alpha1_User(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.UserDataSpec": schema_openstack_resource_controller_v2_api_v1alpha1_UserDataSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.UserFilter": schema_openstack_resource_controller_v2_api_v1alpha1_UserFilter(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.UserImport": schema_openstack_resource_controller_v2_api_v1alpha1_UserImport(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.UserList": schema_openstack_resource_controller_v2_api_v1alpha1_UserList(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.UserResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_UserResourceSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.UserResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_UserResourceStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.UserSpec": schema_openstack_resource_controller_v2_api_v1alpha1_UserSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.UserStatus": schema_openstack_resource_controller_v2_api_v1alpha1_UserStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Volume": schema_openstack_resource_controller_v2_api_v1alpha1_Volume(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeAttachmentStatus": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeAttachmentStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeFilter": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeFilter(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeImport": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeImport(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeList": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeList(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeMetadata": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeMetadata(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeMetadataStatus": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeMetadataStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeResourceSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeResourceStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeSpec": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeStatus": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeType": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeType(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeTypeExtraSpec": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeTypeExtraSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeTypeExtraSpecStatus": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeTypeExtraSpecStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeTypeFilter": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeTypeFilter(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeTypeImport": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeTypeImport(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeTypeList": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeTypeList(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeTypeResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeTypeResourceSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeTypeResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeTypeResourceStatus(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeTypeSpec": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeTypeSpec(ref), - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeTypeStatus": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeTypeStatus(ref), - "k8s.io/api/core/v1.AWSElasticBlockStoreVolumeSource": schema_k8sio_api_core_v1_AWSElasticBlockStoreVolumeSource(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Address": schema_openstack_resource_controller_v2_api_v1alpha1_Address(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AddressScope": schema_openstack_resource_controller_v2_api_v1alpha1_AddressScope(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AddressScopeFilter": schema_openstack_resource_controller_v2_api_v1alpha1_AddressScopeFilter(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AddressScopeImport": schema_openstack_resource_controller_v2_api_v1alpha1_AddressScopeImport(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AddressScopeList": schema_openstack_resource_controller_v2_api_v1alpha1_AddressScopeList(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AddressScopeResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_AddressScopeResourceSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AddressScopeResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_AddressScopeResourceStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AddressScopeSpec": schema_openstack_resource_controller_v2_api_v1alpha1_AddressScopeSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AddressScopeStatus": schema_openstack_resource_controller_v2_api_v1alpha1_AddressScopeStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AllocationPool": schema_openstack_resource_controller_v2_api_v1alpha1_AllocationPool(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AllocationPoolStatus": schema_openstack_resource_controller_v2_api_v1alpha1_AllocationPoolStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AllowedAddressPair": schema_openstack_resource_controller_v2_api_v1alpha1_AllowedAddressPair(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AllowedAddressPairStatus": schema_openstack_resource_controller_v2_api_v1alpha1_AllowedAddressPairStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ApplicationCredential": schema_openstack_resource_controller_v2_api_v1alpha1_ApplicationCredential(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ApplicationCredentialAccessRule": schema_openstack_resource_controller_v2_api_v1alpha1_ApplicationCredentialAccessRule(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ApplicationCredentialAccessRuleStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ApplicationCredentialAccessRuleStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ApplicationCredentialFilter": schema_openstack_resource_controller_v2_api_v1alpha1_ApplicationCredentialFilter(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ApplicationCredentialImport": schema_openstack_resource_controller_v2_api_v1alpha1_ApplicationCredentialImport(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ApplicationCredentialList": schema_openstack_resource_controller_v2_api_v1alpha1_ApplicationCredentialList(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ApplicationCredentialResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_ApplicationCredentialResourceSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ApplicationCredentialResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ApplicationCredentialResourceStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ApplicationCredentialRoleStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ApplicationCredentialRoleStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ApplicationCredentialSpec": schema_openstack_resource_controller_v2_api_v1alpha1_ApplicationCredentialSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ApplicationCredentialStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ApplicationCredentialStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference": schema_openstack_resource_controller_v2_api_v1alpha1_CloudCredentialsReference(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Domain": schema_openstack_resource_controller_v2_api_v1alpha1_Domain(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainFilter": schema_openstack_resource_controller_v2_api_v1alpha1_DomainFilter(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainImport": schema_openstack_resource_controller_v2_api_v1alpha1_DomainImport(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainList": schema_openstack_resource_controller_v2_api_v1alpha1_DomainList(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_DomainResourceSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_DomainResourceStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainSpec": schema_openstack_resource_controller_v2_api_v1alpha1_DomainSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainStatus": schema_openstack_resource_controller_v2_api_v1alpha1_DomainStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Endpoint": schema_openstack_resource_controller_v2_api_v1alpha1_Endpoint(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointFilter": schema_openstack_resource_controller_v2_api_v1alpha1_EndpointFilter(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointImport": schema_openstack_resource_controller_v2_api_v1alpha1_EndpointImport(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointList": schema_openstack_resource_controller_v2_api_v1alpha1_EndpointList(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_EndpointResourceSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_EndpointResourceStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointSpec": schema_openstack_resource_controller_v2_api_v1alpha1_EndpointSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointStatus": schema_openstack_resource_controller_v2_api_v1alpha1_EndpointStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ExternalGateway": schema_openstack_resource_controller_v2_api_v1alpha1_ExternalGateway(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ExternalGatewayStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ExternalGatewayStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FilterByKeystoneTags": schema_openstack_resource_controller_v2_api_v1alpha1_FilterByKeystoneTags(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FilterByNeutronTags": schema_openstack_resource_controller_v2_api_v1alpha1_FilterByNeutronTags(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FilterByServerTags": schema_openstack_resource_controller_v2_api_v1alpha1_FilterByServerTags(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FixedIPStatus": schema_openstack_resource_controller_v2_api_v1alpha1_FixedIPStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Flavor": schema_openstack_resource_controller_v2_api_v1alpha1_Flavor(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorExtraSpec": schema_openstack_resource_controller_v2_api_v1alpha1_FlavorExtraSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorExtraSpecStatus": schema_openstack_resource_controller_v2_api_v1alpha1_FlavorExtraSpecStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorFilter": schema_openstack_resource_controller_v2_api_v1alpha1_FlavorFilter(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorImport": schema_openstack_resource_controller_v2_api_v1alpha1_FlavorImport(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorList": schema_openstack_resource_controller_v2_api_v1alpha1_FlavorList(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_FlavorResourceSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_FlavorResourceStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorSpec": schema_openstack_resource_controller_v2_api_v1alpha1_FlavorSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorStatus": schema_openstack_resource_controller_v2_api_v1alpha1_FlavorStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIP": schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIP(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPFilter": schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPFilter(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPImport": schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPImport(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPList": schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPList(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPResourceSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPResourceStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPSpec": schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPStatus": schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Group": schema_openstack_resource_controller_v2_api_v1alpha1_Group(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupFilter": schema_openstack_resource_controller_v2_api_v1alpha1_GroupFilter(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupImport": schema_openstack_resource_controller_v2_api_v1alpha1_GroupImport(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupList": schema_openstack_resource_controller_v2_api_v1alpha1_GroupList(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_GroupResourceSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_GroupResourceStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupSpec": schema_openstack_resource_controller_v2_api_v1alpha1_GroupSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupStatus": schema_openstack_resource_controller_v2_api_v1alpha1_GroupStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.HostID": schema_openstack_resource_controller_v2_api_v1alpha1_HostID(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.HostRoute": schema_openstack_resource_controller_v2_api_v1alpha1_HostRoute(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.HostRouteStatus": schema_openstack_resource_controller_v2_api_v1alpha1_HostRouteStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.IPv6Options": schema_openstack_resource_controller_v2_api_v1alpha1_IPv6Options(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Image": schema_openstack_resource_controller_v2_api_v1alpha1_Image(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageContent": schema_openstack_resource_controller_v2_api_v1alpha1_ImageContent(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageContentSourceDownload": schema_openstack_resource_controller_v2_api_v1alpha1_ImageContentSourceDownload(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageFilter": schema_openstack_resource_controller_v2_api_v1alpha1_ImageFilter(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageHash": schema_openstack_resource_controller_v2_api_v1alpha1_ImageHash(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageImport": schema_openstack_resource_controller_v2_api_v1alpha1_ImageImport(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageList": schema_openstack_resource_controller_v2_api_v1alpha1_ImageList(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageProperties": schema_openstack_resource_controller_v2_api_v1alpha1_ImageProperties(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImagePropertiesHardware": schema_openstack_resource_controller_v2_api_v1alpha1_ImagePropertiesHardware(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImagePropertiesOperatingSystem": schema_openstack_resource_controller_v2_api_v1alpha1_ImagePropertiesOperatingSystem(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_ImageResourceSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ImageResourceStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageSpec": schema_openstack_resource_controller_v2_api_v1alpha1_ImageSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ImageStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageStatusExtra": schema_openstack_resource_controller_v2_api_v1alpha1_ImageStatusExtra(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPair": schema_openstack_resource_controller_v2_api_v1alpha1_KeyPair(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairFilter": schema_openstack_resource_controller_v2_api_v1alpha1_KeyPairFilter(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairImport": schema_openstack_resource_controller_v2_api_v1alpha1_KeyPairImport(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairList": schema_openstack_resource_controller_v2_api_v1alpha1_KeyPairList(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_KeyPairResourceSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_KeyPairResourceStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairSpec": schema_openstack_resource_controller_v2_api_v1alpha1_KeyPairSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairStatus": schema_openstack_resource_controller_v2_api_v1alpha1_KeyPairStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.LoadBalancer": schema_openstack_resource_controller_v2_api_v1alpha1_LoadBalancer(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.LoadBalancerFilter": schema_openstack_resource_controller_v2_api_v1alpha1_LoadBalancerFilter(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.LoadBalancerImport": schema_openstack_resource_controller_v2_api_v1alpha1_LoadBalancerImport(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.LoadBalancerList": schema_openstack_resource_controller_v2_api_v1alpha1_LoadBalancerList(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.LoadBalancerResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_LoadBalancerResourceSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.LoadBalancerResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_LoadBalancerResourceStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.LoadBalancerSpec": schema_openstack_resource_controller_v2_api_v1alpha1_LoadBalancerSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.LoadBalancerStatus": schema_openstack_resource_controller_v2_api_v1alpha1_LoadBalancerStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions": schema_openstack_resource_controller_v2_api_v1alpha1_ManagedOptions(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Network": schema_openstack_resource_controller_v2_api_v1alpha1_Network(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkFilter": schema_openstack_resource_controller_v2_api_v1alpha1_NetworkFilter(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkImport": schema_openstack_resource_controller_v2_api_v1alpha1_NetworkImport(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkList": schema_openstack_resource_controller_v2_api_v1alpha1_NetworkList(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_NetworkResourceSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_NetworkResourceStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkSpec": schema_openstack_resource_controller_v2_api_v1alpha1_NetworkSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkStatus": schema_openstack_resource_controller_v2_api_v1alpha1_NetworkStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NeutronStatusMetadata": schema_openstack_resource_controller_v2_api_v1alpha1_NeutronStatusMetadata(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Port": schema_openstack_resource_controller_v2_api_v1alpha1_Port(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortFilter": schema_openstack_resource_controller_v2_api_v1alpha1_PortFilter(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortImport": schema_openstack_resource_controller_v2_api_v1alpha1_PortImport(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortList": schema_openstack_resource_controller_v2_api_v1alpha1_PortList(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortRangeSpec": schema_openstack_resource_controller_v2_api_v1alpha1_PortRangeSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortRangeStatus": schema_openstack_resource_controller_v2_api_v1alpha1_PortRangeStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_PortResourceSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_PortResourceStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortSpec": schema_openstack_resource_controller_v2_api_v1alpha1_PortSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortStatus": schema_openstack_resource_controller_v2_api_v1alpha1_PortStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortValueSpec": schema_openstack_resource_controller_v2_api_v1alpha1_PortValueSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Project": schema_openstack_resource_controller_v2_api_v1alpha1_Project(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectFilter": schema_openstack_resource_controller_v2_api_v1alpha1_ProjectFilter(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectImport": schema_openstack_resource_controller_v2_api_v1alpha1_ProjectImport(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectList": schema_openstack_resource_controller_v2_api_v1alpha1_ProjectList(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_ProjectResourceSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ProjectResourceStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectSpec": schema_openstack_resource_controller_v2_api_v1alpha1_ProjectSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ProjectStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProviderPropertiesStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ProviderPropertiesStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Role": schema_openstack_resource_controller_v2_api_v1alpha1_Role(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleFilter": schema_openstack_resource_controller_v2_api_v1alpha1_RoleFilter(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleImport": schema_openstack_resource_controller_v2_api_v1alpha1_RoleImport(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleList": schema_openstack_resource_controller_v2_api_v1alpha1_RoleList(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_RoleResourceSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_RoleResourceStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleSpec": schema_openstack_resource_controller_v2_api_v1alpha1_RoleSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleStatus": schema_openstack_resource_controller_v2_api_v1alpha1_RoleStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Router": schema_openstack_resource_controller_v2_api_v1alpha1_Router(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterFilter": schema_openstack_resource_controller_v2_api_v1alpha1_RouterFilter(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterImport": schema_openstack_resource_controller_v2_api_v1alpha1_RouterImport(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterInterface": schema_openstack_resource_controller_v2_api_v1alpha1_RouterInterface(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterInterfaceList": schema_openstack_resource_controller_v2_api_v1alpha1_RouterInterfaceList(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterInterfaceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_RouterInterfaceSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterInterfaceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_RouterInterfaceStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterList": schema_openstack_resource_controller_v2_api_v1alpha1_RouterList(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_RouterResourceSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_RouterResourceStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterSpec": schema_openstack_resource_controller_v2_api_v1alpha1_RouterSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterStatus": schema_openstack_resource_controller_v2_api_v1alpha1_RouterStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroup": schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroup(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupFilter": schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupFilter(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupImport": schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupImport(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupList": schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupList(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupResourceSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupResourceStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupRule": schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupRule(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupRuleStatus": schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupRuleStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupSpec": schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupStatus": schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Server": schema_openstack_resource_controller_v2_api_v1alpha1_Server(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerBootVolumeSpec": schema_openstack_resource_controller_v2_api_v1alpha1_ServerBootVolumeSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerFilter": schema_openstack_resource_controller_v2_api_v1alpha1_ServerFilter(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroup": schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroup(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupFilter": schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupFilter(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupImport": schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupImport(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupList": schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupList(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupResourceSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupResourceStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupRules": schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupRules(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupRulesStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupRulesStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupSpec": schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerImport": schema_openstack_resource_controller_v2_api_v1alpha1_ServerImport(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerInterfaceFixedIP": schema_openstack_resource_controller_v2_api_v1alpha1_ServerInterfaceFixedIP(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerInterfaceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ServerInterfaceStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerList": schema_openstack_resource_controller_v2_api_v1alpha1_ServerList(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerMetadata": schema_openstack_resource_controller_v2_api_v1alpha1_ServerMetadata(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerMetadataStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ServerMetadataStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerPortSpec": schema_openstack_resource_controller_v2_api_v1alpha1_ServerPortSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_ServerResourceSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ServerResourceStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerSchedulerHints": schema_openstack_resource_controller_v2_api_v1alpha1_ServerSchedulerHints(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerSpec": schema_openstack_resource_controller_v2_api_v1alpha1_ServerSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ServerStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerVolumeSpec": schema_openstack_resource_controller_v2_api_v1alpha1_ServerVolumeSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerVolumeStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ServerVolumeStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Service": schema_openstack_resource_controller_v2_api_v1alpha1_Service(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceFilter": schema_openstack_resource_controller_v2_api_v1alpha1_ServiceFilter(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceImport": schema_openstack_resource_controller_v2_api_v1alpha1_ServiceImport(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceList": schema_openstack_resource_controller_v2_api_v1alpha1_ServiceList(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_ServiceResourceSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ServiceResourceStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_ServiceSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ServiceStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ShareNetwork": schema_openstack_resource_controller_v2_api_v1alpha1_ShareNetwork(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ShareNetworkFilter": schema_openstack_resource_controller_v2_api_v1alpha1_ShareNetworkFilter(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ShareNetworkImport": schema_openstack_resource_controller_v2_api_v1alpha1_ShareNetworkImport(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ShareNetworkList": schema_openstack_resource_controller_v2_api_v1alpha1_ShareNetworkList(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ShareNetworkResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_ShareNetworkResourceSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ShareNetworkResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ShareNetworkResourceStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ShareNetworkSpec": schema_openstack_resource_controller_v2_api_v1alpha1_ShareNetworkSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ShareNetworkStatus": schema_openstack_resource_controller_v2_api_v1alpha1_ShareNetworkStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Subnet": schema_openstack_resource_controller_v2_api_v1alpha1_Subnet(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SubnetFilter": schema_openstack_resource_controller_v2_api_v1alpha1_SubnetFilter(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SubnetGateway": schema_openstack_resource_controller_v2_api_v1alpha1_SubnetGateway(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SubnetImport": schema_openstack_resource_controller_v2_api_v1alpha1_SubnetImport(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SubnetList": schema_openstack_resource_controller_v2_api_v1alpha1_SubnetList(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SubnetResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_SubnetResourceSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SubnetResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_SubnetResourceStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SubnetSpec": schema_openstack_resource_controller_v2_api_v1alpha1_SubnetSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SubnetStatus": schema_openstack_resource_controller_v2_api_v1alpha1_SubnetStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Trunk": schema_openstack_resource_controller_v2_api_v1alpha1_Trunk(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.TrunkFilter": schema_openstack_resource_controller_v2_api_v1alpha1_TrunkFilter(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.TrunkImport": schema_openstack_resource_controller_v2_api_v1alpha1_TrunkImport(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.TrunkList": schema_openstack_resource_controller_v2_api_v1alpha1_TrunkList(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.TrunkResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_TrunkResourceSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.TrunkResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_TrunkResourceStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.TrunkSpec": schema_openstack_resource_controller_v2_api_v1alpha1_TrunkSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.TrunkStatus": schema_openstack_resource_controller_v2_api_v1alpha1_TrunkStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.TrunkSubportSpec": schema_openstack_resource_controller_v2_api_v1alpha1_TrunkSubportSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.TrunkSubportStatus": schema_openstack_resource_controller_v2_api_v1alpha1_TrunkSubportStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.User": schema_openstack_resource_controller_v2_api_v1alpha1_User(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.UserDataSpec": schema_openstack_resource_controller_v2_api_v1alpha1_UserDataSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.UserFilter": schema_openstack_resource_controller_v2_api_v1alpha1_UserFilter(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.UserImport": schema_openstack_resource_controller_v2_api_v1alpha1_UserImport(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.UserList": schema_openstack_resource_controller_v2_api_v1alpha1_UserList(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.UserResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_UserResourceSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.UserResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_UserResourceStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.UserSpec": schema_openstack_resource_controller_v2_api_v1alpha1_UserSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.UserStatus": schema_openstack_resource_controller_v2_api_v1alpha1_UserStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Volume": schema_openstack_resource_controller_v2_api_v1alpha1_Volume(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeAttachmentStatus": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeAttachmentStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeFilter": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeFilter(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeImport": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeImport(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeList": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeList(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeMetadata": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeMetadata(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeMetadataStatus": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeMetadataStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeResourceSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeResourceStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeSpec": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeStatus": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeType": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeType(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeTypeExtraSpec": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeTypeExtraSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeTypeExtraSpecStatus": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeTypeExtraSpecStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeTypeFilter": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeTypeFilter(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeTypeImport": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeTypeImport(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeTypeList": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeTypeList(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeTypeResourceSpec": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeTypeResourceSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeTypeResourceStatus": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeTypeResourceStatus(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeTypeSpec": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeTypeSpec(ref), + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.VolumeTypeStatus": schema_openstack_resource_controller_v2_api_v1alpha1_VolumeTypeStatus(ref), + "k8s.io/api/core/v1.AWSElasticBlockStoreVolumeSource": schema_k8sio_api_core_v1_AWSElasticBlockStoreVolumeSource(ref), "k8s.io/api/core/v1.Affinity": schema_k8sio_api_core_v1_Affinity(ref), "k8s.io/api/core/v1.AppArmorProfile": schema_k8sio_api_core_v1_AppArmorProfile(ref), "k8s.io/api/core/v1.AttachedVolume": schema_k8sio_api_core_v1_AttachedVolume(ref), @@ -572,145 +609,11 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_Address(ref common.Ref } } -func schema_openstack_resource_controller_v2_api_v1alpha1_AllocationPool(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "start": { - SchemaProps: spec.SchemaProps{ - Description: "start is the first IP address in the allocation pool.", - Type: []string{"string"}, - Format: "", - }, - }, - "end": { - SchemaProps: spec.SchemaProps{ - Description: "end is the last IP address in the allocation pool.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"start", "end"}, - }, - }, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_AllocationPoolStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "start": { - SchemaProps: spec.SchemaProps{ - Description: "start is the first IP address in the allocation pool.", - Type: []string{"string"}, - Format: "", - }, - }, - "end": { - SchemaProps: spec.SchemaProps{ - Description: "end is the last IP address in the allocation pool.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_AllowedAddressPair(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "ip": { - SchemaProps: spec.SchemaProps{ - Description: "ip contains an IP address which a server connected to the port can send packets with. It can be an IP Address or a CIDR (if supported by the underlying extension plugin).", - Type: []string{"string"}, - Format: "", - }, - }, - "mac": { - SchemaProps: spec.SchemaProps{ - Description: "mac contains a MAC address which a server connected to the port can send packets with. Defaults to the MAC address of the port.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"ip"}, - }, - }, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_AllowedAddressPairStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "ip": { - SchemaProps: spec.SchemaProps{ - Description: "ip contains an IP address which a server connected to the port can send packets with.", - Type: []string{"string"}, - Format: "", - }, - }, - "mac": { - SchemaProps: spec.SchemaProps{ - Description: "mac contains a MAC address which a server connected to the port can send packets with.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_CloudCredentialsReference(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "CloudCredentialsReference is a reference to a secret containing OpenStack credentials.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "secretName": { - SchemaProps: spec.SchemaProps{ - Description: "secretName is the name of a secret in the same namespace as the resource being provisioned. The secret must contain a key named `clouds.yaml` which contains an OpenStack clouds.yaml file. The secret may optionally contain a key named `cacert` containing a PEM-encoded CA certificate.", - Type: []string{"string"}, - Format: "", - }, - }, - "cloudName": { - SchemaProps: spec.SchemaProps{ - Description: "cloudName specifies the name of the entry in the clouds.yaml file to use.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"secretName", "cloudName"}, - }, - }, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_Domain(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_AddressScope(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "Domain is the Schema for an ORC resource.", + Description: "AddressScope is the Schema for an ORC resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "kind": { @@ -738,14 +641,14 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_Domain(ref common.Refe SchemaProps: spec.SchemaProps{ Description: "spec specifies the desired state of the resource.", Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainSpec"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AddressScopeSpec"), }, }, "status": { SchemaProps: spec.SchemaProps{ Description: "status defines the observed state of the resource.", Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainStatus"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AddressScopeStatus"), }, }, }, @@ -753,15 +656,15 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_Domain(ref common.Refe }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AddressScopeSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AddressScopeStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_DomainFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_AddressScopeFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "DomainFilter defines an existing resource by its properties", + Description: "AddressScopeFilter defines an existing resource by its properties", Type: []string{"object"}, Properties: map[string]spec.Schema{ "name": { @@ -771,9 +674,23 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_DomainFilter(ref commo Format: "", }, }, - "enabled": { + "projectRef": { SchemaProps: spec.SchemaProps{ - Description: "enabled defines whether a domain is enabled or not. Default is true. Note: Users can only authorize against an enabled domain (and any of its projects).", + Description: "projectRef is a reference to the ORC Project which this resource is associated with.", + Type: []string{"string"}, + Format: "", + }, + }, + "ipVersion": { + SchemaProps: spec.SchemaProps{ + Description: "ipVersion is the IP protocol version.", + Type: []string{"integer"}, + Format: "int32", + }, + }, + "shared": { + SchemaProps: spec.SchemaProps{ + Description: "shared indicates whether this resource is shared across all projects or not. By default, only admin users can change set this value.", Type: []string{"boolean"}, Format: "", }, @@ -784,11 +701,11 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_DomainFilter(ref commo } } -func schema_openstack_resource_controller_v2_api_v1alpha1_DomainImport(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_AddressScopeImport(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "DomainImport specifies an existing resource which will be imported instead of creating a new one", + Description: "AddressScopeImport specifies an existing resource which will be imported instead of creating a new one", Type: []string{"object"}, Properties: map[string]spec.Schema{ "id": { @@ -801,22 +718,22 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_DomainImport(ref commo "filter": { SchemaProps: spec.SchemaProps{ Description: "filter contains a resource query which is expected to return a single result. The controller will continue to retry if filter returns no results. If filter returns multiple results the controller will set an error state and will not continue to retry.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainFilter"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AddressScopeFilter"), }, }, }, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainFilter"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AddressScopeFilter"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_DomainList(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_AddressScopeList(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "DomainList contains a list of Domain.", + Description: "AddressScopeList contains a list of AddressScope.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "kind": { @@ -842,13 +759,13 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_DomainList(ref common. }, "items": { SchemaProps: spec.SchemaProps{ - Description: "items contains a list of Domain.", + Description: "items contains a list of AddressScope.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Domain"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AddressScope"), }, }, }, @@ -859,15 +776,15 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_DomainList(ref common. }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Domain", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AddressScope", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_DomainResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_AddressScopeResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "DomainResourceSpec contains the desired state of the resource.", + Description: "AddressScopeResourceSpec contains the desired state of the resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "name": { @@ -877,31 +794,40 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_DomainResourceSpec(ref Format: "", }, }, - "description": { + "projectRef": { SchemaProps: spec.SchemaProps{ - Description: "description is a human-readable description for the resource.", + Description: "projectRef is a reference to the ORC Project which this resource is associated with.", Type: []string{"string"}, Format: "", }, }, - "enabled": { + "ipVersion": { SchemaProps: spec.SchemaProps{ - Description: "enabled defines whether a domain is enabled or not. Default is true. Note: Users can only authorize against an enabled domain (and any of its projects).", + Description: "ipVersion is the IP protocol version.", + Default: 0, + Type: []string{"integer"}, + Format: "int32", + }, + }, + "shared": { + SchemaProps: spec.SchemaProps{ + Description: "shared indicates whether this resource is shared across all projects or not. By default, only admin users can change set this value. We can't unshared a shared address scope; Neutron enforces this.", Type: []string{"boolean"}, Format: "", }, }, }, + Required: []string{"ipVersion"}, }, }, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_DomainResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_AddressScopeResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "DomainResourceStatus represents the observed state of the resource.", + Description: "AddressScopeResourceStatus represents the observed state of the resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "name": { @@ -911,16 +837,23 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_DomainResourceStatus(r Format: "", }, }, - "description": { + "projectID": { SchemaProps: spec.SchemaProps{ - Description: "description is a human-readable description for the resource.", + Description: "projectID is the ID of the Project to which the resource is associated.", Type: []string{"string"}, Format: "", }, }, - "enabled": { + "ipVersion": { SchemaProps: spec.SchemaProps{ - Description: "enabled defines whether a domain is enabled or not. Default is true. Note: Users can only authorize against an enabled domain (and any of its projects).", + Description: "ipVersion is the IP protocol version.", + Type: []string{"integer"}, + Format: "int32", + }, + }, + "shared": { + SchemaProps: spec.SchemaProps{ + Description: "shared indicates whether this resource is shared across all projects or not. By default, only admin users can change set this value.", Type: []string{"boolean"}, Format: "", }, @@ -931,23 +864,23 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_DomainResourceStatus(r } } -func schema_openstack_resource_controller_v2_api_v1alpha1_DomainSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_AddressScopeSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "DomainSpec defines the desired state of an ORC object.", + Description: "AddressScopeSpec defines the desired state of an ORC object.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "import": { SchemaProps: spec.SchemaProps{ Description: "import refers to an existing OpenStack resource which will be imported instead of creating a new one.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainImport"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AddressScopeImport"), }, }, "resource": { SchemaProps: spec.SchemaProps{ Description: "resource specifies the desired state of the resource.\n\nresource may not be specified if the management policy is `unmanaged`.\n\nresource must be specified if the management policy is `managed`.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainResourceSpec"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AddressScopeResourceSpec"), }, }, "managementPolicy": { @@ -975,15 +908,15 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_DomainSpec(ref common. }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainResourceSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AddressScopeImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AddressScopeResourceSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_DomainStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_AddressScopeStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "DomainStatus defines the observed state of an ORC resource.", + Description: "AddressScopeStatus defines the observed state of an ORC resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "conditions": { @@ -1020,135 +953,128 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_DomainStatus(ref commo "resource": { SchemaProps: spec.SchemaProps{ Description: "resource contains the observed state of the OpenStack resource.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainResourceStatus"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AddressScopeResourceStatus"), }, }, }, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AddressScopeResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_Endpoint(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_AllocationPool(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "Endpoint is the Schema for an ORC resource.", - Type: []string{"object"}, + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "kind": { + "start": { SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + Description: "start is the first IP address in the allocation pool.", Type: []string{"string"}, Format: "", }, }, - "apiVersion": { + "end": { SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + Description: "end is the last IP address in the allocation pool.", Type: []string{"string"}, Format: "", }, }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "metadata contains the object metadata", - Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "spec specifies the desired state of the resource.", - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "status defines the observed state of the resource.", - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointStatus"), - }, - }, }, - Required: []string{"spec"}, + Required: []string{"start", "end"}, }, }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_EndpointFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_AllocationPoolStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "EndpointFilter defines an existing resource by its properties", - Type: []string{"object"}, + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "interface": { + "start": { SchemaProps: spec.SchemaProps{ - Description: "interface of the existing endpoint.", + Description: "start is the first IP address in the allocation pool.", Type: []string{"string"}, Format: "", }, }, - "serviceRef": { + "end": { SchemaProps: spec.SchemaProps{ - Description: "serviceRef is a reference to the ORC Service which this resource is associated with.", + Description: "end is the last IP address in the allocation pool.", Type: []string{"string"}, Format: "", }, }, - "url": { + }, + }, + }, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_AllowedAddressPair(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "ip": { SchemaProps: spec.SchemaProps{ - Description: "url is the URL of the existing endpoint.", + Description: "ip contains an IP address which a server connected to the port can send packets with. It can be an IP Address or a CIDR (if supported by the underlying extension plugin).", + Type: []string{"string"}, + Format: "", + }, + }, + "mac": { + SchemaProps: spec.SchemaProps{ + Description: "mac contains a MAC address which a server connected to the port can send packets with. Defaults to the MAC address of the port.", Type: []string{"string"}, Format: "", }, }, }, + Required: []string{"ip"}, }, }, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_EndpointImport(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_AllowedAddressPairStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "EndpointImport specifies an existing resource which will be imported instead of creating a new one", - Type: []string{"object"}, + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "id": { + "ip": { SchemaProps: spec.SchemaProps{ - Description: "id contains the unique identifier of an existing OpenStack resource. Note that when specifying an import by ID, the resource MUST already exist. The ORC object will enter an error state if the resource does not exist.", + Description: "ip contains an IP address which a server connected to the port can send packets with.", Type: []string{"string"}, Format: "", }, }, - "filter": { + "mac": { SchemaProps: spec.SchemaProps{ - Description: "filter contains a resource query which is expected to return a single result. The controller will continue to retry if filter returns no results. If filter returns multiple results the controller will set an error state and will not continue to retry.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointFilter"), + Description: "mac contains a MAC address which a server connected to the port can send packets with.", + Type: []string{"string"}, + Format: "", }, }, }, }, }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointFilter"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_EndpointList(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ApplicationCredential(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "EndpointList contains a list of Endpoint.", + Description: "ApplicationCredential is the Schema for an ORC resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "kind": { @@ -1167,122 +1093,98 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_EndpointList(ref commo }, "metadata": { SchemaProps: spec.SchemaProps{ - Description: "metadata contains the list metadata", + Description: "metadata contains the object metadata", Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), }, }, - "items": { + "spec": { SchemaProps: spec.SchemaProps{ - Description: "items contains a list of Endpoint.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Endpoint"), - }, - }, - }, + Description: "spec specifies the desired state of the resource.", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ApplicationCredentialSpec"), + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Description: "status defines the observed state of the resource.", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ApplicationCredentialStatus"), }, }, }, - Required: []string{"items"}, + Required: []string{"spec"}, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Endpoint", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ApplicationCredentialSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ApplicationCredentialStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_EndpointResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ApplicationCredentialAccessRule(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "EndpointResourceSpec contains the desired state of the resource.", + Description: "ApplicationCredentialAccessRule defines an access rule", Type: []string{"object"}, Properties: map[string]spec.Schema{ - "description": { - SchemaProps: spec.SchemaProps{ - Description: "description is a human-readable description for the resource.", - Type: []string{"string"}, - Format: "", - }, - }, - "enabled": { - SchemaProps: spec.SchemaProps{ - Description: "enabled indicates whether the endpoint is enabled or not.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "interface": { + "path": { SchemaProps: spec.SchemaProps{ - Description: "interface indicates the visibility of the endpoint.", + Description: "path that the application credential is permitted to access", Type: []string{"string"}, Format: "", }, }, - "url": { + "method": { SchemaProps: spec.SchemaProps{ - Description: "url is the endpoint URL.", - Default: "", + Description: "method that the application credential is permitted to use for a given API endpoint", Type: []string{"string"}, Format: "", }, }, "serviceRef": { SchemaProps: spec.SchemaProps{ - Description: "serviceRef is a reference to the ORC Service which this resource is associated with.", + Description: "serviceRef identifier for the service that the application credential is permitted to access", Type: []string{"string"}, Format: "", }, }, }, - Required: []string{"interface", "url", "serviceRef"}, }, }, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_EndpointResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ApplicationCredentialAccessRuleStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "EndpointResourceStatus represents the observed state of the resource.", - Type: []string{"object"}, + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "description": { + "id": { SchemaProps: spec.SchemaProps{ - Description: "description is a human-readable description for the resource.", + Description: "id is the ID of this access rule", Type: []string{"string"}, Format: "", }, }, - "enabled": { - SchemaProps: spec.SchemaProps{ - Description: "enabled indicates whether the endpoint is enabled or not.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "interface": { + "path": { SchemaProps: spec.SchemaProps{ - Description: "interface indicates the visibility of the endpoint.", + Description: "path that the application credential is permitted to access", Type: []string{"string"}, Format: "", }, }, - "url": { + "method": { SchemaProps: spec.SchemaProps{ - Description: "url is the endpoint URL.", + Description: "method that the application credential is permitted to use for a given API endpoint", Type: []string{"string"}, Format: "", }, }, - "serviceID": { + "service": { SchemaProps: spec.SchemaProps{ - Description: "serviceID is the ID of the Service to which the resource is associated.", + Description: "service type identifier for the service that the application credential is permitted to access", Type: []string{"string"}, Format: "", }, @@ -1293,291 +1195,170 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_EndpointResourceStatus } } -func schema_openstack_resource_controller_v2_api_v1alpha1_EndpointSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ApplicationCredentialFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "EndpointSpec defines the desired state of an ORC object.", + Description: "ApplicationCredentialFilter defines an existing resource by its properties", Type: []string{"object"}, Properties: map[string]spec.Schema{ - "import": { - SchemaProps: spec.SchemaProps{ - Description: "import refers to an existing OpenStack resource which will be imported instead of creating a new one.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointImport"), - }, - }, - "resource": { - SchemaProps: spec.SchemaProps{ - Description: "resource specifies the desired state of the resource.\n\nresource may not be specified if the management policy is `unmanaged`.\n\nresource must be specified if the management policy is `managed`.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointResourceSpec"), - }, - }, - "managementPolicy": { + "userRef": { SchemaProps: spec.SchemaProps{ - Description: "managementPolicy defines how ORC will treat the object. Valid values are `managed`: ORC will create, update, and delete the resource; `unmanaged`: ORC will import an existing resource, and will not apply updates to it or delete it.", + Description: "userRef is a reference to the ORC User which this resource is associated with. Note: Due to the nature of the OpenStack API, managing application credentials for a user different than the one ORC is authenticated against can be computationally expensive. In the worst case, all application credentials of all users have to be queried.", Type: []string{"string"}, Format: "", }, }, - "managedOptions": { + "name": { SchemaProps: spec.SchemaProps{ - Description: "managedOptions specifies options which may be applied to managed objects.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions"), + Description: "name of the existing resource", + Type: []string{"string"}, + Format: "", }, }, - "cloudCredentialsRef": { + "description": { SchemaProps: spec.SchemaProps{ - Description: "cloudCredentialsRef points to a secret containing OpenStack credentials", - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference"), + Description: "description of the existing resource", + Type: []string{"string"}, + Format: "", }, }, }, - Required: []string{"cloudCredentialsRef"}, + Required: []string{"userRef"}, }, }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointResourceSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_EndpointStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ApplicationCredentialImport(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "EndpointStatus defines the observed state of an ORC resource.", + Description: "ApplicationCredentialImport specifies an existing resource which will be imported instead of creating a new one", Type: []string{"object"}, Properties: map[string]spec.Schema{ - "conditions": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-map-keys": []interface{}{ - "type", - }, - "x-kubernetes-list-type": "map", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "conditions represents the observed status of the object. Known .status.conditions.type are: \"Available\", \"Progressing\"\n\nAvailable represents the availability of the OpenStack resource. If it is true then the resource is ready for use.\n\nProgressing indicates whether the controller is still attempting to reconcile the current state of the OpenStack resource to the desired state. Progressing will be False either because the desired state has been achieved, or because some terminal error prevents it from ever being achieved and the controller is no longer attempting to reconcile. If Progressing is True, an observer waiting on the resource should continue to wait.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Condition"), - }, - }, - }, - }, - }, "id": { SchemaProps: spec.SchemaProps{ - Description: "id is the unique identifier of the OpenStack resource.", + Description: "id contains the unique identifier of an existing OpenStack resource. Note that when specifying an import by ID, the resource MUST already exist. The ORC object will enter an error state if the resource does not exist.", Type: []string{"string"}, Format: "", }, }, - "resource": { + "filter": { SchemaProps: spec.SchemaProps{ - Description: "resource contains the observed state of the OpenStack resource.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointResourceStatus"), + Description: "filter contains a resource query which is expected to return a single result. The controller will continue to retry if filter returns no results. If filter returns multiple results the controller will set an error state and will not continue to retry.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ApplicationCredentialFilter"), }, }, }, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ApplicationCredentialFilter"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ExternalGateway(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ApplicationCredentialList(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, + Description: "ApplicationCredentialList contains a list of ApplicationCredential.", + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "networkRef": { + "kind": { SchemaProps: spec.SchemaProps{ - Description: "networkRef is a reference to the ORC Network which the external gateway is on.", + Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", Type: []string{"string"}, Format: "", }, }, - }, - Required: []string{"networkRef"}, - }, - }, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_ExternalGatewayStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "networkID": { + "apiVersion": { SchemaProps: spec.SchemaProps{ - Description: "networkID is the ID of the network the gateway is on.", + Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", Type: []string{"string"}, Format: "", }, }, - }, - }, - }, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_FilterByKeystoneTags(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "tags": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, - }, + "metadata": { SchemaProps: spec.SchemaProps{ - Description: "tags is a list of tags to filter by. If specified, the resource must have all of the tags specified to be included in the result.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, + Description: "metadata contains the list metadata", + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), }, }, - "tagsAny": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, - }, + "items": { SchemaProps: spec.SchemaProps{ - Description: "tagsAny is a list of tags to filter by. If specified, the resource must have at least one of the tags specified to be included in the result.", + Description: "items contains a list of ApplicationCredential.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "notTags": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "notTags is a list of tags to filter by. If specified, resources which contain all of the given tags will be excluded from the result.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "notTagsAny": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "notTagsAny is a list of tags to filter by. If specified, resources which contain any of the given tags will be excluded from the result.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ApplicationCredential"), }, }, }, }, }, }, + Required: []string{"items"}, }, }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ApplicationCredential", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_FilterByNeutronTags(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ApplicationCredentialResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, + Description: "ApplicationCredentialResourceSpec contains the desired state of the resource.", + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "tags": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, + "name": { + SchemaProps: spec.SchemaProps{ + Description: "name will be the name of the created resource. If not specified, the name of the ORC object will be used.", + Type: []string{"string"}, + Format: "", }, + }, + "description": { SchemaProps: spec.SchemaProps{ - Description: "tags is a list of tags to filter by. If specified, the resource must have all of the tags specified to be included in the result.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, + Description: "description is a human-readable description for the resource.", + Type: []string{"string"}, + Format: "", }, }, - "tagsAny": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, + "userRef": { + SchemaProps: spec.SchemaProps{ + Description: "userRef is a reference to the ORC User which this resource is associated with. Note: Due to the nature of the OpenStack API, managing application credentials for a user different than the one ORC is authenticated against can be computationally expensive. In the worst case, all application credentials of all users have to be queried.", + Type: []string{"string"}, + Format: "", }, + }, + "unrestricted": { SchemaProps: spec.SchemaProps{ - Description: "tagsAny is a list of tags to filter by. If specified, the resource must have at least one of the tags specified to be included in the result.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, + Description: "unrestricted is a flag indicating whether the application credential may be used for creation or destruction of other application credentials or trusts", + Type: []string{"boolean"}, + Format: "", }, }, - "notTags": { + "secretRef": { + SchemaProps: spec.SchemaProps{ + Description: "secretRef is a reference to a Secret containing the application credential secret", + Type: []string{"string"}, + Format: "", + }, + }, + "roleRefs": { VendorExtensible: spec.VendorExtensible{ Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", + "x-kubernetes-list-type": "atomic", }, }, SchemaProps: spec.SchemaProps{ - Description: "notTags is a list of tags to filter by. If specified, resources which contain all of the given tags will be excluded from the result.", + Description: "roleRefs may only contain roles that the user has assigned on the project. If not provided, the roles assigned to the application credential will be the same as the roles in the current token.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ @@ -1590,113 +1371,114 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_FilterByNeutronTags(re }, }, }, - "notTagsAny": { + "accessRules": { VendorExtensible: spec.VendorExtensible{ Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", + "x-kubernetes-list-type": "atomic", }, }, SchemaProps: spec.SchemaProps{ - Description: "notTagsAny is a list of tags to filter by. If specified, resources which contain any of the given tags will be excluded from the result.", + Description: "accessRules is a list of fine grained access control rules", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ApplicationCredentialAccessRule"), }, }, }, }, }, + "expiresAt": { + SchemaProps: spec.SchemaProps{ + Description: "expiresAt is the time of expiration for the application credential. If unset, the application credential does not expire.", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, }, + Required: []string{"userRef", "secretRef"}, }, }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ApplicationCredentialAccessRule", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_FilterByServerTags(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ApplicationCredentialResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, + Description: "ApplicationCredentialResourceStatus represents the observed state of the resource.", + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "tags": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, + "name": { + SchemaProps: spec.SchemaProps{ + Description: "name is a Human-readable name for the resource. Might not be unique.", + Type: []string{"string"}, + Format: "", }, + }, + "description": { SchemaProps: spec.SchemaProps{ - Description: "tags is a list of tags to filter by. If specified, the resource must have all of the tags specified to be included in the result.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, + Description: "description is a human-readable description for the resource.", + Type: []string{"string"}, + Format: "", }, }, - "tagsAny": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, + "unrestricted": { + SchemaProps: spec.SchemaProps{ + Description: "unrestricted is a flag indicating whether the application credential may be used for creation or destruction of other application credentials or trusts", + Type: []string{"boolean"}, + Format: "", }, + }, + "projectID": { SchemaProps: spec.SchemaProps{ - Description: "tagsAny is a list of tags to filter by. If specified, the resource must have at least one of the tags specified to be included in the result.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, + Description: "projectID of the project the application credential was created for and that authentication requests using this application credential will be scoped to.", + Type: []string{"string"}, + Format: "", }, }, - "notTags": { + "roles": { VendorExtensible: spec.VendorExtensible{ Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", + "x-kubernetes-list-type": "atomic", }, }, SchemaProps: spec.SchemaProps{ - Description: "notTags is a list of tags to filter by. If specified, resources which contain all of the given tags will be excluded from the result.", + Description: "roles is a list of role objects may only contain roles that the user has assigned on the project", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ApplicationCredentialRoleStatus"), }, }, }, }, }, - "notTagsAny": { + "expiresAt": { + SchemaProps: spec.SchemaProps{ + Description: "expiresAt is the time of expiration for the application credential. If unset, the application credential does not expire.", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + "accessRules": { VendorExtensible: spec.VendorExtensible{ Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", + "x-kubernetes-list-type": "atomic", }, }, SchemaProps: spec.SchemaProps{ - Description: "notTagsAny is a list of tags to filter by. If specified, resources which contain any of the given tags will be excluded from the result.", + Description: "accessRules is a list of fine grained access control rules", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ApplicationCredentialAccessRuleStatus"), }, }, }, @@ -1705,25 +1487,34 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_FilterByServerTags(ref }, }, }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ApplicationCredentialAccessRuleStatus", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ApplicationCredentialRoleStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_FixedIPStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ApplicationCredentialRoleStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ Type: []string{"object"}, Properties: map[string]spec.Schema{ - "ip": { + "name": { SchemaProps: spec.SchemaProps{ - Description: "ip contains a fixed IP address assigned to the port.", + Description: "name of an existing role", Type: []string{"string"}, Format: "", }, }, - "subnetID": { + "id": { SchemaProps: spec.SchemaProps{ - Description: "subnetID is the ID of the subnet this IP is allocated from.", + Description: "id is the ID of a role", + Type: []string{"string"}, + Format: "", + }, + }, + "domainID": { + SchemaProps: spec.SchemaProps{ + Description: "domainID of the domain of this role", Type: []string{"string"}, Format: "", }, @@ -1734,131 +1525,139 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_FixedIPStatus(ref comm } } -func schema_openstack_resource_controller_v2_api_v1alpha1_Flavor(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ApplicationCredentialSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "Flavor is the Schema for an ORC resource.", + Description: "ApplicationCredentialSpec defines the desired state of an ORC object.", Type: []string{"object"}, Properties: map[string]spec.Schema{ - "kind": { + "import": { SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", + Description: "import refers to an existing OpenStack resource which will be imported instead of creating a new one.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ApplicationCredentialImport"), }, }, - "apiVersion": { + "resource": { SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", + Description: "resource specifies the desired state of the resource.\n\nresource may not be specified if the management policy is `unmanaged`.\n\nresource must be specified if the management policy is `managed`.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ApplicationCredentialResourceSpec"), }, }, - "metadata": { + "managementPolicy": { SchemaProps: spec.SchemaProps{ - Description: "metadata contains the object metadata", - Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), + Description: "managementPolicy defines how ORC will treat the object. Valid values are `managed`: ORC will create, update, and delete the resource; `unmanaged`: ORC will import an existing resource, and will not apply updates to it or delete it.", + Type: []string{"string"}, + Format: "", }, }, - "spec": { + "managedOptions": { SchemaProps: spec.SchemaProps{ - Description: "spec specifies the desired state of the resource.", - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorSpec"), + Description: "managedOptions specifies options which may be applied to managed objects.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions"), }, }, - "status": { + "cloudCredentialsRef": { SchemaProps: spec.SchemaProps{ - Description: "status defines the observed state of the resource.", + Description: "cloudCredentialsRef points to a secret containing OpenStack credentials", Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorStatus"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference"), }, }, }, - Required: []string{"spec"}, + Required: []string{"cloudCredentialsRef"}, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ApplicationCredentialImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ApplicationCredentialResourceSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_FlavorFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ApplicationCredentialStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "FlavorFilter defines an existing resource by its properties", + Description: "ApplicationCredentialStatus defines the observed state of an ORC resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "name of the existing resource", - Type: []string{"string"}, - Format: "", + "conditions": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "type", + }, + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge", + }, }, - }, - "ram": { SchemaProps: spec.SchemaProps{ - Description: "ram is the memory of the flavor, measured in MB.", - Type: []string{"integer"}, - Format: "int32", + Description: "conditions represents the observed status of the object. Known .status.conditions.type are: \"Available\", \"Progressing\"\n\nAvailable represents the availability of the OpenStack resource. If it is true then the resource is ready for use.\n\nProgressing indicates whether the controller is still attempting to reconcile the current state of the OpenStack resource to the desired state. Progressing will be False either because the desired state has been achieved, or because some terminal error prevents it from ever being achieved and the controller is no longer attempting to reconcile. If Progressing is True, an observer waiting on the resource should continue to wait.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Condition"), + }, + }, + }, }, }, - "vcpus": { + "id": { SchemaProps: spec.SchemaProps{ - Description: "vcpus is the number of vcpus for the flavor.", - Type: []string{"integer"}, - Format: "int32", + Description: "id is the unique identifier of the OpenStack resource.", + Type: []string{"string"}, + Format: "", }, }, - "disk": { + "resource": { SchemaProps: spec.SchemaProps{ - Description: "disk is the size of the root disk in GiB.", - Type: []string{"integer"}, - Format: "int32", + Description: "resource contains the observed state of the OpenStack resource.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ApplicationCredentialResourceStatus"), }, }, }, }, }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ApplicationCredentialResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_FlavorImport(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_CloudCredentialsReference(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "FlavorImport specifies an existing resource which will be imported instead of creating a new one", + Description: "CloudCredentialsReference is a reference to a secret containing OpenStack credentials.", Type: []string{"object"}, Properties: map[string]spec.Schema{ - "id": { + "secretName": { SchemaProps: spec.SchemaProps{ - Description: "id contains the unique identifier of an existing OpenStack resource. Note that when specifying an import by ID, the resource MUST already exist. The ORC object will enter an error state if the resource does not exist.", + Description: "secretName is the name of a secret in the same namespace as the resource being provisioned. The secret must contain a key named `clouds.yaml` which contains an OpenStack clouds.yaml file. The secret may optionally contain a key named `cacert` containing a PEM-encoded CA certificate.", Type: []string{"string"}, Format: "", }, }, - "filter": { + "cloudName": { SchemaProps: spec.SchemaProps{ - Description: "filter contains a resource query which is expected to return a single result. The controller will continue to retry if filter returns no results. If filter returns multiple results the controller will set an error state and will not continue to retry.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorFilter"), + Description: "cloudName specifies the name of the entry in the clouds.yaml file to use.", + Type: []string{"string"}, + Format: "", }, }, }, + Required: []string{"secretName", "cloudName"}, }, }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorFilter"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_FlavorList(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_Domain(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "FlavorList contains a list of Flavor.", + Description: "Domain is the Schema for an ORC resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "kind": { @@ -1877,115 +1676,150 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_FlavorList(ref common. }, "metadata": { SchemaProps: spec.SchemaProps{ - Description: "metadata contains the list metadata", + Description: "metadata contains the object metadata", Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), }, }, - "items": { + "spec": { SchemaProps: spec.SchemaProps{ - Description: "items contains a list of Flavor.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Flavor"), - }, - }, - }, + Description: "spec specifies the desired state of the resource.", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainSpec"), + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Description: "status defines the observed state of the resource.", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainStatus"), }, }, }, - Required: []string{"items"}, + Required: []string{"spec"}, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Flavor", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_FlavorResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_DomainFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "FlavorResourceSpec contains the desired state of a flavor", + Description: "DomainFilter defines an existing resource by its properties", Type: []string{"object"}, Properties: map[string]spec.Schema{ "name": { SchemaProps: spec.SchemaProps{ - Description: "name will be the name of the created resource. If not specified, the name of the ORC object will be used.", + Description: "name of the existing resource", Type: []string{"string"}, Format: "", }, }, - "description": { + "enabled": { SchemaProps: spec.SchemaProps{ - Description: "description contains a free form description of the flavor.", - Type: []string{"string"}, + Description: "enabled defines whether a domain is enabled or not. Default is true. Note: Users can only authorize against an enabled domain (and any of its projects).", + Type: []string{"boolean"}, Format: "", }, }, - "ram": { + }, + }, + }, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_DomainImport(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "DomainImport specifies an existing resource which will be imported instead of creating a new one", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "id": { SchemaProps: spec.SchemaProps{ - Description: "ram is the memory of the flavor, measured in MB.", - Type: []string{"integer"}, - Format: "int32", + Description: "id contains the unique identifier of an existing OpenStack resource. Note that when specifying an import by ID, the resource MUST already exist. The ORC object will enter an error state if the resource does not exist.", + Type: []string{"string"}, + Format: "", }, }, - "vcpus": { + "filter": { SchemaProps: spec.SchemaProps{ - Description: "vcpus is the number of vcpus for the flavor.", - Type: []string{"integer"}, - Format: "int32", + Description: "filter contains a resource query which is expected to return a single result. The controller will continue to retry if filter returns no results. If filter returns multiple results the controller will set an error state and will not continue to retry.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainFilter"), }, }, - "disk": { + }, + }, + }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainFilter"}, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_DomainList(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "DomainList contains a list of Domain.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "kind": { SchemaProps: spec.SchemaProps{ - Description: "disk is the size of the root disk that will be created in GiB. If 0 the root disk will be set to exactly the size of the image used to deploy the instance. However, in this case the scheduler cannot select the compute host based on the virtual image size. Therefore, 0 should only be used for volume booted instances or for testing purposes. Volume-backed instances can be enforced for flavors with zero root disk via the os_compute_api:servers:create:zero_disk_flavor policy rule.", - Default: 0, - Type: []string{"integer"}, - Format: "int32", + Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + Type: []string{"string"}, + Format: "", }, }, - "swap": { + "apiVersion": { SchemaProps: spec.SchemaProps{ - Description: "swap is the size of a dedicated swap disk that will be allocated, in MiB. If 0 (the default), no dedicated swap disk will be created.", - Type: []string{"integer"}, - Format: "int32", + Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + Type: []string{"string"}, + Format: "", }, }, - "isPublic": { + "metadata": { SchemaProps: spec.SchemaProps{ - Description: "isPublic flags a flavor as being available to all projects or not.", - Type: []string{"boolean"}, - Format: "", + Description: "metadata contains the list metadata", + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), }, }, - "ephemeral": { + "items": { SchemaProps: spec.SchemaProps{ - Description: "ephemeral is the size of the ephemeral disk that will be created, in GiB. Ephemeral disks may be written over on server state changes. So should only be used as a scratch space for applications that are aware of its limitations. Defaults to 0.", - Type: []string{"integer"}, - Format: "int32", + Description: "items contains a list of Domain.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Domain"), + }, + }, + }, }, }, }, - Required: []string{"ram", "vcpus", "disk"}, + Required: []string{"items"}, }, }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Domain", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_FlavorResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_DomainResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "FlavorResourceStatus represents the observed state of the resource.", + Description: "DomainResourceSpec contains the desired state of the resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "name": { SchemaProps: spec.SchemaProps{ - Description: "name is a Human-readable name for the flavor. Might not be unique.", + Description: "name will be the name of the created resource. If not specified, the name of the ORC object will be used.", Type: []string{"string"}, Format: "", }, @@ -1997,71 +1831,70 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_FlavorResourceStatus(r Format: "", }, }, - "ram": { - SchemaProps: spec.SchemaProps{ - Description: "ram is the memory of the flavor, measured in MB.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "vcpus": { + "enabled": { SchemaProps: spec.SchemaProps{ - Description: "vcpus is the number of vcpus for the flavor.", - Type: []string{"integer"}, - Format: "int32", + Description: "enabled defines whether a domain is enabled or not. Default is true. Note: Users can only authorize against an enabled domain (and any of its projects).", + Type: []string{"boolean"}, + Format: "", }, }, - "disk": { + }, + }, + }, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_DomainResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "DomainResourceStatus represents the observed state of the resource.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "name": { SchemaProps: spec.SchemaProps{ - Description: "disk is the size of the root disk that will be created in GiB.", - Type: []string{"integer"}, - Format: "int32", + Description: "name is a Human-readable name for the resource. Might not be unique.", + Type: []string{"string"}, + Format: "", }, }, - "swap": { + "description": { SchemaProps: spec.SchemaProps{ - Description: "swap is the size of a dedicated swap disk that will be allocated, in MiB.", - Type: []string{"integer"}, - Format: "int32", + Description: "description is a human-readable description for the resource.", + Type: []string{"string"}, + Format: "", }, }, - "isPublic": { + "enabled": { SchemaProps: spec.SchemaProps{ - Description: "isPublic flags a flavor as being available to all projects or not.", + Description: "enabled defines whether a domain is enabled or not. Default is true. Note: Users can only authorize against an enabled domain (and any of its projects).", Type: []string{"boolean"}, Format: "", }, }, - "ephemeral": { - SchemaProps: spec.SchemaProps{ - Description: "ephemeral is the size of the ephemeral disk, in GiB.", - Type: []string{"integer"}, - Format: "int32", - }, - }, }, }, }, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_FlavorSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_DomainSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "FlavorSpec defines the desired state of an ORC object.", + Description: "DomainSpec defines the desired state of an ORC object.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "import": { SchemaProps: spec.SchemaProps{ Description: "import refers to an existing OpenStack resource which will be imported instead of creating a new one.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorImport"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainImport"), }, }, "resource": { SchemaProps: spec.SchemaProps{ Description: "resource specifies the desired state of the resource.\n\nresource may not be specified if the management policy is `unmanaged`.\n\nresource must be specified if the management policy is `managed`.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorResourceSpec"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainResourceSpec"), }, }, "managementPolicy": { @@ -2089,15 +1922,15 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_FlavorSpec(ref common. }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorResourceSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainResourceSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_FlavorStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_DomainStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "FlavorStatus defines the observed state of an ORC resource.", + Description: "DomainStatus defines the observed state of an ORC resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "conditions": { @@ -2134,22 +1967,22 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_FlavorStatus(ref commo "resource": { SchemaProps: spec.SchemaProps{ Description: "resource contains the observed state of the OpenStack resource.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorResourceStatus"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainResourceStatus"), }, }, }, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.DomainResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIP(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_Endpoint(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "FloatingIP is the Schema for an ORC resource.", + Description: "Endpoint is the Schema for an ORC resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "kind": { @@ -2177,14 +2010,14 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIP(ref common. SchemaProps: spec.SchemaProps{ Description: "spec specifies the desired state of the resource.", Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPSpec"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointSpec"), }, }, "status": { SchemaProps: spec.SchemaProps{ Description: "status defines the observed state of the resource.", Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPStatus"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointStatus"), }, }, }, @@ -2192,150 +2025,49 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIP(ref common. }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_EndpointFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "FloatingIPFilter specifies a query to select an OpenStack floatingip. At least one property must be set.", + Description: "EndpointFilter defines an existing resource by its properties", Type: []string{"object"}, Properties: map[string]spec.Schema{ - "floatingIP": { - SchemaProps: spec.SchemaProps{ - Description: "floatingIP is the floatingip address.", - Type: []string{"string"}, - Format: "", - }, - }, - "description": { - SchemaProps: spec.SchemaProps{ - Description: "description of the existing resource", - Type: []string{"string"}, - Format: "", - }, - }, - "floatingNetworkRef": { - SchemaProps: spec.SchemaProps{ - Description: "floatingNetworkRef is a reference to the ORC Network which this resource is associated with.", - Type: []string{"string"}, - Format: "", - }, - }, - "portRef": { + "interface": { SchemaProps: spec.SchemaProps{ - Description: "portRef is a reference to the ORC Port which this resource is associated with.", + Description: "interface of the existing endpoint.", Type: []string{"string"}, Format: "", }, }, - "projectRef": { + "serviceRef": { SchemaProps: spec.SchemaProps{ - Description: "projectRef is a reference to the ORC Project this resource is associated with. Typically, only used by admin.", + Description: "serviceRef is a reference to the ORC Service which this resource is associated with.", Type: []string{"string"}, Format: "", }, }, - "status": { + "url": { SchemaProps: spec.SchemaProps{ - Description: "status is the status of the floatingip.", + Description: "url is the URL of the existing endpoint.", Type: []string{"string"}, Format: "", }, }, - "tags": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "tags is a list of tags to filter by. If specified, the resource must have all of the tags specified to be included in the result.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "tagsAny": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "tagsAny is a list of tags to filter by. If specified, the resource must have at least one of the tags specified to be included in the result.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "notTags": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "notTags is a list of tags to filter by. If specified, resources which contain all of the given tags will be excluded from the result.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "notTagsAny": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "notTagsAny is a list of tags to filter by. If specified, resources which contain any of the given tags will be excluded from the result.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, }, }, }, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPImport(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_EndpointImport(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "FloatingIPImport specifies an existing resource which will be imported instead of creating a new one", + Description: "EndpointImport specifies an existing resource which will be imported instead of creating a new one", Type: []string{"object"}, Properties: map[string]spec.Schema{ "id": { @@ -2348,22 +2080,22 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPImport(ref c "filter": { SchemaProps: spec.SchemaProps{ Description: "filter contains a resource query which is expected to return a single result. The controller will continue to retry if filter returns no results. If filter returns multiple results the controller will set an error state and will not continue to retry.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPFilter"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointFilter"), }, }, }, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPFilter"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointFilter"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPList(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_EndpointList(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "FloatingIPList contains a list of FloatingIP.", + Description: "EndpointList contains a list of Endpoint.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "kind": { @@ -2389,13 +2121,13 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPList(ref com }, "items": { SchemaProps: spec.SchemaProps{ - Description: "items contains a list of FloatingIP.", + Description: "items contains a list of Endpoint.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIP"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Endpoint"), }, }, }, @@ -2406,15 +2138,15 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPList(ref com }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIP", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Endpoint", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_EndpointResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "FloatingIPResourceSpec contains the desired state of a floating IP", + Description: "EndpointResourceSpec contains the desired state of the resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "description": { @@ -2424,79 +2156,48 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPResourceSpec Format: "", }, }, - "tags": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "tags is a list of tags which will be applied to the floatingip.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "floatingNetworkRef": { - SchemaProps: spec.SchemaProps{ - Description: "floatingNetworkRef references the network to which the floatingip is associated.", - Type: []string{"string"}, - Format: "", - }, - }, - "floatingSubnetRef": { - SchemaProps: spec.SchemaProps{ - Description: "floatingSubnetRef references the subnet to which the floatingip is associated.", - Type: []string{"string"}, - Format: "", - }, - }, - "floatingIP": { + "enabled": { SchemaProps: spec.SchemaProps{ - Description: "floatingIP is the IP that will be assigned to the floatingip. If not set, it will be assigned automatically.", - Type: []string{"string"}, + Description: "enabled indicates whether the endpoint is enabled or not.", + Type: []string{"boolean"}, Format: "", }, }, - "portRef": { + "interface": { SchemaProps: spec.SchemaProps{ - Description: "portRef is a reference to the ORC Port which this resource is associated with.", + Description: "interface indicates the visibility of the endpoint.", Type: []string{"string"}, Format: "", }, }, - "fixedIP": { + "url": { SchemaProps: spec.SchemaProps{ - Description: "fixedIP is the IP address of the port to which the floatingip is associated.", + Description: "url is the endpoint URL.", + Default: "", Type: []string{"string"}, Format: "", }, }, - "projectRef": { + "serviceRef": { SchemaProps: spec.SchemaProps{ - Description: "projectRef is a reference to the ORC Project this resource is associated with. Typically, only used by admin.", + Description: "serviceRef is a reference to the ORC Service which this resource is associated with.", Type: []string{"string"}, Format: "", }, }, }, + Required: []string{"interface", "url", "serviceRef"}, }, }, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_EndpointResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, + Description: "EndpointResourceStatus represents the observed state of the resource.", + Type: []string{"object"}, Properties: map[string]spec.Schema{ "description": { SchemaProps: spec.SchemaProps{ @@ -2505,126 +2206,57 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPResourceStat Format: "", }, }, - "floatingNetworkID": { + "enabled": { SchemaProps: spec.SchemaProps{ - Description: "floatingNetworkID is the ID of the network to which the floatingip is associated.", - Type: []string{"string"}, + Description: "enabled indicates whether the endpoint is enabled or not.", + Type: []string{"boolean"}, Format: "", }, }, - "floatingIP": { + "interface": { SchemaProps: spec.SchemaProps{ - Description: "floatingIP is the IP address of the floatingip.", + Description: "interface indicates the visibility of the endpoint.", Type: []string{"string"}, Format: "", }, }, - "portID": { + "url": { SchemaProps: spec.SchemaProps{ - Description: "portID is the ID of the port to which the floatingip is associated.", + Description: "url is the endpoint URL.", Type: []string{"string"}, Format: "", }, }, - "fixedIP": { + "serviceID": { SchemaProps: spec.SchemaProps{ - Description: "fixedIP is the IP address of the port to which the floatingip is associated.", + Description: "serviceID is the ID of the Service to which the resource is associated.", Type: []string{"string"}, Format: "", }, }, - "tenantID": { + }, + }, + }, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_EndpointSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "EndpointSpec defines the desired state of an ORC object.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "import": { SchemaProps: spec.SchemaProps{ - Description: "tenantID is the project owner of the resource.", - Type: []string{"string"}, - Format: "", + Description: "import refers to an existing OpenStack resource which will be imported instead of creating a new one.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointImport"), }, }, - "projectID": { - SchemaProps: spec.SchemaProps{ - Description: "projectID is the project owner of the resource.", - Type: []string{"string"}, - Format: "", - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "status indicates the current status of the resource.", - Type: []string{"string"}, - Format: "", - }, - }, - "routerID": { - SchemaProps: spec.SchemaProps{ - Description: "routerID is the ID of the router to which the floatingip is associated.", - Type: []string{"string"}, - Format: "", - }, - }, - "tags": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "tags is the list of tags on the resource.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "createdAt": { - SchemaProps: spec.SchemaProps{ - Description: "createdAt shows the date and time when the resource was created. The date and time stamp format is ISO 8601", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "updatedAt": { - SchemaProps: spec.SchemaProps{ - Description: "updatedAt shows the date and time when the resource was updated. The date and time stamp format is ISO 8601", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "revisionNumber": { - SchemaProps: spec.SchemaProps{ - Description: "revisionNumber optionally set via extensions/standard-attr-revisions", - Type: []string{"integer"}, - Format: "int64", - }, - }, - }, - }, - }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "FloatingIPSpec defines the desired state of an ORC object.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "import": { - SchemaProps: spec.SchemaProps{ - Description: "import refers to an existing OpenStack resource which will be imported instead of creating a new one.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPImport"), - }, - }, - "resource": { + "resource": { SchemaProps: spec.SchemaProps{ Description: "resource specifies the desired state of the resource.\n\nresource may not be specified if the management policy is `unmanaged`.\n\nresource must be specified if the management policy is `managed`.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPResourceSpec"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointResourceSpec"), }, }, "managementPolicy": { @@ -2652,15 +2284,15 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPSpec(ref com }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPResourceSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointResourceSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_EndpointStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "FloatingIPStatus defines the observed state of an ORC resource.", + Description: "EndpointStatus defines the observed state of an ORC resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "conditions": { @@ -2697,85 +2329,46 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPStatus(ref c "resource": { SchemaProps: spec.SchemaProps{ Description: "resource contains the observed state of the OpenStack resource.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPResourceStatus"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointResourceStatus"), }, }, }, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.EndpointResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_Group(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ExternalGateway(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "Group is the Schema for an ORC resource.", - Type: []string{"object"}, + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { + "networkRef": { SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + Description: "networkRef is a reference to the ORC Network which the external gateway is on.", Type: []string{"string"}, Format: "", }, }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "metadata contains the object metadata", - Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "spec specifies the desired state of the resource.", - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "status defines the observed state of the resource.", - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupStatus"), - }, - }, }, - Required: []string{"spec"}, + Required: []string{"networkRef"}, }, }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_GroupFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ExternalGatewayStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "GroupFilter defines an existing resource by its properties", - Type: []string{"object"}, + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "name of the existing resource", - Type: []string{"string"}, - Format: "", - }, - }, - "domainRef": { + "networkID": { SchemaProps: spec.SchemaProps{ - Description: "domainRef is a reference to the ORC Domain which this resource is associated with.", + Description: "networkID is the ID of the network the gateway is on.", Type: []string{"string"}, Format: "", }, @@ -2786,364 +2379,2872 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_GroupFilter(ref common } } -func schema_openstack_resource_controller_v2_api_v1alpha1_GroupImport(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_FilterByKeystoneTags(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "GroupImport specifies an existing resource which will be imported instead of creating a new one", - Type: []string{"object"}, + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "id": { - SchemaProps: spec.SchemaProps{ - Description: "id contains the unique identifier of an existing OpenStack resource. Note that when specifying an import by ID, the resource MUST already exist. The ORC object will enter an error state if the resource does not exist.", - Type: []string{"string"}, - Format: "", + "tags": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, }, - }, - "filter": { SchemaProps: spec.SchemaProps{ - Description: "filter contains a resource query which is expected to return a single result. The controller will continue to retry if filter returns no results. If filter returns multiple results the controller will set an error state and will not continue to retry.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupFilter"), + Description: "tags is a list of tags to filter by. If specified, the resource must have all of the tags specified to be included in the result.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, }, }, - }, - }, - }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupFilter"}, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_GroupList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "GroupList contains a list of Group.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", + "tagsAny": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, }, - }, - "apiVersion": { SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", + Description: "tagsAny is a list of tags to filter by. If specified, the resource must have at least one of the tags specified to be included in the result.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, }, }, - "metadata": { + "notTags": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, SchemaProps: spec.SchemaProps{ - Description: "metadata contains the list metadata", - Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), + Description: "notTags is a list of tags to filter by. If specified, resources which contain all of the given tags will be excluded from the result.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, }, }, - "items": { + "notTagsAny": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, SchemaProps: spec.SchemaProps{ - Description: "items contains a list of Group.", + Description: "notTagsAny is a list of tags to filter by. If specified, resources which contain any of the given tags will be excluded from the result.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Group"), + Default: "", + Type: []string{"string"}, + Format: "", }, }, }, }, }, }, - Required: []string{"items"}, }, }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Group", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_GroupResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_FilterByNeutronTags(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "tags": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "tags is a list of tags to filter by. If specified, the resource must have all of the tags specified to be included in the result.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "tagsAny": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "tagsAny is a list of tags to filter by. If specified, the resource must have at least one of the tags specified to be included in the result.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "notTags": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "notTags is a list of tags to filter by. If specified, resources which contain all of the given tags will be excluded from the result.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "notTagsAny": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "notTagsAny is a list of tags to filter by. If specified, resources which contain any of the given tags will be excluded from the result.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + }, + }, + }, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_FilterByServerTags(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "tags": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "tags is a list of tags to filter by. If specified, the resource must have all of the tags specified to be included in the result.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "tagsAny": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "tagsAny is a list of tags to filter by. If specified, the resource must have at least one of the tags specified to be included in the result.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "notTags": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "notTags is a list of tags to filter by. If specified, resources which contain all of the given tags will be excluded from the result.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "notTagsAny": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "notTagsAny is a list of tags to filter by. If specified, resources which contain any of the given tags will be excluded from the result.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + }, + }, + }, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_FixedIPStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "ip": { + SchemaProps: spec.SchemaProps{ + Description: "ip contains a fixed IP address assigned to the port.", + Type: []string{"string"}, + Format: "", + }, + }, + "subnetID": { + SchemaProps: spec.SchemaProps{ + Description: "subnetID is the ID of the subnet this IP is allocated from.", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_Flavor(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "Flavor is the Schema for an ORC resource.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "kind": { + SchemaProps: spec.SchemaProps{ + Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + Type: []string{"string"}, + Format: "", + }, + }, + "apiVersion": { + SchemaProps: spec.SchemaProps{ + Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + Type: []string{"string"}, + Format: "", + }, + }, + "metadata": { + SchemaProps: spec.SchemaProps{ + Description: "metadata contains the object metadata", + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), + }, + }, + "spec": { + SchemaProps: spec.SchemaProps{ + Description: "spec specifies the desired state of the resource.", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorSpec"), + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Description: "status defines the observed state of the resource.", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorStatus"), + }, + }, + }, + Required: []string{"spec"}, + }, + }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_FlavorExtraSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "name": { + SchemaProps: spec.SchemaProps{ + Description: "name is the name of the extraspec", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "value": { + SchemaProps: spec.SchemaProps{ + Description: "value is the value of the extraspec", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"name", "value"}, + }, + }, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_FlavorExtraSpecStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "name": { + SchemaProps: spec.SchemaProps{ + Description: "name is the name of the extraspec", + Type: []string{"string"}, + Format: "", + }, + }, + "value": { + SchemaProps: spec.SchemaProps{ + Description: "value is the value of the extraspec", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_FlavorFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "FlavorFilter defines an existing resource by its properties", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "name": { + SchemaProps: spec.SchemaProps{ + Description: "name of the existing resource", + Type: []string{"string"}, + Format: "", + }, + }, + "ram": { + SchemaProps: spec.SchemaProps{ + Description: "ram is the memory of the flavor, measured in MB.", + Type: []string{"integer"}, + Format: "int32", + }, + }, + "vcpus": { + SchemaProps: spec.SchemaProps{ + Description: "vcpus is the number of vcpus for the flavor.", + Type: []string{"integer"}, + Format: "int32", + }, + }, + "disk": { + SchemaProps: spec.SchemaProps{ + Description: "disk is the size of the root disk in GiB.", + Type: []string{"integer"}, + Format: "int32", + }, + }, + }, + }, + }, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_FlavorImport(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "FlavorImport specifies an existing resource which will be imported instead of creating a new one", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "id": { + SchemaProps: spec.SchemaProps{ + Description: "id contains the unique identifier of an existing OpenStack resource. Note that when specifying an import by ID, the resource MUST already exist. The ORC object will enter an error state if the resource does not exist.", + Type: []string{"string"}, + Format: "", + }, + }, + "filter": { + SchemaProps: spec.SchemaProps{ + Description: "filter contains a resource query which is expected to return a single result. The controller will continue to retry if filter returns no results. If filter returns multiple results the controller will set an error state and will not continue to retry.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorFilter"), + }, + }, + }, + }, + }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorFilter"}, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_FlavorList(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "FlavorList contains a list of Flavor.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "kind": { + SchemaProps: spec.SchemaProps{ + Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + Type: []string{"string"}, + Format: "", + }, + }, + "apiVersion": { + SchemaProps: spec.SchemaProps{ + Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + Type: []string{"string"}, + Format: "", + }, + }, + "metadata": { + SchemaProps: spec.SchemaProps{ + Description: "metadata contains the list metadata", + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), + }, + }, + "items": { + SchemaProps: spec.SchemaProps{ + Description: "items contains a list of Flavor.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Flavor"), + }, + }, + }, + }, + }, + }, + Required: []string{"items"}, + }, + }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Flavor", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_FlavorResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "FlavorResourceSpec contains the desired state of a flavor", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "name": { + SchemaProps: spec.SchemaProps{ + Description: "name will be the name of the created resource. If not specified, the name of the ORC object will be used.", + Type: []string{"string"}, + Format: "", + }, + }, + "id": { + SchemaProps: spec.SchemaProps{ + Description: "id will be the id of the created resource. If not specified, a random UUID will be generated by OpenStack.", + Type: []string{"string"}, + Format: "", + }, + }, + "description": { + SchemaProps: spec.SchemaProps{ + Description: "description contains a free form description of the flavor.", + Type: []string{"string"}, + Format: "", + }, + }, + "ram": { + SchemaProps: spec.SchemaProps{ + Description: "ram is the memory of the flavor, measured in MB.", + Type: []string{"integer"}, + Format: "int32", + }, + }, + "vcpus": { + SchemaProps: spec.SchemaProps{ + Description: "vcpus is the number of vcpus for the flavor.", + Type: []string{"integer"}, + Format: "int32", + }, + }, + "disk": { + SchemaProps: spec.SchemaProps{ + Description: "disk is the size of the root disk that will be created in GiB. If 0 the root disk will be set to exactly the size of the image used to deploy the instance. However, in this case the scheduler cannot select the compute host based on the virtual image size. Therefore, 0 should only be used for volume booted instances or for testing purposes. Volume-backed instances can be enforced for flavors with zero root disk via the os_compute_api:servers:create:zero_disk_flavor policy rule.", + Default: 0, + Type: []string{"integer"}, + Format: "int32", + }, + }, + "swap": { + SchemaProps: spec.SchemaProps{ + Description: "swap is the size of a dedicated swap disk that will be allocated, in MiB. If 0 (the default), no dedicated swap disk will be created.", + Type: []string{"integer"}, + Format: "int32", + }, + }, + "extraSpecs": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "name", + }, + "x-kubernetes-list-type": "map", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "extraSpecs is a list of key-value pairs that define extra specifications for the flavor.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorExtraSpec"), + }, + }, + }, + }, + }, + "isPublic": { + SchemaProps: spec.SchemaProps{ + Description: "isPublic flags a flavor as being available to all projects or not.", + Type: []string{"boolean"}, + Format: "", + }, + }, + "ephemeral": { + SchemaProps: spec.SchemaProps{ + Description: "ephemeral is the size of the ephemeral disk that will be created, in GiB. Ephemeral disks may be written over on server state changes. So should only be used as a scratch space for applications that are aware of its limitations. Defaults to 0.", + Type: []string{"integer"}, + Format: "int32", + }, + }, + }, + Required: []string{"ram", "vcpus", "disk"}, + }, + }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorExtraSpec"}, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_FlavorResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "FlavorResourceStatus represents the observed state of the resource.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "name": { + SchemaProps: spec.SchemaProps{ + Description: "name is a Human-readable name for the flavor. Might not be unique.", + Type: []string{"string"}, + Format: "", + }, + }, + "description": { + SchemaProps: spec.SchemaProps{ + Description: "description is a human-readable description for the resource.", + Type: []string{"string"}, + Format: "", + }, + }, + "ram": { + SchemaProps: spec.SchemaProps{ + Description: "ram is the memory of the flavor, measured in MB.", + Type: []string{"integer"}, + Format: "int32", + }, + }, + "vcpus": { + SchemaProps: spec.SchemaProps{ + Description: "vcpus is the number of vcpus for the flavor.", + Type: []string{"integer"}, + Format: "int32", + }, + }, + "disk": { + SchemaProps: spec.SchemaProps{ + Description: "disk is the size of the root disk that will be created in GiB.", + Type: []string{"integer"}, + Format: "int32", + }, + }, + "swap": { + SchemaProps: spec.SchemaProps{ + Description: "swap is the size of a dedicated swap disk that will be allocated, in MiB.", + Type: []string{"integer"}, + Format: "int32", + }, + }, + "extraSpecs": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "extraSpecs is a map of key-value pairs that define extra specifications for the flavor.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorExtraSpecStatus"), + }, + }, + }, + }, + }, + "isPublic": { + SchemaProps: spec.SchemaProps{ + Description: "isPublic flags a flavor as being available to all projects or not.", + Type: []string{"boolean"}, + Format: "", + }, + }, + "ephemeral": { + SchemaProps: spec.SchemaProps{ + Description: "ephemeral is the size of the ephemeral disk, in GiB.", + Type: []string{"integer"}, + Format: "int32", + }, + }, + }, + }, + }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorExtraSpecStatus"}, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_FlavorSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "FlavorSpec defines the desired state of an ORC object.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "import": { + SchemaProps: spec.SchemaProps{ + Description: "import refers to an existing OpenStack resource which will be imported instead of creating a new one.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorImport"), + }, + }, + "resource": { + SchemaProps: spec.SchemaProps{ + Description: "resource specifies the desired state of the resource.\n\nresource may not be specified if the management policy is `unmanaged`.\n\nresource must be specified if the management policy is `managed`.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorResourceSpec"), + }, + }, + "managementPolicy": { + SchemaProps: spec.SchemaProps{ + Description: "managementPolicy defines how ORC will treat the object. Valid values are `managed`: ORC will create, update, and delete the resource; `unmanaged`: ORC will import an existing resource, and will not apply updates to it or delete it.", + Type: []string{"string"}, + Format: "", + }, + }, + "managedOptions": { + SchemaProps: spec.SchemaProps{ + Description: "managedOptions specifies options which may be applied to managed objects.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions"), + }, + }, + "cloudCredentialsRef": { + SchemaProps: spec.SchemaProps{ + Description: "cloudCredentialsRef points to a secret containing OpenStack credentials", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference"), + }, + }, + }, + Required: []string{"cloudCredentialsRef"}, + }, + }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorResourceSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions"}, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_FlavorStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "FlavorStatus defines the observed state of an ORC resource.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "conditions": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "type", + }, + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "conditions represents the observed status of the object. Known .status.conditions.type are: \"Available\", \"Progressing\"\n\nAvailable represents the availability of the OpenStack resource. If it is true then the resource is ready for use.\n\nProgressing indicates whether the controller is still attempting to reconcile the current state of the OpenStack resource to the desired state. Progressing will be False either because the desired state has been achieved, or because some terminal error prevents it from ever being achieved and the controller is no longer attempting to reconcile. If Progressing is True, an observer waiting on the resource should continue to wait.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Condition"), + }, + }, + }, + }, + }, + "id": { + SchemaProps: spec.SchemaProps{ + Description: "id is the unique identifier of the OpenStack resource.", + Type: []string{"string"}, + Format: "", + }, + }, + "resource": { + SchemaProps: spec.SchemaProps{ + Description: "resource contains the observed state of the OpenStack resource.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorResourceStatus"), + }, + }, + }, + }, + }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FlavorResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIP(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "FloatingIP is the Schema for an ORC resource.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "kind": { + SchemaProps: spec.SchemaProps{ + Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + Type: []string{"string"}, + Format: "", + }, + }, + "apiVersion": { + SchemaProps: spec.SchemaProps{ + Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + Type: []string{"string"}, + Format: "", + }, + }, + "metadata": { + SchemaProps: spec.SchemaProps{ + Description: "metadata contains the object metadata", + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), + }, + }, + "spec": { + SchemaProps: spec.SchemaProps{ + Description: "spec specifies the desired state of the resource.", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPSpec"), + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Description: "status defines the observed state of the resource.", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPStatus"), + }, + }, + }, + Required: []string{"spec"}, + }, + }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "FloatingIPFilter specifies a query to select an OpenStack floatingip. At least one property must be set.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "floatingIP": { + SchemaProps: spec.SchemaProps{ + Description: "floatingIP is the floatingip address.", + Type: []string{"string"}, + Format: "", + }, + }, + "description": { + SchemaProps: spec.SchemaProps{ + Description: "description of the existing resource", + Type: []string{"string"}, + Format: "", + }, + }, + "floatingNetworkRef": { + SchemaProps: spec.SchemaProps{ + Description: "floatingNetworkRef is a reference to the ORC Network which this resource is associated with.", + Type: []string{"string"}, + Format: "", + }, + }, + "portRef": { + SchemaProps: spec.SchemaProps{ + Description: "portRef is a reference to the ORC Port which this resource is associated with.", + Type: []string{"string"}, + Format: "", + }, + }, + "projectRef": { + SchemaProps: spec.SchemaProps{ + Description: "projectRef is a reference to the ORC Project this resource is associated with. Typically, only used by admin.", + Type: []string{"string"}, + Format: "", + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Description: "status is the status of the floatingip.", + Type: []string{"string"}, + Format: "", + }, + }, + "tags": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "tags is a list of tags to filter by. If specified, the resource must have all of the tags specified to be included in the result.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "tagsAny": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "tagsAny is a list of tags to filter by. If specified, the resource must have at least one of the tags specified to be included in the result.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "notTags": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "notTags is a list of tags to filter by. If specified, resources which contain all of the given tags will be excluded from the result.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "notTagsAny": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "notTagsAny is a list of tags to filter by. If specified, resources which contain any of the given tags will be excluded from the result.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + }, + }, + }, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPImport(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "FloatingIPImport specifies an existing resource which will be imported instead of creating a new one", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "id": { + SchemaProps: spec.SchemaProps{ + Description: "id contains the unique identifier of an existing OpenStack resource. Note that when specifying an import by ID, the resource MUST already exist. The ORC object will enter an error state if the resource does not exist.", + Type: []string{"string"}, + Format: "", + }, + }, + "filter": { + SchemaProps: spec.SchemaProps{ + Description: "filter contains a resource query which is expected to return a single result. The controller will continue to retry if filter returns no results. If filter returns multiple results the controller will set an error state and will not continue to retry.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPFilter"), + }, + }, + }, + }, + }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPFilter"}, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPList(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "FloatingIPList contains a list of FloatingIP.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "kind": { + SchemaProps: spec.SchemaProps{ + Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + Type: []string{"string"}, + Format: "", + }, + }, + "apiVersion": { + SchemaProps: spec.SchemaProps{ + Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + Type: []string{"string"}, + Format: "", + }, + }, + "metadata": { + SchemaProps: spec.SchemaProps{ + Description: "metadata contains the list metadata", + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), + }, + }, + "items": { + SchemaProps: spec.SchemaProps{ + Description: "items contains a list of FloatingIP.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIP"), + }, + }, + }, + }, + }, + }, + Required: []string{"items"}, + }, + }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIP", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "FloatingIPResourceSpec contains the desired state of a floating IP", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "description": { + SchemaProps: spec.SchemaProps{ + Description: "description is a human-readable description for the resource.", + Type: []string{"string"}, + Format: "", + }, + }, + "tags": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "tags is a list of tags which will be applied to the floatingip.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "floatingNetworkRef": { + SchemaProps: spec.SchemaProps{ + Description: "floatingNetworkRef references the network to which the floatingip is associated.", + Type: []string{"string"}, + Format: "", + }, + }, + "floatingSubnetRef": { + SchemaProps: spec.SchemaProps{ + Description: "floatingSubnetRef references the subnet to which the floatingip is associated.", + Type: []string{"string"}, + Format: "", + }, + }, + "floatingIP": { + SchemaProps: spec.SchemaProps{ + Description: "floatingIP is the IP that will be assigned to the floatingip. If not set, it will be assigned automatically.", + Type: []string{"string"}, + Format: "", + }, + }, + "portRef": { + SchemaProps: spec.SchemaProps{ + Description: "portRef is a reference to the ORC Port which this resource is associated with.", + Type: []string{"string"}, + Format: "", + }, + }, + "fixedIP": { + SchemaProps: spec.SchemaProps{ + Description: "fixedIP is the IP address of the port to which the floatingip is associated.", + Type: []string{"string"}, + Format: "", + }, + }, + "projectRef": { + SchemaProps: spec.SchemaProps{ + Description: "projectRef is a reference to the ORC Project this resource is associated with. Typically, only used by admin.", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "description": { + SchemaProps: spec.SchemaProps{ + Description: "description is a human-readable description for the resource.", + Type: []string{"string"}, + Format: "", + }, + }, + "floatingNetworkID": { + SchemaProps: spec.SchemaProps{ + Description: "floatingNetworkID is the ID of the network to which the floatingip is associated.", + Type: []string{"string"}, + Format: "", + }, + }, + "floatingIP": { + SchemaProps: spec.SchemaProps{ + Description: "floatingIP is the IP address of the floatingip.", + Type: []string{"string"}, + Format: "", + }, + }, + "portID": { + SchemaProps: spec.SchemaProps{ + Description: "portID is the ID of the port to which the floatingip is associated.", + Type: []string{"string"}, + Format: "", + }, + }, + "fixedIP": { + SchemaProps: spec.SchemaProps{ + Description: "fixedIP is the IP address of the port to which the floatingip is associated.", + Type: []string{"string"}, + Format: "", + }, + }, + "tenantID": { + SchemaProps: spec.SchemaProps{ + Description: "tenantID is the project owner of the resource.", + Type: []string{"string"}, + Format: "", + }, + }, + "projectID": { + SchemaProps: spec.SchemaProps{ + Description: "projectID is the project owner of the resource.", + Type: []string{"string"}, + Format: "", + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Description: "status indicates the current status of the resource.", + Type: []string{"string"}, + Format: "", + }, + }, + "routerID": { + SchemaProps: spec.SchemaProps{ + Description: "routerID is the ID of the router to which the floatingip is associated.", + Type: []string{"string"}, + Format: "", + }, + }, + "tags": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "tags is the list of tags on the resource.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "createdAt": { + SchemaProps: spec.SchemaProps{ + Description: "createdAt shows the date and time when the resource was created. The date and time stamp format is ISO 8601", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + "updatedAt": { + SchemaProps: spec.SchemaProps{ + Description: "updatedAt shows the date and time when the resource was updated. The date and time stamp format is ISO 8601", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + "revisionNumber": { + SchemaProps: spec.SchemaProps{ + Description: "revisionNumber optionally set via extensions/standard-attr-revisions", + Type: []string{"integer"}, + Format: "int64", + }, + }, + }, + }, + }, + Dependencies: []string{ + "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "FloatingIPSpec defines the desired state of an ORC object.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "import": { + SchemaProps: spec.SchemaProps{ + Description: "import refers to an existing OpenStack resource which will be imported instead of creating a new one.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPImport"), + }, + }, + "resource": { + SchemaProps: spec.SchemaProps{ + Description: "resource specifies the desired state of the resource.\n\nresource may not be specified if the management policy is `unmanaged`.\n\nresource must be specified if the management policy is `managed`.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPResourceSpec"), + }, + }, + "managementPolicy": { + SchemaProps: spec.SchemaProps{ + Description: "managementPolicy defines how ORC will treat the object. Valid values are `managed`: ORC will create, update, and delete the resource; `unmanaged`: ORC will import an existing resource, and will not apply updates to it or delete it.", + Type: []string{"string"}, + Format: "", + }, + }, + "managedOptions": { + SchemaProps: spec.SchemaProps{ + Description: "managedOptions specifies options which may be applied to managed objects.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions"), + }, + }, + "cloudCredentialsRef": { + SchemaProps: spec.SchemaProps{ + Description: "cloudCredentialsRef points to a secret containing OpenStack credentials", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference"), + }, + }, + }, + Required: []string{"cloudCredentialsRef"}, + }, + }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPResourceSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions"}, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_FloatingIPStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "FloatingIPStatus defines the observed state of an ORC resource.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "conditions": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "type", + }, + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "conditions represents the observed status of the object. Known .status.conditions.type are: \"Available\", \"Progressing\"\n\nAvailable represents the availability of the OpenStack resource. If it is true then the resource is ready for use.\n\nProgressing indicates whether the controller is still attempting to reconcile the current state of the OpenStack resource to the desired state. Progressing will be False either because the desired state has been achieved, or because some terminal error prevents it from ever being achieved and the controller is no longer attempting to reconcile. If Progressing is True, an observer waiting on the resource should continue to wait.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Condition"), + }, + }, + }, + }, + }, + "id": { + SchemaProps: spec.SchemaProps{ + Description: "id is the unique identifier of the OpenStack resource.", + Type: []string{"string"}, + Format: "", + }, + }, + "resource": { + SchemaProps: spec.SchemaProps{ + Description: "resource contains the observed state of the OpenStack resource.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPResourceStatus"), + }, + }, + }, + }, + }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FloatingIPResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_Group(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "Group is the Schema for an ORC resource.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "kind": { + SchemaProps: spec.SchemaProps{ + Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + Type: []string{"string"}, + Format: "", + }, + }, + "apiVersion": { + SchemaProps: spec.SchemaProps{ + Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + Type: []string{"string"}, + Format: "", + }, + }, + "metadata": { + SchemaProps: spec.SchemaProps{ + Description: "metadata contains the object metadata", + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), + }, + }, + "spec": { + SchemaProps: spec.SchemaProps{ + Description: "spec specifies the desired state of the resource.", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupSpec"), + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Description: "status defines the observed state of the resource.", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupStatus"), + }, + }, + }, + Required: []string{"spec"}, + }, + }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_GroupFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "GroupFilter defines an existing resource by its properties", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "name": { + SchemaProps: spec.SchemaProps{ + Description: "name of the existing resource", + Type: []string{"string"}, + Format: "", + }, + }, + "domainRef": { + SchemaProps: spec.SchemaProps{ + Description: "domainRef is a reference to the ORC Domain which this resource is associated with.", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_GroupImport(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "GroupImport specifies an existing resource which will be imported instead of creating a new one", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "id": { + SchemaProps: spec.SchemaProps{ + Description: "id contains the unique identifier of an existing OpenStack resource. Note that when specifying an import by ID, the resource MUST already exist. The ORC object will enter an error state if the resource does not exist.", + Type: []string{"string"}, + Format: "", + }, + }, + "filter": { + SchemaProps: spec.SchemaProps{ + Description: "filter contains a resource query which is expected to return a single result. The controller will continue to retry if filter returns no results. If filter returns multiple results the controller will set an error state and will not continue to retry.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupFilter"), + }, + }, + }, + }, + }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupFilter"}, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_GroupList(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "GroupList contains a list of Group.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "kind": { + SchemaProps: spec.SchemaProps{ + Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + Type: []string{"string"}, + Format: "", + }, + }, + "apiVersion": { + SchemaProps: spec.SchemaProps{ + Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + Type: []string{"string"}, + Format: "", + }, + }, + "metadata": { + SchemaProps: spec.SchemaProps{ + Description: "metadata contains the list metadata", + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), + }, + }, + "items": { + SchemaProps: spec.SchemaProps{ + Description: "items contains a list of Group.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Group"), + }, + }, + }, + }, + }, + }, + Required: []string{"items"}, + }, + }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Group", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_GroupResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "GroupResourceSpec contains the desired state of the resource.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "name": { + SchemaProps: spec.SchemaProps{ + Description: "name will be the name of the created resource. If not specified, the name of the ORC object will be used.", + Type: []string{"string"}, + Format: "", + }, + }, + "description": { + SchemaProps: spec.SchemaProps{ + Description: "description is a human-readable description for the resource.", + Type: []string{"string"}, + Format: "", + }, + }, + "domainRef": { + SchemaProps: spec.SchemaProps{ + Description: "domainRef is a reference to the ORC Domain which this resource is associated with.", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_GroupResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "GroupResourceStatus represents the observed state of the resource.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "name": { + SchemaProps: spec.SchemaProps{ + Description: "name is a Human-readable name for the resource. Might not be unique.", + Type: []string{"string"}, + Format: "", + }, + }, + "description": { + SchemaProps: spec.SchemaProps{ + Description: "description is a human-readable description for the resource.", + Type: []string{"string"}, + Format: "", + }, + }, + "domainID": { + SchemaProps: spec.SchemaProps{ + Description: "domainID is the ID of the Domain to which the resource is associated.", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_GroupSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "GroupSpec defines the desired state of an ORC object.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "import": { + SchemaProps: spec.SchemaProps{ + Description: "import refers to an existing OpenStack resource which will be imported instead of creating a new one.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupImport"), + }, + }, + "resource": { + SchemaProps: spec.SchemaProps{ + Description: "resource specifies the desired state of the resource.\n\nresource may not be specified if the management policy is `unmanaged`.\n\nresource must be specified if the management policy is `managed`.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupResourceSpec"), + }, + }, + "managementPolicy": { + SchemaProps: spec.SchemaProps{ + Description: "managementPolicy defines how ORC will treat the object. Valid values are `managed`: ORC will create, update, and delete the resource; `unmanaged`: ORC will import an existing resource, and will not apply updates to it or delete it.", + Type: []string{"string"}, + Format: "", + }, + }, + "managedOptions": { + SchemaProps: spec.SchemaProps{ + Description: "managedOptions specifies options which may be applied to managed objects.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions"), + }, + }, + "cloudCredentialsRef": { + SchemaProps: spec.SchemaProps{ + Description: "cloudCredentialsRef points to a secret containing OpenStack credentials", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference"), + }, + }, + }, + Required: []string{"cloudCredentialsRef"}, + }, + }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupResourceSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions"}, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_GroupStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "GroupStatus defines the observed state of an ORC resource.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "conditions": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "type", + }, + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "conditions represents the observed status of the object. Known .status.conditions.type are: \"Available\", \"Progressing\"\n\nAvailable represents the availability of the OpenStack resource. If it is true then the resource is ready for use.\n\nProgressing indicates whether the controller is still attempting to reconcile the current state of the OpenStack resource to the desired state. Progressing will be False either because the desired state has been achieved, or because some terminal error prevents it from ever being achieved and the controller is no longer attempting to reconcile. If Progressing is True, an observer waiting on the resource should continue to wait.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Condition"), + }, + }, + }, + }, + }, + "id": { + SchemaProps: spec.SchemaProps{ + Description: "id is the unique identifier of the OpenStack resource.", + Type: []string{"string"}, + Format: "", + }, + }, + "resource": { + SchemaProps: spec.SchemaProps{ + Description: "resource contains the observed state of the OpenStack resource.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupResourceStatus"), + }, + }, + }, + }, + }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_HostID(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "HostID specifies how to determine the host ID for port binding. Exactly one of the fields must be set.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "id": { + SchemaProps: spec.SchemaProps{ + Description: "id is the literal host ID string to use for binding:host_id. This is mutually exclusive with serverRef.", + Type: []string{"string"}, + Format: "", + }, + }, + "serverRef": { + SchemaProps: spec.SchemaProps{ + Description: "serverRef is a reference to an ORC Server resource from which to retrieve the hostID for port binding. The hostID will be read from the Server's status.resource.hostID field. This is mutually exclusive with id.", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_HostRoute(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "destination": { + SchemaProps: spec.SchemaProps{ + Description: "destination for the additional route.", + Type: []string{"string"}, + Format: "", + }, + }, + "nextHop": { + SchemaProps: spec.SchemaProps{ + Description: "nextHop for the additional route.", + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"destination", "nextHop"}, + }, + }, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_HostRouteStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "destination": { + SchemaProps: spec.SchemaProps{ + Description: "destination for the additional route.", + Type: []string{"string"}, + Format: "", + }, + }, + "nextHop": { + SchemaProps: spec.SchemaProps{ + Description: "nextHop for the additional route.", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_IPv6Options(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "addressMode": { + SchemaProps: spec.SchemaProps{ + Description: "addressMode specifies mechanisms for assigning IPv6 IP addresses.", + Type: []string{"string"}, + Format: "", + }, + }, + "raMode": { + SchemaProps: spec.SchemaProps{ + Description: "raMode specifies the IPv6 router advertisement mode. It specifies whether the networking service should transmit ICMPv6 packets.", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_Image(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "Image is the Schema for an ORC resource.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "kind": { + SchemaProps: spec.SchemaProps{ + Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + Type: []string{"string"}, + Format: "", + }, + }, + "apiVersion": { + SchemaProps: spec.SchemaProps{ + Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + Type: []string{"string"}, + Format: "", + }, + }, + "metadata": { + SchemaProps: spec.SchemaProps{ + Description: "metadata contains the object metadata", + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), + }, + }, + "spec": { + SchemaProps: spec.SchemaProps{ + Description: "spec specifies the desired state of the resource.", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageSpec"), + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Description: "status defines the observed state of the resource.", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageStatus"), + }, + }, + }, + Required: []string{"spec"}, + }, + }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_ImageContent(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "containerFormat": { + SchemaProps: spec.SchemaProps{ + Description: "containerFormat is the format of the image container. qcow2 and raw images do not usually have a container. This is specified as \"bare\", which is also the default. Permitted values are ami, ari, aki, bare, compressed, ovf, ova, and docker.", + Type: []string{"string"}, + Format: "", + }, + }, + "diskFormat": { + SchemaProps: spec.SchemaProps{ + Description: "diskFormat is the format of the disk image. Normal values are \"qcow2\", or \"raw\". Glance may be configured to support others.", + Type: []string{"string"}, + Format: "", + }, + }, + "download": { + SchemaProps: spec.SchemaProps{ + Description: "download describes how to obtain image data by downloading it from a URL. Must be set when creating a managed image.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageContentSourceDownload"), + }, + }, + }, + Required: []string{"diskFormat", "download"}, + }, + }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageContentSourceDownload"}, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_ImageContentSourceDownload(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "url": { + SchemaProps: spec.SchemaProps{ + Description: "url containing image data", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "decompress": { + SchemaProps: spec.SchemaProps{ + Description: "decompress specifies that the source data must be decompressed with the given compression algorithm before being stored. Specifying Decompress will disable the use of Glance's web-download, as web-download cannot currently deterministically decompress downloaded content.", + Type: []string{"string"}, + Format: "", + }, + }, + "hash": { + SchemaProps: spec.SchemaProps{ + Description: "hash is a hash which will be used to verify downloaded data, i.e. before any decompression. If not specified, no hash verification will be performed. Specifying a Hash will disable the use of Glance's web-download, as web-download cannot currently deterministically verify the hash of downloaded content.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageHash"), + }, + }, + }, + Required: []string{"url"}, + }, + }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageHash"}, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_ImageFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "ImageFilter defines a Glance query", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "name": { + SchemaProps: spec.SchemaProps{ + Description: "name specifies the name of a Glance image", + Type: []string{"string"}, + Format: "", + }, + }, + "visibility": { + SchemaProps: spec.SchemaProps{ + Description: "visibility specifies the visibility of a Glance image.", + Type: []string{"string"}, + Format: "", + }, + }, + "tags": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "tags is the list of tags on the resource.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + }, + }, + }, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_ImageHash(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "algorithm": { + SchemaProps: spec.SchemaProps{ + Description: "algorithm is the hash algorithm used to generate value.", + Type: []string{"string"}, + Format: "", + }, + }, + "value": { + SchemaProps: spec.SchemaProps{ + Description: "value is the hash of the image data using Algorithm. It must be hex encoded using lowercase letters.", + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"algorithm", "value"}, + }, + }, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_ImageImport(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "ImageImport specifies an existing resource which will be imported instead of creating a new one", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "id": { + SchemaProps: spec.SchemaProps{ + Description: "id contains the unique identifier of an existing OpenStack resource. Note that when specifying an import by ID, the resource MUST already exist. The ORC object will enter an error state if the resource does not exist.", + Type: []string{"string"}, + Format: "", + }, + }, + "filter": { + SchemaProps: spec.SchemaProps{ + Description: "filter contains a resource query which is expected to return a single result. The controller will continue to retry if filter returns no results. If filter returns multiple results the controller will set an error state and will not continue to retry.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageFilter"), + }, + }, + }, + }, + }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageFilter"}, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_ImageList(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "ImageList contains a list of Image.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "kind": { + SchemaProps: spec.SchemaProps{ + Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + Type: []string{"string"}, + Format: "", + }, + }, + "apiVersion": { + SchemaProps: spec.SchemaProps{ + Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + Type: []string{"string"}, + Format: "", + }, + }, + "metadata": { + SchemaProps: spec.SchemaProps{ + Description: "metadata contains the list metadata", + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), + }, + }, + "items": { + SchemaProps: spec.SchemaProps{ + Description: "items contains a list of Image.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Image"), + }, + }, + }, + }, + }, + }, + Required: []string{"items"}, + }, + }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Image", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_ImageProperties(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "architecture": { + SchemaProps: spec.SchemaProps{ + Description: "architecture is the CPU architecture that must be supported by the hypervisor.", + Type: []string{"string"}, + Format: "", + }, + }, + "hypervisorType": { + SchemaProps: spec.SchemaProps{ + Description: "hypervisorType is the hypervisor type", + Type: []string{"string"}, + Format: "", + }, + }, + "minDiskGB": { + SchemaProps: spec.SchemaProps{ + Description: "minDiskGB is the minimum amount of disk space in GB that is required to boot the image", + Type: []string{"integer"}, + Format: "int32", + }, + }, + "minMemoryMB": { + SchemaProps: spec.SchemaProps{ + Description: "minMemoryMB is the minimum amount of RAM in MB that is required to boot the image.", + Type: []string{"integer"}, + Format: "int32", + }, + }, + "hardware": { + SchemaProps: spec.SchemaProps{ + Description: "hardware is a set of properties which control the virtual hardware created by Nova.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImagePropertiesHardware"), + }, + }, + "operatingSystem": { + SchemaProps: spec.SchemaProps{ + Description: "operatingSystem is a set of properties that specify and influence the behavior of the operating system within the virtual machine.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImagePropertiesOperatingSystem"), + }, + }, + }, + }, + }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImagePropertiesHardware", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImagePropertiesOperatingSystem"}, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_ImagePropertiesHardware(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "cpuSockets": { + SchemaProps: spec.SchemaProps{ + Description: "cpuSockets is the preferred number of sockets to expose to the guest", + Type: []string{"integer"}, + Format: "int32", + }, + }, + "cpuCores": { + SchemaProps: spec.SchemaProps{ + Description: "cpuCores is the preferred number of cores to expose to the guest", + Type: []string{"integer"}, + Format: "int32", + }, + }, + "cpuThreads": { + SchemaProps: spec.SchemaProps{ + Description: "cpuThreads is the preferred number of threads to expose to the guest", + Type: []string{"integer"}, + Format: "int32", + }, + }, + "cpuPolicy": { + SchemaProps: spec.SchemaProps{ + Description: "cpuPolicy is used to pin the virtual CPUs (vCPUs) of instances to the host's physical CPU cores (pCPUs). Host aggregates should be used to separate these pinned instances from unpinned instances as the latter will not respect the resourcing requirements of the former.\n\nPermitted values are shared (the default), and dedicated.\n\nshared: The guest vCPUs will be allowed to freely float across host pCPUs, albeit potentially constrained by NUMA policy.\n\ndedicated: The guest vCPUs will be strictly pinned to a set of host pCPUs. In the absence of an explicit vCPU topology request, the drivers typically expose all vCPUs as sockets with one core and one thread. When strict CPU pinning is in effect the guest CPU topology will be setup to match the topology of the CPUs to which it is pinned. This option implies an overcommit ratio of 1.0. For example, if a two vCPU guest is pinned to a single host core with two threads, then the guest will get a topology of one socket, one core, two threads.", + Type: []string{"string"}, + Format: "", + }, + }, + "cpuThreadPolicy": { + SchemaProps: spec.SchemaProps{ + Description: "cpuThreadPolicy further refines a CPUPolicy of 'dedicated' by stating how hardware CPU threads in a simultaneous multithreading-based (SMT) architecture be used. SMT-based architectures include Intel processors with Hyper-Threading technology. In these architectures, processor cores share a number of components with one or more other cores. Cores in such architectures are commonly referred to as hardware threads, while the cores that a given core share components with are known as thread siblings.\n\nPermitted values are prefer (the default), isolate, and require.\n\nprefer: The host may or may not have an SMT architecture. Where an SMT architecture is present, thread siblings are preferred.\n\nisolate: The host must not have an SMT architecture or must emulate a non-SMT architecture. If the host does not have an SMT architecture, each vCPU is placed on a different core as expected. If the host does have an SMT architecture - that is, one or more cores have thread siblings - then each vCPU is placed on a different physical core. No vCPUs from other guests are placed on the same core. All but one thread sibling on each utilized core is therefore guaranteed to be unusable.\n\nrequire: The host must have an SMT architecture. Each vCPU is allocated on thread siblings. If the host does not have an SMT architecture, then it is not used. If the host has an SMT architecture, but not enough cores with free thread siblings are available, then scheduling fails.", + Type: []string{"string"}, + Format: "", + }, + }, + "cdromBus": { + SchemaProps: spec.SchemaProps{ + Description: "cdromBus specifies the type of disk controller to attach CD-ROM devices to.", + Type: []string{"string"}, + Format: "", + }, + }, + "diskBus": { + SchemaProps: spec.SchemaProps{ + Description: "diskBus specifies the type of disk controller to attach disk devices to.", + Type: []string{"string"}, + Format: "", + }, + }, + "scsiModel": { + SchemaProps: spec.SchemaProps{ + Description: "scsiModel enables the use of VirtIO SCSI (virtio-scsi) to provide block device access for compute instances; by default, instances use VirtIO Block (virtio-blk). VirtIO SCSI is a para-virtualized SCSI controller device that provides improved scalability and performance, and supports advanced SCSI hardware.\n\nThe only permitted value is virtio-scsi.", + Type: []string{"string"}, + Format: "", + }, + }, + "vifModel": { + SchemaProps: spec.SchemaProps{ + Description: "vifModel specifies the model of virtual network interface device to use.\n\nPermitted values are e1000, e1000e, ne2k_pci, pcnet, rtl8139, virtio, and vmxnet3.", + Type: []string{"string"}, + Format: "", + }, + }, + "rngModel": { + SchemaProps: spec.SchemaProps{ + Description: "rngModel adds a random-number generator device to the image’s instances. This image property by itself does not guarantee that a hardware RNG will be used; it expresses a preference that may or may not be satisfied depending upon Nova configuration.", + Type: []string{"string"}, + Format: "", + }, + }, + "qemuGuestAgent": { + SchemaProps: spec.SchemaProps{ + Description: "qemuGuestAgent enables QEMU guest agent.", + Type: []string{"boolean"}, + Format: "", + }, + }, + }, + }, + }, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_ImagePropertiesOperatingSystem(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "distro": { + SchemaProps: spec.SchemaProps{ + Description: "distro is the common name of the operating system distribution in lowercase.", + Type: []string{"string"}, + Format: "", + }, + }, + "version": { + SchemaProps: spec.SchemaProps{ + Description: "version is the operating system version as specified by the distributor.", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_ImageResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "ImageResourceSpec contains the desired state of a Glance image", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "name": { + SchemaProps: spec.SchemaProps{ + Description: "name will be the name of the created Glance image. If not specified, the name of the Image object will be used.", + Type: []string{"string"}, + Format: "", + }, + }, + "protected": { + SchemaProps: spec.SchemaProps{ + Description: "protected specifies that the image is protected from deletion. If not specified, the default is false.", + Type: []string{"boolean"}, + Format: "", + }, + }, + "tags": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "tags is a list of tags which will be applied to the image. A tag has a maximum length of 255 characters.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "visibility": { + SchemaProps: spec.SchemaProps{ + Description: "visibility of the image", + Type: []string{"string"}, + Format: "", + }, + }, + "properties": { + SchemaProps: spec.SchemaProps{ + Description: "properties is metadata available to consumers of the image", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageProperties"), + }, + }, + "content": { + SchemaProps: spec.SchemaProps{ + Description: "content specifies how to obtain the image content.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageContent"), + }, + }, + }, + }, + }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageContent", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageProperties"}, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_ImageResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "GroupResourceSpec contains the desired state of the resource.", + Description: "ImageResourceStatus represents the observed state of a Glance image", Type: []string{"object"}, Properties: map[string]spec.Schema{ "name": { SchemaProps: spec.SchemaProps{ - Description: "name will be the name of the created resource. If not specified, the name of the ORC object will be used.", + Description: "name is a Human-readable name for the image. Might not be unique.", + Type: []string{"string"}, + Format: "", + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Description: "status is the image status as reported by Glance", + Type: []string{"string"}, + Format: "", + }, + }, + "protected": { + SchemaProps: spec.SchemaProps{ + Description: "protected specifies that the image is protected from deletion.", + Type: []string{"boolean"}, + Format: "", + }, + }, + "visibility": { + SchemaProps: spec.SchemaProps{ + Description: "visibility of the image", + Type: []string{"string"}, + Format: "", + }, + }, + "hash": { + SchemaProps: spec.SchemaProps{ + Description: "hash is the hash of the image data published by Glance. Note that this is a hash of the data stored internally by Glance, which will have been decompressed and potentially format converted depending on server-side configuration which is not visible to clients. It is expected that this hash will usually differ from the download hash.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageHash"), + }, + }, + "sizeB": { + SchemaProps: spec.SchemaProps{ + Description: "sizeB is the size of the image data, in bytes", + Type: []string{"integer"}, + Format: "int64", + }, + }, + "virtualSizeB": { + SchemaProps: spec.SchemaProps{ + Description: "virtualSizeB is the size of the disk the image data represents, in bytes", + Type: []string{"integer"}, + Format: "int64", + }, + }, + "tags": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "tags is the list of tags on the resource.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + }, + }, + }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageHash"}, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_ImageSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "ImageSpec defines the desired state of an ORC object.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "import": { + SchemaProps: spec.SchemaProps{ + Description: "import refers to an existing OpenStack resource which will be imported instead of creating a new one.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageImport"), + }, + }, + "resource": { + SchemaProps: spec.SchemaProps{ + Description: "resource specifies the desired state of the resource.\n\nresource may not be specified if the management policy is `unmanaged`.\n\nresource must be specified if the management policy is `managed`.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageResourceSpec"), + }, + }, + "managementPolicy": { + SchemaProps: spec.SchemaProps{ + Description: "managementPolicy defines how ORC will treat the object. Valid values are `managed`: ORC will create, update, and delete the resource; `unmanaged`: ORC will import an existing resource, and will not apply updates to it or delete it.", + Type: []string{"string"}, + Format: "", + }, + }, + "managedOptions": { + SchemaProps: spec.SchemaProps{ + Description: "managedOptions specifies options which may be applied to managed objects.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions"), + }, + }, + "cloudCredentialsRef": { + SchemaProps: spec.SchemaProps{ + Description: "cloudCredentialsRef points to a secret containing OpenStack credentials", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference"), + }, + }, + }, + Required: []string{"cloudCredentialsRef"}, + }, + }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageResourceSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions"}, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_ImageStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "ImageStatus defines the observed state of an ORC resource.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "conditions": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "type", + }, + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "conditions represents the observed status of the object. Known .status.conditions.type are: \"Available\", \"Progressing\"\n\nAvailable represents the availability of the OpenStack resource. If it is true then the resource is ready for use.\n\nProgressing indicates whether the controller is still attempting to reconcile the current state of the OpenStack resource to the desired state. Progressing will be False either because the desired state has been achieved, or because some terminal error prevents it from ever being achieved and the controller is no longer attempting to reconcile. If Progressing is True, an observer waiting on the resource should continue to wait.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Condition"), + }, + }, + }, + }, + }, + "id": { + SchemaProps: spec.SchemaProps{ + Description: "id is the unique identifier of the OpenStack resource.", + Type: []string{"string"}, + Format: "", + }, + }, + "resource": { + SchemaProps: spec.SchemaProps{ + Description: "resource contains the observed state of the OpenStack resource.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageResourceStatus"), + }, + }, + "downloadAttempts": { + SchemaProps: spec.SchemaProps{ + Description: "downloadAttempts is the number of times the controller has attempted to download the image contents", + Type: []string{"integer"}, + Format: "int32", + }, + }, + }, + }, + }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_ImageStatusExtra(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "downloadAttempts": { + SchemaProps: spec.SchemaProps{ + Description: "downloadAttempts is the number of times the controller has attempted to download the image contents", + Type: []string{"integer"}, + Format: "int32", + }, + }, + }, + }, + }, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_KeyPair(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "KeyPair is the Schema for an ORC resource.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "kind": { + SchemaProps: spec.SchemaProps{ + Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", Type: []string{"string"}, Format: "", }, }, - "description": { + "apiVersion": { SchemaProps: spec.SchemaProps{ - Description: "description is a human-readable description for the resource.", + Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", Type: []string{"string"}, Format: "", }, }, - "domainRef": { + "metadata": { SchemaProps: spec.SchemaProps{ - Description: "domainRef is a reference to the ORC Domain which this resource is associated with.", - Type: []string{"string"}, - Format: "", + Description: "metadata contains the object metadata", + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), + }, + }, + "spec": { + SchemaProps: spec.SchemaProps{ + Description: "spec specifies the desired state of the resource.", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairSpec"), + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Description: "status defines the observed state of the resource.", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairStatus"), }, }, }, + Required: []string{"spec"}, }, }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_GroupResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_KeyPairFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "GroupResourceStatus represents the observed state of the resource.", + Description: "KeyPairFilter defines an existing resource by its properties", Type: []string{"object"}, Properties: map[string]spec.Schema{ "name": { SchemaProps: spec.SchemaProps{ - Description: "name is a Human-readable name for the resource. Might not be unique.", + Description: "name of the existing Keypair", Type: []string{"string"}, Format: "", }, }, - "description": { + }, + }, + }, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_KeyPairImport(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "KeyPairImport specifies an existing resource which will be imported instead of creating a new one", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "id": { SchemaProps: spec.SchemaProps{ - Description: "description is a human-readable description for the resource.", + Description: "id contains the name of an existing resource. Note: This resource uses the resource name as the unique identifier, not a UUID. When specifying an import by ID, the resource MUST already exist. The ORC object will enter an error state if the resource does not exist.", Type: []string{"string"}, Format: "", }, }, - "domainID": { + "filter": { SchemaProps: spec.SchemaProps{ - Description: "domainID is the ID of the Domain to which the resource is associated.", - Type: []string{"string"}, - Format: "", + Description: "filter contains a resource query which is expected to return a single result. The controller will continue to retry if filter returns no results. If filter returns multiple results the controller will set an error state and will not continue to retry.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairFilter"), }, }, }, }, }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairFilter"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_GroupSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_KeyPairList(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "GroupSpec defines the desired state of an ORC object.", + Description: "KeyPairList contains a list of KeyPair.", Type: []string{"object"}, Properties: map[string]spec.Schema{ - "import": { - SchemaProps: spec.SchemaProps{ - Description: "import refers to an existing OpenStack resource which will be imported instead of creating a new one.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupImport"), - }, - }, - "resource": { + "kind": { SchemaProps: spec.SchemaProps{ - Description: "resource specifies the desired state of the resource.\n\nresource may not be specified if the management policy is `unmanaged`.\n\nresource must be specified if the management policy is `managed`.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupResourceSpec"), + Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + Type: []string{"string"}, + Format: "", }, }, - "managementPolicy": { + "apiVersion": { SchemaProps: spec.SchemaProps{ - Description: "managementPolicy defines how ORC will treat the object. Valid values are `managed`: ORC will create, update, and delete the resource; `unmanaged`: ORC will import an existing resource, and will not apply updates to it or delete it.", + Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", Type: []string{"string"}, Format: "", }, }, - "managedOptions": { + "metadata": { SchemaProps: spec.SchemaProps{ - Description: "managedOptions specifies options which may be applied to managed objects.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions"), + Description: "metadata contains the list metadata", + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), }, }, - "cloudCredentialsRef": { + "items": { SchemaProps: spec.SchemaProps{ - Description: "cloudCredentialsRef points to a secret containing OpenStack credentials", - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference"), + Description: "items contains a list of KeyPair.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPair"), + }, + }, + }, }, }, }, - Required: []string{"cloudCredentialsRef"}, + Required: []string{"items"}, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupResourceSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPair", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_GroupStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_KeyPairResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "GroupStatus defines the observed state of an ORC resource.", + Description: "KeyPairResourceSpec contains the desired state of the resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ - "conditions": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-map-keys": []interface{}{ - "type", - }, - "x-kubernetes-list-type": "map", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge", - }, - }, + "name": { SchemaProps: spec.SchemaProps{ - Description: "conditions represents the observed status of the object. Known .status.conditions.type are: \"Available\", \"Progressing\"\n\nAvailable represents the availability of the OpenStack resource. If it is true then the resource is ready for use.\n\nProgressing indicates whether the controller is still attempting to reconcile the current state of the OpenStack resource to the desired state. Progressing will be False either because the desired state has been achieved, or because some terminal error prevents it from ever being achieved and the controller is no longer attempting to reconcile. If Progressing is True, an observer waiting on the resource should continue to wait.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Condition"), - }, - }, - }, + Description: "name will be the name of the created resource. If not specified, the name of the ORC object will be used.", + Type: []string{"string"}, + Format: "", }, }, - "id": { + "type": { SchemaProps: spec.SchemaProps{ - Description: "id is the unique identifier of the OpenStack resource.", + Description: "type specifies the type of the Keypair. Allowed values are ssh or x509. If not specified, defaults to ssh.", Type: []string{"string"}, Format: "", }, }, - "resource": { + "publicKey": { SchemaProps: spec.SchemaProps{ - Description: "resource contains the observed state of the OpenStack resource.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupResourceStatus"), + Description: "publicKey is the public key to import.", + Type: []string{"string"}, + Format: "", }, }, }, + Required: []string{"publicKey"}, }, }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.GroupResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_HostID(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_KeyPairResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "HostID specifies how to determine the host ID for port binding. Exactly one of the fields must be set.", + Description: "KeyPairResourceStatus represents the observed state of the resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ - "id": { + "name": { SchemaProps: spec.SchemaProps{ - Description: "id is the literal host ID string to use for binding:host_id. This is mutually exclusive with serverRef.", + Description: "name is a Human-readable name for the resource. Might not be unique.", Type: []string{"string"}, Format: "", }, }, - "serverRef": { + "fingerprint": { SchemaProps: spec.SchemaProps{ - Description: "serverRef is a reference to an ORC Server resource from which to retrieve the hostID for port binding. The hostID will be read from the Server's status.resource.hostID field. This is mutually exclusive with id.", + Description: "fingerprint is the fingerprint of the public key", Type: []string{"string"}, Format: "", }, }, - }, - }, - }, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_HostRoute(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "destination": { + "publicKey": { SchemaProps: spec.SchemaProps{ - Description: "destination for the additional route.", + Description: "publicKey is the public key of the Keypair", Type: []string{"string"}, Format: "", }, }, - "nextHop": { + "type": { SchemaProps: spec.SchemaProps{ - Description: "nextHop for the additional route.", + Description: "type is the type of the Keypair (ssh or x509)", Type: []string{"string"}, Format: "", }, }, }, - Required: []string{"destination", "nextHop"}, }, }, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_HostRouteStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_KeyPairSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, + Description: "KeyPairSpec defines the desired state of an ORC object.", + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "destination": { + "import": { SchemaProps: spec.SchemaProps{ - Description: "destination for the additional route.", - Type: []string{"string"}, - Format: "", + Description: "import refers to an existing OpenStack resource which will be imported instead of creating a new one.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairImport"), }, }, - "nextHop": { + "resource": { SchemaProps: spec.SchemaProps{ - Description: "nextHop for the additional route.", + Description: "resource specifies the desired state of the resource.\n\nresource may not be specified if the management policy is `unmanaged`.\n\nresource must be specified if the management policy is `managed`.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairResourceSpec"), + }, + }, + "managementPolicy": { + SchemaProps: spec.SchemaProps{ + Description: "managementPolicy defines how ORC will treat the object. Valid values are `managed`: ORC will create, update, and delete the resource; `unmanaged`: ORC will import an existing resource, and will not apply updates to it or delete it.", Type: []string{"string"}, Format: "", }, }, + "managedOptions": { + SchemaProps: spec.SchemaProps{ + Description: "managedOptions specifies options which may be applied to managed objects.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions"), + }, + }, + "cloudCredentialsRef": { + SchemaProps: spec.SchemaProps{ + Description: "cloudCredentialsRef points to a secret containing OpenStack credentials", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference"), + }, + }, }, + Required: []string{"cloudCredentialsRef"}, }, }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairResourceSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_IPv6Options(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_KeyPairStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, + Description: "KeyPairStatus defines the observed state of an ORC resource.", + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "addressMode": { + "conditions": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "type", + }, + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge", + }, + }, SchemaProps: spec.SchemaProps{ - Description: "addressMode specifies mechanisms for assigning IPv6 IP addresses.", + Description: "conditions represents the observed status of the object. Known .status.conditions.type are: \"Available\", \"Progressing\"\n\nAvailable represents the availability of the OpenStack resource. If it is true then the resource is ready for use.\n\nProgressing indicates whether the controller is still attempting to reconcile the current state of the OpenStack resource to the desired state. Progressing will be False either because the desired state has been achieved, or because some terminal error prevents it from ever being achieved and the controller is no longer attempting to reconcile. If Progressing is True, an observer waiting on the resource should continue to wait.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Condition"), + }, + }, + }, + }, + }, + "id": { + SchemaProps: spec.SchemaProps{ + Description: "id is the unique identifier of the OpenStack resource.", Type: []string{"string"}, Format: "", }, }, - "raMode": { + "resource": { SchemaProps: spec.SchemaProps{ - Description: "raMode specifies the IPv6 router advertisement mode. It specifies whether the networking service should transmit ICMPv6 packets.", - Type: []string{"string"}, - Format: "", + Description: "resource contains the observed state of the OpenStack resource.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairResourceStatus"), }, }, }, }, }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_Image(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_LoadBalancer(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "Image is the Schema for an ORC resource.", + Description: "LoadBalancer is the Schema for an ORC resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "kind": { @@ -3171,14 +5272,14 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_Image(ref common.Refer SchemaProps: spec.SchemaProps{ Description: "spec specifies the desired state of the resource.", Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageSpec"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.LoadBalancerSpec"), }, }, "status": { SchemaProps: spec.SchemaProps{ Description: "status defines the observed state of the resource.", Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageStatus"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.LoadBalancerStatus"), }, }, }, @@ -3186,98 +5287,76 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_Image(ref common.Refer }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.LoadBalancerSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.LoadBalancerStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ImageContent(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_LoadBalancerFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, + Description: "LoadBalancerFilter defines an existing resource by its properties", + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "containerFormat": { + "name": { SchemaProps: spec.SchemaProps{ - Description: "containerFormat is the format of the image container. qcow2 and raw images do not usually have a container. This is specified as \"bare\", which is also the default. Permitted values are ami, ari, aki, bare, compressed, ovf, ova, and docker.", + Description: "name of the existing resource", Type: []string{"string"}, Format: "", }, }, - "diskFormat": { + "description": { SchemaProps: spec.SchemaProps{ - Description: "diskFormat is the format of the disk image. Normal values are \"qcow2\", or \"raw\". Glance may be configured to support others.", + Description: "description of the existing resource", Type: []string{"string"}, Format: "", }, }, - "download": { + "projectRef": { SchemaProps: spec.SchemaProps{ - Description: "download describes how to obtain image data by downloading it from a URL. Must be set when creating a managed image.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageContentSourceDownload"), + Description: "projectRef is a reference to the ORC Project this resource is associated with. Typically, only used by admin.", + Type: []string{"string"}, + Format: "", }, }, - }, - Required: []string{"diskFormat", "download"}, - }, - }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageContentSourceDownload"}, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_ImageContentSourceDownload(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "url": { + "vipSubnetRef": { SchemaProps: spec.SchemaProps{ - Description: "url containing image data", - Default: "", + Description: "vipSubnetRef filters by the subnet on which the load balancer's address is allocated.", Type: []string{"string"}, Format: "", }, }, - "decompress": { + "vipNetworkRef": { SchemaProps: spec.SchemaProps{ - Description: "decompress specifies that the source data must be decompressed with the given compression algorithm before being stored. Specifying Decompress will disable the use of Glance's web-download, as web-download cannot currently deterministically decompress downloaded content.", + Description: "vipNetworkRef filters by the network on which the load balancer's address is allocated.", Type: []string{"string"}, Format: "", }, }, - "hash": { + "vipPortRef": { SchemaProps: spec.SchemaProps{ - Description: "hash is a hash which will be used to verify downloaded data, i.e. before any decompression. If not specified, no hash verification will be performed. Specifying a Hash will disable the use of Glance's web-download, as web-download cannot currently deterministically verify the hash of downloaded content.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageHash"), + Description: "vipPortRef filters by the neutron port used for the VIP.", + Type: []string{"string"}, + Format: "", }, }, - }, - Required: []string{"url"}, - }, - }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageHash"}, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_ImageFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ImageFilter defines a Glance query", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { + "availabilityZone": { SchemaProps: spec.SchemaProps{ - Description: "name specifies the name of a Glance image", + Description: "availabilityZone is the availability zone in which to create the load balancer.", Type: []string{"string"}, Format: "", }, }, - "visibility": { + "provider": { SchemaProps: spec.SchemaProps{ - Description: "visibility specifies the visibility of a Glance image.", + Description: "provider filters by the name of the load balancer provider.", + Type: []string{"string"}, + Format: "", + }, + }, + "vipAddress": { + SchemaProps: spec.SchemaProps{ + Description: "vipAddress filters by the IP address of the load balancer's VIP.", Type: []string{"string"}, Format: "", }, @@ -3289,7 +5368,7 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_ImageFilter(ref common }, }, SchemaProps: spec.SchemaProps{ - Description: "tags is the list of tags on the resource.", + Description: "tags is a list of tags to filter by. If specified, the resource must have all of the tags specified to be included in the result.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ @@ -3302,305 +5381,232 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_ImageFilter(ref common }, }, }, - }, - }, - }, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_ImageHash(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "algorithm": { - SchemaProps: spec.SchemaProps{ - Description: "algorithm is the hash algorithm used to generate value.", - Type: []string{"string"}, - Format: "", - }, - }, - "value": { - SchemaProps: spec.SchemaProps{ - Description: "value is the hash of the image data using Algorithm. It must be hex encoded using lowercase letters.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"algorithm", "value"}, - }, - }, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_ImageImport(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ImageImport specifies an existing resource which will be imported instead of creating a new one", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "id": { - SchemaProps: spec.SchemaProps{ - Description: "id contains the unique identifier of an existing OpenStack resource. Note that when specifying an import by ID, the resource MUST already exist. The ORC object will enter an error state if the resource does not exist.", - Type: []string{"string"}, - Format: "", + "tagsAny": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, }, - }, - "filter": { SchemaProps: spec.SchemaProps{ - Description: "filter contains a resource query which is expected to return a single result. The controller will continue to retry if filter returns no results. If filter returns multiple results the controller will set an error state and will not continue to retry.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageFilter"), + Description: "tagsAny is a list of tags to filter by. If specified, the resource must have at least one of the tags specified to be included in the result.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, }, }, - }, - }, - }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageFilter"}, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_ImageList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ImageList contains a list of Image.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", + "notTags": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, }, - }, - "apiVersion": { SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", + Description: "notTags is a list of tags to filter by. If specified, resources which contain all of the given tags will be excluded from the result.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, }, }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "metadata contains the list metadata", - Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), + "notTagsAny": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, }, - }, - "items": { SchemaProps: spec.SchemaProps{ - Description: "items contains a list of Image.", + Description: "notTagsAny is a list of tags to filter by. If specified, resources which contain any of the given tags will be excluded from the result.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Image"), + Default: "", + Type: []string{"string"}, + Format: "", }, }, }, }, }, }, - Required: []string{"items"}, }, }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Image", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ImageProperties(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_LoadBalancerImport(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, + Description: "LoadBalancerImport specifies an existing resource which will be imported instead of creating a new one", + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "architecture": { - SchemaProps: spec.SchemaProps{ - Description: "architecture is the CPU architecture that must be supported by the hypervisor.", - Type: []string{"string"}, - Format: "", - }, - }, - "hypervisorType": { - SchemaProps: spec.SchemaProps{ - Description: "hypervisorType is the hypervisor type", - Type: []string{"string"}, - Format: "", - }, - }, - "minDiskGB": { - SchemaProps: spec.SchemaProps{ - Description: "minDiskGB is the minimum amount of disk space in GB that is required to boot the image", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "minMemoryMB": { - SchemaProps: spec.SchemaProps{ - Description: "minMemoryMB is the minimum amount of RAM in MB that is required to boot the image.", - Type: []string{"integer"}, - Format: "int32", - }, - }, - "hardware": { + "id": { SchemaProps: spec.SchemaProps{ - Description: "hardware is a set of properties which control the virtual hardware created by Nova.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImagePropertiesHardware"), + Description: "id contains the unique identifier of an existing OpenStack resource. Note that when specifying an import by ID, the resource MUST already exist. The ORC object will enter an error state if the resource does not exist.", + Type: []string{"string"}, + Format: "", }, }, - "operatingSystem": { + "filter": { SchemaProps: spec.SchemaProps{ - Description: "operatingSystem is a set of properties that specify and influence the behavior of the operating system within the virtual machine.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImagePropertiesOperatingSystem"), + Description: "filter contains a resource query which is expected to return a single result. The controller will continue to retry if filter returns no results. If filter returns multiple results the controller will set an error state and will not continue to retry.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.LoadBalancerFilter"), }, }, }, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImagePropertiesHardware", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImagePropertiesOperatingSystem"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.LoadBalancerFilter"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ImagePropertiesHardware(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_LoadBalancerList(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, + Description: "LoadBalancerList contains a list of LoadBalancer.", + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "cpuSockets": { + "kind": { SchemaProps: spec.SchemaProps{ - Description: "cpuSockets is the preferred number of sockets to expose to the guest", - Type: []string{"integer"}, - Format: "int32", + Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + Type: []string{"string"}, + Format: "", }, }, - "cpuCores": { + "apiVersion": { SchemaProps: spec.SchemaProps{ - Description: "cpuCores is the preferred number of cores to expose to the guest", - Type: []string{"integer"}, - Format: "int32", + Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + Type: []string{"string"}, + Format: "", }, }, - "cpuThreads": { + "metadata": { SchemaProps: spec.SchemaProps{ - Description: "cpuThreads is the preferred number of threads to expose to the guest", - Type: []string{"integer"}, - Format: "int32", + Description: "metadata contains the list metadata", + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), }, }, - "cpuPolicy": { + "items": { SchemaProps: spec.SchemaProps{ - Description: "cpuPolicy is used to pin the virtual CPUs (vCPUs) of instances to the host's physical CPU cores (pCPUs). Host aggregates should be used to separate these pinned instances from unpinned instances as the latter will not respect the resourcing requirements of the former.\n\nPermitted values are shared (the default), and dedicated.\n\nshared: The guest vCPUs will be allowed to freely float across host pCPUs, albeit potentially constrained by NUMA policy.\n\ndedicated: The guest vCPUs will be strictly pinned to a set of host pCPUs. In the absence of an explicit vCPU topology request, the drivers typically expose all vCPUs as sockets with one core and one thread. When strict CPU pinning is in effect the guest CPU topology will be setup to match the topology of the CPUs to which it is pinned. This option implies an overcommit ratio of 1.0. For example, if a two vCPU guest is pinned to a single host core with two threads, then the guest will get a topology of one socket, one core, two threads.", - Type: []string{"string"}, - Format: "", + Description: "items contains a list of LoadBalancer.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.LoadBalancer"), + }, + }, + }, }, }, - "cpuThreadPolicy": { + }, + Required: []string{"items"}, + }, + }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.LoadBalancer", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_LoadBalancerResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "LoadBalancerResourceSpec contains the desired state of the resource.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "name": { SchemaProps: spec.SchemaProps{ - Description: "cpuThreadPolicy further refines a CPUPolicy of 'dedicated' by stating how hardware CPU threads in a simultaneous multithreading-based (SMT) architecture be used. SMT-based architectures include Intel processors with Hyper-Threading technology. In these architectures, processor cores share a number of components with one or more other cores. Cores in such architectures are commonly referred to as hardware threads, while the cores that a given core share components with are known as thread siblings.\n\nPermitted values are prefer (the default), isolate, and require.\n\nprefer: The host may or may not have an SMT architecture. Where an SMT architecture is present, thread siblings are preferred.\n\nisolate: The host must not have an SMT architecture or must emulate a non-SMT architecture. If the host does not have an SMT architecture, each vCPU is placed on a different core as expected. If the host does have an SMT architecture - that is, one or more cores have thread siblings - then each vCPU is placed on a different physical core. No vCPUs from other guests are placed on the same core. All but one thread sibling on each utilized core is therefore guaranteed to be unusable.\n\nrequire: The host must have an SMT architecture. Each vCPU is allocated on thread siblings. If the host does not have an SMT architecture, then it is not used. If the host has an SMT architecture, but not enough cores with free thread siblings are available, then scheduling fails.", + Description: "name will be the name of the created resource. If not specified, the name of the ORC object will be used.", Type: []string{"string"}, Format: "", }, }, - "cdromBus": { + "description": { SchemaProps: spec.SchemaProps{ - Description: "cdromBus specifies the type of disk controller to attach CD-ROM devices to.", + Description: "description is a human-readable description for the resource.", Type: []string{"string"}, Format: "", }, }, - "diskBus": { + "vipSubnetRef": { SchemaProps: spec.SchemaProps{ - Description: "diskBus specifies the type of disk controller to attach disk devices to.", + Description: "vipSubnetRef is the subnet on which to allocate the load balancer's address.", Type: []string{"string"}, Format: "", }, }, - "scsiModel": { + "vipNetworkRef": { SchemaProps: spec.SchemaProps{ - Description: "scsiModel enables the use of VirtIO SCSI (virtio-scsi) to provide block device access for compute instances; by default, instances use VirtIO Block (virtio-blk). VirtIO SCSI is a para-virtualized SCSI controller device that provides improved scalability and performance, and supports advanced SCSI hardware.\n\nThe only permitted value is virtio-scsi.", + Description: "vipNetworkRef is the network on which to allocate the load balancer's address.", Type: []string{"string"}, Format: "", }, }, - "vifModel": { + "vipPortRef": { SchemaProps: spec.SchemaProps{ - Description: "vifModel specifies the model of virtual network interface device to use.\n\nPermitted values are e1000, e1000e, ne2k_pci, pcnet, rtl8139, virtio, and vmxnet3.", + Description: "vipPortRef is a reference to a neutron port to use for the VIP. If the port has more than one subnet you must specify either vipSubnetRef or vipAddress to clarify which address should be used for the VIP.", Type: []string{"string"}, Format: "", }, }, - "rngModel": { + "flavorRef": { SchemaProps: spec.SchemaProps{ - Description: "rngModel adds a random-number generator device to the image’s instances. This image property by itself does not guarantee that a hardware RNG will be used; it expresses a preference that may or may not be satisfied depending upon Nova configuration.", + Description: "flavorRef is a reference to the ORC Compute Flavor which this resource is associated with.", Type: []string{"string"}, Format: "", }, }, - "qemuGuestAgent": { + "projectRef": { SchemaProps: spec.SchemaProps{ - Description: "qemuGuestAgent enables QEMU guest agent.", - Type: []string{"boolean"}, + Description: "projectRef is a reference to the ORC Project which this resource is associated with.", + Type: []string{"string"}, Format: "", }, }, - }, - }, - }, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_ImagePropertiesOperatingSystem(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "distro": { + "adminStateUp": { SchemaProps: spec.SchemaProps{ - Description: "distro is the common name of the operating system distribution in lowercase.", - Type: []string{"string"}, + Description: "adminStateUp is the administrative state of the load balancer, which is up (true) or down (false)", + Type: []string{"boolean"}, Format: "", }, }, - "version": { + "availabilityZone": { SchemaProps: spec.SchemaProps{ - Description: "version is the operating system version as specified by the distributor.", + Description: "availabilityZone is the availability zone in which to create the load balancer.", Type: []string{"string"}, Format: "", }, }, - }, - }, - }, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_ImageResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ImageResourceSpec contains the desired state of a Glance image", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { + "provider": { SchemaProps: spec.SchemaProps{ - Description: "name will be the name of the created Glance image. If not specified, the name of the Image object will be used.", + Description: "provider is the name of the load balancer provider.", Type: []string{"string"}, Format: "", }, }, - "protected": { + "vipAddress": { SchemaProps: spec.SchemaProps{ - Description: "protected specifies that the image is protected from deletion. If not specified, the default is false.", - Type: []string{"boolean"}, + Description: "vipAddress is the specific IP address to use for the VIP (optional). If not specified, one is allocated automatically from the subnet.", + Type: []string{"string"}, Format: "", }, }, @@ -3611,7 +5617,7 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_ImageResourceSpec(ref }, }, SchemaProps: spec.SchemaProps{ - Description: "tags is a list of tags which will be applied to the image. A tag has a maximum length of 255 characters.", + Description: "tags is a list of tags which will be applied to the load balancer.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ @@ -3624,86 +5630,73 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_ImageResourceSpec(ref }, }, }, - "visibility": { - SchemaProps: spec.SchemaProps{ - Description: "visibility of the image", - Type: []string{"string"}, - Format: "", - }, - }, - "properties": { - SchemaProps: spec.SchemaProps{ - Description: "properties is metadata available to consumers of the image", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageProperties"), - }, - }, - "content": { - SchemaProps: spec.SchemaProps{ - Description: "content specifies how to obtain the image content.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageContent"), - }, - }, }, }, }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageContent", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageProperties"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ImageResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_LoadBalancerResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "ImageResourceStatus represents the observed state of a Glance image", + Description: "LoadBalancerResourceStatus represents the observed state of the resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "name": { SchemaProps: spec.SchemaProps{ - Description: "name is a Human-readable name for the image. Might not be unique.", + Description: "name is a Human-readable name for the resource. Might not be unique.", Type: []string{"string"}, Format: "", }, }, - "status": { + "description": { SchemaProps: spec.SchemaProps{ - Description: "status is the image status as reported by Glance", + Description: "description is a human-readable description for the resource.", Type: []string{"string"}, Format: "", }, }, - "protected": { + "vipSubnetID": { SchemaProps: spec.SchemaProps{ - Description: "protected specifies that the image is protected from deletion.", - Type: []string{"boolean"}, + Description: "vipSubnetID is the ID of the Subnet to which the resource is associated.", + Type: []string{"string"}, Format: "", }, }, - "visibility": { + "vipNetworkID": { SchemaProps: spec.SchemaProps{ - Description: "visibility of the image", + Description: "vipNetworkID is the ID of the Network to which the resource is associated.", Type: []string{"string"}, Format: "", }, }, - "hash": { + "vipPortID": { SchemaProps: spec.SchemaProps{ - Description: "hash is the hash of the image data published by Glance. Note that this is a hash of the data stored internally by Glance, which will have been decompressed and potentially format converted depending on server-side configuration which is not visible to clients. It is expected that this hash will usually differ from the download hash.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageHash"), + Description: "vipPortID is the ID of the Port to which the resource is associated.", + Type: []string{"string"}, + Format: "", }, }, - "sizeB": { + "flavorID": { SchemaProps: spec.SchemaProps{ - Description: "sizeB is the size of the image data, in bytes", - Type: []string{"integer"}, - Format: "int64", + Description: "flavorID is the ID of the Compute Flavor to which the resource is associated.", + Type: []string{"string"}, + Format: "", }, }, - "virtualSizeB": { + "projectID": { SchemaProps: spec.SchemaProps{ - Description: "virtualSizeB is the size of the disk the image data represents, in bytes", - Type: []string{"integer"}, - Format: "int64", + Description: "projectID is the ID of the Project to which the resource is associated.", + Type: []string{"string"}, + Format: "", + }, + }, + "adminStateUp": { + SchemaProps: spec.SchemaProps{ + Description: "adminStateUp is the administrative state of the load balancer, which is up (true) or down (false).", + Type: []string{"boolean"}, + Format: "", }, }, "tags": { @@ -3726,31 +5719,64 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_ImageResourceStatus(re }, }, }, + "availabilityZone": { + SchemaProps: spec.SchemaProps{ + Description: "availabilityZone is the availability zone where the load balancer is located.", + Type: []string{"string"}, + Format: "", + }, + }, + "provisioningStatus": { + SchemaProps: spec.SchemaProps{ + Description: "provisioningStatus is the provisioning status of the load balancer. This value is ACTIVE, PENDING_CREATE or ERROR.", + Type: []string{"string"}, + Format: "", + }, + }, + "operatingStatus": { + SchemaProps: spec.SchemaProps{ + Description: "operatingStatus is the operating status of the load balancer, such as ONLINE or OFFLINE.", + Type: []string{"string"}, + Format: "", + }, + }, + "provider": { + SchemaProps: spec.SchemaProps{ + Description: "provider is the name of the load balancer provider.", + Type: []string{"string"}, + Format: "", + }, + }, + "vipAddress": { + SchemaProps: spec.SchemaProps{ + Description: "vipAddress is the IP address of the load balancer's VIP.", + Type: []string{"string"}, + Format: "", + }, + }, }, }, }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageHash"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ImageSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_LoadBalancerSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "ImageSpec defines the desired state of an ORC object.", + Description: "LoadBalancerSpec defines the desired state of an ORC object.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "import": { SchemaProps: spec.SchemaProps{ Description: "import refers to an existing OpenStack resource which will be imported instead of creating a new one.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageImport"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.LoadBalancerImport"), }, }, "resource": { SchemaProps: spec.SchemaProps{ Description: "resource specifies the desired state of the resource.\n\nresource may not be specified if the management policy is `unmanaged`.\n\nresource must be specified if the management policy is `managed`.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageResourceSpec"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.LoadBalancerResourceSpec"), }, }, "managementPolicy": { @@ -3778,15 +5804,15 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_ImageSpec(ref common.R }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageResourceSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.LoadBalancerImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.LoadBalancerResourceSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ImageStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_LoadBalancerStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "ImageStatus defines the observed state of an ORC resource.", + Description: "LoadBalancerStatus defines the observed state of an ORC resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "conditions": { @@ -3823,35 +5849,28 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_ImageStatus(ref common "resource": { SchemaProps: spec.SchemaProps{ Description: "resource contains the observed state of the OpenStack resource.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageResourceStatus"), - }, - }, - "downloadAttempts": { - SchemaProps: spec.SchemaProps{ - Description: "downloadAttempts is the number of times the controller has attempted to download the image contents", - Type: []string{"integer"}, - Format: "int32", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.LoadBalancerResourceStatus"), }, }, }, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ImageResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.LoadBalancerResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ImageStatusExtra(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ManagedOptions(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ Type: []string{"object"}, Properties: map[string]spec.Schema{ - "downloadAttempts": { + "onDelete": { SchemaProps: spec.SchemaProps{ - Description: "downloadAttempts is the number of times the controller has attempted to download the image contents", - Type: []string{"integer"}, - Format: "int32", + Description: "onDelete specifies the behaviour of the controller when the ORC object is deleted. Options are `delete` - delete the OpenStack resource; `detach` - do not delete the OpenStack resource. If not specified, the default is `delete`.", + Type: []string{"string"}, + Format: "", }, }, }, @@ -3860,11 +5879,11 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_ImageStatusExtra(ref c } } -func schema_openstack_resource_controller_v2_api_v1alpha1_KeyPair(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_Network(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "KeyPair is the Schema for an ORC resource.", + Description: "Network is the Schema for an ORC resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "kind": { @@ -3892,14 +5911,14 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_KeyPair(ref common.Ref SchemaProps: spec.SchemaProps{ Description: "spec specifies the desired state of the resource.", Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairSpec"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkSpec"), }, }, "status": { SchemaProps: spec.SchemaProps{ Description: "status defines the observed state of the resource.", Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairStatus"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkStatus"), }, }, }, @@ -3907,40 +5926,141 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_KeyPair(ref common.Ref }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_KeyPairFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_NetworkFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "KeyPairFilter defines an existing resource by its properties", + Description: "NetworkFilter defines an existing resource by its properties", Type: []string{"object"}, Properties: map[string]spec.Schema{ "name": { SchemaProps: spec.SchemaProps{ - Description: "name of the existing Keypair", + Description: "name of the existing resource", + Type: []string{"string"}, + Format: "", + }, + }, + "description": { + SchemaProps: spec.SchemaProps{ + Description: "description of the existing resource", + Type: []string{"string"}, + Format: "", + }, + }, + "external": { + SchemaProps: spec.SchemaProps{ + Description: "external indicates whether the network has an external routing facility that’s not managed by the networking service.", + Type: []string{"boolean"}, + Format: "", + }, + }, + "projectRef": { + SchemaProps: spec.SchemaProps{ + Description: "projectRef is a reference to the ORC Project this resource is associated with. Typically, only used by admin.", Type: []string{"string"}, Format: "", }, }, + "tags": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "tags is a list of tags to filter by. If specified, the resource must have all of the tags specified to be included in the result.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "tagsAny": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "tagsAny is a list of tags to filter by. If specified, the resource must have at least one of the tags specified to be included in the result.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "notTags": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "notTags is a list of tags to filter by. If specified, resources which contain all of the given tags will be excluded from the result.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "notTagsAny": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "notTagsAny is a list of tags to filter by. If specified, resources which contain any of the given tags will be excluded from the result.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, }, }, }, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_KeyPairImport(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_NetworkImport(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "KeyPairImport specifies an existing resource which will be imported instead of creating a new one", + Description: "NetworkImport specifies an existing resource which will be imported instead of creating a new one", Type: []string{"object"}, Properties: map[string]spec.Schema{ "id": { SchemaProps: spec.SchemaProps{ - Description: "id contains the name of an existing resource. Note: This resource uses the resource name as the unique identifier, not a UUID. When specifying an import by ID, the resource MUST already exist. The ORC object will enter an error state if the resource does not exist.", + Description: "id contains the unique identifier of an existing OpenStack resource. Note that when specifying an import by ID, the resource MUST already exist. The ORC object will enter an error state if the resource does not exist.", Type: []string{"string"}, Format: "", }, @@ -3948,22 +6068,22 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_KeyPairImport(ref comm "filter": { SchemaProps: spec.SchemaProps{ Description: "filter contains a resource query which is expected to return a single result. The controller will continue to retry if filter returns no results. If filter returns multiple results the controller will set an error state and will not continue to retry.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairFilter"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkFilter"), }, }, }, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairFilter"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkFilter"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_KeyPairList(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_NetworkList(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "KeyPairList contains a list of KeyPair.", + Description: "NetworkList contains a list of Network.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "kind": { @@ -3989,13 +6109,13 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_KeyPairList(ref common }, "items": { SchemaProps: spec.SchemaProps{ - Description: "items contains a list of KeyPair.", + Description: "items contains a list of Network.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPair"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Network"), }, }, }, @@ -4006,15 +6126,15 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_KeyPairList(ref common }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPair", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Network", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_KeyPairResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_NetworkResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "KeyPairResourceSpec contains the desired state of the resource.", + Description: "NetworkResourceSpec contains the desired state of a network", Type: []string{"object"}, Properties: map[string]spec.Schema{ "name": { @@ -4024,371 +6144,416 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_KeyPairResourceSpec(re Format: "", }, }, - "type": { - SchemaProps: spec.SchemaProps{ - Description: "type specifies the type of the Keypair. Allowed values are ssh or x509. If not specified, defaults to ssh.", - Type: []string{"string"}, - Format: "", - }, - }, - "publicKey": { + "description": { SchemaProps: spec.SchemaProps{ - Description: "publicKey is the public key to import.", + Description: "description is a human-readable description for the resource.", Type: []string{"string"}, Format: "", }, }, - }, - Required: []string{"publicKey"}, - }, - }, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_KeyPairResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "KeyPairResourceStatus represents the observed state of the resource.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "name is a Human-readable name for the resource. Might not be unique.", - Type: []string{"string"}, - Format: "", + "tags": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, }, - }, - "fingerprint": { SchemaProps: spec.SchemaProps{ - Description: "fingerprint is the fingerprint of the public key", - Type: []string{"string"}, - Format: "", + Description: "tags is a list of tags which will be applied to the network.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, }, }, - "publicKey": { + "adminStateUp": { SchemaProps: spec.SchemaProps{ - Description: "publicKey is the public key of the Keypair", - Type: []string{"string"}, + Description: "adminStateUp is the administrative state of the network, which is up (true) or down (false)", + Type: []string{"boolean"}, Format: "", }, }, - "type": { + "dnsDomain": { SchemaProps: spec.SchemaProps{ - Description: "type is the type of the Keypair (ssh or x509)", + Description: "dnsDomain is the DNS domain of the network", Type: []string{"string"}, Format: "", }, }, - }, - }, - }, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_KeyPairSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "KeyPairSpec defines the desired state of an ORC object.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "import": { - SchemaProps: spec.SchemaProps{ - Description: "import refers to an existing OpenStack resource which will be imported instead of creating a new one.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairImport"), - }, - }, - "resource": { + "mtu": { SchemaProps: spec.SchemaProps{ - Description: "resource specifies the desired state of the resource.\n\nresource may not be specified if the management policy is `unmanaged`.\n\nresource must be specified if the management policy is `managed`.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairResourceSpec"), + Description: "mtu is the the maximum transmission unit value to address fragmentation. Minimum value is 68 for IPv4, and 1280 for IPv6. Defaults to 1500.", + Type: []string{"integer"}, + Format: "int32", }, }, - "managementPolicy": { + "portSecurityEnabled": { SchemaProps: spec.SchemaProps{ - Description: "managementPolicy defines how ORC will treat the object. Valid values are `managed`: ORC will create, update, and delete the resource; `unmanaged`: ORC will import an existing resource, and will not apply updates to it or delete it.", - Type: []string{"string"}, + Description: "portSecurityEnabled is the port security status of the network. Valid values are enabled (true) and disabled (false). This value is used as the default value of port_security_enabled field of a newly created port.", + Type: []string{"boolean"}, Format: "", }, }, - "managedOptions": { - SchemaProps: spec.SchemaProps{ - Description: "managedOptions specifies options which may be applied to managed objects.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions"), - }, - }, - "cloudCredentialsRef": { - SchemaProps: spec.SchemaProps{ - Description: "cloudCredentialsRef points to a secret containing OpenStack credentials", - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference"), - }, - }, - }, - Required: []string{"cloudCredentialsRef"}, - }, - }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairResourceSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions"}, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_KeyPairStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "KeyPairStatus defines the observed state of an ORC resource.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "conditions": { + "external": { + SchemaProps: spec.SchemaProps{ + Description: "external indicates whether the network has an external routing facility that’s not managed by the networking service.", + Type: []string{"boolean"}, + Format: "", + }, + }, + "shared": { + SchemaProps: spec.SchemaProps{ + Description: "shared indicates whether this resource is shared across all projects. By default, only administrative users can change this value.", + Type: []string{"boolean"}, + Format: "", + }, + }, + "availabilityZoneHints": { VendorExtensible: spec.VendorExtensible{ Extensions: spec.Extensions{ - "x-kubernetes-list-map-keys": []interface{}{ - "type", - }, - "x-kubernetes-list-type": "map", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge", + "x-kubernetes-list-type": "set", }, }, SchemaProps: spec.SchemaProps{ - Description: "conditions represents the observed status of the object. Known .status.conditions.type are: \"Available\", \"Progressing\"\n\nAvailable represents the availability of the OpenStack resource. If it is true then the resource is ready for use.\n\nProgressing indicates whether the controller is still attempting to reconcile the current state of the OpenStack resource to the desired state. Progressing will be False either because the desired state has been achieved, or because some terminal error prevents it from ever being achieved and the controller is no longer attempting to reconcile. If Progressing is True, an observer waiting on the resource should continue to wait.", + Description: "availabilityZoneHints is the availability zone candidate for the network.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Condition"), + Default: "", + Type: []string{"string"}, + Format: "", }, }, }, }, }, - "id": { + "projectRef": { SchemaProps: spec.SchemaProps{ - Description: "id is the unique identifier of the OpenStack resource.", + Description: "projectRef is a reference to the ORC Project this resource is associated with. Typically, only used by admin.", Type: []string{"string"}, Format: "", }, }, - "resource": { - SchemaProps: spec.SchemaProps{ - Description: "resource contains the observed state of the OpenStack resource.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairResourceStatus"), - }, - }, }, }, }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.KeyPairResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_LoadBalancerFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_NetworkResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "LoadBalancerFilter defines an existing resource by its properties", + Description: "NetworkResourceStatus represents the observed state of the resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "name": { SchemaProps: spec.SchemaProps{ - Description: "name of the existing resource", + Description: "name is a Human-readable name for the network. Might not be unique.", Type: []string{"string"}, Format: "", }, }, "description": { SchemaProps: spec.SchemaProps{ - Description: "description of the existing resource", + Description: "description is a human-readable description for the resource.", Type: []string{"string"}, Format: "", }, }, - "vipNetworkRef": { + "projectID": { SchemaProps: spec.SchemaProps{ - Description: "vipNetworkRef is a reference to the ORC VipNetwork which this resource is associated with.", + Description: "projectID is the project owner of the network.", Type: []string{"string"}, Format: "", }, }, - "projectRef": { + "status": { SchemaProps: spec.SchemaProps{ - Description: "projectRef is a reference to the ORC Project which this resource is associated with.", + Description: "status indicates whether network is currently operational. Possible values include `ACTIVE', `DOWN', `BUILD', or `ERROR'. Plug-ins might define additional values.", Type: []string{"string"}, Format: "", }, }, - "vipSubnetRef": { + "tags": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, + }, SchemaProps: spec.SchemaProps{ - Description: "vipSubnetRef is a reference to the ORC VipSubnet which this resource is associated with.", - Type: []string{"string"}, - Format: "", + Description: "tags is the list of tags on the resource.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, }, }, - "vipPortRef": { + "createdAt": { SchemaProps: spec.SchemaProps{ - Description: "vipPortRef is a reference to the ORC VipPort which this resource is associated with.", - Type: []string{"string"}, - Format: "", + Description: "createdAt shows the date and time when the resource was created. The date and time stamp format is ISO 8601", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), }, }, - }, - }, - }, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_LoadBalancerResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "LoadBalancerResourceSpec contains the desired state of the resource.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { + "updatedAt": { SchemaProps: spec.SchemaProps{ - Description: "name will be the name of the created resource. If not specified, the name of the ORC object will be used.", - Type: []string{"string"}, - Format: "", + Description: "updatedAt shows the date and time when the resource was updated. The date and time stamp format is ISO 8601", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), }, }, - "description": { + "revisionNumber": { SchemaProps: spec.SchemaProps{ - Description: "description is a human-readable description for the resource.", - Type: []string{"string"}, - Format: "", + Description: "revisionNumber optionally set via extensions/standard-attr-revisions", + Type: []string{"integer"}, + Format: "int64", }, }, - "subnetRef": { + "adminStateUp": { SchemaProps: spec.SchemaProps{ - Description: "subnetRef is a reference to the ORC Subnet which this resource is associated with.", - Type: []string{"string"}, + Description: "adminStateUp is the administrative state of the network, which is up (true) or down (false).", + Type: []string{"boolean"}, Format: "", }, }, - "networkRef": { + "availabilityZoneHints": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, + }, SchemaProps: spec.SchemaProps{ - Description: "networkRef is a reference to the ORC Network which this resource is associated with.", + Description: "availabilityZoneHints is the availability zone candidate for the network.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "dnsDomain": { + SchemaProps: spec.SchemaProps{ + Description: "dnsDomain is the DNS domain of the network", Type: []string{"string"}, Format: "", }, }, - "portRef": { + "mtu": { SchemaProps: spec.SchemaProps{ - Description: "portRef is a reference to the ORC Port which this resource is associated with.", - Type: []string{"string"}, + Description: "mtu is the the maximum transmission unit value to address fragmentation. Minimum value is 68 for IPv4, and 1280 for IPv6.", + Type: []string{"integer"}, + Format: "int32", + }, + }, + "portSecurityEnabled": { + SchemaProps: spec.SchemaProps{ + Description: "portSecurityEnabled is the port security status of the network. Valid values are enabled (true) and disabled (false). This value is used as the default value of port_security_enabled field of a newly created port.", + Type: []string{"boolean"}, Format: "", }, }, - "flavorRef": { + "provider": { SchemaProps: spec.SchemaProps{ - Description: "flavorRef is a reference to the ORC Flavor which this resource is associated with.", - Type: []string{"string"}, + Description: "provider contains provider-network properties.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProviderPropertiesStatus"), + }, + }, + "external": { + SchemaProps: spec.SchemaProps{ + Description: "external defines whether the network may be used for creation of floating IPs. Only networks with this flag may be an external gateway for routers. The network must have an external routing facility that is not managed by the networking service. If the network is updated from external to internal the unused floating IPs of this network are automatically deleted when extension floatingip-autodelete-internal is present.", + Type: []string{"boolean"}, Format: "", }, }, - "projectRef": { + "shared": { SchemaProps: spec.SchemaProps{ - Description: "projectRef is a reference to the ORC Project which this resource is associated with.", - Type: []string{"string"}, + Description: "shared specifies whether the network resource can be accessed by any tenant.", + Type: []string{"boolean"}, Format: "", }, }, + "subnets": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "subnets associated with this network.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, }, }, }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProviderPropertiesStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_LoadBalancerResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_NetworkSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "LoadBalancerResourceStatus represents the observed state of the resource.", + Description: "NetworkSpec defines the desired state of an ORC object.", Type: []string{"object"}, Properties: map[string]spec.Schema{ - "name": { + "import": { SchemaProps: spec.SchemaProps{ - Description: "name is a Human-readable name for the resource. Might not be unique.", - Type: []string{"string"}, - Format: "", + Description: "import refers to an existing OpenStack resource which will be imported instead of creating a new one.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkImport"), }, }, - "description": { + "resource": { SchemaProps: spec.SchemaProps{ - Description: "description is a human-readable description for the resource.", - Type: []string{"string"}, - Format: "", + Description: "resource specifies the desired state of the resource.\n\nresource may not be specified if the management policy is `unmanaged`.\n\nresource must be specified if the management policy is `managed`.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkResourceSpec"), }, }, - "subnetID": { + "managementPolicy": { SchemaProps: spec.SchemaProps{ - Description: "subnetID is the ID of the Subnet to which the resource is associated.", + Description: "managementPolicy defines how ORC will treat the object. Valid values are `managed`: ORC will create, update, and delete the resource; `unmanaged`: ORC will import an existing resource, and will not apply updates to it or delete it.", Type: []string{"string"}, Format: "", }, }, - "networkID": { + "managedOptions": { SchemaProps: spec.SchemaProps{ - Description: "networkID is the ID of the Network to which the resource is associated.", - Type: []string{"string"}, - Format: "", + Description: "managedOptions specifies options which may be applied to managed objects.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions"), }, }, - "portID": { + "cloudCredentialsRef": { SchemaProps: spec.SchemaProps{ - Description: "portID is the ID of the Port to which the resource is associated.", - Type: []string{"string"}, - Format: "", + Description: "cloudCredentialsRef points to a secret containing OpenStack credentials", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference"), + }, + }, + }, + Required: []string{"cloudCredentialsRef"}, + }, + }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkResourceSpec"}, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_NetworkStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "NetworkStatus defines the observed state of an ORC resource.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "conditions": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "type", + }, + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "conditions represents the observed status of the object. Known .status.conditions.type are: \"Available\", \"Progressing\"\n\nAvailable represents the availability of the OpenStack resource. If it is true then the resource is ready for use.\n\nProgressing indicates whether the controller is still attempting to reconcile the current state of the OpenStack resource to the desired state. Progressing will be False either because the desired state has been achieved, or because some terminal error prevents it from ever being achieved and the controller is no longer attempting to reconcile. If Progressing is True, an observer waiting on the resource should continue to wait.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Condition"), + }, + }, + }, }, }, - "flavorID": { + "id": { SchemaProps: spec.SchemaProps{ - Description: "flavorID is the ID of the Flavor to which the resource is associated.", + Description: "id is the unique identifier of the OpenStack resource.", Type: []string{"string"}, Format: "", }, }, - "projectID": { + "resource": { SchemaProps: spec.SchemaProps{ - Description: "projectID is the ID of the Project to which the resource is associated.", - Type: []string{"string"}, - Format: "", + Description: "resource contains the observed state of the OpenStack resource.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkResourceStatus"), }, }, }, }, }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ManagedOptions(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_NeutronStatusMetadata(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ Type: []string{"object"}, Properties: map[string]spec.Schema{ - "onDelete": { + "createdAt": { SchemaProps: spec.SchemaProps{ - Description: "onDelete specifies the behaviour of the controller when the ORC object is deleted. Options are `delete` - delete the OpenStack resource; `detach` - do not delete the OpenStack resource. If not specified, the default is `delete`.", - Type: []string{"string"}, - Format: "", + Description: "createdAt shows the date and time when the resource was created. The date and time stamp format is ISO 8601", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + "updatedAt": { + SchemaProps: spec.SchemaProps{ + Description: "updatedAt shows the date and time when the resource was updated. The date and time stamp format is ISO 8601", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + "revisionNumber": { + SchemaProps: spec.SchemaProps{ + Description: "revisionNumber optionally set via extensions/standard-attr-revisions", + Type: []string{"integer"}, + Format: "int64", }, }, }, }, }, + Dependencies: []string{ + "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_Network(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_Port(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "Network is the Schema for an ORC resource.", + Description: "Port is the Schema for an ORC resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "kind": { @@ -4416,14 +6581,14 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_Network(ref common.Ref SchemaProps: spec.SchemaProps{ Description: "spec specifies the desired state of the resource.", Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkSpec"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortSpec"), }, }, "status": { SchemaProps: spec.SchemaProps{ Description: "status defines the observed state of the resource.", Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkStatus"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortStatus"), }, }, }, @@ -4431,15 +6596,15 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_Network(ref common.Ref }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_NetworkFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_PortFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "NetworkFilter defines an existing resource by its properties", + Description: "PortFilter specifies a filter to select a port. At least one parameter must be specified.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "name": { @@ -4456,10 +6621,11 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_NetworkFilter(ref comm Format: "", }, }, - "external": { + "networkRef": { SchemaProps: spec.SchemaProps{ - Description: "external indicates whether the network has an external routing facility that’s not managed by the networking service.", - Type: []string{"boolean"}, + Description: "networkRef is a reference to the ORC Network which this port is associated with.", + Default: "", + Type: []string{"string"}, Format: "", }, }, @@ -4470,6 +6636,20 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_NetworkFilter(ref comm Format: "", }, }, + "adminStateUp": { + SchemaProps: spec.SchemaProps{ + Description: "adminStateUp is the administrative state of the port, which is up (true) or down (false).", + Type: []string{"boolean"}, + Format: "", + }, + }, + "macAddress": { + SchemaProps: spec.SchemaProps{ + Description: "macAddress is the MAC address of the port.", + Type: []string{"string"}, + Format: "", + }, + }, "tags": { VendorExtensible: spec.VendorExtensible{ Extensions: spec.Extensions{ @@ -4556,11 +6736,11 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_NetworkFilter(ref comm } } -func schema_openstack_resource_controller_v2_api_v1alpha1_NetworkImport(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_PortImport(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "NetworkImport specifies an existing resource which will be imported instead of creating a new one", + Description: "PortImport specifies an existing resource which will be imported instead of creating a new one", Type: []string{"object"}, Properties: map[string]spec.Schema{ "id": { @@ -4573,22 +6753,22 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_NetworkImport(ref comm "filter": { SchemaProps: spec.SchemaProps{ Description: "filter contains a resource query which is expected to return a single result. The controller will continue to retry if filter returns no results. If filter returns multiple results the controller will set an error state and will not continue to retry.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkFilter"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortFilter"), }, }, }, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkFilter"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortFilter"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_NetworkList(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_PortList(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "NetworkList contains a list of Network.", + Description: "PortList contains a list of Port.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "kind": { @@ -4614,13 +6794,13 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_NetworkList(ref common }, "items": { SchemaProps: spec.SchemaProps{ - Description: "items contains a list of Network.", + Description: "items contains a list of Port.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Network"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Port"), }, }, }, @@ -4631,20 +6811,76 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_NetworkList(ref common }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Network", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Port", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_NetworkResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_PortRangeSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "NetworkResourceSpec contains the desired state of a network", - Type: []string{"object"}, + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "min": { + SchemaProps: spec.SchemaProps{ + Description: "min is the minimum port number in the range that is matched by the security group rule. If the protocol is TCP, UDP, DCCP, SCTP or UDP-Lite this value must be less than or equal to the port_range_max attribute value. If the protocol is ICMP, this value must be an ICMP type", + Default: 0, + Type: []string{"integer"}, + Format: "int32", + }, + }, + "max": { + SchemaProps: spec.SchemaProps{ + Description: "max is the maximum port number in the range that is matched by the security group rule. If the protocol is TCP, UDP, DCCP, SCTP or UDP-Lite this value must be greater than or equal to the port_range_min attribute value. If the protocol is ICMP, this value must be an ICMP code.", + Default: 0, + Type: []string{"integer"}, + Format: "int32", + }, + }, + }, + Required: []string{"min", "max"}, + }, + }, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_PortRangeStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "min": { + SchemaProps: spec.SchemaProps{ + Description: "min is the minimum port number in the range that is matched by the security group rule. If the protocol is TCP, UDP, DCCP, SCTP or UDP-Lite this value must be less than or equal to the port_range_max attribute value. If the protocol is ICMP, this value must be an ICMP type", + Default: 0, + Type: []string{"integer"}, + Format: "int32", + }, + }, + "max": { + SchemaProps: spec.SchemaProps{ + Description: "max is the maximum port number in the range that is matched by the security group rule. If the protocol is TCP, UDP, DCCP, SCTP or UDP-Lite this value must be greater than or equal to the port_range_min attribute value. If the protocol is ICMP, this value must be an ICMP code.", + Default: 0, + Type: []string{"integer"}, + Format: "int32", + }, + }, + }, + }, + }, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_PortResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, Properties: map[string]spec.Schema{ "name": { SchemaProps: spec.SchemaProps{ - Description: "name will be the name of the created resource. If not specified, the name of the ORC object will be used.", + Description: "name is a human-readable name of the port. If not set, the object's name will be used.", Type: []string{"string"}, Format: "", }, @@ -4656,6 +6892,13 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_NetworkResourceSpec(re Format: "", }, }, + "networkRef": { + SchemaProps: spec.SchemaProps{ + Description: "networkRef is a reference to the ORC Network which this port is associated with.", + Type: []string{"string"}, + Format: "", + }, + }, "tags": { VendorExtensible: spec.VendorExtensible{ Extensions: spec.Extensions{ @@ -4663,7 +6906,7 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_NetworkResourceSpec(re }, }, SchemaProps: spec.SchemaProps{ - Description: "tags is a list of tags which will be applied to the network.", + Description: "tags is a list of tags which will be applied to the port.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ @@ -4676,91 +6919,152 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_NetworkResourceSpec(re }, }, }, + "allowedAddressPairs": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "allowedAddressPairs are allowed addresses associated with this port.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AllowedAddressPair"), + }, + }, + }, + }, + }, + "addresses": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "addresses are the IP addresses for the port.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Address"), + }, + }, + }, + }, + }, "adminStateUp": { SchemaProps: spec.SchemaProps{ - Description: "adminStateUp is the administrative state of the network, which is up (true) or down (false)", + Description: "adminStateUp is the administrative state of the port, which is up (true) or down (false). The default value is true.", Type: []string{"boolean"}, Format: "", }, }, - "dnsDomain": { + "securityGroupRefs": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, SchemaProps: spec.SchemaProps{ - Description: "dnsDomain is the DNS domain of the network", + Description: "securityGroupRefs are references to the security groups associated with this port.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "vnicType": { + SchemaProps: spec.SchemaProps{ + Description: "vnicType specifies the type of vNIC which this port should be attached to. This is used to determine which mechanism driver(s) to be used to bind the port. The valid values are normal, macvtap, direct, baremetal, direct-physical, virtio-forwarder, smart-nic and remote-managed, although these values will not be validated in this API to ensure compatibility with future neutron changes or custom implementations. What type of vNIC is actually available depends on deployments. If not specified, the Neutron default value is used.", Type: []string{"string"}, Format: "", }, }, - "mtu": { + "portSecurity": { SchemaProps: spec.SchemaProps{ - Description: "mtu is the the maximum transmission unit value to address fragmentation. Minimum value is 68 for IPv4, and 1280 for IPv6. Defaults to 1500.", - Type: []string{"integer"}, - Format: "int32", + Description: "portSecurity controls port security for this port. When set to Enabled, port security is enabled. When set to Disabled, port security is disabled and SecurityGroupRefs must be empty. When set to Inherit (default), it takes the value from the network level.", + Type: []string{"string"}, + Format: "", }, }, - "portSecurityEnabled": { + "projectRef": { SchemaProps: spec.SchemaProps{ - Description: "portSecurityEnabled is the port security status of the network. Valid values are enabled (true) and disabled (false). This value is used as the default value of port_security_enabled field of a newly created port.", - Type: []string{"boolean"}, + Description: "projectRef is a reference to the ORC Project this resource is associated with. Typically, only used by admin.", + Type: []string{"string"}, Format: "", }, }, - "external": { + "macAddress": { SchemaProps: spec.SchemaProps{ - Description: "external indicates whether the network has an external routing facility that’s not managed by the networking service.", - Type: []string{"boolean"}, + Description: "macAddress is the MAC address of the port.", + Type: []string{"string"}, Format: "", }, }, - "shared": { + "hostID": { SchemaProps: spec.SchemaProps{ - Description: "shared indicates whether this resource is shared across all projects. By default, only administrative users can change this value.", + Description: "hostID specifies the host where the port will be bound. Note that when the port is attached to a server, OpenStack may rebind the port to the server's actual compute host, which may differ from the specified hostID if no matching scheduler hint is used. In this case the port's status will reflect the actual binding host, not the value specified here.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.HostID"), + }, + }, + "trustedVIF": { + SchemaProps: spec.SchemaProps{ + Description: "trustedVIF indicates whether the VF for the port will become trusted by physical function to perform some privileged operations. Only admin users can create ports with this field.", Type: []string{"boolean"}, Format: "", }, }, - "availabilityZoneHints": { + "valueSpecs": { VendorExtensible: spec.VendorExtensible{ Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", + "x-kubernetes-list-map-keys": []interface{}{ + "key", + }, + "x-kubernetes-list-type": "map", }, }, SchemaProps: spec.SchemaProps{ - Description: "availabilityZoneHints is the availability zone candidate for the network.", + Description: "valueSpecs 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. This was meant to work similar to the property on Heat port resource. Since this depends on the underlying implementation, we can't predict its fields, and therefore, we don't know how to reconcile them in advance. Use this field wisely and be aware of the expected behavior.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortValueSpec"), }, }, }, }, }, - "projectRef": { - SchemaProps: spec.SchemaProps{ - Description: "projectRef is a reference to the ORC Project this resource is associated with. Typically, only used by admin.", - Type: []string{"string"}, - Format: "", - }, - }, }, + Required: []string{"networkRef"}, }, }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Address", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AllowedAddressPair", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.HostID", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortValueSpec"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_NetworkResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_PortResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "NetworkResourceStatus represents the observed state of the resource.", - Type: []string{"object"}, + Type: []string{"object"}, Properties: map[string]spec.Schema{ "name": { SchemaProps: spec.SchemaProps{ - Description: "name is a Human-readable name for the network. Might not be unique.", + Description: "name is the human-readable name of the resource. Might not be unique.", Type: []string{"string"}, Format: "", }, @@ -4772,16 +7076,23 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_NetworkResourceStatus( Format: "", }, }, + "networkID": { + SchemaProps: spec.SchemaProps{ + Description: "networkID is the ID of the attached network.", + Type: []string{"string"}, + Format: "", + }, + }, "projectID": { SchemaProps: spec.SchemaProps{ - Description: "projectID is the project owner of the network.", + Description: "projectID is the project owner of the resource.", Type: []string{"string"}, Format: "", }, }, "status": { SchemaProps: spec.SchemaProps{ - Description: "status indicates whether network is currently operational. Possible values include `ACTIVE', `DOWN', `BUILD', or `ERROR'. Plug-ins might define additional values.", + Description: "status indicates the current status of the resource.", Type: []string{"string"}, Format: "", }, @@ -4806,40 +7117,80 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_NetworkResourceStatus( }, }, }, - "createdAt": { + "adminStateUp": { SchemaProps: spec.SchemaProps{ - Description: "createdAt shows the date and time when the resource was created. The date and time stamp format is ISO 8601", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + Description: "adminStateUp is the administrative state of the port, which is up (true) or down (false).", + Type: []string{"boolean"}, + Format: "", }, }, - "updatedAt": { + "macAddress": { SchemaProps: spec.SchemaProps{ - Description: "updatedAt shows the date and time when the resource was updated. The date and time stamp format is ISO 8601", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + Description: "macAddress is the MAC address of the port.", + Type: []string{"string"}, + Format: "", }, }, - "revisionNumber": { + "deviceID": { SchemaProps: spec.SchemaProps{ - Description: "revisionNumber optionally set via extensions/standard-attr-revisions", - Type: []string{"integer"}, - Format: "int64", + Description: "deviceID is the ID of the device that uses this port.", + Type: []string{"string"}, + Format: "", }, }, - "adminStateUp": { + "deviceOwner": { SchemaProps: spec.SchemaProps{ - Description: "adminStateUp is the administrative state of the network, which is up (true) or down (false).", - Type: []string{"boolean"}, + Description: "deviceOwner is the entity type that uses this port.", + Type: []string{"string"}, Format: "", }, }, - "availabilityZoneHints": { + "allowedAddressPairs": { VendorExtensible: spec.VendorExtensible{ Extensions: spec.Extensions{ "x-kubernetes-list-type": "atomic", }, }, SchemaProps: spec.SchemaProps{ - Description: "availabilityZoneHints is the availability zone candidate for the network.", + Description: "allowedAddressPairs is a set of zero or more allowed address pair objects each where address pair object contains an IP address and MAC address.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AllowedAddressPairStatus"), + }, + }, + }, + }, + }, + "fixedIPs": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "fixedIPs is a set of zero or more fixed IP objects each where fixed IP object contains an IP address and subnet ID from which the IP address is assigned.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FixedIPStatus"), + }, + }, + }, + }, + }, + "securityGroups": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "securityGroups contains the IDs of security groups applied to the port.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ @@ -4852,92 +7203,85 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_NetworkResourceStatus( }, }, }, - "dnsDomain": { + "propagateUplinkStatus": { SchemaProps: spec.SchemaProps{ - Description: "dnsDomain is the DNS domain of the network", - Type: []string{"string"}, + Description: "propagateUplinkStatus represents the uplink status propagation of the port.", + Type: []string{"boolean"}, Format: "", }, }, - "mtu": { + "vnicType": { SchemaProps: spec.SchemaProps{ - Description: "mtu is the the maximum transmission unit value to address fragmentation. Minimum value is 68 for IPv4, and 1280 for IPv6.", - Type: []string{"integer"}, - Format: "int32", + Description: "vnicType is the type of vNIC which this port is attached to.", + Type: []string{"string"}, + Format: "", }, }, "portSecurityEnabled": { SchemaProps: spec.SchemaProps{ - Description: "portSecurityEnabled is the port security status of the network. Valid values are enabled (true) and disabled (false). This value is used as the default value of port_security_enabled field of a newly created port.", + Description: "portSecurityEnabled indicates whether port security is enabled or not.", Type: []string{"boolean"}, Format: "", }, }, - "provider": { + "hostID": { SchemaProps: spec.SchemaProps{ - Description: "provider contains provider-network properties.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProviderPropertiesStatus"), + Description: "hostID is the ID of host where the port resides.", + Type: []string{"string"}, + Format: "", }, }, - "external": { + "trustedVIF": { SchemaProps: spec.SchemaProps{ - Description: "external defines whether the network may be used for creation of floating IPs. Only networks with this flag may be an external gateway for routers. The network must have an external routing facility that is not managed by the networking service. If the network is updated from external to internal the unused floating IPs of this network are automatically deleted when extension floatingip-autodelete-internal is present.", + Description: "trustedVIF indicates whether the VF for the port will become trusted by physical function to perform some privileged operations.", Type: []string{"boolean"}, Format: "", }, }, - "shared": { + "createdAt": { SchemaProps: spec.SchemaProps{ - Description: "shared specifies whether the network resource can be accessed by any tenant.", - Type: []string{"boolean"}, - Format: "", + Description: "createdAt shows the date and time when the resource was created. The date and time stamp format is ISO 8601", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), }, }, - "subnets": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, + "updatedAt": { + SchemaProps: spec.SchemaProps{ + Description: "updatedAt shows the date and time when the resource was updated. The date and time stamp format is ISO 8601", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), }, + }, + "revisionNumber": { SchemaProps: spec.SchemaProps{ - Description: "subnets associated with this network.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, + Description: "revisionNumber optionally set via extensions/standard-attr-revisions", + Type: []string{"integer"}, + Format: "int64", }, }, }, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProviderPropertiesStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AllowedAddressPairStatus", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FixedIPStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_NetworkSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_PortSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "NetworkSpec defines the desired state of an ORC object.", + Description: "PortSpec defines the desired state of an ORC object.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "import": { SchemaProps: spec.SchemaProps{ Description: "import refers to an existing OpenStack resource which will be imported instead of creating a new one.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkImport"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortImport"), }, }, "resource": { SchemaProps: spec.SchemaProps{ Description: "resource specifies the desired state of the resource.\n\nresource may not be specified if the management policy is `unmanaged`.\n\nresource must be specified if the management policy is `managed`.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkResourceSpec"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortResourceSpec"), }, }, "managementPolicy": { @@ -4965,15 +7309,15 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_NetworkSpec(ref common }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkResourceSpec"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortResourceSpec"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_NetworkStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_PortStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "NetworkStatus defines the observed state of an ORC resource.", + Description: "PortStatus defines the observed state of an ORC resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "conditions": { @@ -5010,55 +7354,49 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_NetworkStatus(ref comm "resource": { SchemaProps: spec.SchemaProps{ Description: "resource contains the observed state of the OpenStack resource.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkResourceStatus"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortResourceStatus"), }, }, }, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.NetworkResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_NeutronStatusMetadata(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_PortValueSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ Type: []string{"object"}, Properties: map[string]spec.Schema{ - "createdAt": { - SchemaProps: spec.SchemaProps{ - Description: "createdAt shows the date and time when the resource was created. The date and time stamp format is ISO 8601", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "updatedAt": { + "key": { SchemaProps: spec.SchemaProps{ - Description: "updatedAt shows the date and time when the resource was updated. The date and time stamp format is ISO 8601", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + Description: "key is the name of the Neutron API extension parameter.", + Type: []string{"string"}, + Format: "", }, }, - "revisionNumber": { + "value": { SchemaProps: spec.SchemaProps{ - Description: "revisionNumber optionally set via extensions/standard-attr-revisions", - Type: []string{"integer"}, - Format: "int64", + Description: "value is the value of the Neutron API extension parameter.", + Type: []string{"string"}, + Format: "", }, }, }, + Required: []string{"key", "value"}, }, }, - Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_Port(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_Project(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "Port is the Schema for an ORC resource.", + Description: "Project is the Schema for an ORC resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "kind": { @@ -5086,14 +7424,14 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_Port(ref common.Refere SchemaProps: spec.SchemaProps{ Description: "spec specifies the desired state of the resource.", Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortSpec"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectSpec"), }, }, "status": { SchemaProps: spec.SchemaProps{ Description: "status defines the observed state of the resource.", Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortStatus"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectStatus"), }, }, }, @@ -5101,56 +7439,27 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_Port(ref common.Refere }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, } } - -func schema_openstack_resource_controller_v2_api_v1alpha1_PortFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "PortFilter specifies a filter to select a port. At least one parameter must be specified.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "name of the existing resource", - Type: []string{"string"}, - Format: "", - }, - }, - "description": { - SchemaProps: spec.SchemaProps{ - Description: "description of the existing resource", - Type: []string{"string"}, - Format: "", - }, - }, - "networkRef": { - SchemaProps: spec.SchemaProps{ - Description: "networkRef is a reference to the ORC Network which this port is associated with.", - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - "projectRef": { + +func schema_openstack_resource_controller_v2_api_v1alpha1_ProjectFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "ProjectFilter defines an existing resource by its properties", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "name": { SchemaProps: spec.SchemaProps{ - Description: "projectRef is a reference to the ORC Project this resource is associated with. Typically, only used by admin.", + Description: "name of the existing resource", Type: []string{"string"}, Format: "", }, }, - "adminStateUp": { - SchemaProps: spec.SchemaProps{ - Description: "adminStateUp is the administrative state of the port, which is up (true) or down (false).", - Type: []string{"boolean"}, - Format: "", - }, - }, - "macAddress": { + "domainRef": { SchemaProps: spec.SchemaProps{ - Description: "macAddress is the MAC address of the port.", + Description: "domainRef is a reference to the ORC Domain which this resource is associated with.", Type: []string{"string"}, Format: "", }, @@ -5241,11 +7550,11 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_PortFilter(ref common. } } -func schema_openstack_resource_controller_v2_api_v1alpha1_PortImport(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ProjectImport(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "PortImport specifies an existing resource which will be imported instead of creating a new one", + Description: "ProjectImport specifies an existing resource which will be imported instead of creating a new one", Type: []string{"object"}, Properties: map[string]spec.Schema{ "id": { @@ -5258,22 +7567,22 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_PortImport(ref common. "filter": { SchemaProps: spec.SchemaProps{ Description: "filter contains a resource query which is expected to return a single result. The controller will continue to retry if filter returns no results. If filter returns multiple results the controller will set an error state and will not continue to retry.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortFilter"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectFilter"), }, }, }, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortFilter"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectFilter"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_PortList(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ProjectList(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "PortList contains a list of Port.", + Description: "ProjectList contains a list of Project.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "kind": { @@ -5299,13 +7608,13 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_PortList(ref common.Re }, "items": { SchemaProps: spec.SchemaProps{ - Description: "items contains a list of Port.", + Description: "items contains a list of Project.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Port"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Project"), }, }, }, @@ -5316,59 +7625,63 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_PortList(ref common.Re }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Port", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Project", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_PortRangeSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ProjectResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, + Description: "ProjectResourceSpec contains the desired state of a project", + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "min": { + "name": { SchemaProps: spec.SchemaProps{ - Description: "min is the minimum port number in the range that is matched by the security group rule. If the protocol is TCP, UDP, DCCP, SCTP or UDP-Lite this value must be less than or equal to the port_range_max attribute value. If the protocol is ICMP, this value must be an ICMP type", - Default: 0, - Type: []string{"integer"}, - Format: "int32", + Description: "name will be the name of the created resource. If not specified, the name of the ORC object will be used.", + Type: []string{"string"}, + Format: "", }, }, - "max": { + "description": { SchemaProps: spec.SchemaProps{ - Description: "max is the maximum port number in the range that is matched by the security group rule. If the protocol is TCP, UDP, DCCP, SCTP or UDP-Lite this value must be greater than or equal to the port_range_min attribute value. If the protocol is ICMP, this value must be an ICMP code.", - Default: 0, - Type: []string{"integer"}, - Format: "int32", + Description: "description contains a free form description of the project.", + Type: []string{"string"}, + Format: "", }, }, - }, - Required: []string{"min", "max"}, - }, - }, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_PortRangeStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "min": { + "domainRef": { SchemaProps: spec.SchemaProps{ - Description: "min is the minimum port number in the range that is matched by the security group rule. If the protocol is TCP, UDP, DCCP, SCTP or UDP-Lite this value must be less than or equal to the port_range_max attribute value. If the protocol is ICMP, this value must be an ICMP type", - Default: 0, - Type: []string{"integer"}, - Format: "int32", + Description: "domainRef is a reference to the ORC Domain which this resource is associated with.", + Type: []string{"string"}, + Format: "", }, }, - "max": { + "enabled": { SchemaProps: spec.SchemaProps{ - Description: "max is the maximum port number in the range that is matched by the security group rule. If the protocol is TCP, UDP, DCCP, SCTP or UDP-Lite this value must be greater than or equal to the port_range_min attribute value. If the protocol is ICMP, this value must be an ICMP code.", - Default: 0, - Type: []string{"integer"}, - Format: "int32", + Description: "enabled defines whether a project is enabled or not. Default is true.", + Type: []string{"boolean"}, + Format: "", + }, + }, + "tags": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "tags is list of simple strings assigned to a project. Tags can be used to classify projects into groups.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, }, }, }, @@ -5377,15 +7690,16 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_PortRangeStatus(ref co } } -func schema_openstack_resource_controller_v2_api_v1alpha1_PortResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ProjectResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, + Description: "ProjectResourceStatus represents the observed state of the resource.", + Type: []string{"object"}, Properties: map[string]spec.Schema{ "name": { SchemaProps: spec.SchemaProps{ - Description: "name is a human-readable name of the port. If not set, the object's name will be used.", + Description: "name is a Human-readable name for the project. Might not be unique.", Type: []string{"string"}, Format: "", }, @@ -5397,21 +7711,28 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_PortResourceSpec(ref c Format: "", }, }, - "networkRef": { + "domainID": { SchemaProps: spec.SchemaProps{ - Description: "networkRef is a reference to the ORC Network which this port is associated with.", + Description: "domainID is the ID of the Domain to which the resource is associated.", Type: []string{"string"}, Format: "", }, }, + "enabled": { + SchemaProps: spec.SchemaProps{ + Description: "enabled represents whether a project is enabled or not.", + Type: []string{"boolean"}, + Format: "", + }, + }, "tags": { VendorExtensible: spec.VendorExtensible{ Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", + "x-kubernetes-list-type": "atomic", }, }, SchemaProps: spec.SchemaProps{ - Description: "tags is a list of tags which will be applied to the port.", + Description: "tags is the list of tags on the resource.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ @@ -5424,333 +7745,387 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_PortResourceSpec(ref c }, }, }, - "allowedAddressPairs": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, + }, + }, + }, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_ProjectSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "ProjectSpec defines the desired state of an ORC object.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "import": { + SchemaProps: spec.SchemaProps{ + Description: "import refers to an existing OpenStack resource which will be imported instead of creating a new one.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectImport"), }, + }, + "resource": { SchemaProps: spec.SchemaProps{ - Description: "allowedAddressPairs are allowed addresses associated with this port.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AllowedAddressPair"), - }, - }, - }, + Description: "resource specifies the desired state of the resource.\n\nresource may not be specified if the management policy is `unmanaged`.\n\nresource must be specified if the management policy is `managed`.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectResourceSpec"), }, }, - "addresses": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, + "managementPolicy": { + SchemaProps: spec.SchemaProps{ + Description: "managementPolicy defines how ORC will treat the object. Valid values are `managed`: ORC will create, update, and delete the resource; `unmanaged`: ORC will import an existing resource, and will not apply updates to it or delete it.", + Type: []string{"string"}, + Format: "", }, + }, + "managedOptions": { SchemaProps: spec.SchemaProps{ - Description: "addresses are the IP addresses for the port.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Address"), - }, - }, - }, + Description: "managedOptions specifies options which may be applied to managed objects.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions"), }, }, - "adminStateUp": { + "cloudCredentialsRef": { SchemaProps: spec.SchemaProps{ - Description: "adminStateUp is the administrative state of the port, which is up (true) or down (false). The default value is true.", - Type: []string{"boolean"}, - Format: "", + Description: "cloudCredentialsRef points to a secret containing OpenStack credentials", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference"), }, }, - "securityGroupRefs": { + }, + Required: []string{"cloudCredentialsRef"}, + }, + }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectResourceSpec"}, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_ProjectStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "ProjectStatus defines the observed state of an ORC resource.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "conditions": { VendorExtensible: spec.VendorExtensible{ Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", + "x-kubernetes-list-map-keys": []interface{}{ + "type", + }, + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge", }, }, SchemaProps: spec.SchemaProps{ - Description: "securityGroupRefs are the names of the security groups associated with this port.", + Description: "conditions represents the observed status of the object. Known .status.conditions.type are: \"Available\", \"Progressing\"\n\nAvailable represents the availability of the OpenStack resource. If it is true then the resource is ready for use.\n\nProgressing indicates whether the controller is still attempting to reconcile the current state of the OpenStack resource to the desired state. Progressing will be False either because the desired state has been achieved, or because some terminal error prevents it from ever being achieved and the controller is no longer attempting to reconcile. If Progressing is True, an observer waiting on the resource should continue to wait.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Condition"), }, }, }, }, }, - "vnicType": { + "id": { SchemaProps: spec.SchemaProps{ - Description: "vnicType specifies the type of vNIC which this port should be attached to. This is used to determine which mechanism driver(s) to be used to bind the port. The valid values are normal, macvtap, direct, baremetal, direct-physical, virtio-forwarder, smart-nic and remote-managed, although these values will not be validated in this API to ensure compatibility with future neutron changes or custom implementations. What type of vNIC is actually available depends on deployments. If not specified, the Neutron default value is used.", + Description: "id is the unique identifier of the OpenStack resource.", Type: []string{"string"}, Format: "", }, }, - "portSecurity": { + "resource": { SchemaProps: spec.SchemaProps{ - Description: "portSecurity controls port security for this port. When set to Enabled, port security is enabled. When set to Disabled, port security is disabled and SecurityGroupRefs must be empty. When set to Inherit (default), it takes the value from the network level.", - Type: []string{"string"}, - Format: "", + Description: "resource contains the observed state of the OpenStack resource.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectResourceStatus"), }, }, - "projectRef": { + }, + }, + }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_ProviderPropertiesStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "networkType": { SchemaProps: spec.SchemaProps{ - Description: "projectRef is a reference to the ORC Project this resource is associated with. Typically, only used by admin.", + Description: "networkType is the type of physical network that this network should be mapped to. Supported values are flat, vlan, vxlan, and gre. Valid values depend on the networking back-end.", Type: []string{"string"}, Format: "", }, }, - "macAddress": { + "physicalNetwork": { SchemaProps: spec.SchemaProps{ - Description: "macAddress is the MAC address of the port.", + Description: "physicalNetwork is the physical network where this network should be implemented. The Networking API v2.0 does not provide a way to list available physical networks. For example, the Open vSwitch plug-in configuration file defines a symbolic name that maps to specific bridges on each compute host.", Type: []string{"string"}, Format: "", }, }, - "hostID": { + "segmentationID": { SchemaProps: spec.SchemaProps{ - Description: "hostID specifies the host where the port will be bound. Note that when the port is attached to a server, OpenStack may rebind the port to the server's actual compute host, which may differ from the specified hostID if no matching scheduler hint is used. In this case the port's status will reflect the actual binding host, not the value specified here.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.HostID"), + Description: "segmentationID is the ID of the isolated segment on the physical network. The network_type attribute defines the segmentation model. For example, if the network_type value is vlan, this ID is a vlan identifier. If the network_type value is gre, this ID is a gre key.", + Type: []string{"integer"}, + Format: "int32", }, }, }, - Required: []string{"networkRef"}, }, }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Address", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AllowedAddressPair", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.HostID"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_PortResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_Role(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, + Description: "Role is the Schema for an ORC resource.", + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "name": { + "kind": { SchemaProps: spec.SchemaProps{ - Description: "name is the human-readable name of the resource. Might not be unique.", + Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", Type: []string{"string"}, Format: "", }, }, - "description": { + "apiVersion": { SchemaProps: spec.SchemaProps{ - Description: "description is a human-readable description for the resource.", + Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", Type: []string{"string"}, Format: "", }, }, - "networkID": { + "metadata": { SchemaProps: spec.SchemaProps{ - Description: "networkID is the ID of the attached network.", - Type: []string{"string"}, - Format: "", + Description: "metadata contains the object metadata", + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), }, }, - "projectID": { + "spec": { SchemaProps: spec.SchemaProps{ - Description: "projectID is the project owner of the resource.", - Type: []string{"string"}, - Format: "", + Description: "spec specifies the desired state of the resource.", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleSpec"), }, }, "status": { SchemaProps: spec.SchemaProps{ - Description: "status indicates the current status of the resource.", - Type: []string{"string"}, - Format: "", + Description: "status defines the observed state of the resource.", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleStatus"), }, }, - "tags": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, + }, + Required: []string{"spec"}, + }, + }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_RoleFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "RoleFilter defines an existing resource by its properties", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "name": { SchemaProps: spec.SchemaProps{ - Description: "tags is the list of tags on the resource.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, + Description: "name of the existing resource", + Type: []string{"string"}, + Format: "", }, }, - "adminStateUp": { + "domainRef": { SchemaProps: spec.SchemaProps{ - Description: "adminStateUp is the administrative state of the port, which is up (true) or down (false).", - Type: []string{"boolean"}, + Description: "domainRef is a reference to the ORC Domain which this resource is associated with.", + Type: []string{"string"}, Format: "", }, }, - "macAddress": { + }, + }, + }, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_RoleImport(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "RoleImport specifies an existing resource which will be imported instead of creating a new one", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "id": { SchemaProps: spec.SchemaProps{ - Description: "macAddress is the MAC address of the port.", + Description: "id contains the unique identifier of an existing OpenStack resource. Note that when specifying an import by ID, the resource MUST already exist. The ORC object will enter an error state if the resource does not exist.", Type: []string{"string"}, Format: "", }, }, - "deviceID": { + "filter": { SchemaProps: spec.SchemaProps{ - Description: "deviceID is the ID of the device that uses this port.", - Type: []string{"string"}, - Format: "", + Description: "filter contains a resource query which is expected to return a single result. The controller will continue to retry if filter returns no results. If filter returns multiple results the controller will set an error state and will not continue to retry.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleFilter"), }, }, - "deviceOwner": { + }, + }, + }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleFilter"}, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_RoleList(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "RoleList contains a list of Role.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "kind": { SchemaProps: spec.SchemaProps{ - Description: "deviceOwner is the entity type that uses this port.", + Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", Type: []string{"string"}, Format: "", }, }, - "allowedAddressPairs": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, + "apiVersion": { SchemaProps: spec.SchemaProps{ - Description: "allowedAddressPairs is a set of zero or more allowed address pair objects each where address pair object contains an IP address and MAC address.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AllowedAddressPairStatus"), - }, - }, - }, + Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + Type: []string{"string"}, + Format: "", }, }, - "fixedIPs": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, + "metadata": { SchemaProps: spec.SchemaProps{ - Description: "fixedIPs is a set of zero or more fixed IP objects each where fixed IP object contains an IP address and subnet ID from which the IP address is assigned.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FixedIPStatus"), - }, - }, - }, + Description: "metadata contains the list metadata", + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), }, }, - "securityGroups": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, + "items": { SchemaProps: spec.SchemaProps{ - Description: "securityGroups contains the IDs of security groups applied to the port.", + Description: "items contains a list of Role.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Role"), }, }, }, }, }, - "propagateUplinkStatus": { + }, + Required: []string{"items"}, + }, + }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Role", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_RoleResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "RoleResourceSpec contains the desired state of the resource.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "name": { SchemaProps: spec.SchemaProps{ - Description: "propagateUplinkStatus represents the uplink status propagation of the port.", - Type: []string{"boolean"}, + Description: "name will be the name of the created resource. If not specified, the name of the ORC object will be used.", + Type: []string{"string"}, Format: "", }, }, - "vnicType": { + "description": { SchemaProps: spec.SchemaProps{ - Description: "vnicType is the type of vNIC which this port is attached to.", + Description: "description is a human-readable description for the resource.", Type: []string{"string"}, Format: "", }, }, - "portSecurityEnabled": { + "domainRef": { SchemaProps: spec.SchemaProps{ - Description: "portSecurityEnabled indicates whether port security is enabled or not.", - Type: []string{"boolean"}, + Description: "domainRef is a reference to the ORC Domain which this resource is associated with.", + Type: []string{"string"}, Format: "", }, }, - "hostID": { + }, + }, + }, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_RoleResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "RoleResourceStatus represents the observed state of the resource.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "name": { SchemaProps: spec.SchemaProps{ - Description: "hostID is the ID of host where the port resides.", + Description: "name is a Human-readable name for the resource. Might not be unique.", Type: []string{"string"}, Format: "", }, }, - "createdAt": { - SchemaProps: spec.SchemaProps{ - Description: "createdAt shows the date and time when the resource was created. The date and time stamp format is ISO 8601", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "updatedAt": { - SchemaProps: spec.SchemaProps{ - Description: "updatedAt shows the date and time when the resource was updated. The date and time stamp format is ISO 8601", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + "description": { + SchemaProps: spec.SchemaProps{ + Description: "description is a human-readable description for the resource.", + Type: []string{"string"}, + Format: "", }, }, - "revisionNumber": { + "domainID": { SchemaProps: spec.SchemaProps{ - Description: "revisionNumber optionally set via extensions/standard-attr-revisions", - Type: []string{"integer"}, - Format: "int64", + Description: "domainID is the ID of the Domain to which the resource is associated.", + Type: []string{"string"}, + Format: "", }, }, }, }, }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.AllowedAddressPairStatus", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.FixedIPStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_PortSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_RoleSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "PortSpec defines the desired state of an ORC object.", + Description: "RoleSpec defines the desired state of an ORC object.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "import": { SchemaProps: spec.SchemaProps{ Description: "import refers to an existing OpenStack resource which will be imported instead of creating a new one.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortImport"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleImport"), }, }, "resource": { SchemaProps: spec.SchemaProps{ Description: "resource specifies the desired state of the resource.\n\nresource may not be specified if the management policy is `unmanaged`.\n\nresource must be specified if the management policy is `managed`.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortResourceSpec"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleResourceSpec"), }, }, "managementPolicy": { @@ -5778,15 +8153,15 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_PortSpec(ref common.Re }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortResourceSpec"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleResourceSpec"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_PortStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_RoleStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "PortStatus defines the observed state of an ORC resource.", + Description: "RoleStatus defines the observed state of an ORC resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "conditions": { @@ -5823,22 +8198,22 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_PortStatus(ref common. "resource": { SchemaProps: spec.SchemaProps{ Description: "resource contains the observed state of the OpenStack resource.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortResourceStatus"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleResourceStatus"), }, }, }, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_Project(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_Router(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "Project is the Schema for an ORC resource.", + Description: "Router is the Schema for an ORC resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "kind": { @@ -5866,14 +8241,14 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_Project(ref common.Ref SchemaProps: spec.SchemaProps{ Description: "spec specifies the desired state of the resource.", Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectSpec"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterSpec"), }, }, "status": { SchemaProps: spec.SchemaProps{ Description: "status defines the observed state of the resource.", Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectStatus"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterStatus"), }, }, }, @@ -5881,15 +8256,15 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_Project(ref common.Ref }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ProjectFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_RouterFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "ProjectFilter defines an existing resource by its properties", + Description: "RouterFilter specifies a query to select an OpenStack router. At least one property must be set.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "name": { @@ -5899,6 +8274,20 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_ProjectFilter(ref comm Format: "", }, }, + "description": { + SchemaProps: spec.SchemaProps{ + Description: "description of the existing resource", + Type: []string{"string"}, + Format: "", + }, + }, + "projectRef": { + SchemaProps: spec.SchemaProps{ + Description: "projectRef is a reference to the ORC Project this resource is associated with. Typically, only used by admin.", + Type: []string{"string"}, + Format: "", + }, + }, "tags": { VendorExtensible: spec.VendorExtensible{ Extensions: spec.Extensions{ @@ -5985,11 +8374,11 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_ProjectFilter(ref comm } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ProjectImport(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_RouterImport(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "ProjectImport specifies an existing resource which will be imported instead of creating a new one", + Description: "RouterImport specifies an existing resource which will be imported instead of creating a new one", Type: []string{"object"}, Properties: map[string]spec.Schema{ "id": { @@ -6002,22 +8391,203 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_ProjectImport(ref comm "filter": { SchemaProps: spec.SchemaProps{ Description: "filter contains a resource query which is expected to return a single result. The controller will continue to retry if filter returns no results. If filter returns multiple results the controller will set an error state and will not continue to retry.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectFilter"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterFilter"), }, }, }, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectFilter"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterFilter"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ProjectList(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_RouterInterface(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "ProjectList contains a list of Project.", + Description: "RouterInterface is the Schema for an ORC resource.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "kind": { + SchemaProps: spec.SchemaProps{ + Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + Type: []string{"string"}, + Format: "", + }, + }, + "apiVersion": { + SchemaProps: spec.SchemaProps{ + Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + Type: []string{"string"}, + Format: "", + }, + }, + "metadata": { + SchemaProps: spec.SchemaProps{ + Description: "metadata contains the object metadata.", + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), + }, + }, + "spec": { + SchemaProps: spec.SchemaProps{ + Description: "spec specifies the desired state of the resource.", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterInterfaceSpec"), + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Description: "status defines the observed state of the resource.", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterInterfaceStatus"), + }, + }, + }, + Required: []string{"spec"}, + }, + }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterInterfaceSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterInterfaceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_RouterInterfaceList(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "RouterInterfaceList contains a list of RouterInterface.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "kind": { + SchemaProps: spec.SchemaProps{ + Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + Type: []string{"string"}, + Format: "", + }, + }, + "apiVersion": { + SchemaProps: spec.SchemaProps{ + Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + Type: []string{"string"}, + Format: "", + }, + }, + "metadata": { + SchemaProps: spec.SchemaProps{ + Description: "metadata contains the list metadata.", + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), + }, + }, + "items": { + SchemaProps: spec.SchemaProps{ + Description: "items contains a list of RouterInterface.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterInterface"), + }, + }, + }, + }, + }, + }, + Required: []string{"items"}, + }, + }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterInterface", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_RouterInterfaceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "type": { + SchemaProps: spec.SchemaProps{ + Description: "type specifies the type of the router interface.", + Type: []string{"string"}, + Format: "", + }, + }, + "routerRef": { + SchemaProps: spec.SchemaProps{ + Description: "routerRef references the router to which this interface belongs.", + Type: []string{"string"}, + Format: "", + }, + }, + "subnetRef": { + SchemaProps: spec.SchemaProps{ + Description: "subnetRef references the subnet the router interface is created on.", + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"type", "routerRef"}, + }, + }, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_RouterInterfaceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "conditions": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "type", + }, + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "conditions represents the observed status of the object. Known .status.conditions.type are: \"Available\", \"Progressing\"\n\nAvailable represents the availability of the OpenStack resource. If it is true then the resource is ready for use.\n\nProgressing indicates whether the controller is still attempting to reconcile the current state of the OpenStack resource to the desired state. Progressing will be False either because the desired state has been achieved, or because some terminal error prevents it from ever being achieved and the controller is no longer attempting to reconcile. If Progressing is True, an observer waiting on the resource should continue to wait.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Condition"), + }, + }, + }, + }, + }, + "id": { + SchemaProps: spec.SchemaProps{ + Description: "id is the unique identifier of the port created for the router interface", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + Dependencies: []string{ + "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_RouterList(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "RouterList contains a list of Router.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "kind": { @@ -6043,13 +8613,13 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_ProjectList(ref common }, "items": { SchemaProps: spec.SchemaProps{ - Description: "items contains a list of Project.", + Description: "items contains a list of Router.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Project"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Router"), }, }, }, @@ -6060,46 +8630,91 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_ProjectList(ref common }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Project", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Router", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ProjectResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_RouterResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "ProjectResourceSpec contains the desired state of a project", - Type: []string{"object"}, + Type: []string{"object"}, Properties: map[string]spec.Schema{ "name": { SchemaProps: spec.SchemaProps{ - Description: "name will be the name of the created resource. If not specified, the name of the ORC object will be used.", + Description: "name is a human-readable name of the router. If not set, the object's name will be used.", Type: []string{"string"}, Format: "", }, }, "description": { SchemaProps: spec.SchemaProps{ - Description: "description contains a free form description of the project.", + Description: "description is a human-readable description for the resource.", Type: []string{"string"}, Format: "", }, }, - "enabled": { + "tags": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, SchemaProps: spec.SchemaProps{ - Description: "enabled defines whether a project is enabled or not. Default is true.", + Description: "tags is a list of tags which will be applied to the router.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "adminStateUp": { + SchemaProps: spec.SchemaProps{ + Description: "adminStateUp represents the administrative state of the resource, which is up (true) or down (false). Default is true.", Type: []string{"boolean"}, Format: "", }, }, - "tags": { + "externalGateways": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "externalGateways is a list of external gateways for the router. Multiple gateways are not currently supported by ORC.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ExternalGateway"), + }, + }, + }, + }, + }, + "distributed": { + SchemaProps: spec.SchemaProps{ + Description: "distributed indicates whether the router is distributed or not. It is available when dvr extension is enabled.", + Type: []string{"boolean"}, + Format: "", + }, + }, + "availabilityZoneHints": { VendorExtensible: spec.VendorExtensible{ Extensions: spec.Extensions{ "x-kubernetes-list-type": "set", }, }, SchemaProps: spec.SchemaProps{ - Description: "tags is list of simple strings assigned to a project. Tags can be used to classify projects into groups.", + Description: "availabilityZoneHints is the availability zone candidate for the router.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ @@ -6112,22 +8727,30 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_ProjectResourceSpec(re }, }, }, + "projectRef": { + SchemaProps: spec.SchemaProps{ + Description: "projectRef is a reference to the ORC Project this resource is associated with. Typically, only used by admin.", + Type: []string{"string"}, + Format: "", + }, + }, }, }, }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ExternalGateway"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ProjectResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_RouterResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "ProjectResourceStatus represents the observed state of the resource.", - Type: []string{"object"}, + Type: []string{"object"}, Properties: map[string]spec.Schema{ "name": { SchemaProps: spec.SchemaProps{ - Description: "name is a Human-readable name for the project. Might not be unique.", + Description: "name is the human-readable name of the resource. Might not be unique.", Type: []string{"string"}, Format: "", }, @@ -6139,10 +8762,17 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_ProjectResourceStatus( Format: "", }, }, - "enabled": { + "projectID": { SchemaProps: spec.SchemaProps{ - Description: "enabled represents whether a project is enabled or not.", - Type: []string{"boolean"}, + Description: "projectID is the project owner of the resource.", + Type: []string{"string"}, + Format: "", + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Description: "status indicates the current status of the resource.", + Type: []string{"string"}, Format: "", }, }, @@ -6166,29 +8796,77 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_ProjectResourceStatus( }, }, }, + "adminStateUp": { + SchemaProps: spec.SchemaProps{ + Description: "adminStateUp is the administrative state of the router, which is up (true) or down (false).", + Type: []string{"boolean"}, + Format: "", + }, + }, + "externalGateways": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "externalGateways is a list of external gateways for the router.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ExternalGatewayStatus"), + }, + }, + }, + }, + }, + "availabilityZoneHints": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "availabilityZoneHints is the availability zone candidate for the router.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, }, }, }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ExternalGatewayStatus"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ProjectSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_RouterSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "ProjectSpec defines the desired state of an ORC object.", + Description: "RouterSpec defines the desired state of an ORC object.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "import": { SchemaProps: spec.SchemaProps{ Description: "import refers to an existing OpenStack resource which will be imported instead of creating a new one.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectImport"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterImport"), }, }, "resource": { SchemaProps: spec.SchemaProps{ Description: "resource specifies the desired state of the resource.\n\nresource may not be specified if the management policy is `unmanaged`.\n\nresource must be specified if the management policy is `managed`.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectResourceSpec"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterResourceSpec"), }, }, "managementPolicy": { @@ -6216,15 +8894,15 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_ProjectSpec(ref common }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectResourceSpec"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterResourceSpec"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ProjectStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_RouterStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "ProjectStatus defines the observed state of an ORC resource.", + Description: "RouterStatus defines the observed state of an ORC resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "conditions": { @@ -6261,120 +8939,174 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_ProjectStatus(ref comm "resource": { SchemaProps: spec.SchemaProps{ Description: "resource contains the observed state of the OpenStack resource.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectResourceStatus"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterResourceStatus"), }, }, }, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ProjectResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ProviderPropertiesStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroup(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, + Description: "SecurityGroup is the Schema for an ORC resource.", + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "networkType": { + "kind": { SchemaProps: spec.SchemaProps{ - Description: "networkType is the type of physical network that this network should be mapped to. Supported values are flat, vlan, vxlan, and gre. Valid values depend on the networking back-end.", + Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", Type: []string{"string"}, Format: "", }, }, - "physicalNetwork": { + "apiVersion": { SchemaProps: spec.SchemaProps{ - Description: "physicalNetwork is the physical network where this network should be implemented. The Networking API v2.0 does not provide a way to list available physical networks. For example, the Open vSwitch plug-in configuration file defines a symbolic name that maps to specific bridges on each compute host.", + Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", Type: []string{"string"}, Format: "", }, }, - "segmentationID": { + "metadata": { SchemaProps: spec.SchemaProps{ - Description: "segmentationID is the ID of the isolated segment on the physical network. The network_type attribute defines the segmentation model. For example, if the network_type value is vlan, this ID is a vlan identifier. If the network_type value is gre, this ID is a gre key.", - Type: []string{"integer"}, - Format: "int32", + Description: "metadata contains the object metadata", + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), + }, + }, + "spec": { + SchemaProps: spec.SchemaProps{ + Description: "spec specifies the desired state of the resource.", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupSpec"), + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Description: "status defines the observed state of the resource.", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupStatus"), }, }, }, + Required: []string{"spec"}, }, }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_Role(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "Role is the Schema for an ORC resource.", + Description: "SecurityGroupFilter defines an existing resource by its properties", Type: []string{"object"}, Properties: map[string]spec.Schema{ - "kind": { + "name": { SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + Description: "name of the existing resource", Type: []string{"string"}, Format: "", }, }, - "apiVersion": { + "description": { SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + Description: "description of the existing resource", Type: []string{"string"}, Format: "", }, }, - "metadata": { + "projectRef": { SchemaProps: spec.SchemaProps{ - Description: "metadata contains the object metadata", - Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), + Description: "projectRef is a reference to the ORC Project this resource is associated with. Typically, only used by admin.", + Type: []string{"string"}, + Format: "", }, }, - "spec": { + "tags": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, SchemaProps: spec.SchemaProps{ - Description: "spec specifies the desired state of the resource.", - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleSpec"), + Description: "tags is a list of tags to filter by. If specified, the resource must have all of the tags specified to be included in the result.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "tagsAny": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "tagsAny is a list of tags to filter by. If specified, the resource must have at least one of the tags specified to be included in the result.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, }, }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "status defines the observed state of the resource.", - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleStatus"), + "notTags": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, }, - }, - }, - Required: []string{"spec"}, - }, - }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_RoleFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "RoleFilter defines an existing resource by its properties", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { SchemaProps: spec.SchemaProps{ - Description: "name of the existing resource", - Type: []string{"string"}, - Format: "", + Description: "notTags is a list of tags to filter by. If specified, resources which contain all of the given tags will be excluded from the result.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, }, }, - "domainRef": { + "notTagsAny": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, SchemaProps: spec.SchemaProps{ - Description: "domainRef is a reference to the ORC Domain which this resource is associated with.", - Type: []string{"string"}, - Format: "", + Description: "notTagsAny is a list of tags to filter by. If specified, resources which contain any of the given tags will be excluded from the result.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, }, }, }, @@ -6383,11 +9115,11 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_RoleFilter(ref common. } } -func schema_openstack_resource_controller_v2_api_v1alpha1_RoleImport(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupImport(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "RoleImport specifies an existing resource which will be imported instead of creating a new one", + Description: "SecurityGroupImport specifies an existing resource which will be imported instead of creating a new one", Type: []string{"object"}, Properties: map[string]spec.Schema{ "id": { @@ -6400,22 +9132,22 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_RoleImport(ref common. "filter": { SchemaProps: spec.SchemaProps{ Description: "filter contains a resource query which is expected to return a single result. The controller will continue to retry if filter returns no results. If filter returns multiple results the controller will set an error state and will not continue to retry.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleFilter"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupFilter"), }, }, }, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleFilter"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupFilter"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_RoleList(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupList(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "RoleList contains a list of Role.", + Description: "SecurityGroupList contains a list of SecurityGroup.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "kind": { @@ -6441,13 +9173,13 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_RoleList(ref common.Re }, "items": { SchemaProps: spec.SchemaProps{ - Description: "items contains a list of Role.", + Description: "items contains a list of SecurityGroup.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Role"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroup"), }, }, }, @@ -6458,15 +9190,15 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_RoleList(ref common.Re }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Role", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroup", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_RoleResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "RoleResourceSpec contains the desired state of the resource.", + Description: "SecurityGroupResourceSpec contains the desired state of a security group", Type: []string{"object"}, Properties: map[string]spec.Schema{ "name": { @@ -6483,228 +9215,91 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_RoleResourceSpec(ref c Format: "", }, }, - "domainRef": { - SchemaProps: spec.SchemaProps{ - Description: "domainRef is a reference to the ORC Domain which this resource is associated with.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_RoleResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "RoleResourceStatus represents the observed state of the resource.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "name is a Human-readable name for the resource. Might not be unique.", - Type: []string{"string"}, - Format: "", - }, - }, - "description": { - SchemaProps: spec.SchemaProps{ - Description: "description is a human-readable description for the resource.", - Type: []string{"string"}, - Format: "", - }, - }, - "domainID": { - SchemaProps: spec.SchemaProps{ - Description: "domainID is the ID of the Domain to which the resource is associated.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_RoleSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "RoleSpec defines the desired state of an ORC object.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "import": { - SchemaProps: spec.SchemaProps{ - Description: "import refers to an existing OpenStack resource which will be imported instead of creating a new one.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleImport"), - }, - }, - "resource": { - SchemaProps: spec.SchemaProps{ - Description: "resource specifies the desired state of the resource.\n\nresource may not be specified if the management policy is `unmanaged`.\n\nresource must be specified if the management policy is `managed`.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleResourceSpec"), - }, - }, - "managementPolicy": { - SchemaProps: spec.SchemaProps{ - Description: "managementPolicy defines how ORC will treat the object. Valid values are `managed`: ORC will create, update, and delete the resource; `unmanaged`: ORC will import an existing resource, and will not apply updates to it or delete it.", - Type: []string{"string"}, - Format: "", - }, - }, - "managedOptions": { - SchemaProps: spec.SchemaProps{ - Description: "managedOptions specifies options which may be applied to managed objects.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions"), - }, - }, - "cloudCredentialsRef": { - SchemaProps: spec.SchemaProps{ - Description: "cloudCredentialsRef points to a secret containing OpenStack credentials", - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference"), - }, - }, - }, - Required: []string{"cloudCredentialsRef"}, - }, - }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleResourceSpec"}, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_RoleStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "RoleStatus defines the observed state of an ORC resource.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "conditions": { + "tags": { VendorExtensible: spec.VendorExtensible{ Extensions: spec.Extensions{ - "x-kubernetes-list-map-keys": []interface{}{ - "type", - }, - "x-kubernetes-list-type": "map", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge", + "x-kubernetes-list-type": "set", }, }, SchemaProps: spec.SchemaProps{ - Description: "conditions represents the observed status of the object. Known .status.conditions.type are: \"Available\", \"Progressing\"\n\nAvailable represents the availability of the OpenStack resource. If it is true then the resource is ready for use.\n\nProgressing indicates whether the controller is still attempting to reconcile the current state of the OpenStack resource to the desired state. Progressing will be False either because the desired state has been achieved, or because some terminal error prevents it from ever being achieved and the controller is no longer attempting to reconcile. If Progressing is True, an observer waiting on the resource should continue to wait.", + Description: "tags is a list of tags which will be applied to the security group.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Condition"), + Default: "", + Type: []string{"string"}, + Format: "", }, }, }, }, }, - "id": { - SchemaProps: spec.SchemaProps{ - Description: "id is the unique identifier of the OpenStack resource.", - Type: []string{"string"}, - Format: "", - }, - }, - "resource": { - SchemaProps: spec.SchemaProps{ - Description: "resource contains the observed state of the OpenStack resource.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleResourceStatus"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RoleResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_Router(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Router is the Schema for an ORC resource.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { + "stateful": { SchemaProps: spec.SchemaProps{ - Description: "metadata contains the object metadata", - Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), + Description: "stateful indicates if the security group is stateful or stateless.", + Type: []string{"boolean"}, + Format: "", }, }, - "spec": { + "rules": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, + }, SchemaProps: spec.SchemaProps{ - Description: "spec specifies the desired state of the resource.", - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterSpec"), + Description: "rules is a list of security group rules belonging to this SG.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupRule"), + }, + }, + }, }, }, - "status": { + "projectRef": { SchemaProps: spec.SchemaProps{ - Description: "status defines the observed state of the resource.", - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterStatus"), + Description: "projectRef is a reference to the ORC Project this resource is associated with. Typically, only used by admin.", + Type: []string{"string"}, + Format: "", }, }, }, - Required: []string{"spec"}, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupRule"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_RouterFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "RouterFilter specifies a query to select an OpenStack router. At least one property must be set.", + Description: "SecurityGroupResourceStatus represents the observed state of the resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "name": { SchemaProps: spec.SchemaProps{ - Description: "name of the existing resource", + Description: "name is a Human-readable name for the security group. Might not be unique.", Type: []string{"string"}, Format: "", }, }, "description": { SchemaProps: spec.SchemaProps{ - Description: "description of the existing resource", + Description: "description is a human-readable description for the resource.", Type: []string{"string"}, Format: "", }, }, - "projectRef": { + "projectID": { SchemaProps: spec.SchemaProps{ - Description: "projectRef is a reference to the ORC Project this resource is associated with. Typically, only used by admin.", + Description: "projectID is the project owner of the security group.", Type: []string{"string"}, Format: "", }, @@ -6712,11 +9307,11 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_RouterFilter(ref commo "tags": { VendorExtensible: spec.VendorExtensible{ Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", + "x-kubernetes-list-type": "atomic", }, }, SchemaProps: spec.SchemaProps{ - Description: "tags is a list of tags to filter by. If specified, the resource must have all of the tags specified to be included in the result.", + Description: "tags is the list of tags on the resource.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ @@ -6729,241 +9324,239 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_RouterFilter(ref commo }, }, }, - "tagsAny": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, - }, + "stateful": { SchemaProps: spec.SchemaProps{ - Description: "tagsAny is a list of tags to filter by. If specified, the resource must have at least one of the tags specified to be included in the result.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, + Description: "stateful indicates if the security group is stateful or stateless.", + Type: []string{"boolean"}, + Format: "", }, }, - "notTags": { + "rules": { VendorExtensible: spec.VendorExtensible{ Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", + "x-kubernetes-list-type": "atomic", }, }, SchemaProps: spec.SchemaProps{ - Description: "notTags is a list of tags to filter by. If specified, resources which contain all of the given tags will be excluded from the result.", + Description: "rules is a list of security group rules belonging to this SG.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupRuleStatus"), }, }, }, }, }, - "notTagsAny": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, - }, + "createdAt": { SchemaProps: spec.SchemaProps{ - Description: "notTagsAny is a list of tags to filter by. If specified, resources which contain any of the given tags will be excluded from the result.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, + Description: "createdAt shows the date and time when the resource was created. The date and time stamp format is ISO 8601", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), }, }, - }, - }, - }, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_RouterImport(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "RouterImport specifies an existing resource which will be imported instead of creating a new one", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "id": { + "updatedAt": { SchemaProps: spec.SchemaProps{ - Description: "id contains the unique identifier of an existing OpenStack resource. Note that when specifying an import by ID, the resource MUST already exist. The ORC object will enter an error state if the resource does not exist.", - Type: []string{"string"}, - Format: "", + Description: "updatedAt shows the date and time when the resource was updated. The date and time stamp format is ISO 8601", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), }, }, - "filter": { + "revisionNumber": { SchemaProps: spec.SchemaProps{ - Description: "filter contains a resource query which is expected to return a single result. The controller will continue to retry if filter returns no results. If filter returns multiple results the controller will set an error state and will not continue to retry.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterFilter"), + Description: "revisionNumber optionally set via extensions/standard-attr-revisions", + Type: []string{"integer"}, + Format: "int64", }, }, }, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterFilter"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupRuleStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_RouterInterface(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupRule(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "RouterInterface is the Schema for an ORC resource.", + Description: "SecurityGroupRule defines a Security Group rule", Type: []string{"object"}, Properties: map[string]spec.Schema{ - "kind": { + "description": { SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + Description: "description is a human-readable description for the resource.", Type: []string{"string"}, Format: "", }, }, - "apiVersion": { + "direction": { SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + Description: "direction represents the direction in which the security group rule is applied. Can be ingress or egress.", Type: []string{"string"}, Format: "", }, }, - "metadata": { + "remoteIPPrefix": { SchemaProps: spec.SchemaProps{ - Description: "metadata contains the object metadata.", - Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), + Description: "remoteIPPrefix is an IP address block. Should match the Ethertype (IPv4 or IPv6)", + Type: []string{"string"}, + Format: "", }, }, - "spec": { + "protocol": { SchemaProps: spec.SchemaProps{ - Description: "spec specifies the desired state of the resource.", - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterInterfaceSpec"), + Description: "protocol is the IP protocol is represented by a string", + Type: []string{"string"}, + Format: "", }, }, - "status": { + "ethertype": { SchemaProps: spec.SchemaProps{ - Description: "status defines the observed state of the resource.", - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterInterfaceStatus"), + Description: "ethertype must be IPv4 or IPv6, and addresses represented in CIDR must match the ingress or egress rules.", + Type: []string{"string"}, + Format: "", + }, + }, + "portRange": { + SchemaProps: spec.SchemaProps{ + Description: "portRange sets the minimum and maximum ports range that the security group rule matches. If the protocol is [tcp, udp, dccp sctp,udplite] PortRange.Min must be less than or equal to the PortRange.Max attribute value. If the protocol is ICMP, this PortRamge.Min must be an ICMP code and PortRange.Max should be an ICMP type", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortRangeSpec"), }, }, }, - Required: []string{"spec"}, + Required: []string{"ethertype"}, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterInterfaceSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterInterfaceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortRangeSpec"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_RouterInterfaceList(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupRuleStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "RouterInterfaceList contains a list of RouterInterface.", - Type: []string{"object"}, + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "kind": { + "id": { SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + Description: "id is the ID of the security group rule.", Type: []string{"string"}, Format: "", }, }, - "apiVersion": { + "description": { SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + Description: "description is a human-readable description for the resource.", Type: []string{"string"}, Format: "", }, }, - "metadata": { + "direction": { SchemaProps: spec.SchemaProps{ - Description: "metadata contains the list metadata.", - Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), + Description: "direction represents the direction in which the security group rule is applied. Can be ingress or egress.", + Type: []string{"string"}, + Format: "", }, }, - "items": { + "remoteGroupID": { SchemaProps: spec.SchemaProps{ - Description: "items contains a list of RouterInterface.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterInterface"), - }, - }, - }, + Description: "remoteGroupID is the remote group UUID to associate with this security group rule RemoteGroupID", + Type: []string{"string"}, + Format: "", + }, + }, + "remoteIPPrefix": { + SchemaProps: spec.SchemaProps{ + Description: "remoteIPPrefix is an IP address block. Should match the Ethertype (IPv4 or IPv6)", + Type: []string{"string"}, + Format: "", + }, + }, + "protocol": { + SchemaProps: spec.SchemaProps{ + Description: "protocol is the IP protocol can be represented by a string, an integer, or null", + Type: []string{"string"}, + Format: "", + }, + }, + "ethertype": { + SchemaProps: spec.SchemaProps{ + Description: "ethertype must be IPv4 or IPv6, and addresses represented in CIDR must match the ingress or egress rules.", + Type: []string{"string"}, + Format: "", + }, + }, + "portRange": { + SchemaProps: spec.SchemaProps{ + Description: "portRange sets the minimum and maximum ports range that the security group rule matches. If the protocol is [tcp, udp, dccp sctp,udplite] PortRange.Min must be less than or equal to the PortRange.Max attribute value. If the protocol is ICMP, this PortRamge.Min must be an ICMP code and PortRange.Max should be an ICMP type", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortRangeStatus"), }, }, }, - Required: []string{"items"}, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterInterface", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortRangeStatus"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_RouterInterfaceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, + Description: "SecurityGroupSpec defines the desired state of an ORC object.", + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "type": { + "import": { + SchemaProps: spec.SchemaProps{ + Description: "import refers to an existing OpenStack resource which will be imported instead of creating a new one.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupImport"), + }, + }, + "resource": { + SchemaProps: spec.SchemaProps{ + Description: "resource specifies the desired state of the resource.\n\nresource may not be specified if the management policy is `unmanaged`.\n\nresource must be specified if the management policy is `managed`.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupResourceSpec"), + }, + }, + "managementPolicy": { SchemaProps: spec.SchemaProps{ - Description: "type specifies the type of the router interface.", + Description: "managementPolicy defines how ORC will treat the object. Valid values are `managed`: ORC will create, update, and delete the resource; `unmanaged`: ORC will import an existing resource, and will not apply updates to it or delete it.", Type: []string{"string"}, Format: "", }, }, - "routerRef": { + "managedOptions": { SchemaProps: spec.SchemaProps{ - Description: "routerRef references the router to which this interface belongs.", - Type: []string{"string"}, - Format: "", + Description: "managedOptions specifies options which may be applied to managed objects.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions"), }, }, - "subnetRef": { + "cloudCredentialsRef": { SchemaProps: spec.SchemaProps{ - Description: "subnetRef references the subnet the router interface is created on.", - Type: []string{"string"}, - Format: "", + Description: "cloudCredentialsRef points to a secret containing OpenStack credentials", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference"), }, }, }, - Required: []string{"type", "routerRef"}, + Required: []string{"cloudCredentialsRef"}, }, }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupResourceSpec"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_RouterInterfaceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, + Description: "SecurityGroupStatus defines the observed state of an ORC resource.", + Type: []string{"object"}, Properties: map[string]spec.Schema{ "conditions": { VendorExtensible: spec.VendorExtensible{ @@ -6991,24 +9584,30 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_RouterInterfaceStatus( }, "id": { SchemaProps: spec.SchemaProps{ - Description: "id is the unique identifier of the port created for the router interface", + Description: "id is the unique identifier of the OpenStack resource.", Type: []string{"string"}, Format: "", }, }, + "resource": { + SchemaProps: spec.SchemaProps{ + Description: "resource contains the observed state of the OpenStack resource.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupResourceStatus"), + }, + }, }, }, }, Dependencies: []string{ - "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_RouterList(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_Server(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "RouterList contains a list of Router.", + Description: "Server is the Schema for an ORC resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "kind": { @@ -7027,50 +9626,79 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_RouterList(ref common. }, "metadata": { SchemaProps: spec.SchemaProps{ - Description: "metadata contains the list metadata", + Description: "metadata contains the object metadata", Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), }, }, - "items": { + "spec": { SchemaProps: spec.SchemaProps{ - Description: "items contains a list of Router.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Router"), - }, - }, - }, + Description: "spec specifies the desired state of the resource.", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerSpec"), + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Description: "status defines the observed state of the resource.", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerStatus"), }, }, }, - Required: []string{"items"}, + Required: []string{"spec"}, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Router", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_RouterResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ServerBootVolumeSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, + Description: "ServerBootVolumeSpec defines the boot volume for boot-from-volume server creation. When specified, the server boots from this volume instead of an image.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "volumeRef": { + SchemaProps: spec.SchemaProps{ + Description: "volumeRef is a reference to a Volume object. The volume must be bootable (created from an image) and available before server creation.", + Type: []string{"string"}, + Format: "", + }, + }, + "tag": { + SchemaProps: spec.SchemaProps{ + Description: "tag is the device tag applied to the volume.", + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"volumeRef"}, + }, + }, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_ServerFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "ServerFilter defines an existing resource by its properties", + Type: []string{"object"}, Properties: map[string]spec.Schema{ "name": { SchemaProps: spec.SchemaProps{ - Description: "name is a human-readable name of the router. If not set, the object's name will be used.", + Description: "name of the existing resource", Type: []string{"string"}, Format: "", }, }, - "description": { + "availabilityZone": { SchemaProps: spec.SchemaProps{ - Description: "description is a human-readable description for the resource.", + Description: "availabilityZone is the availability zone of the existing resource", Type: []string{"string"}, Format: "", }, @@ -7082,7 +9710,7 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_RouterResourceSpec(ref }, }, SchemaProps: spec.SchemaProps{ - Description: "tags is a list of tags which will be applied to the router.", + Description: "tags is a list of tags to filter by. If specified, the resource must have all of the tags specified to be included in the result.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ @@ -7095,47 +9723,34 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_RouterResourceSpec(ref }, }, }, - "adminStateUp": { - SchemaProps: spec.SchemaProps{ - Description: "adminStateUp represents the administrative state of the resource, which is up (true) or down (false). Default is true.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "externalGateways": { + "tagsAny": { VendorExtensible: spec.VendorExtensible{ Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", + "x-kubernetes-list-type": "set", }, }, SchemaProps: spec.SchemaProps{ - Description: "externalGateways is a list of external gateways for the router. Multiple gateways are not currently supported by ORC.", + Description: "tagsAny is a list of tags to filter by. If specified, the resource must have at least one of the tags specified to be included in the result.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ExternalGateway"), + Default: "", + Type: []string{"string"}, + Format: "", }, }, }, }, }, - "distributed": { - SchemaProps: spec.SchemaProps{ - Description: "distributed indicates whether the router is distributed or not. It is available when dvr extension is enabled.", - Type: []string{"boolean"}, - Format: "", - }, - }, - "availabilityZoneHints": { + "notTags": { VendorExtensible: spec.VendorExtensible{ Extensions: spec.Extensions{ "x-kubernetes-list-type": "set", }, }, SchemaProps: spec.SchemaProps{ - Description: "availabilityZoneHints is the availability zone candidate for the router.", + Description: "notTags is a list of tags to filter by. If specified, resources which contain all of the given tags will be excluded from the result.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ @@ -7148,234 +9763,136 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_RouterResourceSpec(ref }, }, }, - "projectRef": { + "notTagsAny": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, SchemaProps: spec.SchemaProps{ - Description: "projectRef is a reference to the ORC Project this resource is associated with. Typically, only used by admin.", - Type: []string{"string"}, - Format: "", + Description: "notTagsAny is a list of tags to filter by. If specified, resources which contain any of the given tags will be excluded from the result.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, }, }, }, }, }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ExternalGateway"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_RouterResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroup(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, + Description: "ServerGroup is the Schema for an ORC resource.", + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "name is the human-readable name of the resource. Might not be unique.", - Type: []string{"string"}, - Format: "", - }, - }, - "description": { - SchemaProps: spec.SchemaProps{ - Description: "description is a human-readable description for the resource.", - Type: []string{"string"}, - Format: "", - }, - }, - "projectID": { + "kind": { SchemaProps: spec.SchemaProps{ - Description: "projectID is the project owner of the resource.", + Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", Type: []string{"string"}, Format: "", }, }, - "status": { + "apiVersion": { SchemaProps: spec.SchemaProps{ - Description: "status indicates the current status of the resource.", + Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", Type: []string{"string"}, Format: "", }, }, - "tags": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "tags is the list of tags on the resource.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "adminStateUp": { + "metadata": { SchemaProps: spec.SchemaProps{ - Description: "adminStateUp is the administrative state of the router, which is up (true) or down (false).", - Type: []string{"boolean"}, - Format: "", + Description: "metadata contains the object metadata", + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), }, }, - "externalGateways": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, + "spec": { SchemaProps: spec.SchemaProps{ - Description: "externalGateways is a list of external gateways for the router.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ExternalGatewayStatus"), - }, - }, - }, + Description: "spec specifies the desired state of the resource.", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupSpec"), }, }, - "availabilityZoneHints": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, + "status": { SchemaProps: spec.SchemaProps{ - Description: "availabilityZoneHints is the availability zone candidate for the router.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, + Description: "status defines the observed state of the resource.", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupStatus"), }, }, }, + Required: []string{"spec"}, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ExternalGatewayStatus"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_RouterSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "RouterSpec defines the desired state of an ORC object.", + Description: "ServerGroupFilter defines an existing resource by its properties", Type: []string{"object"}, Properties: map[string]spec.Schema{ - "import": { - SchemaProps: spec.SchemaProps{ - Description: "import refers to an existing OpenStack resource which will be imported instead of creating a new one.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterImport"), - }, - }, - "resource": { - SchemaProps: spec.SchemaProps{ - Description: "resource specifies the desired state of the resource.\n\nresource may not be specified if the management policy is `unmanaged`.\n\nresource must be specified if the management policy is `managed`.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterResourceSpec"), - }, - }, - "managementPolicy": { + "name": { SchemaProps: spec.SchemaProps{ - Description: "managementPolicy defines how ORC will treat the object. Valid values are `managed`: ORC will create, update, and delete the resource; `unmanaged`: ORC will import an existing resource, and will not apply updates to it or delete it.", + Description: "name of the existing resource", Type: []string{"string"}, Format: "", }, }, - "managedOptions": { - SchemaProps: spec.SchemaProps{ - Description: "managedOptions specifies options which may be applied to managed objects.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions"), - }, - }, - "cloudCredentialsRef": { - SchemaProps: spec.SchemaProps{ - Description: "cloudCredentialsRef points to a secret containing OpenStack credentials", - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference"), - }, - }, }, - Required: []string{"cloudCredentialsRef"}, }, }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterResourceSpec"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_RouterStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupImport(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "RouterStatus defines the observed state of an ORC resource.", + Description: "ServerGroupImport specifies an existing resource which will be imported instead of creating a new one", Type: []string{"object"}, Properties: map[string]spec.Schema{ - "conditions": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-map-keys": []interface{}{ - "type", - }, - "x-kubernetes-list-type": "map", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "conditions represents the observed status of the object. Known .status.conditions.type are: \"Available\", \"Progressing\"\n\nAvailable represents the availability of the OpenStack resource. If it is true then the resource is ready for use.\n\nProgressing indicates whether the controller is still attempting to reconcile the current state of the OpenStack resource to the desired state. Progressing will be False either because the desired state has been achieved, or because some terminal error prevents it from ever being achieved and the controller is no longer attempting to reconcile. If Progressing is True, an observer waiting on the resource should continue to wait.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Condition"), - }, - }, - }, - }, - }, "id": { SchemaProps: spec.SchemaProps{ - Description: "id is the unique identifier of the OpenStack resource.", + Description: "id contains the unique identifier of an existing OpenStack resource. Note that when specifying an import by ID, the resource MUST already exist. The ORC object will enter an error state if the resource does not exist.", Type: []string{"string"}, Format: "", }, }, - "resource": { + "filter": { SchemaProps: spec.SchemaProps{ - Description: "resource contains the observed state of the OpenStack resource.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterResourceStatus"), + Description: "filter contains a resource query which is expected to return a single result. The controller will continue to retry if filter returns no results. If filter returns multiple results the controller will set an error state and will not continue to retry.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupFilter"), }, }, }, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.RouterResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupFilter"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroup(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupList(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "SecurityGroup is the Schema for an ORC resource.", + Description: "ServerGroupList contains a list of ServerGroup.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "kind": { @@ -7394,140 +9911,130 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroup(ref comm }, "metadata": { SchemaProps: spec.SchemaProps{ - Description: "metadata contains the object metadata", - Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "spec specifies the desired state of the resource.", + Description: "metadata contains the list metadata", Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupSpec"), + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), }, }, - "status": { + "items": { SchemaProps: spec.SchemaProps{ - Description: "status defines the observed state of the resource.", - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupStatus"), + Description: "items contains a list of ServerGroup.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroup"), + }, + }, + }, }, }, }, - Required: []string{"spec"}, + Required: []string{"items"}, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroup", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "SecurityGroupFilter defines an existing resource by its properties", + Description: "ServerGroupResourceSpec contains the desired state of a servergroup", Type: []string{"object"}, Properties: map[string]spec.Schema{ "name": { SchemaProps: spec.SchemaProps{ - Description: "name of the existing resource", + Description: "name will be the name of the created resource. If not specified, the name of the ORC object will be used.", Type: []string{"string"}, Format: "", }, }, - "description": { + "policy": { SchemaProps: spec.SchemaProps{ - Description: "description of the existing resource", + Description: "policy is the policy to use for the server group.", Type: []string{"string"}, Format: "", }, }, - "projectRef": { + "rules": { SchemaProps: spec.SchemaProps{ - Description: "projectRef is a reference to the ORC Project this resource is associated with. Typically, only used by admin.", + Description: "rules is the rules to use for the server group.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupRules"), + }, + }, + }, + Required: []string{"policy"}, + }, + }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupRules"}, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "ServerGroupResourceStatus represents the observed state of the resource.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "name": { + SchemaProps: spec.SchemaProps{ + Description: "name is a Human-readable name for the servergroup. Might not be unique.", Type: []string{"string"}, Format: "", }, }, - "tags": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, - }, + "policy": { SchemaProps: spec.SchemaProps{ - Description: "tags is a list of tags to filter by. If specified, the resource must have all of the tags specified to be included in the result.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, + Description: "policy is the policy of the servergroup.", + Type: []string{"string"}, + Format: "", }, }, - "tagsAny": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, - }, + "projectID": { SchemaProps: spec.SchemaProps{ - Description: "tagsAny is a list of tags to filter by. If specified, the resource must have at least one of the tags specified to be included in the result.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, + Description: "projectID is the project owner of the resource.", + Type: []string{"string"}, + Format: "", }, }, - "notTags": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, - }, + "userID": { SchemaProps: spec.SchemaProps{ - Description: "notTags is a list of tags to filter by. If specified, resources which contain all of the given tags will be excluded from the result.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, + Description: "userID of the server group.", + Type: []string{"string"}, + Format: "", }, }, - "notTagsAny": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, + "rules": { + SchemaProps: spec.SchemaProps{ + Description: "rules is the rules of the server group.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupRulesStatus"), }, + }, + }, + }, + }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupRulesStatus"}, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupRules(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "maxServerPerHost": { SchemaProps: spec.SchemaProps{ - Description: "notTagsAny is a list of tags to filter by. If specified, resources which contain any of the given tags will be excluded from the result.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, + Description: "maxServerPerHost specifies how many servers can reside on a single compute host. It can be used only with the \"anti-affinity\" policy.", + Type: []string{"integer"}, + Format: "int32", }, }, }, @@ -7536,574 +10043,568 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupFilter(re } } -func schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupImport(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupRulesStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "SecurityGroupImport specifies an existing resource which will be imported instead of creating a new one", - Type: []string{"object"}, + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "id": { - SchemaProps: spec.SchemaProps{ - Description: "id contains the unique identifier of an existing OpenStack resource. Note that when specifying an import by ID, the resource MUST already exist. The ORC object will enter an error state if the resource does not exist.", - Type: []string{"string"}, - Format: "", - }, - }, - "filter": { + "maxServerPerHost": { SchemaProps: spec.SchemaProps{ - Description: "filter contains a resource query which is expected to return a single result. The controller will continue to retry if filter returns no results. If filter returns multiple results the controller will set an error state and will not continue to retry.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupFilter"), + Description: "maxServerPerHost specifies how many servers can reside on a single compute host. It can be used only with the \"anti-affinity\" policy.", + Type: []string{"integer"}, + Format: "int32", }, }, }, }, }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupFilter"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupList(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "SecurityGroupList contains a list of SecurityGroup.", + Description: "ServerGroupSpec defines the desired state of an ORC object.", Type: []string{"object"}, Properties: map[string]spec.Schema{ - "kind": { + "import": { SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", + Description: "import refers to an existing OpenStack resource which will be imported instead of creating a new one.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupImport"), }, }, - "apiVersion": { + "resource": { SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + Description: "resource specifies the desired state of the resource.\n\nresource may not be specified if the management policy is `unmanaged`.\n\nresource must be specified if the management policy is `managed`.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupResourceSpec"), + }, + }, + "managementPolicy": { + SchemaProps: spec.SchemaProps{ + Description: "managementPolicy defines how ORC will treat the object. Valid values are `managed`: ORC will create, update, and delete the resource; `unmanaged`: ORC will import an existing resource, and will not apply updates to it or delete it.", Type: []string{"string"}, Format: "", }, }, - "metadata": { + "managedOptions": { SchemaProps: spec.SchemaProps{ - Description: "metadata contains the list metadata", - Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), + Description: "managedOptions specifies options which may be applied to managed objects.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions"), }, }, - "items": { + "cloudCredentialsRef": { SchemaProps: spec.SchemaProps{ - Description: "items contains a list of SecurityGroup.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroup"), - }, - }, - }, + Description: "cloudCredentialsRef points to a secret containing OpenStack credentials", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference"), }, }, }, - Required: []string{"items"}, + Required: []string{"cloudCredentialsRef"}, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroup", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupResourceSpec"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "SecurityGroupResourceSpec contains the desired state of a security group", + Description: "ServerGroupStatus defines the observed state of an ORC resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "name will be the name of the created resource. If not specified, the name of the ORC object will be used.", - Type: []string{"string"}, - Format: "", - }, - }, - "description": { - SchemaProps: spec.SchemaProps{ - Description: "description is a human-readable description for the resource.", - Type: []string{"string"}, - Format: "", - }, - }, - "tags": { + "conditions": { VendorExtensible: spec.VendorExtensible{ Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", + "x-kubernetes-list-map-keys": []interface{}{ + "type", + }, + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge", }, }, SchemaProps: spec.SchemaProps{ - Description: "tags is a list of tags which will be applied to the security group.", + Description: "conditions represents the observed status of the object. Known .status.conditions.type are: \"Available\", \"Progressing\"\n\nAvailable represents the availability of the OpenStack resource. If it is true then the resource is ready for use.\n\nProgressing indicates whether the controller is still attempting to reconcile the current state of the OpenStack resource to the desired state. Progressing will be False either because the desired state has been achieved, or because some terminal error prevents it from ever being achieved and the controller is no longer attempting to reconcile. If Progressing is True, an observer waiting on the resource should continue to wait.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Condition"), }, }, }, }, }, - "stateful": { + "id": { SchemaProps: spec.SchemaProps{ - Description: "stateful indicates if the security group is stateful or stateless.", - Type: []string{"boolean"}, + Description: "id is the unique identifier of the OpenStack resource.", + Type: []string{"string"}, Format: "", }, }, - "rules": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, + "resource": { SchemaProps: spec.SchemaProps{ - Description: "rules is a list of security group rules belonging to this SG.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupRule"), - }, - }, - }, + Description: "resource contains the observed state of the OpenStack resource.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupResourceStatus"), }, }, - "projectRef": { + }, + }, + }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_ServerImport(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "ServerImport specifies an existing resource which will be imported instead of creating a new one", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "id": { SchemaProps: spec.SchemaProps{ - Description: "projectRef is a reference to the ORC Project this resource is associated with. Typically, only used by admin.", + Description: "id contains the unique identifier of an existing OpenStack resource. Note that when specifying an import by ID, the resource MUST already exist. The ORC object will enter an error state if the resource does not exist.", Type: []string{"string"}, Format: "", }, }, + "filter": { + SchemaProps: spec.SchemaProps{ + Description: "filter contains a resource query which is expected to return a single result. The controller will continue to retry if filter returns no results. If filter returns multiple results the controller will set an error state and will not continue to retry.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerFilter"), + }, + }, }, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupRule"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerFilter"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ServerInterfaceFixedIP(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "SecurityGroupResourceStatus represents the observed state of the resource.", - Type: []string{"object"}, + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "name": { + "ipAddress": { SchemaProps: spec.SchemaProps{ - Description: "name is a Human-readable name for the security group. Might not be unique.", + Description: "ipAddress is the IP address assigned to the port.", Type: []string{"string"}, Format: "", }, }, - "description": { + "subnetID": { SchemaProps: spec.SchemaProps{ - Description: "description is a human-readable description for the resource.", + Description: "subnetID is the ID of the subnet from which the IP address is allocated.", Type: []string{"string"}, Format: "", }, }, - "projectID": { + }, + }, + }, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_ServerInterfaceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "portID": { SchemaProps: spec.SchemaProps{ - Description: "projectID is the project owner of the security group.", + Description: "portID is the ID of a port attached to the server.", Type: []string{"string"}, Format: "", }, }, - "tags": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, + "netID": { + SchemaProps: spec.SchemaProps{ + Description: "netID is the ID of the network to which the interface is attached.", + Type: []string{"string"}, + Format: "", }, + }, + "macAddr": { SchemaProps: spec.SchemaProps{ - Description: "tags is the list of tags on the resource.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, + Description: "macAddr is the MAC address of the interface.", + Type: []string{"string"}, + Format: "", }, }, - "stateful": { + "portState": { SchemaProps: spec.SchemaProps{ - Description: "stateful indicates if the security group is stateful or stateless.", - Type: []string{"boolean"}, + Description: "portState is the state of the port (e.g., ACTIVE, DOWN).", + Type: []string{"string"}, Format: "", }, }, - "rules": { + "fixedIPs": { VendorExtensible: spec.VendorExtensible{ Extensions: spec.Extensions{ "x-kubernetes-list-type": "atomic", }, }, SchemaProps: spec.SchemaProps{ - Description: "rules is a list of security group rules belonging to this SG.", + Description: "fixedIPs is the list of fixed IP addresses assigned to the interface.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupRuleStatus"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerInterfaceFixedIP"), }, }, }, }, }, - "createdAt": { - SchemaProps: spec.SchemaProps{ - Description: "createdAt shows the date and time when the resource was created. The date and time stamp format is ISO 8601", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "updatedAt": { - SchemaProps: spec.SchemaProps{ - Description: "updatedAt shows the date and time when the resource was updated. The date and time stamp format is ISO 8601", - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), - }, - }, - "revisionNumber": { - SchemaProps: spec.SchemaProps{ - Description: "revisionNumber optionally set via extensions/standard-attr-revisions", - Type: []string{"integer"}, - Format: "int64", - }, - }, }, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupRuleStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerInterfaceFixedIP"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupRule(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ServerList(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "SecurityGroupRule defines a Security Group rule", + Description: "ServerList contains a list of Server.", Type: []string{"object"}, Properties: map[string]spec.Schema{ - "description": { - SchemaProps: spec.SchemaProps{ - Description: "description is a human-readable description for the resource.", - Type: []string{"string"}, - Format: "", - }, - }, - "direction": { - SchemaProps: spec.SchemaProps{ - Description: "direction represents the direction in which the security group rule is applied. Can be ingress or egress.", - Type: []string{"string"}, - Format: "", - }, - }, - "remoteIPPrefix": { + "kind": { SchemaProps: spec.SchemaProps{ - Description: "remoteIPPrefix is an IP address block. Should match the Ethertype (IPv4 or IPv6)", + Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", Type: []string{"string"}, Format: "", }, }, - "protocol": { + "apiVersion": { SchemaProps: spec.SchemaProps{ - Description: "protocol is the IP protocol is represented by a string", + Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", Type: []string{"string"}, Format: "", }, }, - "ethertype": { + "metadata": { SchemaProps: spec.SchemaProps{ - Description: "ethertype must be IPv4 or IPv6, and addresses represented in CIDR must match the ingress or egress rules.", - Type: []string{"string"}, - Format: "", + Description: "metadata contains the list metadata", + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), }, }, - "portRange": { + "items": { SchemaProps: spec.SchemaProps{ - Description: "portRange sets the minimum and maximum ports range that the security group rule matches. If the protocol is [tcp, udp, dccp sctp,udplite] PortRange.Min must be less than or equal to the PortRange.Max attribute value. If the protocol is ICMP, this PortRamge.Min must be an ICMP code and PortRange.Max should be an ICMP type", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortRangeSpec"), + Description: "items contains a list of Server.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Server"), + }, + }, + }, }, }, }, - Required: []string{"ethertype"}, + Required: []string{"items"}, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortRangeSpec"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Server", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupRuleStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ServerMetadata(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, + Description: "ServerMetadata represents a key-value pair for server metadata.", + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "id": { - SchemaProps: spec.SchemaProps{ - Description: "id is the ID of the security group rule.", - Type: []string{"string"}, - Format: "", - }, - }, - "description": { - SchemaProps: spec.SchemaProps{ - Description: "description is a human-readable description for the resource.", - Type: []string{"string"}, - Format: "", - }, - }, - "direction": { + "key": { SchemaProps: spec.SchemaProps{ - Description: "direction represents the direction in which the security group rule is applied. Can be ingress or egress.", + Description: "key is the metadata key.", Type: []string{"string"}, Format: "", }, }, - "remoteGroupID": { + "value": { SchemaProps: spec.SchemaProps{ - Description: "remoteGroupID is the remote group UUID to associate with this security group rule RemoteGroupID", + Description: "value is the metadata value.", Type: []string{"string"}, Format: "", }, }, - "remoteIPPrefix": { + }, + Required: []string{"key", "value"}, + }, + }, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_ServerMetadataStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "ServerMetadataStatus represents a key-value pair for server metadata in status.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "key": { SchemaProps: spec.SchemaProps{ - Description: "remoteIPPrefix is an IP address block. Should match the Ethertype (IPv4 or IPv6)", + Description: "key is the metadata key.", Type: []string{"string"}, Format: "", }, }, - "protocol": { + "value": { SchemaProps: spec.SchemaProps{ - Description: "protocol is the IP protocol can be represented by a string, an integer, or null", + Description: "value is the metadata value.", Type: []string{"string"}, Format: "", }, }, - "ethertype": { + }, + }, + }, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_ServerPortSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "portRef": { SchemaProps: spec.SchemaProps{ - Description: "ethertype must be IPv4 or IPv6, and addresses represented in CIDR must match the ingress or egress rules.", + Description: "portRef is a reference to a Port object. Server creation will wait for this port to be created and available.", Type: []string{"string"}, Format: "", }, }, - "portRange": { - SchemaProps: spec.SchemaProps{ - Description: "portRange sets the minimum and maximum ports range that the security group rule matches. If the protocol is [tcp, udp, dccp sctp,udplite] PortRange.Min must be less than or equal to the PortRange.Max attribute value. If the protocol is ICMP, this PortRamge.Min must be an ICMP code and PortRange.Max should be an ICMP type", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortRangeStatus"), - }, - }, }, }, }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.PortRangeStatus"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ServerResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "SecurityGroupSpec defines the desired state of an ORC object.", + Description: "ServerResourceSpec contains the desired state of a server", Type: []string{"object"}, Properties: map[string]spec.Schema{ - "import": { + "name": { SchemaProps: spec.SchemaProps{ - Description: "import refers to an existing OpenStack resource which will be imported instead of creating a new one.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupImport"), + Description: "name will be the name of the created resource. If not specified, the name of the ORC object will be used.", + Type: []string{"string"}, + Format: "", }, }, - "resource": { + "imageRef": { SchemaProps: spec.SchemaProps{ - Description: "resource specifies the desired state of the resource.\n\nresource may not be specified if the management policy is `unmanaged`.\n\nresource must be specified if the management policy is `managed`.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupResourceSpec"), + Description: "imageRef references the image to use for the server instance. This field is required unless bootVolume is specified for boot-from-volume.", + Type: []string{"string"}, + Format: "", }, }, - "managementPolicy": { + "flavorRef": { SchemaProps: spec.SchemaProps{ - Description: "managementPolicy defines how ORC will treat the object. Valid values are `managed`: ORC will create, update, and delete the resource; `unmanaged`: ORC will import an existing resource, and will not apply updates to it or delete it.", + Description: "flavorRef references the flavor to use for the server instance.", Type: []string{"string"}, Format: "", }, }, - "managedOptions": { + "bootVolume": { SchemaProps: spec.SchemaProps{ - Description: "managedOptions specifies options which may be applied to managed objects.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions"), + Description: "bootVolume specifies a volume to boot from instead of an image. When specified, imageRef must be omitted. The volume must be bootable (created from an image using imageRef in the Volume spec).", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerBootVolumeSpec"), }, }, - "cloudCredentialsRef": { + "userData": { SchemaProps: spec.SchemaProps{ - Description: "cloudCredentialsRef points to a secret containing OpenStack credentials", - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference"), + Description: "userData specifies data which will be made available to the server at boot time, either via the metadata service or a config drive. It is typically read by a configuration service such as cloud-init or ignition.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.UserDataSpec"), }, }, - }, - Required: []string{"cloudCredentialsRef"}, - }, - }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupResourceSpec"}, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_SecurityGroupStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "SecurityGroupStatus defines the observed state of an ORC resource.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "conditions": { + "ports": { VendorExtensible: spec.VendorExtensible{ Extensions: spec.Extensions{ - "x-kubernetes-list-map-keys": []interface{}{ - "type", - }, - "x-kubernetes-list-type": "map", - "x-kubernetes-patch-merge-key": "type", - "x-kubernetes-patch-strategy": "merge", + "x-kubernetes-list-type": "atomic", }, }, SchemaProps: spec.SchemaProps{ - Description: "conditions represents the observed status of the object. Known .status.conditions.type are: \"Available\", \"Progressing\"\n\nAvailable represents the availability of the OpenStack resource. If it is true then the resource is ready for use.\n\nProgressing indicates whether the controller is still attempting to reconcile the current state of the OpenStack resource to the desired state. Progressing will be False either because the desired state has been achieved, or because some terminal error prevents it from ever being achieved and the controller is no longer attempting to reconcile. If Progressing is True, an observer waiting on the resource should continue to wait.", + Description: "ports defines a list of ports which will be attached to the server.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Condition"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerPortSpec"), }, }, }, }, }, - "id": { - SchemaProps: spec.SchemaProps{ - Description: "id is the unique identifier of the OpenStack resource.", - Type: []string{"string"}, - Format: "", + "volumes": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, }, - }, - "resource": { SchemaProps: spec.SchemaProps{ - Description: "resource contains the observed state of the OpenStack resource.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupResourceStatus"), + Description: "volumes is a list of volumes attached to the server.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerVolumeSpec"), + }, + }, + }, }, }, - }, - }, - }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.SecurityGroupResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_Server(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "Server is the Schema for an ORC resource.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { + "availabilityZone": { SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + Description: "availabilityZone is the availability zone in which to create the server.", Type: []string{"string"}, Format: "", }, }, - "apiVersion": { + "keypairRef": { SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + Description: "keypairRef is a reference to a KeyPair object. The server will be created with this keypair for SSH access.", Type: []string{"string"}, Format: "", }, }, - "metadata": { + "tags": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, SchemaProps: spec.SchemaProps{ - Description: "metadata contains the object metadata", - Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), + Description: "tags is a list of tags which will be applied to the server.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, }, }, - "spec": { + "metadata": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, + }, SchemaProps: spec.SchemaProps{ - Description: "spec specifies the desired state of the resource.", - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerSpec"), + Description: "metadata is a list of metadata key-value pairs which will be set on the server.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerMetadata"), + }, + }, + }, + }, + }, + "configDrive": { + SchemaProps: spec.SchemaProps{ + Description: "configDrive specifies whether to attach a config drive to the server. When true, configuration data will be available via a special drive instead of the metadata service.", + Type: []string{"boolean"}, + Format: "", }, }, - "status": { + "schedulerHints": { SchemaProps: spec.SchemaProps{ - Description: "status defines the observed state of the resource.", - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerStatus"), + Description: "schedulerHints provides hints to the Nova scheduler for server placement.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerSchedulerHints"), }, }, }, - Required: []string{"spec"}, + Required: []string{"flavorRef", "ports"}, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerBootVolumeSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerMetadata", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerPortSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerSchedulerHints", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerVolumeSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.UserDataSpec"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ServerFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ServerResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "ServerFilter defines an existing resource by its properties", + Description: "ServerResourceStatus represents the observed state of the resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "name": { SchemaProps: spec.SchemaProps{ - Description: "name of the existing resource", + Description: "name is the human-readable name of the resource. Might not be unique.", + Type: []string{"string"}, + Format: "", + }, + }, + "hostID": { + SchemaProps: spec.SchemaProps{ + Description: "hostID is the host where the server is located in the cloud.", + Type: []string{"string"}, + Format: "", + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Description: "status contains the current operational status of the server, such as IN_PROGRESS or ACTIVE.", + Type: []string{"string"}, + Format: "", + }, + }, + "imageID": { + SchemaProps: spec.SchemaProps{ + Description: "imageID indicates the OS image used to deploy the server.", Type: []string{"string"}, Format: "", }, }, "availabilityZone": { SchemaProps: spec.SchemaProps{ - Description: "availabilityZone is the availability zone of the existing resource", + Description: "availabilityZone is the availability zone where the server is located.", Type: []string{"string"}, Format: "", }, }, - "tags": { + "serverGroups": { VendorExtensible: spec.VendorExtensible{ Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", + "x-kubernetes-list-type": "atomic", }, }, SchemaProps: spec.SchemaProps{ - Description: "tags is a list of tags to filter by. If specified, the resource must have all of the tags specified to be included in the result.", + Description: "serverGroups is a slice of strings containing the UUIDs of the server groups to which the server belongs. Currently this can contain at most one entry.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ @@ -8116,54 +10617,52 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_ServerFilter(ref commo }, }, }, - "tagsAny": { + "volumes": { VendorExtensible: spec.VendorExtensible{ Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", + "x-kubernetes-list-type": "atomic", }, }, SchemaProps: spec.SchemaProps{ - Description: "tagsAny is a list of tags to filter by. If specified, the resource must have at least one of the tags specified to be included in the result.", + Description: "volumes contains the volumes attached to the server.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerVolumeStatus"), }, }, }, }, }, - "notTags": { + "interfaces": { VendorExtensible: spec.VendorExtensible{ Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", + "x-kubernetes-list-type": "atomic", }, }, SchemaProps: spec.SchemaProps{ - Description: "notTags is a list of tags to filter by. If specified, resources which contain all of the given tags will be excluded from the result.", + Description: "interfaces contains the list of interfaces attached to the server.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerInterfaceStatus"), }, }, }, }, }, - "notTagsAny": { + "tags": { VendorExtensible: spec.VendorExtensible{ Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", + "x-kubernetes-list-type": "atomic", }, }, SchemaProps: spec.SchemaProps{ - Description: "notTagsAny is a list of tags to filter by. If specified, resources which contain any of the given tags will be excluded from the result.", + Description: "tags is the list of tags on the resource.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ @@ -8176,277 +10675,149 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_ServerFilter(ref commo }, }, }, - }, - }, - }, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroup(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ServerGroup is the Schema for an ORC resource.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, - "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "metadata contains the object metadata", - Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), - }, - }, - "spec": { - SchemaProps: spec.SchemaProps{ - Description: "spec specifies the desired state of the resource.", - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupSpec"), - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "status defines the observed state of the resource.", - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupStatus"), - }, - }, - }, - Required: []string{"spec"}, - }, - }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ServerGroupFilter defines an existing resource by its properties", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "name of the existing resource", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupImport(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ServerGroupImport specifies an existing resource which will be imported instead of creating a new one", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "id": { - SchemaProps: spec.SchemaProps{ - Description: "id contains the unique identifier of an existing OpenStack resource. Note that when specifying an import by ID, the resource MUST already exist. The ORC object will enter an error state if the resource does not exist.", - Type: []string{"string"}, - Format: "", - }, - }, - "filter": { - SchemaProps: spec.SchemaProps{ - Description: "filter contains a resource query which is expected to return a single result. The controller will continue to retry if filter returns no results. If filter returns multiple results the controller will set an error state and will not continue to retry.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupFilter"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupFilter"}, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupList(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ServerGroupList contains a list of ServerGroup.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "kind": { - SchemaProps: spec.SchemaProps{ - Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - Type: []string{"string"}, - Format: "", - }, - }, - "apiVersion": { - SchemaProps: spec.SchemaProps{ - Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - Type: []string{"string"}, - Format: "", - }, - }, "metadata": { - SchemaProps: spec.SchemaProps{ - Description: "metadata contains the list metadata", - Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, }, - }, - "items": { SchemaProps: spec.SchemaProps{ - Description: "items contains a list of ServerGroup.", + Description: "metadata is the list of metadata key-value pairs on the resource.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroup"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerMetadataStatus"), }, }, }, }, }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroup", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ServerGroupResourceSpec contains the desired state of a servergroup", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "name will be the name of the created resource. If not specified, the name of the ORC object will be used.", - Type: []string{"string"}, - Format: "", - }, - }, - "policy": { + "configDrive": { SchemaProps: spec.SchemaProps{ - Description: "policy is the policy to use for the server group.", - Type: []string{"string"}, + Description: "configDrive indicates whether the server was booted with a config drive.", + Type: []string{"boolean"}, Format: "", }, }, - "rules": { - SchemaProps: spec.SchemaProps{ - Description: "rules is the rules to use for the server group.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupRules"), - }, - }, }, - Required: []string{"policy"}, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupRules"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerInterfaceStatus", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerMetadataStatus", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerVolumeStatus"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ServerSchedulerHints(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "ServerGroupResourceStatus represents the observed state of the resource.", + Description: "ServerSchedulerHints provides hints to the Nova scheduler for server placement.", Type: []string{"object"}, Properties: map[string]spec.Schema{ - "name": { + "serverGroupRef": { SchemaProps: spec.SchemaProps{ - Description: "name is a Human-readable name for the servergroup. Might not be unique.", + Description: "serverGroupRef is a reference to a ServerGroup object. The server will be scheduled on a host in the specified server group.", Type: []string{"string"}, Format: "", }, }, - "policy": { + "differentHostServerRefs": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, SchemaProps: spec.SchemaProps{ - Description: "policy is the policy of the servergroup.", - Type: []string{"string"}, - Format: "", + Description: "differentHostServerRefs is a list of references to Server objects. The server will be scheduled on a different host than all specified servers.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, }, }, - "projectID": { + "sameHostServerRefs": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, SchemaProps: spec.SchemaProps{ - Description: "projectID is the project owner of the resource.", + Description: "sameHostServerRefs is a list of references to Server objects. The server will be scheduled on the same host as all specified servers.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "query": { + SchemaProps: spec.SchemaProps{ + Description: "query is a conditional statement that results in compute nodes able to host the server.", Type: []string{"string"}, Format: "", }, }, - "userID": { + "targetCell": { SchemaProps: spec.SchemaProps{ - Description: "userID of the server group.", + Description: "targetCell is a cell name where the server will be placed.", Type: []string{"string"}, Format: "", }, }, - "rules": { + "differentCell": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "set", + }, + }, SchemaProps: spec.SchemaProps{ - Description: "rules is the rules of the server group.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupRulesStatus"), + Description: "differentCell is a list of cell names where the server should not be placed.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, }, }, - }, - }, - }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupRulesStatus"}, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupRules(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "maxServerPerHost": { + "buildNearHostIP": { SchemaProps: spec.SchemaProps{ - Description: "maxServerPerHost specifies how many servers can reside on a single compute host. It can be used only with the \"anti-affinity\" policy.", - Type: []string{"integer"}, - Format: "int32", + Description: "buildNearHostIP specifies a subnet of compute nodes to host the server. The host IP should be provided in an CIDR format like 10.10.10.10/24.", + Type: []string{"string"}, + Format: "", }, }, - }, - }, - }, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupRulesStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "maxServerPerHost": { + "additionalProperties": { SchemaProps: spec.SchemaProps{ - Description: "maxServerPerHost specifies how many servers can reside on a single compute host. It can be used only with the \"anti-affinity\" policy.", - Type: []string{"integer"}, - Format: "int32", + Description: "additionalProperties is a map of arbitrary key/value pairs that are not validated by Nova.", + Type: []string{"object"}, + AdditionalProperties: &spec.SchemaOrBool{ + Allows: true, + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, }, }, }, @@ -8455,23 +10826,23 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupRulesStatus } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ServerSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "ServerGroupSpec defines the desired state of an ORC object.", + Description: "ServerSpec defines the desired state of an ORC object.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "import": { SchemaProps: spec.SchemaProps{ Description: "import refers to an existing OpenStack resource which will be imported instead of creating a new one.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupImport"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerImport"), }, }, "resource": { SchemaProps: spec.SchemaProps{ Description: "resource specifies the desired state of the resource.\n\nresource may not be specified if the management policy is `unmanaged`.\n\nresource must be specified if the management policy is `managed`.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupResourceSpec"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerResourceSpec"), }, }, "managementPolicy": { @@ -8499,15 +10870,15 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupSpec(ref co }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupResourceSpec"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerResourceSpec"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ServerStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "ServerGroupStatus defines the observed state of an ORC resource.", + Description: "ServerStatus defines the observed state of an ORC resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "conditions": { @@ -8544,137 +10915,68 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_ServerGroupStatus(ref "resource": { SchemaProps: spec.SchemaProps{ Description: "resource contains the observed state of the OpenStack resource.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupResourceStatus"), - }, - }, - }, - }, - }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerGroupResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_ServerImport(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ServerImport specifies an existing resource which will be imported instead of creating a new one", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "id": { - SchemaProps: spec.SchemaProps{ - Description: "id contains the unique identifier of an existing OpenStack resource. Note that when specifying an import by ID, the resource MUST already exist. The ORC object will enter an error state if the resource does not exist.", - Type: []string{"string"}, - Format: "", - }, - }, - "filter": { - SchemaProps: spec.SchemaProps{ - Description: "filter contains a resource query which is expected to return a single result. The controller will continue to retry if filter returns no results. If filter returns multiple results the controller will set an error state and will not continue to retry.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerFilter"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerResourceStatus"), }, }, }, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerFilter"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ServerInterfaceFixedIP(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ServerVolumeSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ Type: []string{"object"}, Properties: map[string]spec.Schema{ - "ipAddress": { + "volumeRef": { SchemaProps: spec.SchemaProps{ - Description: "ipAddress is the IP address assigned to the port.", + Description: "volumeRef is a reference to a Volume object. Server creation will wait for this volume to be created and available.", Type: []string{"string"}, Format: "", }, }, - "subnetID": { + "device": { SchemaProps: spec.SchemaProps{ - Description: "subnetID is the ID of the subnet from which the IP address is allocated.", + Description: "device is the name of the device, such as `/dev/vdb`. Omit for auto-assignment", Type: []string{"string"}, Format: "", }, }, }, + Required: []string{"volumeRef"}, }, }, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ServerInterfaceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ServerVolumeStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ Type: []string{"object"}, Properties: map[string]spec.Schema{ - "portID": { - SchemaProps: spec.SchemaProps{ - Description: "portID is the ID of a port attached to the server.", - Type: []string{"string"}, - Format: "", - }, - }, - "netID": { - SchemaProps: spec.SchemaProps{ - Description: "netID is the ID of the network to which the interface is attached.", - Type: []string{"string"}, - Format: "", - }, - }, - "macAddr": { - SchemaProps: spec.SchemaProps{ - Description: "macAddr is the MAC address of the interface.", - Type: []string{"string"}, - Format: "", - }, - }, - "portState": { + "id": { SchemaProps: spec.SchemaProps{ - Description: "portState is the state of the port (e.g., ACTIVE, DOWN).", + Description: "id is the ID of a volume attached to the server.", Type: []string{"string"}, Format: "", }, }, - "fixedIPs": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "fixedIPs is the list of fixed IP addresses assigned to the interface.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerInterfaceFixedIP"), - }, - }, - }, - }, - }, }, }, }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerInterfaceFixedIP"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ServerList(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_Service(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "ServerList contains a list of Server.", + Description: "Service is the Schema for an ORC resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "kind": { @@ -8693,79 +10995,51 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_ServerList(ref common. }, "metadata": { SchemaProps: spec.SchemaProps{ - Description: "metadata contains the list metadata", + Description: "metadata contains the object metadata", Default: map[string]interface{}{}, - Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), - }, - }, - "items": { - SchemaProps: spec.SchemaProps{ - Description: "items contains a list of Server.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Server"), - }, - }, - }, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), }, }, - }, - Required: []string{"items"}, - }, - }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Server", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_ServerMetadata(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Description: "ServerMetadata represents a key-value pair for server metadata.", - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "key": { - SchemaProps: spec.SchemaProps{ - Description: "key is the metadata key.", - Type: []string{"string"}, - Format: "", + "spec": { + SchemaProps: spec.SchemaProps{ + Description: "spec specifies the desired state of the resource.", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceSpec"), }, }, - "value": { + "status": { SchemaProps: spec.SchemaProps{ - Description: "value is the metadata value.", - Type: []string{"string"}, - Format: "", + Description: "status defines the observed state of the resource.", + Default: map[string]interface{}{}, + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceStatus"), }, }, }, - Required: []string{"key", "value"}, + Required: []string{"spec"}, }, }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ServerMetadataStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ServiceFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "ServerMetadataStatus represents a key-value pair for server metadata in status.", + Description: "ServiceFilter defines an existing resource by its properties", Type: []string{"object"}, Properties: map[string]spec.Schema{ - "key": { + "name": { SchemaProps: spec.SchemaProps{ - Description: "key is the metadata key.", + Description: "name of the existing resource", Type: []string{"string"}, Format: "", }, }, - "value": { + "type": { SchemaProps: spec.SchemaProps{ - Description: "value is the metadata value.", + Description: "type of the existing resource", Type: []string{"string"}, Format: "", }, @@ -8776,315 +11050,158 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_ServerMetadataStatus(r } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ServerPortSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ServiceImport(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, + Description: "ServiceImport specifies an existing resource which will be imported instead of creating a new one", + Type: []string{"object"}, Properties: map[string]spec.Schema{ - "portRef": { + "id": { SchemaProps: spec.SchemaProps{ - Description: "portRef is a reference to a Port object. Server creation will wait for this port to be created and available.", + Description: "id contains the unique identifier of an existing OpenStack resource. Note that when specifying an import by ID, the resource MUST already exist. The ORC object will enter an error state if the resource does not exist.", Type: []string{"string"}, Format: "", }, }, + "filter": { + SchemaProps: spec.SchemaProps{ + Description: "filter contains a resource query which is expected to return a single result. The controller will continue to retry if filter returns no results. If filter returns multiple results the controller will set an error state and will not continue to retry.", + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceFilter"), + }, + }, }, }, }, + Dependencies: []string{ + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceFilter"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ServerResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ServiceList(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "ServerResourceSpec contains the desired state of a server", + Description: "ServiceList contains a list of Service.", Type: []string{"object"}, Properties: map[string]spec.Schema{ - "name": { - SchemaProps: spec.SchemaProps{ - Description: "name will be the name of the created resource. If not specified, the name of the ORC object will be used.", - Type: []string{"string"}, - Format: "", - }, - }, - "imageRef": { - SchemaProps: spec.SchemaProps{ - Description: "imageRef references the image to use for the server instance. NOTE: This is not required in case of boot from volume.", - Type: []string{"string"}, - Format: "", - }, - }, - "flavorRef": { - SchemaProps: spec.SchemaProps{ - Description: "flavorRef references the flavor to use for the server instance.", - Type: []string{"string"}, - Format: "", - }, - }, - "userData": { - SchemaProps: spec.SchemaProps{ - Description: "userData specifies data which will be made available to the server at boot time, either via the metadata service or a config drive. It is typically read by a configuration service such as cloud-init or ignition.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.UserDataSpec"), - }, - }, - "ports": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "ports defines a list of ports which will be attached to the server.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerPortSpec"), - }, - }, - }, - }, - }, - "volumes": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "volumes is a list of volumes attached to the server.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerVolumeSpec"), - }, - }, - }, - }, - }, - "serverGroupRef": { - SchemaProps: spec.SchemaProps{ - Description: "serverGroupRef is a reference to a ServerGroup object. The server will be created in the server group.", - Type: []string{"string"}, - Format: "", - }, - }, - "availabilityZone": { + "kind": { SchemaProps: spec.SchemaProps{ - Description: "availabilityZone is the availability zone in which to create the server.", + Description: "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", Type: []string{"string"}, Format: "", }, }, - "keypairRef": { + "apiVersion": { SchemaProps: spec.SchemaProps{ - Description: "keypairRef is a reference to a KeyPair object. The server will be created with this keypair for SSH access.", + Description: "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", Type: []string{"string"}, Format: "", }, }, - "tags": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "set", - }, - }, + "metadata": { SchemaProps: spec.SchemaProps{ - Description: "tags is a list of tags which will be applied to the server.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, + Description: "metadata contains the list metadata", + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), }, }, - "metadata": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, + "items": { SchemaProps: spec.SchemaProps{ - Description: "metadata is a list of metadata key-value pairs which will be set on the server.", + Description: "items contains a list of Service.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerMetadata"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Service"), }, }, }, }, }, - "configDrive": { - SchemaProps: spec.SchemaProps{ - Description: "configDrive specifies whether to attach a config drive to the server. When true, configuration data will be available via a special drive instead of the metadata service.", - Type: []string{"boolean"}, - Format: "", - }, - }, }, - Required: []string{"imageRef", "flavorRef", "ports"}, + Required: []string{"items"}, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerMetadata", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerPortSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerVolumeSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.UserDataSpec"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Service", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ServerResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ServiceResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "ServerResourceStatus represents the observed state of the resource.", + Description: "ServiceResourceSpec contains the desired state of the resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "name": { SchemaProps: spec.SchemaProps{ - Description: "name is the human-readable name of the resource. Might not be unique.", - Type: []string{"string"}, - Format: "", - }, - }, - "hostID": { - SchemaProps: spec.SchemaProps{ - Description: "hostID is the host where the server is located in the cloud.", - Type: []string{"string"}, - Format: "", - }, - }, - "status": { - SchemaProps: spec.SchemaProps{ - Description: "status contains the current operational status of the server, such as IN_PROGRESS or ACTIVE.", - Type: []string{"string"}, - Format: "", - }, - }, - "imageID": { - SchemaProps: spec.SchemaProps{ - Description: "imageID indicates the OS image used to deploy the server.", + Description: "name indicates the name of service. If not specified, the name of the ORC resource will be used.", Type: []string{"string"}, Format: "", }, }, - "availabilityZone": { + "description": { SchemaProps: spec.SchemaProps{ - Description: "availabilityZone is the availability zone where the server is located.", + Description: "description indicates the description of service.", Type: []string{"string"}, Format: "", }, - }, - "serverGroups": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "serverGroups is a slice of strings containing the UUIDs of the server groups to which the server belongs. Currently this can contain at most one entry.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, - "volumes": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "volumes contains the volumes attached to the server.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerVolumeStatus"), - }, - }, - }, - }, - }, - "interfaces": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, - }, - SchemaProps: spec.SchemaProps{ - Description: "interfaces contains the list of interfaces attached to the server.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerInterfaceStatus"), - }, - }, - }, + }, + "type": { + SchemaProps: spec.SchemaProps{ + Description: "type indicates which resource the service is responsible for.", + Type: []string{"string"}, + Format: "", }, }, - "tags": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, + "enabled": { + SchemaProps: spec.SchemaProps{ + Description: "enabled indicates whether the service is enabled or not.", + Type: []string{"boolean"}, + Format: "", }, + }, + }, + Required: []string{"type"}, + }, + }, + } +} + +func schema_openstack_resource_controller_v2_api_v1alpha1_ServiceResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "ServiceResourceStatus represents the observed state of the resource.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "name": { SchemaProps: spec.SchemaProps{ - Description: "tags is the list of tags on the resource.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: "", - Type: []string{"string"}, - Format: "", - }, - }, - }, + Description: "name indicates the name of service.", + Type: []string{"string"}, + Format: "", }, }, - "metadata": { - VendorExtensible: spec.VendorExtensible{ - Extensions: spec.Extensions{ - "x-kubernetes-list-type": "atomic", - }, + "description": { + SchemaProps: spec.SchemaProps{ + Description: "description indicates the description of service.", + Type: []string{"string"}, + Format: "", }, + }, + "type": { SchemaProps: spec.SchemaProps{ - Description: "metadata is the list of metadata key-value pairs on the resource.", - Type: []string{"array"}, - Items: &spec.SchemaOrArray{ - Schema: &spec.Schema{ - SchemaProps: spec.SchemaProps{ - Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerMetadataStatus"), - }, - }, - }, + Description: "type indicates which resource the service is responsible for.", + Type: []string{"string"}, + Format: "", }, }, - "configDrive": { + "enabled": { SchemaProps: spec.SchemaProps{ - Description: "configDrive indicates whether the server was booted with a config drive.", + Description: "enabled indicates whether the service is enabled or not.", Type: []string{"boolean"}, Format: "", }, @@ -9092,28 +11209,26 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_ServerResourceStatus(r }, }, }, - Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerInterfaceStatus", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerMetadataStatus", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerVolumeStatus"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ServerSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ServiceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "ServerSpec defines the desired state of an ORC object.", + Description: "ServiceSpec defines the desired state of an ORC object.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "import": { SchemaProps: spec.SchemaProps{ Description: "import refers to an existing OpenStack resource which will be imported instead of creating a new one.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerImport"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceImport"), }, }, "resource": { SchemaProps: spec.SchemaProps{ Description: "resource specifies the desired state of the resource.\n\nresource may not be specified if the management policy is `unmanaged`.\n\nresource must be specified if the management policy is `managed`.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerResourceSpec"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceResourceSpec"), }, }, "managementPolicy": { @@ -9141,15 +11256,15 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_ServerSpec(ref common. }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerResourceSpec"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceResourceSpec"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ServerStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ServiceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "ServerStatus defines the observed state of an ORC resource.", + Description: "ServiceStatus defines the observed state of an ORC resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "conditions": { @@ -9186,68 +11301,22 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_ServerStatus(ref commo "resource": { SchemaProps: spec.SchemaProps{ Description: "resource contains the observed state of the OpenStack resource.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerResourceStatus"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceResourceStatus"), }, }, }, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServerResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_ServerVolumeSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "volumeRef": { - SchemaProps: spec.SchemaProps{ - Description: "volumeRef is a reference to a Volume object. Server creation will wait for this volume to be created and available.", - Type: []string{"string"}, - Format: "", - }, - }, - "device": { - SchemaProps: spec.SchemaProps{ - Description: "device is the name of the device, such as `/dev/vdb`. Omit for auto-assignment", - Type: []string{"string"}, - Format: "", - }, - }, - }, - Required: []string{"volumeRef"}, - }, - }, - } -} - -func schema_openstack_resource_controller_v2_api_v1alpha1_ServerVolumeStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { - return common.OpenAPIDefinition{ - Schema: spec.Schema{ - SchemaProps: spec.SchemaProps{ - Type: []string{"object"}, - Properties: map[string]spec.Schema{ - "id": { - SchemaProps: spec.SchemaProps{ - Description: "id is the ID of a volume attached to the server.", - Type: []string{"string"}, - Format: "", - }, - }, - }, - }, - }, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_Service(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ShareNetwork(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "Service is the Schema for an ORC resource.", + Description: "ShareNetwork is the Schema for an ORC resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "kind": { @@ -9275,14 +11344,14 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_Service(ref common.Ref SchemaProps: spec.SchemaProps{ Description: "spec specifies the desired state of the resource.", Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceSpec"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ShareNetworkSpec"), }, }, "status": { SchemaProps: spec.SchemaProps{ Description: "status defines the observed state of the resource.", Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceStatus"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ShareNetworkStatus"), }, }, }, @@ -9290,15 +11359,15 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_Service(ref common.Ref }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ShareNetworkSpec", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ShareNetworkStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ServiceFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ShareNetworkFilter(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "ServiceFilter defines an existing resource by its properties", + Description: "ShareNetworkFilter defines an existing resource by its properties", Type: []string{"object"}, Properties: map[string]spec.Schema{ "name": { @@ -9308,9 +11377,9 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_ServiceFilter(ref comm Format: "", }, }, - "type": { + "description": { SchemaProps: spec.SchemaProps{ - Description: "type of the existing resource", + Description: "description of the existing resource", Type: []string{"string"}, Format: "", }, @@ -9321,11 +11390,11 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_ServiceFilter(ref comm } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ServiceImport(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ShareNetworkImport(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "ServiceImport specifies an existing resource which will be imported instead of creating a new one", + Description: "ShareNetworkImport specifies an existing resource which will be imported instead of creating a new one", Type: []string{"object"}, Properties: map[string]spec.Schema{ "id": { @@ -9338,22 +11407,22 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_ServiceImport(ref comm "filter": { SchemaProps: spec.SchemaProps{ Description: "filter contains a resource query which is expected to return a single result. The controller will continue to retry if filter returns no results. If filter returns multiple results the controller will set an error state and will not continue to retry.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceFilter"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ShareNetworkFilter"), }, }, }, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceFilter"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ShareNetworkFilter"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ServiceList(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ShareNetworkList(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "ServiceList contains a list of Service.", + Description: "ShareNetworkList contains a list of ShareNetwork.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "kind": { @@ -9379,13 +11448,13 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_ServiceList(ref common }, "items": { SchemaProps: spec.SchemaProps{ - Description: "items contains a list of Service.", + Description: "items contains a list of ShareNetwork.", Type: []string{"array"}, Items: &spec.SchemaOrArray{ Schema: &spec.Schema{ SchemaProps: spec.SchemaProps{ Default: map[string]interface{}{}, - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Service"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ShareNetwork"), }, }, }, @@ -9396,110 +11465,159 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_ServiceList(ref common }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.Service", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ShareNetwork", "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ServiceResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ShareNetworkResourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "ServiceResourceSpec contains the desired state of the resource.", + Description: "ShareNetworkResourceSpec contains the desired state of the resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "name": { SchemaProps: spec.SchemaProps{ - Description: "name indicates the name of service. If not specified, the name of the ORC resource will be used.", + Description: "name will be the name of the created resource. If not specified, the name of the ORC object will be used.", Type: []string{"string"}, Format: "", }, }, "description": { SchemaProps: spec.SchemaProps{ - Description: "description indicates the description of service.", + Description: "description is a human-readable description for the resource.", Type: []string{"string"}, Format: "", }, }, - "type": { + "networkRef": { SchemaProps: spec.SchemaProps{ - Description: "type indicates which resource the service is responsible for.", + Description: "networkRef is a reference to the ORC Network which this resource is associated with.", Type: []string{"string"}, Format: "", }, }, - "enabled": { + "subnetRef": { SchemaProps: spec.SchemaProps{ - Description: "enabled indicates whether the service is enabled or not.", - Type: []string{"boolean"}, + Description: "subnetRef is a reference to the ORC Subnet which this resource is associated with.", + Type: []string{"string"}, Format: "", }, }, }, - Required: []string{"type"}, }, }, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ServiceResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ShareNetworkResourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "ServiceResourceStatus represents the observed state of the resource.", + Description: "ShareNetworkResourceStatus represents the observed state of the resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "name": { SchemaProps: spec.SchemaProps{ - Description: "name indicates the name of service.", + Description: "name is a Human-readable name for the resource.", Type: []string{"string"}, Format: "", }, }, "description": { SchemaProps: spec.SchemaProps{ - Description: "description indicates the description of service.", + Description: "description is a human-readable description for the resource.", Type: []string{"string"}, Format: "", }, }, - "type": { + "neutronNetID": { SchemaProps: spec.SchemaProps{ - Description: "type indicates which resource the service is responsible for.", + Description: "neutronNetID is the Neutron network ID.", Type: []string{"string"}, Format: "", }, }, - "enabled": { + "neutronSubnetID": { SchemaProps: spec.SchemaProps{ - Description: "enabled indicates whether the service is enabled or not.", - Type: []string{"boolean"}, + Description: "neutronSubnetID is the Neutron subnet ID.", + Type: []string{"string"}, + Format: "", + }, + }, + "networkType": { + SchemaProps: spec.SchemaProps{ + Description: "networkType is the network type (e.g., vlan, vxlan, flat).", + Type: []string{"string"}, + Format: "", + }, + }, + "segmentationID": { + SchemaProps: spec.SchemaProps{ + Description: "segmentationID is the segmentation ID of the network.", + Type: []string{"integer"}, + Format: "int32", + }, + }, + "cidr": { + SchemaProps: spec.SchemaProps{ + Description: "cidr is the CIDR of the subnet.", + Default: "", + Type: []string{"string"}, Format: "", }, }, + "ipVersion": { + SchemaProps: spec.SchemaProps{ + Description: "ipVersion is the IP version (4 or 6).", + Type: []string{"integer"}, + Format: "int32", + }, + }, + "projectID": { + SchemaProps: spec.SchemaProps{ + Description: "projectID is the ID of the project that owns the share network.", + Type: []string{"string"}, + Format: "", + }, + }, + "createdAt": { + SchemaProps: spec.SchemaProps{ + Description: "createdAt shows the date and time when the resource was created.", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + "updatedAt": { + SchemaProps: spec.SchemaProps{ + Description: "updatedAt shows the date and time when the resource was updated.", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, }, }, }, + Dependencies: []string{ + "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ServiceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ShareNetworkSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "ServiceSpec defines the desired state of an ORC object.", + Description: "ShareNetworkSpec defines the desired state of an ORC object.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "import": { SchemaProps: spec.SchemaProps{ Description: "import refers to an existing OpenStack resource which will be imported instead of creating a new one.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceImport"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ShareNetworkImport"), }, }, "resource": { SchemaProps: spec.SchemaProps{ Description: "resource specifies the desired state of the resource.\n\nresource may not be specified if the management policy is `unmanaged`.\n\nresource must be specified if the management policy is `managed`.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceResourceSpec"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ShareNetworkResourceSpec"), }, }, "managementPolicy": { @@ -9527,15 +11645,15 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_ServiceSpec(ref common }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceResourceSpec"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.CloudCredentialsReference", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ManagedOptions", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ShareNetworkImport", "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ShareNetworkResourceSpec"}, } } -func schema_openstack_resource_controller_v2_api_v1alpha1_ServiceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { +func schema_openstack_resource_controller_v2_api_v1alpha1_ShareNetworkStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ SchemaProps: spec.SchemaProps{ - Description: "ServiceStatus defines the observed state of an ORC resource.", + Description: "ShareNetworkStatus defines the observed state of an ORC resource.", Type: []string{"object"}, Properties: map[string]spec.Schema{ "conditions": { @@ -9572,14 +11690,14 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_ServiceStatus(ref comm "resource": { SchemaProps: spec.SchemaProps{ Description: "resource contains the observed state of the OpenStack resource.", - Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceResourceStatus"), + Ref: ref("github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ShareNetworkResourceStatus"), }, }, }, }, }, Dependencies: []string{ - "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ServiceResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, + "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1.ShareNetworkResourceStatus", "k8s.io/apimachinery/pkg/apis/meta/v1.Condition"}, } } @@ -11212,6 +13330,13 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_UserResourceSpec(ref c Format: "", }, }, + "passwordRef": { + SchemaProps: spec.SchemaProps{ + Description: "passwordRef is a reference to a Secret containing the password for this user. The Secret must contain a key named \"password\". If not specified, the user is created without a password.", + Type: []string{"string"}, + Format: "", + }, + }, }, }, }, @@ -11260,6 +13385,20 @@ func schema_openstack_resource_controller_v2_api_v1alpha1_UserResourceStatus(ref Format: "", }, }, + "passwordExpiresAt": { + SchemaProps: spec.SchemaProps{ + Description: "passwordExpiresAt is the timestamp at which the user's password expires.", + Type: []string{"string"}, + Format: "", + }, + }, + "appliedPasswordRef": { + SchemaProps: spec.SchemaProps{ + Description: "appliedPasswordRef is the name of the Secret containing the password that was last applied to the OpenStack resource.", + Type: []string{"string"}, + Format: "", + }, + }, }, }, }, diff --git a/cmd/resource-generator/main.go b/cmd/resource-generator/main.go index 609bf9084..78416e813 100644 --- a/cmd/resource-generator/main.go +++ b/cmd/resource-generator/main.go @@ -180,6 +180,9 @@ var resources []templateFields = []templateFields{ { Name: "ApplicationCredential", }, + { + Name: "LoadBalancer", + }, } // These resources won't be generated diff --git a/config/crd/bases/openstack.k-orc.cloud_loadbalancers.yaml b/config/crd/bases/openstack.k-orc.cloud_loadbalancers.yaml new file mode 100644 index 000000000..3495fc266 --- /dev/null +++ b/config/crd/bases/openstack.k-orc.cloud_loadbalancers.yaml @@ -0,0 +1,528 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.20.1 + name: loadbalancers.openstack.k-orc.cloud +spec: + group: openstack.k-orc.cloud + names: + categories: + - openstack + kind: LoadBalancer + listKind: LoadBalancerList + plural: loadbalancers + singular: loadbalancer + scope: Namespaced + versions: + - additionalPrinterColumns: + - description: Resource ID + jsonPath: .status.id + name: ID + type: string + - description: Availability status of resource + jsonPath: .status.conditions[?(@.type=='Available')].status + name: Available + type: string + - description: Message describing current progress status + jsonPath: .status.conditions[?(@.type=='Progressing')].message + name: Message + type: string + name: v1alpha1 + schema: + openAPIV3Schema: + description: LoadBalancer is the Schema for an ORC resource. + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: spec specifies the desired state of the resource. + properties: + cloudCredentialsRef: + description: cloudCredentialsRef points to a secret containing OpenStack + credentials + properties: + cloudName: + description: cloudName specifies the name of the entry in the + clouds.yaml file to use. + maxLength: 256 + minLength: 1 + type: string + secretName: + description: |- + secretName is the name of a secret in the same namespace as the resource being provisioned. + The secret must contain a key named `clouds.yaml` which contains an OpenStack clouds.yaml file. + The secret may optionally contain a key named `cacert` containing a PEM-encoded CA certificate. + maxLength: 253 + minLength: 1 + type: string + required: + - cloudName + - secretName + type: object + import: + description: |- + import refers to an existing OpenStack resource which will be imported instead of + creating a new one. + maxProperties: 1 + minProperties: 1 + properties: + filter: + description: |- + filter contains a resource query which is expected to return a single + result. The controller will continue to retry if filter returns no + results. If filter returns multiple results the controller will set an + error state and will not continue to retry. + minProperties: 1 + properties: + availabilityZone: + description: availabilityZone is the availability zone in + which to create the load balancer. + maxLength: 255 + type: string + description: + description: description of the existing resource + maxLength: 255 + minLength: 1 + type: string + name: + description: name of the existing resource + maxLength: 255 + minLength: 1 + pattern: ^[^,]+$ + type: string + notTags: + description: |- + notTags is a list of tags to filter by. If specified, resources which + contain all of the given tags will be excluded from the result. + items: + maxLength: 255 + minLength: 1 + type: string + maxItems: 64 + type: array + x-kubernetes-list-type: set + notTagsAny: + description: |- + notTagsAny is a list of tags to filter by. If specified, resources + which contain any of the given tags will be excluded from the result. + items: + maxLength: 255 + minLength: 1 + type: string + maxItems: 64 + type: array + x-kubernetes-list-type: set + projectRef: + description: |- + projectRef is a reference to the ORC Project this resource is associated with. + Typically, only used by admin. + maxLength: 253 + minLength: 1 + type: string + provider: + description: provider filters by the name of the load balancer + provider. + maxLength: 255 + type: string + tags: + description: |- + tags is a list of tags to filter by. If specified, the resource must + have all of the tags specified to be included in the result. + items: + maxLength: 255 + minLength: 1 + type: string + maxItems: 64 + type: array + x-kubernetes-list-type: set + tagsAny: + description: |- + tagsAny is a list of tags to filter by. If specified, the resource + must have at least one of the tags specified to be included in the + result. + items: + maxLength: 255 + minLength: 1 + type: string + maxItems: 64 + type: array + x-kubernetes-list-type: set + vipAddress: + description: vipAddress filters by the IP address of the load + balancer's VIP. + maxLength: 64 + type: string + vipNetworkRef: + description: vipNetworkRef filters by the network on which + the load balancer's address is allocated. + maxLength: 253 + minLength: 1 + type: string + vipPortRef: + description: vipPortRef filters by the neutron port used for + the VIP. + maxLength: 253 + minLength: 1 + type: string + vipSubnetRef: + description: vipSubnetRef filters by the subnet on which the + load balancer's address is allocated. + maxLength: 253 + minLength: 1 + type: string + type: object + id: + description: |- + id contains the unique identifier of an existing OpenStack resource. Note + that when specifying an import by ID, the resource MUST already exist. + The ORC object will enter an error state if the resource does not exist. + format: uuid + maxLength: 36 + type: string + type: object + managedOptions: + description: managedOptions specifies options which may be applied + to managed objects. + properties: + onDelete: + default: delete + description: |- + onDelete specifies the behaviour of the controller when the ORC + object is deleted. Options are `delete` - delete the OpenStack resource; + `detach` - do not delete the OpenStack resource. If not specified, the + default is `delete`. + enum: + - delete + - detach + type: string + type: object + managementPolicy: + default: managed + description: |- + managementPolicy defines how ORC will treat the object. Valid values are + `managed`: ORC will create, update, and delete the resource; `unmanaged`: + ORC will import an existing resource, and will not apply updates to it or + delete it. + enum: + - managed + - unmanaged + type: string + x-kubernetes-validations: + - message: managementPolicy is immutable + rule: self == oldSelf + resource: + description: |- + resource specifies the desired state of the resource. + + resource may not be specified if the management policy is `unmanaged`. + + resource must be specified if the management policy is `managed`. + properties: + adminStateUp: + description: adminStateUp is the administrative state of the load + balancer, which is up (true) or down (false) + type: boolean + availabilityZone: + description: availabilityZone is the availability zone in which + to create the load balancer. + maxLength: 255 + type: string + x-kubernetes-validations: + - message: availabilityZone is immutable + rule: self == oldSelf + description: + description: description is a human-readable description for the + resource. + maxLength: 255 + minLength: 1 + type: string + flavorRef: + description: flavorRef is a reference to the ORC Compute Flavor + which this resource is associated with. + maxLength: 253 + minLength: 1 + type: string + x-kubernetes-validations: + - message: flavorRef is immutable + rule: self == oldSelf + name: + description: |- + name will be the name of the created resource. If not specified, the + name of the ORC object will be used. + maxLength: 255 + minLength: 1 + pattern: ^[^,]+$ + type: string + projectRef: + description: projectRef is a reference to the ORC Project which + this resource is associated with. + maxLength: 253 + minLength: 1 + type: string + x-kubernetes-validations: + - message: projectRef is immutable + rule: self == oldSelf + provider: + description: provider is the name of the load balancer provider. + maxLength: 255 + type: string + x-kubernetes-validations: + - message: provider is immutable + rule: self == oldSelf + tags: + description: tags is a list of tags which will be applied to the + load balancer. + items: + maxLength: 255 + minLength: 1 + type: string + maxItems: 64 + type: array + x-kubernetes-list-type: set + vipAddress: + description: |- + vipAddress is the specific IP address to use for the VIP (optional). + If not specified, one is allocated automatically from the subnet. + maxLength: 45 + minLength: 1 + type: string + x-kubernetes-validations: + - message: vipAddress is immutable + rule: self == oldSelf + vipNetworkRef: + description: vipNetworkRef is the network on which to allocate + the load balancer's address. + maxLength: 253 + minLength: 1 + type: string + x-kubernetes-validations: + - message: vipNetworkRef is immutable + rule: self == oldSelf + vipPortRef: + description: |- + vipPortRef is a reference to a neutron port to use for the VIP. If the port + has more than one subnet you must specify either vipSubnetRef or vipAddress + to clarify which address should be used for the VIP. + maxLength: 253 + minLength: 1 + type: string + x-kubernetes-validations: + - message: vipPortRef is immutable + rule: self == oldSelf + vipSubnetRef: + description: vipSubnetRef is the subnet on which to allocate the + load balancer's address. + maxLength: 253 + minLength: 1 + type: string + x-kubernetes-validations: + - message: vipSubnetRef is immutable + rule: self == oldSelf + type: object + x-kubernetes-validations: + - message: at least one of vipSubnetRef, vipNetworkRef, or vipPortRef + must be specified + rule: has(self.vipSubnetRef) || has(self.vipNetworkRef) || has(self.vipPortRef) + required: + - cloudCredentialsRef + type: object + x-kubernetes-validations: + - message: resource must be specified when policy is managed + rule: 'self.managementPolicy == ''managed'' ? has(self.resource) : true' + - message: import may not be specified when policy is managed + rule: 'self.managementPolicy == ''managed'' ? !has(self.__import__) + : true' + - message: resource may not be specified when policy is unmanaged + rule: 'self.managementPolicy == ''unmanaged'' ? !has(self.resource) + : true' + - message: import must be specified when policy is unmanaged + rule: 'self.managementPolicy == ''unmanaged'' ? has(self.__import__) + : true' + - message: managedOptions may only be provided when policy is managed + rule: 'has(self.managedOptions) ? self.managementPolicy == ''managed'' + : true' + status: + description: status defines the observed state of the resource. + properties: + conditions: + description: |- + conditions represents the observed status of the object. + Known .status.conditions.type are: "Available", "Progressing" + + Available represents the availability of the OpenStack resource. If it is + true then the resource is ready for use. + + Progressing indicates whether the controller is still attempting to + reconcile the current state of the OpenStack resource to the desired + state. Progressing will be False either because the desired state has + been achieved, or because some terminal error prevents it from ever being + achieved and the controller is no longer attempting to reconcile. If + Progressing is True, an observer waiting on the resource should continue + to wait. + items: + description: Condition contains details for one aspect of the current + state of this API Resource. + properties: + lastTransitionTime: + description: |- + lastTransitionTime is the last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. + format: date-time + type: string + message: + description: |- + message is a human readable message indicating details about the transition. + This may be an empty string. + maxLength: 32768 + type: string + observedGeneration: + description: |- + observedGeneration represents the .metadata.generation that the condition was set based upon. + For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date + with respect to the current state of the instance. + format: int64 + minimum: 0 + type: integer + reason: + description: |- + reason contains a programmatic identifier indicating the reason for the condition's last transition. + Producers of specific condition types may define expected values and meanings for this field, + and whether the values are considered a guaranteed API. + The value should be a CamelCase string. + This field may not be empty. + maxLength: 1024 + minLength: 1 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ + type: string + status: + description: status of the condition, one of True, False, Unknown. + enum: + - "True" + - "False" + - Unknown + type: string + type: + description: type of condition in CamelCase or in foo.example.com/CamelCase. + maxLength: 316 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ + type: string + required: + - lastTransitionTime + - message + - reason + - status + - type + type: object + maxItems: 32 + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + id: + description: id is the unique identifier of the OpenStack resource. + maxLength: 1024 + type: string + resource: + description: resource contains the observed state of the OpenStack + resource. + properties: + adminStateUp: + description: |- + adminStateUp is the administrative state of the load balancer, + which is up (true) or down (false). + type: boolean + availabilityZone: + description: availabilityZone is the availability zone where the + load balancer is located. + maxLength: 1024 + type: string + description: + description: description is a human-readable description for the + resource. + maxLength: 1024 + type: string + flavorID: + description: flavorID is the ID of the Compute Flavor to which + the resource is associated. + maxLength: 1024 + type: string + name: + description: name is a Human-readable name for the resource. Might + not be unique. + maxLength: 1024 + type: string + operatingStatus: + description: |- + operatingStatus is the operating status of the load balancer, + such as ONLINE or OFFLINE. + maxLength: 1024 + type: string + projectID: + description: projectID is the ID of the Project to which the resource + is associated. + maxLength: 1024 + type: string + provider: + description: provider is the name of the load balancer provider. + maxLength: 1024 + type: string + provisioningStatus: + description: |- + provisioningStatus is the provisioning status of the load balancer. + This value is ACTIVE, PENDING_CREATE or ERROR. + maxLength: 1024 + type: string + tags: + description: tags is the list of tags on the resource. + items: + maxLength: 255 + type: string + maxItems: 64 + type: array + x-kubernetes-list-type: atomic + vipAddress: + description: vipAddress is the IP address of the load balancer's + VIP. + maxLength: 64 + type: string + vipNetworkID: + description: vipNetworkID is the ID of the Network to which the + resource is associated. + maxLength: 1024 + type: string + vipPortID: + description: vipPortID is the ID of the Port to which the resource + is associated. + maxLength: 1024 + type: string + vipSubnetID: + description: vipSubnetID is the ID of the Subnet to which the + resource is associated. + maxLength: 1024 + type: string + type: object + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/config/crd/kustomization.yaml b/config/crd/kustomization.yaml index 26b47f63f..90ad69448 100644 --- a/config/crd/kustomization.yaml +++ b/config/crd/kustomization.yaml @@ -12,6 +12,7 @@ resources: - bases/openstack.k-orc.cloud_groups.yaml - bases/openstack.k-orc.cloud_images.yaml - bases/openstack.k-orc.cloud_keypairs.yaml +- bases/openstack.k-orc.cloud_loadbalancers.yaml - bases/openstack.k-orc.cloud_networks.yaml - bases/openstack.k-orc.cloud_ports.yaml - bases/openstack.k-orc.cloud_projects.yaml diff --git a/config/manifests/bases/orc.clusterserviceversion.yaml b/config/manifests/bases/orc.clusterserviceversion.yaml index 89421fc32..b26a635fc 100644 --- a/config/manifests/bases/orc.clusterserviceversion.yaml +++ b/config/manifests/bases/orc.clusterserviceversion.yaml @@ -64,6 +64,11 @@ spec: kind: KeyPair name: keypairs.openstack.k-orc.cloud version: v1alpha1 + - description: LoadBalancer is the Schema for an ORC resource. + displayName: Load Balancer + kind: LoadBalancer + name: loadbalancers.openstack.k-orc.cloud + version: v1alpha1 - description: Network is the Schema for an ORC resource. displayName: Network kind: Network diff --git a/config/samples/kustomization.yaml b/config/samples/kustomization.yaml index 8a50ba039..a2e926024 100644 --- a/config/samples/kustomization.yaml +++ b/config/samples/kustomization.yaml @@ -10,6 +10,7 @@ resources: - openstack_v1alpha1_group.yaml - openstack_v1alpha1_image.yaml - openstack_v1alpha1_keypair.yaml +- openstack_v1alpha1_loadbalancer.yaml - openstack_v1alpha1_network.yaml - openstack_v1alpha1_port.yaml - openstack_v1alpha1_project.yaml diff --git a/config/samples/openstack_v1alpha1_loadbalancer.yaml b/config/samples/openstack_v1alpha1_loadbalancer.yaml index bb18845fa..9510e2d0f 100644 --- a/config/samples/openstack_v1alpha1_loadbalancer.yaml +++ b/config/samples/openstack_v1alpha1_loadbalancer.yaml @@ -5,10 +5,20 @@ metadata: name: loadbalancer-sample spec: cloudCredentialsRef: - # TODO(scaffolding): Use openstack-admin if the resource needs admin credentials to be created cloudName: openstack secretName: openstack-clouds managementPolicy: managed resource: + name: my-loadbalancer description: Sample LoadBalancer - # TODO(scaffolding): Add all fields the resource supports + vipSubnetRef: loadbalancer-sample-subnet + vipNetworkRef: loadbalancer-sample-network + vipPortRef: loadbalancer-sample-port + vipAddress: 10.0.0.100 + projectRef: loadbalancer-sample-project + adminStateUp: true + availabilityZone: nova + provider: amphora + tags: + - environment:production + - team:platform diff --git a/internal/controllers/loadbalancer/actuator.go b/internal/controllers/loadbalancer/actuator.go index 6e92caef1..1b75619d7 100644 --- a/internal/controllers/loadbalancer/actuator.go +++ b/internal/controllers/loadbalancer/actuator.go @@ -19,6 +19,8 @@ package loadbalancer import ( "context" "iter" + "slices" + "time" "github.com/gophercloud/gophercloud/v2/openstack/loadbalancer/v2/loadbalancers" corev1 "k8s.io/api/core/v1" @@ -35,6 +37,14 @@ import ( orcerrors "github.com/k-orc/openstack-resource-controller/v2/internal/util/errors" ) +const ( + // The frequency to poll when waiting for the load balancer to become ACTIVE + loadbalancerActivePollingPeriod = 15 * time.Second + + // The frequency to poll when waiting for the load balancer to be deleted + loadbalancerDeletingPollingPeriod = 15 * time.Second +) + // OpenStack resource types type ( osResourceT = loadbalancers.LoadBalancer @@ -71,49 +81,59 @@ func (actuator loadbalancerActuator) ListOSResourcesForAdoption(ctx context.Cont return nil, false } - // TODO(scaffolding) If you need to filter resources on fields that the List() function - // of gophercloud does not support, it's possible to perform client-side filtering. - // Check osclients.ResourceFilter + // Resolve the project ID from ProjectRef if set. Without the project + // ID, adoption with admin-scoped credentials could match a load + // balancer in the wrong project. + var projectID string + if resourceSpec.ProjectRef != nil { + project, rs := dependency.FetchDependency( + ctx, actuator.k8sClient, orcObject.Namespace, resourceSpec.ProjectRef, "Project", + func(dep *orcv1alpha1.Project) bool { + return orcv1alpha1.IsAvailable(dep) && dep.Status.ID != nil + }, + ) + if needsReschedule, _ := rs.NeedsReschedule(); needsReschedule { + return nil, false + } + projectID = ptr.Deref(project.Status.ID, "") + } listOpts := loadbalancers.ListOpts{ - Name: getResourceName(orcObject), - Description: ptr.Deref(resourceSpec.Description, ""), + Name: getResourceName(orcObject), + ProjectID: projectID, } return actuator.osClient.ListLoadBalancers(ctx, listOpts), true } func (actuator loadbalancerActuator) ListOSResourcesForImport(ctx context.Context, obj orcObjectPT, filter filterT) (iter.Seq2[*osResourceT, error], progress.ReconcileStatus) { - // TODO(scaffolding) If you need to filter resources on fields that the List() function - // of gophercloud does not support, it's possible to perform client-side filtering. - // Check osclients.ResourceFilter var reconcileStatus progress.ReconcileStatus - vipNetwork, rs := dependency.FetchDependency( + vipNetwork, rs := dependency.FetchDependency[*orcv1alpha1.Network, orcv1alpha1.Network]( ctx, actuator.k8sClient, obj.Namespace, - filter.VipNetworkRef, "VipNetwork", - func(dep *orcv1alpha1.VipNetwork) bool { return orcv1alpha1.IsAvailable(dep) && dep.Status.ID != nil }, + filter.VIPNetworkRef, "Network", + func(n *orcv1alpha1.Network) bool { return orcv1alpha1.IsAvailable(n) && n.Status.ID != nil }, ) reconcileStatus = reconcileStatus.WithReconcileStatus(rs) - project, rs := dependency.FetchDependency( + project, rs := dependency.FetchDependency[*orcv1alpha1.Project, orcv1alpha1.Project]( ctx, actuator.k8sClient, obj.Namespace, filter.ProjectRef, "Project", - func(dep *orcv1alpha1.Project) bool { return orcv1alpha1.IsAvailable(dep) && dep.Status.ID != nil }, + func(n *orcv1alpha1.Project) bool { return orcv1alpha1.IsAvailable(n) && n.Status.ID != nil }, ) reconcileStatus = reconcileStatus.WithReconcileStatus(rs) - vipSubnet, rs := dependency.FetchDependency( + vipSubnet, rs := dependency.FetchDependency[*orcv1alpha1.Subnet, orcv1alpha1.Subnet]( ctx, actuator.k8sClient, obj.Namespace, - filter.VipSubnetRef, "VipSubnet", - func(dep *orcv1alpha1.VipSubnet) bool { return orcv1alpha1.IsAvailable(dep) && dep.Status.ID != nil }, + filter.VIPSubnetRef, "Subnet", + func(n *orcv1alpha1.Subnet) bool { return orcv1alpha1.IsAvailable(n) && n.Status.ID != nil }, ) reconcileStatus = reconcileStatus.WithReconcileStatus(rs) - vipPort, rs := dependency.FetchDependency( + vipPort, rs := dependency.FetchDependency[*orcv1alpha1.Port, orcv1alpha1.Port]( ctx, actuator.k8sClient, obj.Namespace, - filter.VipPortRef, "VipPort", - func(dep *orcv1alpha1.VipPort) bool { return orcv1alpha1.IsAvailable(dep) && dep.Status.ID != nil }, + filter.VIPPortRef, "Port", + func(n *orcv1alpha1.Port) bool { return orcv1alpha1.IsAvailable(n) && n.Status.ID != nil }, ) reconcileStatus = reconcileStatus.WithReconcileStatus(rs) @@ -122,13 +142,15 @@ func (actuator loadbalancerActuator) ListOSResourcesForImport(ctx context.Contex } listOpts := loadbalancers.ListOpts{ - Name: string(ptr.Deref(filter.Name, "")), - Description: string(ptr.Deref(filter.Description, "")), - VipNetworkID: ptr.Deref(vipNetwork.Status.ID, ""), - ProjectID: ptr.Deref(project.Status.ID, ""), - VipSubnetID: ptr.Deref(vipSubnet.Status.ID, ""), - VipPortID: ptr.Deref(vipPort.Status.ID, ""), - // TODO(scaffolding): Add more import filters + Name: string(ptr.Deref(filter.Name, "")), + Description: ptr.Deref(filter.Description, ""), + AvailabilityZone: filter.AvailabilityZone, + Provider: filter.Provider, + VipAddress: filter.VIPAddress, + VipNetworkID: ptr.Deref(vipNetwork.Status.ID, ""), + ProjectID: ptr.Deref(project.Status.ID, ""), + VipSubnetID: ptr.Deref(vipSubnet.Status.ID, ""), + VipPortID: ptr.Deref(vipPort.Status.ID, ""), } return actuator.osClient.ListLoadBalancers(ctx, listOpts), reconcileStatus @@ -144,8 +166,8 @@ func (actuator loadbalancerActuator) CreateResource(ctx context.Context, obj orc } var reconcileStatus progress.ReconcileStatus - var subnetID string - if resource.SubnetRef != nil { + var vipSubnetID string + if resource.VIPSubnetRef != nil { subnet, subnetDepRS := subnetDependency.GetDependency( ctx, actuator.k8sClient, obj, func(dep *orcv1alpha1.Subnet) bool { return orcv1alpha1.IsAvailable(dep) && dep.Status.ID != nil @@ -153,12 +175,12 @@ func (actuator loadbalancerActuator) CreateResource(ctx context.Context, obj orc ) reconcileStatus = reconcileStatus.WithReconcileStatus(subnetDepRS) if subnet != nil { - subnetID = ptr.Deref(subnet.Status.ID, "") + vipSubnetID = ptr.Deref(subnet.Status.ID, "") } } - var networkID string - if resource.NetworkRef != nil { + var vipNetworkID string + if resource.VIPNetworkRef != nil { network, networkDepRS := networkDependency.GetDependency( ctx, actuator.k8sClient, obj, func(dep *orcv1alpha1.Network) bool { return orcv1alpha1.IsAvailable(dep) && dep.Status.ID != nil @@ -166,12 +188,12 @@ func (actuator loadbalancerActuator) CreateResource(ctx context.Context, obj orc ) reconcileStatus = reconcileStatus.WithReconcileStatus(networkDepRS) if network != nil { - networkID = ptr.Deref(network.Status.ID, "") + vipNetworkID = ptr.Deref(network.Status.ID, "") } } - var portID string - if resource.PortRef != nil { + var vipPortID string + if resource.VIPPortRef != nil { port, portDepRS := portDependency.GetDependency( ctx, actuator.k8sClient, obj, func(dep *orcv1alpha1.Port) bool { return orcv1alpha1.IsAvailable(dep) && dep.Status.ID != nil @@ -179,7 +201,7 @@ func (actuator loadbalancerActuator) CreateResource(ctx context.Context, obj orc ) reconcileStatus = reconcileStatus.WithReconcileStatus(portDepRS) if port != nil { - portID = ptr.Deref(port.Status.ID, "") + vipPortID = ptr.Deref(port.Status.ID, "") } } @@ -211,15 +233,27 @@ func (actuator loadbalancerActuator) CreateResource(ctx context.Context, obj orc if needsReschedule, _ := reconcileStatus.NeedsReschedule(); needsReschedule { return nil, reconcileStatus } + + tags := make([]string, len(resource.Tags)) + for i := range resource.Tags { + tags[i] = string(resource.Tags[i]) + } + // Sort tags before creation to simplify comparisons + slices.Sort(tags) + createOpts := loadbalancers.CreateOpts{ - Name: getResourceName(obj), - Description: ptr.Deref(resource.Description, ""), - SubnetID: subnetID, - NetworkID: networkID, - PortID: portID, - FlavorID: flavorID, - ProjectID: projectID, - // TODO(scaffolding): Add more fields + Name: getResourceName(obj), + Description: ptr.Deref(resource.Description, ""), + VipSubnetID: vipSubnetID, + VipNetworkID: vipNetworkID, + VipPortID: vipPortID, + FlavorID: flavorID, + ProjectID: projectID, + AdminStateUp: resource.AdminStateUp, + AvailabilityZone: resource.AvailabilityZone, + Provider: resource.Provider, + VipAddress: string(ptr.Deref(resource.VIPAddress, "")), + Tags: tags, } osResource, err := actuator.osClient.CreateLoadBalancer(ctx, createOpts) @@ -235,11 +269,34 @@ func (actuator loadbalancerActuator) CreateResource(ctx context.Context, obj orc } func (actuator loadbalancerActuator) DeleteResource(ctx context.Context, _ orcObjectPT, resource *osResourceT) progress.ReconcileStatus { - return progress.WrapError(actuator.osClient.DeleteLoadBalancer(ctx, resource.ID)) + switch resource.ProvisioningStatus { + case orcv1alpha1.LoadbalancerProvisioningStatusPendingDelete: + return progress.WaitingOnOpenStack(progress.WaitingOnReady, loadbalancerDeletingPollingPeriod) + case orcv1alpha1.LoadbalancerProvisioningStatusPendingCreate, orcv1alpha1.LoadbalancerProvisioningStatusPendingUpdate: + // We can't delete a loadbalancer that's in a pending state, so we need to wait for it to become ACTIVE + return progress.WaitingOnOpenStack(progress.WaitingOnReady, loadbalancerActivePollingPeriod) + } + + err := actuator.osClient.DeleteLoadBalancer(ctx, resource.ID) + // 409 Conflict means the loadbalancer is already in PENDING_DELETE state. + // Treat this as success and let the controller poll for deletion completion. + if orcerrors.IsConflict(err) { + return progress.WaitingOnOpenStack(progress.WaitingOnReady, loadbalancerDeletingPollingPeriod) + } + return progress.WrapError(err) } func (actuator loadbalancerActuator) updateResource(ctx context.Context, obj orcObjectPT, osResource *osResourceT) progress.ReconcileStatus { log := ctrl.LoggerFrom(ctx) + + // We can't update a loadbalancer that's in a pending state, so we need to wait for it to become ACTIVE + switch osResource.ProvisioningStatus { + case orcv1alpha1.LoadbalancerProvisioningStatusPendingCreate, + orcv1alpha1.LoadbalancerProvisioningStatusPendingUpdate, + orcv1alpha1.LoadbalancerProvisioningStatusPendingDelete: + return progress.WaitingOnOpenStack(progress.WaitingOnReady, loadbalancerActivePollingPeriod) + } + resource := obj.Spec.Resource if resource == nil { // Should have been caught by API validation @@ -251,8 +308,8 @@ func (actuator loadbalancerActuator) updateResource(ctx context.Context, obj orc handleNameUpdate(&updateOpts, obj, osResource) handleDescriptionUpdate(&updateOpts, resource, osResource) - - // TODO(scaffolding): add handler for all fields supporting mutability + handleAdminStateUpdate(&updateOpts, resource, osResource) + handleTagsUpdate(&updateOpts, resource, osResource) needsUpdate, err := needsUpdate(updateOpts) if err != nil { @@ -284,7 +341,7 @@ func needsUpdate(updateOpts loadbalancers.UpdateOpts) (bool, error) { return false, err } - updateMap, ok := updateOptsMap["load_balancer"].(map[string]any) + updateMap, ok := updateOptsMap["loadbalancer"].(map[string]any) if !ok { updateMap = make(map[string]any) } @@ -306,6 +363,28 @@ func handleDescriptionUpdate(updateOpts *loadbalancers.UpdateOpts, resource *res } } +func handleAdminStateUpdate(updateOpts *loadbalancers.UpdateOpts, resource *resourceSpecT, osResource *osResourceT) { + // Default to true if not specified (OpenStack default) + adminStateUp := ptr.Deref(resource.AdminStateUp, true) + if osResource.AdminStateUp != adminStateUp { + updateOpts.AdminStateUp = &adminStateUp + } +} + +func handleTagsUpdate(updateOpts *loadbalancers.UpdateOpts, resource *resourceSpecT, osResource *osResourceT) { + desiredTags := make([]string, len(resource.Tags)) + for i, tag := range resource.Tags { + desiredTags[i] = string(tag) + } + + slices.Sort(desiredTags) + slices.Sort(osResource.Tags) + + if !slices.Equal(desiredTags, osResource.Tags) { + updateOpts.Tags = &desiredTags + } +} + func (actuator loadbalancerActuator) GetResourceReconcilers(ctx context.Context, orcObject orcObjectPT, osResource *osResourceT, controller interfaces.ResourceController) ([]resourceReconciler, progress.ReconcileStatus) { return []resourceReconciler{ actuator.updateResource, diff --git a/internal/controllers/loadbalancer/actuator_test.go b/internal/controllers/loadbalancer/actuator_test.go index 852606942..c579473b0 100644 --- a/internal/controllers/loadbalancer/actuator_test.go +++ b/internal/controllers/loadbalancer/actuator_test.go @@ -17,13 +17,144 @@ limitations under the License. package loadbalancer import ( + "context" + "iter" "testing" "github.com/gophercloud/gophercloud/v2/openstack/loadbalancer/v2/loadbalancers" orcv1alpha1 "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1" + "github.com/k-orc/openstack-resource-controller/v2/internal/osclients/mock" + "go.uber.org/mock/gomock" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" "k8s.io/utils/ptr" + "sigs.k8s.io/controller-runtime/pkg/client" + "sigs.k8s.io/controller-runtime/pkg/client/fake" ) +func TestListOSResourcesForAdoption(t *testing.T) { + const ( + namespace = "test-namespace" + projectID = "test-project-id" + ) + + projectRef := orcv1alpha1.KubernetesNameRef("test-project") + emptyIter := iter.Seq2[*loadbalancers.LoadBalancer, error]( + func(yield func(*loadbalancers.LoadBalancer, error) bool) {}, + ) + + testCases := []struct { + name string + obj *orcv1alpha1.LoadBalancer + objects []client.Object + listOpts loadbalancers.ListOpts + canAdopt bool + expectList bool + }{ + { + name: "name-only adoption when projectRef is not set", + obj: &orcv1alpha1.LoadBalancer{ + ObjectMeta: metav1.ObjectMeta{ + Name: "test-loadbalancer", + Namespace: namespace, + }, + Spec: orcv1alpha1.LoadBalancerSpec{ + Resource: &orcv1alpha1.LoadBalancerResourceSpec{}, + }, + }, + listOpts: loadbalancers.ListOpts{ + Name: "test-loadbalancer", + }, + canAdopt: true, + expectList: true, + }, + { + name: "projectRef tightens adoption filter", + obj: &orcv1alpha1.LoadBalancer{ + ObjectMeta: metav1.ObjectMeta{ + Name: "test-loadbalancer", + Namespace: namespace, + }, + Spec: orcv1alpha1.LoadBalancerSpec{ + Resource: &orcv1alpha1.LoadBalancerResourceSpec{ + ProjectRef: &projectRef, + }, + }, + }, + objects: []client.Object{ + &orcv1alpha1.Project{ + ObjectMeta: metav1.ObjectMeta{ + Name: string(projectRef), + Namespace: namespace, + }, + Status: orcv1alpha1.ProjectStatus{ + ID: ptr.To(projectID), + Conditions: []metav1.Condition{ + { + Type: orcv1alpha1.ConditionAvailable, + Status: metav1.ConditionTrue, + }, + }, + }, + }, + }, + listOpts: loadbalancers.ListOpts{ + Name: "test-loadbalancer", + ProjectID: projectID, + }, + canAdopt: true, + expectList: true, + }, + { + name: "projectRef waits until the dependency is available", + obj: &orcv1alpha1.LoadBalancer{ + ObjectMeta: metav1.ObjectMeta{ + Name: "test-loadbalancer", + Namespace: namespace, + }, + Spec: orcv1alpha1.LoadBalancerSpec{ + Resource: &orcv1alpha1.LoadBalancerResourceSpec{ + ProjectRef: &projectRef, + }, + }, + }, + }, + } + + for _, tt := range testCases { + t.Run(tt.name, func(t *testing.T) { + mockCtrl := gomock.NewController(t) + lbClient := mock.NewMockLoadBalancerClient(mockCtrl) + + scheme := runtime.NewScheme() + if err := orcv1alpha1.AddToScheme(scheme); err != nil { + t.Fatal(err) + } + + k8sClient := fake.NewClientBuilder(). + WithScheme(scheme). + WithObjects(tt.objects...). + Build() + + if tt.expectList { + lbClient.EXPECT(). + ListLoadBalancers(gomock.Any(), tt.listOpts). + Return(emptyIter) + } + + actuator := loadbalancerActuator{ + osClient: lbClient, + k8sClient: k8sClient, + } + + _, canAdopt := actuator.ListOSResourcesForAdoption(context.Background(), tt.obj) + if canAdopt != tt.canAdopt { + t.Fatalf("ListOSResourcesForAdoption() canAdopt = %v, want %v", canAdopt, tt.canAdopt) + } + }) + } +} + func TestNeedsUpdate(t *testing.T) { testCases := []struct { name string @@ -117,3 +248,69 @@ func TestHandleDescriptionUpdate(t *testing.T) { } } + +func TestHandleAdminStateUpdate(t *testing.T) { + ptrToBool := ptr.To[bool] + testCases := []struct { + name string + newValue *bool + existingValue bool + expectChange bool + }{ + {name: "Identical true", newValue: ptrToBool(true), existingValue: true, expectChange: false}, + {name: "Identical false", newValue: ptrToBool(false), existingValue: false, expectChange: false}, + {name: "Different true to false", newValue: ptrToBool(false), existingValue: true, expectChange: true}, + {name: "Different false to true", newValue: ptrToBool(true), existingValue: false, expectChange: true}, + {name: "No value provided, existing is set to false", newValue: nil, existingValue: false, expectChange: true}, + {name: "No value provided, existing is default (true)", newValue: nil, existingValue: true, expectChange: false}, + } + + for _, tt := range testCases { + t.Run(tt.name, func(t *testing.T) { + resource := &orcv1alpha1.LoadBalancerResourceSpec{AdminStateUp: tt.newValue} + osResource := &osResourceT{AdminStateUp: tt.existingValue} + + updateOpts := loadbalancers.UpdateOpts{} + handleAdminStateUpdate(&updateOpts, resource, osResource) + + got, _ := needsUpdate(updateOpts) + if got != tt.expectChange { + t.Errorf("Expected change: %v, got: %v", tt.expectChange, got) + } + }) + } +} + +func TestHandleTagsUpdate(t *testing.T) { + testCases := []struct { + name string + newValue []orcv1alpha1.LoadBalancerTag + existingValue []string + expectChange bool + }{ + {name: "Identical empty", newValue: nil, existingValue: nil, expectChange: false}, + {name: "Identical single", newValue: []orcv1alpha1.LoadBalancerTag{"tag1"}, existingValue: []string{"tag1"}, expectChange: false}, + {name: "Identical multiple", newValue: []orcv1alpha1.LoadBalancerTag{"tag1", "tag2"}, existingValue: []string{"tag1", "tag2"}, expectChange: false}, + {name: "Identical different order", newValue: []orcv1alpha1.LoadBalancerTag{"tag2", "tag1"}, existingValue: []string{"tag1", "tag2"}, expectChange: false}, + {name: "Different add tag", newValue: []orcv1alpha1.LoadBalancerTag{"tag1", "tag2"}, existingValue: []string{"tag1"}, expectChange: true}, + {name: "Different remove tag", newValue: []orcv1alpha1.LoadBalancerTag{"tag1"}, existingValue: []string{"tag1", "tag2"}, expectChange: true}, + {name: "Different replace tag", newValue: []orcv1alpha1.LoadBalancerTag{"tag1", "tag3"}, existingValue: []string{"tag1", "tag2"}, expectChange: true}, + {name: "Add tags to empty", newValue: []orcv1alpha1.LoadBalancerTag{"tag1"}, existingValue: nil, expectChange: true}, + {name: "Remove all tags", newValue: nil, existingValue: []string{"tag1"}, expectChange: true}, + } + + for _, tt := range testCases { + t.Run(tt.name, func(t *testing.T) { + resource := &orcv1alpha1.LoadBalancerResourceSpec{Tags: tt.newValue} + osResource := &osResourceT{Tags: tt.existingValue} + + updateOpts := loadbalancers.UpdateOpts{} + handleTagsUpdate(&updateOpts, resource, osResource) + + got, _ := needsUpdate(updateOpts) + if got != tt.expectChange { + t.Errorf("Expected change: %v, got: %v", tt.expectChange, got) + } + }) + } +} diff --git a/internal/controllers/loadbalancer/controller.go b/internal/controllers/loadbalancer/controller.go index 492aa5a7d..cec3b8bee 100644 --- a/internal/controllers/loadbalancer/controller.go +++ b/internal/controllers/loadbalancer/controller.go @@ -55,10 +55,10 @@ var subnetDependency = dependency.NewDeletionGuardDependency[*orcv1alpha1.LoadBa "spec.resource.subnetRef", func(loadbalancer *orcv1alpha1.LoadBalancer) []string { resource := loadbalancer.Spec.Resource - if resource == nil || resource.SubnetRef == nil { + if resource == nil || resource.VIPSubnetRef == nil { return nil } - return []string{string(*resource.SubnetRef)} + return []string{string(*resource.VIPSubnetRef)} }, finalizer, externalObjectFieldOwner, ) @@ -67,10 +67,10 @@ var networkDependency = dependency.NewDeletionGuardDependency[*orcv1alpha1.LoadB "spec.resource.networkRef", func(loadbalancer *orcv1alpha1.LoadBalancer) []string { resource := loadbalancer.Spec.Resource - if resource == nil || resource.NetworkRef == nil { + if resource == nil || resource.VIPNetworkRef == nil { return nil } - return []string{string(*resource.NetworkRef)} + return []string{string(*resource.VIPNetworkRef)} }, finalizer, externalObjectFieldOwner, ) @@ -79,10 +79,10 @@ var portDependency = dependency.NewDeletionGuardDependency[*orcv1alpha1.LoadBala "spec.resource.portRef", func(loadbalancer *orcv1alpha1.LoadBalancer) []string { resource := loadbalancer.Spec.Resource - if resource == nil || resource.PortRef == nil { + if resource == nil || resource.VIPPortRef == nil { return nil } - return []string{string(*resource.PortRef)} + return []string{string(*resource.VIPPortRef)} }, finalizer, externalObjectFieldOwner, ) @@ -111,14 +111,14 @@ var projectDependency = dependency.NewDeletionGuardDependency[*orcv1alpha1.LoadB finalizer, externalObjectFieldOwner, ) -var vipNetworkImportDependency = dependency.NewDependency[*orcv1alpha1.LoadBalancerList, *orcv1alpha1.VipNetwork]( +var vipNetworkImportDependency = dependency.NewDependency[*orcv1alpha1.LoadBalancerList, *orcv1alpha1.Network]( "spec.import.filter.vipNetworkRef", func(loadbalancer *orcv1alpha1.LoadBalancer) []string { resource := loadbalancer.Spec.Import - if resource == nil || resource.Filter == nil || resource.Filter.VipNetworkRef == nil { + if resource == nil || resource.Filter == nil || resource.Filter.VIPNetworkRef == nil { return nil } - return []string{string(*resource.Filter.VipNetworkRef)} + return []string{string(*resource.Filter.VIPNetworkRef)} }, ) @@ -133,25 +133,25 @@ var projectImportDependency = dependency.NewDependency[*orcv1alpha1.LoadBalancer }, ) -var vipSubnetImportDependency = dependency.NewDependency[*orcv1alpha1.LoadBalancerList, *orcv1alpha1.VipSubnet]( +var vipSubnetImportDependency = dependency.NewDependency[*orcv1alpha1.LoadBalancerList, *orcv1alpha1.Subnet]( "spec.import.filter.vipSubnetRef", func(loadbalancer *orcv1alpha1.LoadBalancer) []string { resource := loadbalancer.Spec.Import - if resource == nil || resource.Filter == nil || resource.Filter.VipSubnetRef == nil { + if resource == nil || resource.Filter == nil || resource.Filter.VIPSubnetRef == nil { return nil } - return []string{string(*resource.Filter.VipSubnetRef)} + return []string{string(*resource.Filter.VIPSubnetRef)} }, ) -var vipPortImportDependency = dependency.NewDependency[*orcv1alpha1.LoadBalancerList, *orcv1alpha1.VipPort]( +var vipPortImportDependency = dependency.NewDependency[*orcv1alpha1.LoadBalancerList, *orcv1alpha1.Port]( "spec.import.filter.vipPortRef", func(loadbalancer *orcv1alpha1.LoadBalancer) []string { resource := loadbalancer.Spec.Import - if resource == nil || resource.Filter == nil || resource.Filter.VipPortRef == nil { + if resource == nil || resource.Filter == nil || resource.Filter.VIPPortRef == nil { return nil } - return []string{string(*resource.Filter.VipPortRef)} + return []string{string(*resource.Filter.VIPPortRef)} }, ) @@ -223,20 +223,20 @@ func (c loadbalancerReconcilerConstructor) SetupWithManager(ctx context.Context, builder.WithPredicates(predicates.NewBecameAvailable(log, &orcv1alpha1.Project{})), ). // A second watch is necessary because we need a different handler that omits deletion guards - Watches(&orcv1alpha1.VipNetwork{}, vipNetworkImportWatchEventHandler, - builder.WithPredicates(predicates.NewBecameAvailable(log, &orcv1alpha1.VipNetwork{})), + Watches(&orcv1alpha1.Network{}, vipNetworkImportWatchEventHandler, + builder.WithPredicates(predicates.NewBecameAvailable(log, &orcv1alpha1.Network{})), ). // A second watch is necessary because we need a different handler that omits deletion guards Watches(&orcv1alpha1.Project{}, projectImportWatchEventHandler, builder.WithPredicates(predicates.NewBecameAvailable(log, &orcv1alpha1.Project{})), ). // A second watch is necessary because we need a different handler that omits deletion guards - Watches(&orcv1alpha1.VipSubnet{}, vipSubnetImportWatchEventHandler, - builder.WithPredicates(predicates.NewBecameAvailable(log, &orcv1alpha1.VipSubnet{})), + Watches(&orcv1alpha1.Subnet{}, vipSubnetImportWatchEventHandler, + builder.WithPredicates(predicates.NewBecameAvailable(log, &orcv1alpha1.Subnet{})), ). // A second watch is necessary because we need a different handler that omits deletion guards - Watches(&orcv1alpha1.VipPort{}, vipPortImportWatchEventHandler, - builder.WithPredicates(predicates.NewBecameAvailable(log, &orcv1alpha1.VipPort{})), + Watches(&orcv1alpha1.Port{}, vipPortImportWatchEventHandler, + builder.WithPredicates(predicates.NewBecameAvailable(log, &orcv1alpha1.Port{})), ). For(&orcv1alpha1.LoadBalancer{}) diff --git a/internal/controllers/loadbalancer/status.go b/internal/controllers/loadbalancer/status.go index dbf0b654a..fdd25f36b 100644 --- a/internal/controllers/loadbalancer/status.go +++ b/internal/controllers/loadbalancer/status.go @@ -41,28 +41,37 @@ func (loadbalancerStatusWriter) ResourceAvailableStatus(orcObject *orcv1alpha1.L if osResource == nil { if orcObject.Status.ID == nil { return metav1.ConditionFalse, nil - } else { - return metav1.ConditionUnknown, nil } + return metav1.ConditionUnknown, nil + } + + switch osResource.ProvisioningStatus { + case "ACTIVE": + return metav1.ConditionTrue, nil + case "ERROR": + return metav1.ConditionFalse, nil + default: + // PENDING_CREATE, PENDING_UPDATE, PENDING_DELETE + return metav1.ConditionFalse, progress.WaitingOnOpenStack(progress.WaitingOnReady, loadbalancerActivePollingPeriod) } - return metav1.ConditionTrue, nil } func (loadbalancerStatusWriter) ApplyResourceStatus(log logr.Logger, osResource *osResourceT, statusApply *statusApplyT) { resourceStatus := orcapplyconfigv1alpha1.LoadBalancerResourceStatus(). - WithSubnetID(osResource.SubnetID). - WithNetworkID(osResource.NetworkID). - WithPortID(osResource.PortID). + WithName(osResource.Name). + WithDescription(osResource.Description). + WithVIPSubnetID(osResource.VipSubnetID). + WithVIPNetworkID(osResource.VipNetworkID). + WithVIPPortID(osResource.VipPortID). + WithVIPAddress(osResource.VipAddress). WithFlavorID(osResource.FlavorID). WithProjectID(osResource.ProjectID). - WithName(osResource.Name) - - // TODO(scaffolding): add all of the fields supported in the LoadBalancerResourceStatus struct - // If a zero-value isn't expected in the response, place it behind a conditional - - if osResource.Description != "" { - resourceStatus.WithDescription(osResource.Description) - } + WithAdminStateUp(osResource.AdminStateUp). + WithProvider(osResource.Provider). + WithAvailabilityZone(osResource.AvailabilityZone). + WithProvisioningStatus(osResource.ProvisioningStatus). + WithOperatingStatus(osResource.OperatingStatus). + WithTags(osResource.Tags...) statusApply.WithResource(resourceStatus) } diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-create-full/00-assert.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-create-full/00-assert.yaml index 51a73c327..7c76bf6ae 100644 --- a/internal/controllers/loadbalancer/tests/loadbalancer-create-full/00-assert.yaml +++ b/internal/controllers/loadbalancer/tests/loadbalancer-create-full/00-assert.yaml @@ -7,7 +7,12 @@ status: resource: name: loadbalancer-create-full-override description: LoadBalancer from "create full" test - # TODO(scaffolding): Add all fields the resource supports + adminStateUp: true + provider: amphora + provisioningStatus: ACTIVE + tags: + - tag1 + - tag2 conditions: - type: Available status: "True" @@ -18,6 +23,7 @@ status: --- apiVersion: kuttl.dev/v1beta1 kind: TestAssert +timeout: 600 resourceRefs: - apiVersion: openstack.k-orc.cloud/v1alpha1 kind: LoadBalancer @@ -35,19 +41,15 @@ resourceRefs: kind: Port name: loadbalancer-create-full ref: port - - apiVersion: openstack.k-orc.cloud/v1alpha1 - kind: Flavor - name: loadbalancer-create-full - ref: flavor - apiVersion: openstack.k-orc.cloud/v1alpha1 kind: Project name: loadbalancer-create-full ref: project assertAll: + # Dynamic checks that require CEL - cross-resource comparisons - celExpr: "loadbalancer.status.id != ''" - - celExpr: "loadbalancer.status.resource.subnetID == subnet.status.id" - - celExpr: "loadbalancer.status.resource.networkID == network.status.id" - - celExpr: "loadbalancer.status.resource.portID == port.status.id" - - celExpr: "loadbalancer.status.resource.flavorID == flavor.status.id" + - celExpr: "loadbalancer.status.resource.vipSubnetID == subnet.status.id" + - celExpr: "loadbalancer.status.resource.vipNetworkID == network.status.id" + - celExpr: "loadbalancer.status.resource.vipPortID == port.status.id" - celExpr: "loadbalancer.status.resource.projectID == project.status.id" - # TODO(scaffolding): Add more checks + - celExpr: "loadbalancer.status.resource.vipAddress != ''" diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-create-full/00-create-resource.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-create-full/00-create-resource.yaml index 1f3d9fd6e..6725a503b 100644 --- a/internal/controllers/loadbalancer/tests/loadbalancer-create-full/00-create-resource.yaml +++ b/internal/controllers/loadbalancer/tests/loadbalancer-create-full/00-create-resource.yaml @@ -1,15 +1,13 @@ --- apiVersion: openstack.k-orc.cloud/v1alpha1 -kind: Subnet +kind: Project metadata: name: loadbalancer-create-full spec: cloudCredentialsRef: - # TODO(scaffolding): Use openstack-admin if the resouce needs admin credentials to be created - cloudName: openstack + cloudName: openstack-admin secretName: openstack-clouds managementPolicy: managed - # TODO(scaffolding): Add the necessary fields to create the resource resource: {} --- apiVersion: openstack.k-orc.cloud/v1alpha1 @@ -18,51 +16,39 @@ metadata: name: loadbalancer-create-full spec: cloudCredentialsRef: - # TODO(scaffolding): Use openstack-admin if the resouce needs admin credentials to be created cloudName: openstack secretName: openstack-clouds managementPolicy: managed - # TODO(scaffolding): Add the necessary fields to create the resource resource: {} --- apiVersion: openstack.k-orc.cloud/v1alpha1 -kind: Port -metadata: - name: loadbalancer-create-full -spec: - cloudCredentialsRef: - # TODO(scaffolding): Use openstack-admin if the resouce needs admin credentials to be created - cloudName: openstack - secretName: openstack-clouds - managementPolicy: managed - # TODO(scaffolding): Add the necessary fields to create the resource - resource: {} ---- -apiVersion: openstack.k-orc.cloud/v1alpha1 -kind: Flavor +kind: Subnet metadata: name: loadbalancer-create-full spec: cloudCredentialsRef: - # TODO(scaffolding): Use openstack-admin if the resouce needs admin credentials to be created cloudName: openstack secretName: openstack-clouds managementPolicy: managed - # TODO(scaffolding): Add the necessary fields to create the resource - resource: {} + resource: + networkRef: loadbalancer-create-full + ipVersion: 4 + cidr: 10.0.0.0/24 --- apiVersion: openstack.k-orc.cloud/v1alpha1 -kind: Project +kind: Port metadata: name: loadbalancer-create-full spec: cloudCredentialsRef: - # TODO(scaffolding): Use openstack-admin if the resouce needs admin credentials to be created cloudName: openstack secretName: openstack-clouds managementPolicy: managed - # TODO(scaffolding): Add the necessary fields to create the resource - resource: {} + resource: + networkRef: loadbalancer-create-full + addresses: + - subnetRef: loadbalancer-create-full + ip: 10.0.0.10 --- apiVersion: openstack.k-orc.cloud/v1alpha1 kind: LoadBalancer @@ -70,16 +56,19 @@ metadata: name: loadbalancer-create-full spec: cloudCredentialsRef: - # TODO(scaffolding): Use openstack-admin if the resouce needs admin credentials to be created - cloudName: openstack + # using openstack-admin to create the LB in another project + cloudName: openstack-admin secretName: openstack-clouds managementPolicy: managed resource: name: loadbalancer-create-full-override description: LoadBalancer from "create full" test - subnetRef: loadbalancer-create-full - networkRef: loadbalancer-create-full - portRef: loadbalancer-create-full - flavorRef: loadbalancer-create-full + vipSubnetRef: loadbalancer-create-full + vipNetworkRef: loadbalancer-create-full + vipPortRef: loadbalancer-create-full projectRef: loadbalancer-create-full - # TODO(scaffolding): Add all fields the resource supports + adminStateUp: true + provider: amphora + tags: + - tag1 + - tag2 diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-create-minimal/00-assert.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-create-minimal/00-assert.yaml index 9230c2c73..66ff6b2b1 100644 --- a/internal/controllers/loadbalancer/tests/loadbalancer-create-minimal/00-assert.yaml +++ b/internal/controllers/loadbalancer/tests/loadbalancer-create-minimal/00-assert.yaml @@ -6,7 +6,9 @@ metadata: status: resource: name: loadbalancer-create-minimal - # TODO(scaffolding): Add all fields the resource supports + description: "" + provisioningStatus: ACTIVE + adminStateUp: true conditions: - type: Available status: "True" @@ -17,11 +19,18 @@ status: --- apiVersion: kuttl.dev/v1beta1 kind: TestAssert +timeout: 600 resourceRefs: - apiVersion: openstack.k-orc.cloud/v1alpha1 kind: LoadBalancer name: loadbalancer-create-minimal ref: loadbalancer + - apiVersion: openstack.k-orc.cloud/v1alpha1 + kind: Subnet + name: loadbalancer-create-minimal + ref: subnet assertAll: + # Dynamic checks that require CEL - cross-resource comparisons and non-empty checks - celExpr: "loadbalancer.status.id != ''" - # TODO(scaffolding): Add more checks + - celExpr: "loadbalancer.status.resource.vipSubnetID == subnet.status.id" + - celExpr: "loadbalancer.status.resource.vipAddress != ''" diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-create-minimal/00-create-resource.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-create-minimal/00-create-resource.yaml index 750dbd630..d527aa280 100644 --- a/internal/controllers/loadbalancer/tests/loadbalancer-create-minimal/00-create-resource.yaml +++ b/internal/controllers/loadbalancer/tests/loadbalancer-create-minimal/00-create-resource.yaml @@ -1,14 +1,37 @@ --- apiVersion: openstack.k-orc.cloud/v1alpha1 -kind: LoadBalancer +kind: Network metadata: name: loadbalancer-create-minimal spec: cloudCredentialsRef: - # TODO(scaffolding): Use openstack-admin if the resouce needs admin credentials to be created cloudName: openstack secretName: openstack-clouds managementPolicy: managed - # TODO(scaffolding): Only add the mandatory fields. It's possible the resource - # doesn't have mandatory fields, in that case, leave it empty. resource: {} +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: Subnet +metadata: + name: loadbalancer-create-minimal +spec: + cloudCredentialsRef: + cloudName: openstack + secretName: openstack-clouds + managementPolicy: managed + resource: + networkRef: loadbalancer-create-minimal + ipVersion: 4 + cidr: 10.0.0.0/24 +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: LoadBalancer +metadata: + name: loadbalancer-create-minimal +spec: + cloudCredentialsRef: + cloudName: openstack + secretName: openstack-clouds + managementPolicy: managed + resource: + vipSubnetRef: loadbalancer-create-minimal diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-create-minimal/01-assert.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-create-minimal/01-assert.yaml index c116ae4b8..c01fb7219 100644 --- a/internal/controllers/loadbalancer/tests/loadbalancer-create-minimal/01-assert.yaml +++ b/internal/controllers/loadbalancer/tests/loadbalancer-create-minimal/01-assert.yaml @@ -1,6 +1,7 @@ --- apiVersion: kuttl.dev/v1beta1 kind: TestAssert +timeout: 60 resourceRefs: - apiVersion: v1 kind: Secret diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-dependency/00-assert.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-dependency/00-assert.yaml index 3b21fdb81..866470662 100644 --- a/internal/controllers/loadbalancer/tests/loadbalancer-dependency/00-assert.yaml +++ b/internal/controllers/loadbalancer/tests/loadbalancer-dependency/00-assert.yaml @@ -1,4 +1,31 @@ --- +# Wait for infrastructure to be ready first +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: Network +metadata: + name: loadbalancer-dependency-infra +status: + conditions: + - type: Available + status: "True" + reason: Success + - type: Progressing + status: "False" + reason: Success +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: Subnet +metadata: + name: loadbalancer-dependency-subnet +status: + conditions: + - type: Available + status: "True" + reason: Success + - type: Progressing + status: "False" + reason: Success +--- apiVersion: openstack.k-orc.cloud/v1alpha1 kind: LoadBalancer metadata: @@ -61,21 +88,6 @@ status: --- apiVersion: openstack.k-orc.cloud/v1alpha1 kind: LoadBalancer -metadata: - name: loadbalancer-dependency-no-flavor -status: - conditions: - - type: Available - message: Waiting for Flavor/loadbalancer-dependency to be created - status: "False" - reason: Progressing - - type: Progressing - message: Waiting for Flavor/loadbalancer-dependency to be created - status: "True" - reason: Progressing ---- -apiVersion: openstack.k-orc.cloud/v1alpha1 -kind: LoadBalancer metadata: name: loadbalancer-dependency-no-project status: diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-dependency/00-create-resources-missing-deps.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-dependency/00-create-resources-missing-deps.yaml index 3410659ca..14046fb6b 100644 --- a/internal/controllers/loadbalancer/tests/loadbalancer-dependency/00-create-resources-missing-deps.yaml +++ b/internal/controllers/loadbalancer/tests/loadbalancer-dependency/00-create-resources-missing-deps.yaml @@ -1,60 +1,65 @@ - --- +# Create network/subnet infrastructure for tests that need existing subnet apiVersion: openstack.k-orc.cloud/v1alpha1 -kind: LoadBalancer +kind: Network metadata: - name: loadbalancer-dependency-no-subnet + name: loadbalancer-dependency-infra +spec: + cloudCredentialsRef: + cloudName: openstack + secretName: openstack-clouds + managementPolicy: managed + resource: {} +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: Subnet +metadata: + name: loadbalancer-dependency-subnet spec: cloudCredentialsRef: - # TODO(scaffolding): Use openstack-admin if the resouce needs admin credentials to be created cloudName: openstack secretName: openstack-clouds managementPolicy: managed resource: - subnetRef: loadbalancer-dependency - # TODO(scaffolding): Add the necessary fields to create the resource + networkRef: loadbalancer-dependency-infra + ipVersion: 4 + cidr: 10.0.99.0/24 --- apiVersion: openstack.k-orc.cloud/v1alpha1 kind: LoadBalancer metadata: - name: loadbalancer-dependency-no-network + name: loadbalancer-dependency-no-subnet spec: cloudCredentialsRef: - # TODO(scaffolding): Use openstack-admin if the resouce needs admin credentials to be created cloudName: openstack secretName: openstack-clouds managementPolicy: managed resource: - networkRef: loadbalancer-dependency - # TODO(scaffolding): Add the necessary fields to create the resource + vipSubnetRef: loadbalancer-dependency --- apiVersion: openstack.k-orc.cloud/v1alpha1 kind: LoadBalancer metadata: - name: loadbalancer-dependency-no-port + name: loadbalancer-dependency-no-network spec: cloudCredentialsRef: - # TODO(scaffolding): Use openstack-admin if the resouce needs admin credentials to be created cloudName: openstack secretName: openstack-clouds managementPolicy: managed resource: - portRef: loadbalancer-dependency - # TODO(scaffolding): Add the necessary fields to create the resource + vipNetworkRef: loadbalancer-dependency --- apiVersion: openstack.k-orc.cloud/v1alpha1 kind: LoadBalancer metadata: - name: loadbalancer-dependency-no-flavor + name: loadbalancer-dependency-no-port spec: cloudCredentialsRef: - # TODO(scaffolding): Use openstack-admin if the resouce needs admin credentials to be created cloudName: openstack secretName: openstack-clouds managementPolicy: managed resource: - flavorRef: loadbalancer-dependency - # TODO(scaffolding): Add the necessary fields to create the resource + vipPortRef: loadbalancer-dependency --- apiVersion: openstack.k-orc.cloud/v1alpha1 kind: LoadBalancer @@ -62,13 +67,13 @@ metadata: name: loadbalancer-dependency-no-project spec: cloudCredentialsRef: - # TODO(scaffolding): Use openstack-admin if the resouce needs admin credentials to be created - cloudName: openstack + # using openstack-admin to create the LB in another project + cloudName: openstack-admin secretName: openstack-clouds managementPolicy: managed resource: + vipSubnetRef: loadbalancer-dependency-subnet projectRef: loadbalancer-dependency - # TODO(scaffolding): Add the necessary fields to create the resource --- apiVersion: openstack.k-orc.cloud/v1alpha1 kind: LoadBalancer @@ -76,9 +81,8 @@ metadata: name: loadbalancer-dependency-no-secret spec: cloudCredentialsRef: - # TODO(scaffolding): Use openstack-admin if the resouce needs admin credentials to be created cloudName: openstack secretName: loadbalancer-dependency managementPolicy: managed - # TODO(scaffolding): Add the necessary fields to create the resource - resource: {} + resource: + vipSubnetRef: loadbalancer-dependency-subnet diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-dependency/01-assert.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-dependency/01-assert.yaml index 5db640da1..5ec4a6c64 100644 --- a/internal/controllers/loadbalancer/tests/loadbalancer-dependency/01-assert.yaml +++ b/internal/controllers/loadbalancer/tests/loadbalancer-dependency/01-assert.yaml @@ -1,4 +1,8 @@ --- +apiVersion: kuttl.dev/v1beta1 +kind: TestAssert +timeout: 600 +--- apiVersion: openstack.k-orc.cloud/v1alpha1 kind: LoadBalancer metadata: @@ -6,11 +10,9 @@ metadata: status: conditions: - type: Available - message: OpenStack resource is available status: "True" reason: Success - type: Progressing - message: OpenStack resource is up to date status: "False" reason: Success --- @@ -21,11 +23,9 @@ metadata: status: conditions: - type: Available - message: OpenStack resource is available status: "True" reason: Success - type: Progressing - message: OpenStack resource is up to date status: "False" reason: Success --- @@ -36,11 +36,9 @@ metadata: status: conditions: - type: Available - message: OpenStack resource is available status: "True" reason: Success - type: Progressing - message: OpenStack resource is up to date status: "False" reason: Success --- @@ -51,26 +49,9 @@ metadata: status: conditions: - type: Available - message: OpenStack resource is available - status: "True" - reason: Success - - type: Progressing - message: OpenStack resource is up to date - status: "False" - reason: Success ---- -apiVersion: openstack.k-orc.cloud/v1alpha1 -kind: LoadBalancer -metadata: - name: loadbalancer-dependency-no-flavor -status: - conditions: - - type: Available - message: OpenStack resource is available status: "True" reason: Success - type: Progressing - message: OpenStack resource is up to date status: "False" reason: Success --- @@ -81,10 +62,8 @@ metadata: status: conditions: - type: Available - message: OpenStack resource is available status: "True" reason: Success - type: Progressing - message: OpenStack resource is up to date status: "False" reason: Success diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-dependency/01-create-dependencies.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-dependency/01-create-dependencies.yaml index db46fcfdf..9b2f23873 100644 --- a/internal/controllers/loadbalancer/tests/loadbalancer-dependency/01-create-dependencies.yaml +++ b/internal/controllers/loadbalancer/tests/loadbalancer-dependency/01-create-dependencies.yaml @@ -6,16 +6,14 @@ commands: namespaced: true --- apiVersion: openstack.k-orc.cloud/v1alpha1 -kind: Subnet +kind: Project metadata: name: loadbalancer-dependency spec: cloudCredentialsRef: - # TODO(scaffolding): Use openstack-admin if the resouce needs admin credentials to be created - cloudName: openstack + cloudName: openstack-admin secretName: openstack-clouds managementPolicy: managed - # TODO(scaffolding): Add the necessary fields to create the resource resource: {} --- apiVersion: openstack.k-orc.cloud/v1alpha1 @@ -24,48 +22,36 @@ metadata: name: loadbalancer-dependency spec: cloudCredentialsRef: - # TODO(scaffolding): Use openstack-admin if the resouce needs admin credentials to be created cloudName: openstack secretName: openstack-clouds managementPolicy: managed - # TODO(scaffolding): Add the necessary fields to create the resource resource: {} --- apiVersion: openstack.k-orc.cloud/v1alpha1 -kind: Port -metadata: - name: loadbalancer-dependency -spec: - cloudCredentialsRef: - # TODO(scaffolding): Use openstack-admin if the resouce needs admin credentials to be created - cloudName: openstack - secretName: openstack-clouds - managementPolicy: managed - # TODO(scaffolding): Add the necessary fields to create the resource - resource: {} ---- -apiVersion: openstack.k-orc.cloud/v1alpha1 -kind: Flavor +kind: Subnet metadata: name: loadbalancer-dependency spec: cloudCredentialsRef: - # TODO(scaffolding): Use openstack-admin if the resouce needs admin credentials to be created cloudName: openstack secretName: openstack-clouds managementPolicy: managed - # TODO(scaffolding): Add the necessary fields to create the resource - resource: {} + resource: + networkRef: loadbalancer-dependency + ipVersion: 4 + cidr: 10.0.0.0/24 --- apiVersion: openstack.k-orc.cloud/v1alpha1 -kind: Project +kind: Port metadata: name: loadbalancer-dependency spec: cloudCredentialsRef: - # TODO(scaffolding): Use openstack-admin if the resouce needs admin credentials to be created cloudName: openstack secretName: openstack-clouds managementPolicy: managed - # TODO(scaffolding): Add the necessary fields to create the resource - resource: {} + resource: + networkRef: loadbalancer-dependency + addresses: + - subnetRef: loadbalancer-dependency + ip: 10.0.0.10 diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-dependency/02-assert.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-dependency/02-assert.yaml index 9f9aa44fe..c34460736 100644 --- a/internal/controllers/loadbalancer/tests/loadbalancer-dependency/02-assert.yaml +++ b/internal/controllers/loadbalancer/tests/loadbalancer-dependency/02-assert.yaml @@ -1,11 +1,16 @@ --- apiVersion: kuttl.dev/v1beta1 kind: TestAssert +timeout: 60 resourceRefs: - apiVersion: openstack.k-orc.cloud/v1alpha1 kind: Subnet name: loadbalancer-dependency ref: subnet + - apiVersion: openstack.k-orc.cloud/v1alpha1 + kind: Subnet + name: loadbalancer-dependency-subnet + ref: subnet2 - apiVersion: openstack.k-orc.cloud/v1alpha1 kind: Network name: loadbalancer-dependency @@ -14,10 +19,6 @@ resourceRefs: kind: Port name: loadbalancer-dependency ref: port - - apiVersion: openstack.k-orc.cloud/v1alpha1 - kind: Flavor - name: loadbalancer-dependency - ref: flavor - apiVersion: openstack.k-orc.cloud/v1alpha1 kind: Project name: loadbalancer-dependency @@ -29,12 +30,12 @@ resourceRefs: assertAll: - celExpr: "subnet.metadata.deletionTimestamp != 0" - celExpr: "'openstack.k-orc.cloud/loadbalancer' in subnet.metadata.finalizers" + - celExpr: "subnet2.metadata.deletionTimestamp != 0" + - celExpr: "'openstack.k-orc.cloud/loadbalancer' in subnet2.metadata.finalizers" - celExpr: "network.metadata.deletionTimestamp != 0" - celExpr: "'openstack.k-orc.cloud/loadbalancer' in network.metadata.finalizers" - celExpr: "port.metadata.deletionTimestamp != 0" - celExpr: "'openstack.k-orc.cloud/loadbalancer' in port.metadata.finalizers" - - celExpr: "flavor.metadata.deletionTimestamp != 0" - - celExpr: "'openstack.k-orc.cloud/loadbalancer' in flavor.metadata.finalizers" - celExpr: "project.metadata.deletionTimestamp != 0" - celExpr: "'openstack.k-orc.cloud/loadbalancer' in project.metadata.finalizers" - celExpr: "secret.metadata.deletionTimestamp != 0" diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-dependency/02-delete-dependencies.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-dependency/02-delete-dependencies.yaml index 601628e32..869b3d361 100644 --- a/internal/controllers/loadbalancer/tests/loadbalancer-dependency/02-delete-dependencies.yaml +++ b/internal/controllers/loadbalancer/tests/loadbalancer-dependency/02-delete-dependencies.yaml @@ -5,11 +5,13 @@ commands: # We expect the deletion to hang due to the finalizer, so use --wait=false - command: kubectl delete subnet loadbalancer-dependency --wait=false namespaced: true + - command: kubectl delete subnet loadbalancer-dependency-subnet --wait=false + namespaced: true - command: kubectl delete network loadbalancer-dependency --wait=false namespaced: true - - command: kubectl delete port loadbalancer-dependency --wait=false + - command: kubectl delete network loadbalancer-dependency-infra --wait=false namespaced: true - - command: kubectl delete flavor loadbalancer-dependency --wait=false + - command: kubectl delete port loadbalancer-dependency --wait=false namespaced: true - command: kubectl delete project loadbalancer-dependency --wait=false namespaced: true diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-dependency/03-assert.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-dependency/03-assert.yaml index c87e7cb8a..c346392f9 100644 --- a/internal/controllers/loadbalancer/tests/loadbalancer-dependency/03-assert.yaml +++ b/internal/controllers/loadbalancer/tests/loadbalancer-dependency/03-assert.yaml @@ -1,16 +1,17 @@ --- apiVersion: kuttl.dev/v1beta1 kind: TestAssert +timeout: 300 commands: # Dependencies that were prevented deletion before should now be gone - script: "! kubectl get subnet loadbalancer-dependency --namespace $NAMESPACE" skipLogOutput: true +- script: "! kubectl get subnet loadbalancer-dependency-subnet --namespace $NAMESPACE" + skipLogOutput: true - script: "! kubectl get network loadbalancer-dependency --namespace $NAMESPACE" skipLogOutput: true - script: "! kubectl get port loadbalancer-dependency --namespace $NAMESPACE" skipLogOutput: true -- script: "! kubectl get flavor loadbalancer-dependency --namespace $NAMESPACE" - skipLogOutput: true - script: "! kubectl get project loadbalancer-dependency --namespace $NAMESPACE" skipLogOutput: true - script: "! kubectl get secret loadbalancer-dependency --namespace $NAMESPACE" diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-dependency/03-delete-resources.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-dependency/03-delete-resources.yaml index 7fe29cc28..b4eb49b0c 100644 --- a/internal/controllers/loadbalancer/tests/loadbalancer-dependency/03-delete-resources.yaml +++ b/internal/controllers/loadbalancer/tests/loadbalancer-dependency/03-delete-resources.yaml @@ -14,9 +14,6 @@ delete: - apiVersion: openstack.k-orc.cloud/v1alpha1 kind: LoadBalancer name: loadbalancer-dependency-no-port -- apiVersion: openstack.k-orc.cloud/v1alpha1 - kind: LoadBalancer - name: loadbalancer-dependency-no-flavor - apiVersion: openstack.k-orc.cloud/v1alpha1 kind: LoadBalancer name: loadbalancer-dependency-no-project diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/00-assert.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/00-assert.yaml index c084e2354..5f28dade2 100644 --- a/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/00-assert.yaml +++ b/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/00-assert.yaml @@ -7,17 +7,17 @@ status: conditions: - type: Available message: |- - Waiting for VipNetwork/loadbalancer-import-dependency to be ready + Waiting for Network/loadbalancer-import-dependency to be ready Waiting for Project/loadbalancer-import-dependency to be ready - Waiting for VipSubnet/loadbalancer-import-dependency to be ready - Waiting for VipPort/loadbalancer-import-dependency to be ready + Waiting for Subnet/loadbalancer-import-dependency to be ready + Waiting for Port/loadbalancer-import-dependency to be ready status: "False" reason: Progressing - type: Progressing message: |- - Waiting for VipNetwork/loadbalancer-import-dependency to be ready + Waiting for Network/loadbalancer-import-dependency to be ready Waiting for Project/loadbalancer-import-dependency to be ready - Waiting for VipSubnet/loadbalancer-import-dependency to be ready - Waiting for VipPort/loadbalancer-import-dependency to be ready + Waiting for Subnet/loadbalancer-import-dependency to be ready + Waiting for Port/loadbalancer-import-dependency to be ready status: "True" reason: Progressing diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/00-import-resource.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/00-import-resource.yaml index 0f94ea83c..c236d41bf 100644 --- a/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/00-import-resource.yaml +++ b/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/00-import-resource.yaml @@ -1,16 +1,17 @@ --- apiVersion: openstack.k-orc.cloud/v1alpha1 -kind: VipNetwork +kind: Network metadata: name: loadbalancer-import-dependency spec: cloudCredentialsRef: - cloudName: openstack + cloudName: openstack-admin secretName: openstack-clouds managementPolicy: unmanaged import: filter: name: loadbalancer-import-dependency-external + projectRef: loadbalancer-import-dependency --- apiVersion: openstack.k-orc.cloud/v1alpha1 kind: Project @@ -18,7 +19,7 @@ metadata: name: loadbalancer-import-dependency spec: cloudCredentialsRef: - cloudName: openstack + cloudName: openstack-admin secretName: openstack-clouds managementPolicy: unmanaged import: @@ -26,30 +27,32 @@ spec: name: loadbalancer-import-dependency-external --- apiVersion: openstack.k-orc.cloud/v1alpha1 -kind: VipSubnet +kind: Subnet metadata: name: loadbalancer-import-dependency spec: cloudCredentialsRef: - cloudName: openstack + cloudName: openstack-admin secretName: openstack-clouds managementPolicy: unmanaged import: filter: name: loadbalancer-import-dependency-external + projectRef: loadbalancer-import-dependency --- apiVersion: openstack.k-orc.cloud/v1alpha1 -kind: VipPort +kind: Port metadata: name: loadbalancer-import-dependency spec: cloudCredentialsRef: - cloudName: openstack + cloudName: openstack-admin secretName: openstack-clouds managementPolicy: unmanaged import: filter: name: loadbalancer-import-dependency-external + projectRef: loadbalancer-import-dependency --- apiVersion: openstack.k-orc.cloud/v1alpha1 kind: LoadBalancer @@ -57,7 +60,7 @@ metadata: name: loadbalancer-import-dependency spec: cloudCredentialsRef: - cloudName: openstack + cloudName: openstack-admin secretName: openstack-clouds managementPolicy: unmanaged import: diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/01-assert.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/01-assert.yaml index 5f40565be..0ecd882d7 100644 --- a/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/01-assert.yaml +++ b/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/01-assert.yaml @@ -1,4 +1,8 @@ --- +apiVersion: kuttl.dev/v1beta1 +kind: TestAssert +timeout: 600 +--- apiVersion: openstack.k-orc.cloud/v1alpha1 kind: LoadBalancer metadata: @@ -22,17 +26,17 @@ status: conditions: - type: Available message: |- - Waiting for VipNetwork/loadbalancer-import-dependency to be ready + Waiting for Network/loadbalancer-import-dependency to be ready Waiting for Project/loadbalancer-import-dependency to be ready - Waiting for VipSubnet/loadbalancer-import-dependency to be ready - Waiting for VipPort/loadbalancer-import-dependency to be ready + Waiting for Subnet/loadbalancer-import-dependency to be ready + Waiting for Port/loadbalancer-import-dependency to be ready status: "False" reason: Progressing - type: Progressing message: |- - Waiting for VipNetwork/loadbalancer-import-dependency to be ready + Waiting for Network/loadbalancer-import-dependency to be ready Waiting for Project/loadbalancer-import-dependency to be ready - Waiting for VipSubnet/loadbalancer-import-dependency to be ready - Waiting for VipPort/loadbalancer-import-dependency to be ready + Waiting for Subnet/loadbalancer-import-dependency to be ready + Waiting for Port/loadbalancer-import-dependency to be ready status: "True" reason: Progressing diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/01-create-trap-resource.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/01-create-trap-resource.yaml index 1c28e72bf..9a89f4512 100644 --- a/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/01-create-trap-resource.yaml +++ b/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/01-create-trap-resource.yaml @@ -1,55 +1,57 @@ --- apiVersion: openstack.k-orc.cloud/v1alpha1 -kind: VipNetwork +kind: Project metadata: name: loadbalancer-import-dependency-not-this-one spec: cloudCredentialsRef: - # TODO(scaffolding): Use openstack-admin if the resouce needs admin credentials to be created - cloudName: openstack + cloudName: openstack-admin secretName: openstack-clouds managementPolicy: managed - # TODO(scaffolding): Add the necessary fields to create the resource resource: {} --- apiVersion: openstack.k-orc.cloud/v1alpha1 -kind: Project +kind: Network metadata: name: loadbalancer-import-dependency-not-this-one spec: cloudCredentialsRef: - # TODO(scaffolding): Use openstack-admin if the resouce needs admin credentials to be created - cloudName: openstack + cloudName: openstack-admin secretName: openstack-clouds managementPolicy: managed - # TODO(scaffolding): Add the necessary fields to create the resource - resource: {} + resource: + projectRef: loadbalancer-import-dependency-not-this-one --- apiVersion: openstack.k-orc.cloud/v1alpha1 -kind: VipSubnet +kind: Subnet metadata: name: loadbalancer-import-dependency-not-this-one spec: cloudCredentialsRef: - # TODO(scaffolding): Use openstack-admin if the resouce needs admin credentials to be created - cloudName: openstack + cloudName: openstack-admin secretName: openstack-clouds managementPolicy: managed - # TODO(scaffolding): Add the necessary fields to create the resource - resource: {} + resource: + networkRef: loadbalancer-import-dependency-not-this-one + projectRef: loadbalancer-import-dependency-not-this-one + ipVersion: 4 + cidr: 10.200.0.0/24 --- apiVersion: openstack.k-orc.cloud/v1alpha1 -kind: VipPort +kind: Port metadata: name: loadbalancer-import-dependency-not-this-one spec: cloudCredentialsRef: - # TODO(scaffolding): Use openstack-admin if the resouce needs admin credentials to be created - cloudName: openstack + cloudName: openstack-admin secretName: openstack-clouds managementPolicy: managed - # TODO(scaffolding): Add the necessary fields to create the resource - resource: {} + resource: + networkRef: loadbalancer-import-dependency-not-this-one + projectRef: loadbalancer-import-dependency-not-this-one + addresses: + - subnetRef: loadbalancer-import-dependency-not-this-one + ip: 10.200.0.10 --- # This `loadbalancer-import-dependency-not-this-one` should not be picked by the import filter apiVersion: openstack.k-orc.cloud/v1alpha1 @@ -58,13 +60,10 @@ metadata: name: loadbalancer-import-dependency-not-this-one spec: cloudCredentialsRef: - # TODO(scaffolding): Use openstack-admin if the resouce needs admin credentials to be created - cloudName: openstack + cloudName: openstack-admin secretName: openstack-clouds managementPolicy: managed resource: - vipNetworkRef: loadbalancer-import-dependency-not-this-one - projectRef: loadbalancer-import-dependency-not-this-one - vipSubnetRef: loadbalancer-import-dependency-not-this-one vipPortRef: loadbalancer-import-dependency-not-this-one - # TODO(scaffolding): Add the necessary fields to create the resource + vipSubnetRef: loadbalancer-import-dependency-not-this-one + projectRef: loadbalancer-import-dependency-not-this-one diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/02-assert.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/02-assert.yaml index bb1dd685b..2bb2fbdfe 100644 --- a/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/02-assert.yaml +++ b/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/02-assert.yaml @@ -1,6 +1,7 @@ --- apiVersion: kuttl.dev/v1beta1 kind: TestAssert +timeout: 600 resourceRefs: - apiVersion: openstack.k-orc.cloud/v1alpha1 kind: LoadBalancer @@ -11,27 +12,27 @@ resourceRefs: name: loadbalancer-import-dependency-not-this-one ref: loadbalancer2 - apiVersion: openstack.k-orc.cloud/v1alpha1 - kind: VipNetwork + kind: Network name: loadbalancer-import-dependency - ref: vipNetwork + ref: network - apiVersion: openstack.k-orc.cloud/v1alpha1 kind: Project name: loadbalancer-import-dependency ref: project - apiVersion: openstack.k-orc.cloud/v1alpha1 - kind: VipSubnet + kind: Subnet name: loadbalancer-import-dependency - ref: vipSubnet + ref: subnet - apiVersion: openstack.k-orc.cloud/v1alpha1 - kind: VipPort + kind: Port name: loadbalancer-import-dependency - ref: vipPort + ref: port assertAll: - celExpr: "loadbalancer1.status.id != loadbalancer2.status.id" - - celExpr: "loadbalancer1.status.resource.vipNetworkID == vipNetwork.status.id" + - celExpr: "loadbalancer1.status.resource.vipNetworkID == network.status.id" - celExpr: "loadbalancer1.status.resource.projectID == project.status.id" - - celExpr: "loadbalancer1.status.resource.vipSubnetID == vipSubnet.status.id" - - celExpr: "loadbalancer1.status.resource.vipPortID == vipPort.status.id" + - celExpr: "loadbalancer1.status.resource.vipSubnetID == subnet.status.id" + - celExpr: "loadbalancer1.status.resource.vipPortID == port.status.id" --- apiVersion: openstack.k-orc.cloud/v1alpha1 kind: LoadBalancer diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/02-create-resource.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/02-create-resource.yaml index 1d5ff803d..6044ebecd 100644 --- a/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/02-create-resource.yaml +++ b/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/02-create-resource.yaml @@ -1,55 +1,57 @@ --- apiVersion: openstack.k-orc.cloud/v1alpha1 -kind: VipNetwork +kind: Project metadata: name: loadbalancer-import-dependency-external spec: cloudCredentialsRef: - # TODO(scaffolding): Use openstack-admin if the resouce needs admin credentials to be created - cloudName: openstack + cloudName: openstack-admin secretName: openstack-clouds managementPolicy: managed - # TODO(scaffolding): Add the necessary fields to create the resource resource: {} --- apiVersion: openstack.k-orc.cloud/v1alpha1 -kind: Project +kind: Network metadata: name: loadbalancer-import-dependency-external spec: cloudCredentialsRef: - # TODO(scaffolding): Use openstack-admin if the resouce needs admin credentials to be created - cloudName: openstack + cloudName: openstack-admin secretName: openstack-clouds managementPolicy: managed - # TODO(scaffolding): Add the necessary fields to create the resource - resource: {} + resource: + projectRef: loadbalancer-import-dependency-external --- apiVersion: openstack.k-orc.cloud/v1alpha1 -kind: VipSubnet +kind: Subnet metadata: name: loadbalancer-import-dependency-external spec: cloudCredentialsRef: - # TODO(scaffolding): Use openstack-admin if the resouce needs admin credentials to be created - cloudName: openstack + cloudName: openstack-admin secretName: openstack-clouds managementPolicy: managed - # TODO(scaffolding): Add the necessary fields to create the resource - resource: {} + resource: + networkRef: loadbalancer-import-dependency-external + projectRef: loadbalancer-import-dependency-external + ipVersion: 4 + cidr: 10.201.0.0/24 --- apiVersion: openstack.k-orc.cloud/v1alpha1 -kind: VipPort +kind: Port metadata: name: loadbalancer-import-dependency-external spec: cloudCredentialsRef: - # TODO(scaffolding): Use openstack-admin if the resouce needs admin credentials to be created - cloudName: openstack + cloudName: openstack-admin secretName: openstack-clouds managementPolicy: managed - # TODO(scaffolding): Add the necessary fields to create the resource - resource: {} + resource: + networkRef: loadbalancer-import-dependency-external + projectRef: loadbalancer-import-dependency-external + addresses: + - subnetRef: loadbalancer-import-dependency-external + ip: 10.201.0.10 --- apiVersion: openstack.k-orc.cloud/v1alpha1 kind: LoadBalancer @@ -57,13 +59,10 @@ metadata: name: loadbalancer-import-dependency-external spec: cloudCredentialsRef: - # TODO(scaffolding): Use openstack-admin if the resouce needs admin credentials to be created cloudName: openstack-admin secretName: openstack-clouds managementPolicy: managed resource: - vipNetworkRef: loadbalancer-import-dependency-external - projectRef: loadbalancer-import-dependency-external - vipSubnetRef: loadbalancer-import-dependency-external vipPortRef: loadbalancer-import-dependency-external - # TODO(scaffolding): Add the necessary fields to create the resource + vipSubnetRef: loadbalancer-import-dependency-external + projectRef: loadbalancer-import-dependency-external diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/03-assert.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/03-assert.yaml index 8a3a6bcc9..f3eacb217 100644 --- a/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/03-assert.yaml +++ b/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/03-assert.yaml @@ -1,12 +1,13 @@ --- apiVersion: kuttl.dev/v1beta1 kind: TestAssert +timeout: 300 commands: -- script: "! kubectl get vipnetwork loadbalancer-import-dependency --namespace $NAMESPACE" +- script: "! kubectl get network loadbalancer-import-dependency --namespace $NAMESPACE" skipLogOutput: true - script: "! kubectl get project loadbalancer-import-dependency --namespace $NAMESPACE" skipLogOutput: true -- script: "! kubectl get vipsubnet loadbalancer-import-dependency --namespace $NAMESPACE" +- script: "! kubectl get subnet loadbalancer-import-dependency --namespace $NAMESPACE" skipLogOutput: true -- script: "! kubectl get vipport loadbalancer-import-dependency --namespace $NAMESPACE" +- script: "! kubectl get port loadbalancer-import-dependency --namespace $NAMESPACE" skipLogOutput: true diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/03-delete-import-dependencies.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/03-delete-import-dependencies.yaml index 06db478c4..e6be2bd79 100644 --- a/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/03-delete-import-dependencies.yaml +++ b/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/03-delete-import-dependencies.yaml @@ -3,11 +3,11 @@ apiVersion: kuttl.dev/v1beta1 kind: TestStep commands: # We should be able to delete the import dependencies - - command: kubectl delete vipnetwork loadbalancer-import-dependency + - command: kubectl delete network loadbalancer-import-dependency namespaced: true - command: kubectl delete project loadbalancer-import-dependency namespaced: true - - command: kubectl delete vipsubnet loadbalancer-import-dependency + - command: kubectl delete subnet loadbalancer-import-dependency namespaced: true - - command: kubectl delete vipport loadbalancer-import-dependency + - command: kubectl delete port loadbalancer-import-dependency namespaced: true diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/04-assert.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/04-assert.yaml index 0aa186534..fc8d89127 100644 --- a/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/04-assert.yaml +++ b/internal/controllers/loadbalancer/tests/loadbalancer-import-dependency/04-assert.yaml @@ -1,6 +1,7 @@ --- apiVersion: kuttl.dev/v1beta1 kind: TestAssert +timeout: 300 commands: - script: "! kubectl get loadbalancer loadbalancer-import-dependency --namespace $NAMESPACE" skipLogOutput: true diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-import-error/00-assert.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-import-error/00-assert.yaml index 310f9510b..43ddf0314 100644 --- a/internal/controllers/loadbalancer/tests/loadbalancer-import-error/00-assert.yaml +++ b/internal/controllers/loadbalancer/tests/loadbalancer-import-error/00-assert.yaml @@ -6,11 +6,9 @@ metadata: status: conditions: - type: Available - message: OpenStack resource is available status: "True" reason: Success - type: Progressing - message: OpenStack resource is up to date status: "False" reason: Success --- @@ -21,10 +19,12 @@ metadata: status: conditions: - type: Available - message: OpenStack resource is available status: "True" reason: Success - type: Progressing - message: OpenStack resource is up to date status: "False" reason: Success +--- +apiVersion: kuttl.dev/v1beta1 +kind: TestAssert +timeout: 600 diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-import-error/00-create-resources.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-import-error/00-create-resources.yaml index 37ab64de5..94cf2dd6b 100644 --- a/internal/controllers/loadbalancer/tests/loadbalancer-import-error/00-create-resources.yaml +++ b/internal/controllers/loadbalancer/tests/loadbalancer-import-error/00-create-resources.yaml @@ -1,17 +1,41 @@ --- apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: Network +metadata: + name: loadbalancer-import-error +spec: + cloudCredentialsRef: + cloudName: openstack + secretName: openstack-clouds + managementPolicy: managed + resource: {} +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: Subnet +metadata: + name: loadbalancer-import-error +spec: + cloudCredentialsRef: + cloudName: openstack + secretName: openstack-clouds + managementPolicy: managed + resource: + networkRef: loadbalancer-import-error + ipVersion: 4 + cidr: 10.0.0.0/24 +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 kind: LoadBalancer metadata: name: loadbalancer-import-error-external-1 spec: cloudCredentialsRef: - # TODO(scaffolding): Use openstack-admin if the resouce needs admin credentials to be created cloudName: openstack secretName: openstack-clouds managementPolicy: managed resource: + vipSubnetRef: loadbalancer-import-error description: LoadBalancer from "import error" test - # TODO(scaffolding): add any required field --- apiVersion: openstack.k-orc.cloud/v1alpha1 kind: LoadBalancer @@ -19,10 +43,9 @@ metadata: name: loadbalancer-import-error-external-2 spec: cloudCredentialsRef: - # TODO(scaffolding): Use openstack-admin if the resouce needs admin credentials to be created cloudName: openstack secretName: openstack-clouds managementPolicy: managed resource: + vipSubnetRef: loadbalancer-import-error description: LoadBalancer from "import error" test - # TODO(scaffolding): add any required field diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-import/00-import-resource.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-import/00-import-resource.yaml index b5f3c6de4..d3e0e1669 100644 --- a/internal/controllers/loadbalancer/tests/loadbalancer-import/00-import-resource.yaml +++ b/internal/controllers/loadbalancer/tests/loadbalancer-import/00-import-resource.yaml @@ -1,5 +1,30 @@ --- apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: Network +metadata: + name: loadbalancer-import +spec: + cloudCredentialsRef: + cloudName: openstack + secretName: openstack-clouds + managementPolicy: managed + resource: {} +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: Subnet +metadata: + name: loadbalancer-import +spec: + cloudCredentialsRef: + cloudName: openstack + secretName: openstack-clouds + managementPolicy: managed + resource: + networkRef: loadbalancer-import + ipVersion: 4 + cidr: 10.0.0.0/24 +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 kind: LoadBalancer metadata: name: loadbalancer-import @@ -12,4 +37,8 @@ spec: filter: name: loadbalancer-import-external description: LoadBalancer loadbalancer-import-external from "loadbalancer-import" test - # TODO(scaffolding): Add all fields supported by the filter + provider: amphora + vipAddress: 10.0.0.100 + tags: + - import-test + - external-lb diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-import/01-assert.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-import/01-assert.yaml index aa4e17c01..f6126a81a 100644 --- a/internal/controllers/loadbalancer/tests/loadbalancer-import/01-assert.yaml +++ b/internal/controllers/loadbalancer/tests/loadbalancer-import/01-assert.yaml @@ -1,4 +1,8 @@ --- +apiVersion: kuttl.dev/v1beta1 +kind: TestAssert +timeout: 600 +--- apiVersion: openstack.k-orc.cloud/v1alpha1 kind: LoadBalancer metadata: @@ -6,17 +10,14 @@ metadata: status: conditions: - type: Available - message: OpenStack resource is available status: "True" reason: Success - type: Progressing - message: OpenStack resource is up to date status: "False" reason: Success resource: name: loadbalancer-import-external-not-this-one description: LoadBalancer loadbalancer-import-external from "loadbalancer-import" test - # TODO(scaffolding): Add fields necessary to match filter --- apiVersion: openstack.k-orc.cloud/v1alpha1 kind: LoadBalancer diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-import/01-create-trap-resource.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-import/01-create-trap-resource.yaml index fea259b60..6b4f82a35 100644 --- a/internal/controllers/loadbalancer/tests/loadbalancer-import/01-create-trap-resource.yaml +++ b/internal/controllers/loadbalancer/tests/loadbalancer-import/01-create-trap-resource.yaml @@ -8,10 +8,9 @@ metadata: name: loadbalancer-import-external-not-this-one spec: cloudCredentialsRef: - # TODO(scaffolding): Use openstack-admin if the resouce needs admin credentials to be created cloudName: openstack secretName: openstack-clouds managementPolicy: managed resource: + vipSubnetRef: loadbalancer-import description: LoadBalancer loadbalancer-import-external from "loadbalancer-import" test - # TODO(scaffolding): Add fields necessary to match filter diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-import/02-assert.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-import/02-assert.yaml index 7678b3e49..67b1119fb 100644 --- a/internal/controllers/loadbalancer/tests/loadbalancer-import/02-assert.yaml +++ b/internal/controllers/loadbalancer/tests/loadbalancer-import/02-assert.yaml @@ -1,6 +1,7 @@ --- apiVersion: kuttl.dev/v1beta1 kind: TestAssert +timeout: 600 resourceRefs: - apiVersion: openstack.k-orc.cloud/v1alpha1 kind: LoadBalancer @@ -10,24 +11,31 @@ resourceRefs: kind: LoadBalancer name: loadbalancer-import-external-not-this-one ref: loadbalancer2 + - apiVersion: openstack.k-orc.cloud/v1alpha1 + kind: LoadBalancer + name: loadbalancer-import + ref: loadbalancerImport assertAll: - celExpr: "loadbalancer1.status.id != loadbalancer2.status.id" + - celExpr: "loadbalancerImport.status.id == loadbalancer1.status.id" --- apiVersion: openstack.k-orc.cloud/v1alpha1 kind: LoadBalancer metadata: name: loadbalancer-import status: - conditions: - - type: Available - message: OpenStack resource is available - status: "True" - reason: Success - - type: Progressing - message: OpenStack resource is up to date - status: "False" - reason: Success resource: name: loadbalancer-import-external description: LoadBalancer loadbalancer-import-external from "loadbalancer-import" test - # TODO(scaffolding): Add all fields the resource supports + provider: amphora + vipAddress: 10.0.0.100 + tags: + - external-lb + - import-test + conditions: + - type: Available + status: "True" + reason: Success + - type: Progressing + status: "False" + reason: Success diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-import/02-create-resource.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-import/02-create-resource.yaml index 5c55a3b64..a3e1fd327 100644 --- a/internal/controllers/loadbalancer/tests/loadbalancer-import/02-create-resource.yaml +++ b/internal/controllers/loadbalancer/tests/loadbalancer-import/02-create-resource.yaml @@ -5,10 +5,14 @@ metadata: name: loadbalancer-import-external spec: cloudCredentialsRef: - # TODO(scaffolding): Use openstack-admin if the resouce needs admin credentials to be created cloudName: openstack secretName: openstack-clouds managementPolicy: managed resource: + vipSubnetRef: loadbalancer-import description: LoadBalancer loadbalancer-import-external from "loadbalancer-import" test - # TODO(scaffolding): Add fields necessary to match filter + provider: amphora + vipAddress: 10.0.0.100 + tags: + - import-test + - external-lb diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-update/00-assert.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-update/00-assert.yaml index bc7dffe84..fa5f60b67 100644 --- a/internal/controllers/loadbalancer/tests/loadbalancer-update/00-assert.yaml +++ b/internal/controllers/loadbalancer/tests/loadbalancer-update/00-assert.yaml @@ -1,13 +1,19 @@ --- apiVersion: kuttl.dev/v1beta1 kind: TestAssert +timeout: 600 resourceRefs: - apiVersion: openstack.k-orc.cloud/v1alpha1 kind: LoadBalancer name: loadbalancer-update ref: loadbalancer + - apiVersion: openstack.k-orc.cloud/v1alpha1 + kind: Subnet + name: loadbalancer-update + ref: subnet assertAll: - - celExpr: "!has(loadbalancer.status.resource.description)" + - celExpr: "loadbalancer.status.resource.description == ''" + - celExpr: "loadbalancer.status.resource.vipSubnetID == subnet.status.id" --- apiVersion: openstack.k-orc.cloud/v1alpha1 kind: LoadBalancer @@ -16,11 +22,11 @@ metadata: status: resource: name: loadbalancer-update - # TODO(scaffolding): Add matches for more fields + provisioningStatus: ACTIVE conditions: - - type: Available - status: "True" - reason: Success - - type: Progressing - status: "False" - reason: Success + - type: Available + status: "True" + reason: Success + - type: Progressing + status: "False" + reason: Success diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-update/00-minimal-resource.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-update/00-minimal-resource.yaml index b0a66b498..cfa04301b 100644 --- a/internal/controllers/loadbalancer/tests/loadbalancer-update/00-minimal-resource.yaml +++ b/internal/controllers/loadbalancer/tests/loadbalancer-update/00-minimal-resource.yaml @@ -5,10 +5,8 @@ metadata: name: loadbalancer-update spec: cloudCredentialsRef: - # TODO(scaffolding): Use openstack-admin if the resouce needs admin credentials to be created or updated cloudName: openstack secretName: openstack-clouds managementPolicy: managed - # TODO(scaffolding): Only add the mandatory fields. It's possible the resource - # doesn't have mandatory fields, in that case, leave it empty. - resource: {} + resource: + vipSubnetRef: loadbalancer-update diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-update/00-prerequisites.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-update/00-prerequisites.yaml index 045711ee7..5d74c652d 100644 --- a/internal/controllers/loadbalancer/tests/loadbalancer-update/00-prerequisites.yaml +++ b/internal/controllers/loadbalancer/tests/loadbalancer-update/00-prerequisites.yaml @@ -4,3 +4,28 @@ kind: TestStep commands: - command: kubectl create secret generic openstack-clouds --from-file=clouds.yaml=${E2E_KUTTL_OSCLOUDS} ${E2E_KUTTL_CACERT_OPT} namespaced: true +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: Network +metadata: + name: loadbalancer-update +spec: + cloudCredentialsRef: + cloudName: openstack + secretName: openstack-clouds + managementPolicy: managed + resource: {} +--- +apiVersion: openstack.k-orc.cloud/v1alpha1 +kind: Subnet +metadata: + name: loadbalancer-update +spec: + cloudCredentialsRef: + cloudName: openstack + secretName: openstack-clouds + managementPolicy: managed + resource: + networkRef: loadbalancer-update + ipVersion: 4 + cidr: 10.0.0.0/24 diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-update/01-assert.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-update/01-assert.yaml index 9cd82b42f..bdfe8f077 100644 --- a/internal/controllers/loadbalancer/tests/loadbalancer-update/01-assert.yaml +++ b/internal/controllers/loadbalancer/tests/loadbalancer-update/01-assert.yaml @@ -7,7 +7,9 @@ status: resource: name: loadbalancer-update-updated description: loadbalancer-update-updated - # TODO(scaffolding): match all fields that were modified + adminStateUp: false + tags: + - updated-tag conditions: - type: Available status: "True" diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-update/01-updated-resource.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-update/01-updated-resource.yaml index 4b0cebf26..b8fc612de 100644 --- a/internal/controllers/loadbalancer/tests/loadbalancer-update/01-updated-resource.yaml +++ b/internal/controllers/loadbalancer/tests/loadbalancer-update/01-updated-resource.yaml @@ -5,6 +5,9 @@ metadata: name: loadbalancer-update spec: resource: + vipSubnetRef: loadbalancer-update name: loadbalancer-update-updated description: loadbalancer-update-updated - # TODO(scaffolding): update all mutable fields + adminStateUp: false + tags: + - updated-tag diff --git a/internal/controllers/loadbalancer/tests/loadbalancer-update/02-assert.yaml b/internal/controllers/loadbalancer/tests/loadbalancer-update/02-assert.yaml index 82a2efd49..9ecd1bf9b 100644 --- a/internal/controllers/loadbalancer/tests/loadbalancer-update/02-assert.yaml +++ b/internal/controllers/loadbalancer/tests/loadbalancer-update/02-assert.yaml @@ -1,13 +1,15 @@ --- apiVersion: kuttl.dev/v1beta1 kind: TestAssert +timeout: 600 resourceRefs: - apiVersion: openstack.k-orc.cloud/v1alpha1 kind: LoadBalancer name: loadbalancer-update ref: loadbalancer assertAll: - - celExpr: "!has(loadbalancer.status.resource.description)" + - celExpr: "loadbalancer.status.resource.description == ''" + - celExpr: "!has(loadbalancer.status.resource.tags)" --- apiVersion: openstack.k-orc.cloud/v1alpha1 kind: LoadBalancer @@ -16,7 +18,6 @@ metadata: status: resource: name: loadbalancer-update - # TODO(scaffolding): validate that updated fields were all reverted to their original value conditions: - type: Available status: "True" diff --git a/internal/controllers/loadbalancer/zz_generated.adapter.go b/internal/controllers/loadbalancer/zz_generated.adapter.go new file mode 100644 index 000000000..f4f517939 --- /dev/null +++ b/internal/controllers/loadbalancer/zz_generated.adapter.go @@ -0,0 +1,88 @@ +// Code generated by resource-generator. DO NOT EDIT. +/* +Copyright The ORC Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package loadbalancer + +import ( + orcv1alpha1 "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1" + "github.com/k-orc/openstack-resource-controller/v2/internal/controllers/generic/interfaces" +) + +// Fundamental types +type ( + orcObjectT = orcv1alpha1.LoadBalancer + orcObjectListT = orcv1alpha1.LoadBalancerList + resourceSpecT = orcv1alpha1.LoadBalancerResourceSpec + filterT = orcv1alpha1.LoadBalancerFilter +) + +// Derived types +type ( + orcObjectPT = *orcObjectT + adapterI = interfaces.APIObjectAdapter[orcObjectPT, resourceSpecT, filterT] + adapterT = loadbalancerAdapter +) + +type loadbalancerAdapter struct { + *orcv1alpha1.LoadBalancer +} + +var _ adapterI = &adapterT{} + +func (f adapterT) GetObject() orcObjectPT { + return f.LoadBalancer +} + +func (f adapterT) GetManagementPolicy() orcv1alpha1.ManagementPolicy { + return f.Spec.ManagementPolicy +} + +func (f adapterT) GetManagedOptions() *orcv1alpha1.ManagedOptions { + return f.Spec.ManagedOptions +} + +func (f adapterT) GetStatusID() *string { + return f.Status.ID +} + +func (f adapterT) GetResourceSpec() *resourceSpecT { + return f.Spec.Resource +} + +func (f adapterT) GetImportID() *string { + if f.Spec.Import == nil { + return nil + } + return f.Spec.Import.ID +} + +func (f adapterT) GetImportFilter() *filterT { + if f.Spec.Import == nil { + return nil + } + return f.Spec.Import.Filter +} + +// getResourceName returns the name of the OpenStack resource we should use. +// This method is not implemented as part of APIObjectAdapter as it is intended +// to be used by resource actuators, which don't use the adapter. +func getResourceName(orcObject orcObjectPT) string { + if orcObject.Spec.Resource.Name != nil { + return string(*orcObject.Spec.Resource.Name) + } + return orcObject.Name +} diff --git a/internal/controllers/loadbalancer/zz_generated.controller.go b/internal/controllers/loadbalancer/zz_generated.controller.go new file mode 100644 index 000000000..cc3bdf8df --- /dev/null +++ b/internal/controllers/loadbalancer/zz_generated.controller.go @@ -0,0 +1,45 @@ +// Code generated by resource-generator. DO NOT EDIT. +/* +Copyright The ORC Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package loadbalancer + +import ( + corev1 "k8s.io/api/core/v1" + + "github.com/k-orc/openstack-resource-controller/v2/internal/util/dependency" + orcstrings "github.com/k-orc/openstack-resource-controller/v2/internal/util/strings" +) + +var ( + // NOTE: controllerName must be defined in any controller using this template + + // finalizer is the string this controller adds to an object's Finalizers + finalizer = orcstrings.GetFinalizerName(controllerName) + + // externalObjectFieldOwner is the field owner we use when using + // server-side-apply on objects we don't control + externalObjectFieldOwner = orcstrings.GetSSAFieldOwner(controllerName) + + credentialsDependency = dependency.NewDeletionGuardDependency[*orcObjectListT, *corev1.Secret]( + "spec.cloudCredentialsRef.secretName", + func(obj orcObjectPT) []string { + return []string{obj.Spec.CloudCredentialsRef.SecretName} + }, + finalizer, externalObjectFieldOwner, + dependency.OverrideDependencyName("credentials"), + ) +) diff --git a/internal/osclients/loadbalancer.go b/internal/osclients/loadbalancer.go index d28574583..e7ec912ce 100644 --- a/internal/osclients/loadbalancer.go +++ b/internal/osclients/loadbalancer.go @@ -63,7 +63,7 @@ func (c loadbalancerClient) CreateLoadBalancer(ctx context.Context, opts loadbal } func (c loadbalancerClient) DeleteLoadBalancer(ctx context.Context, resourceID string) error { - return loadbalancers.Delete(ctx, c.client, resourceID).ExtractErr() + return loadbalancers.Delete(ctx, c.client, resourceID, nil).ExtractErr() } func (c loadbalancerClient) GetLoadBalancer(ctx context.Context, resourceID string) (*loadbalancers.LoadBalancer, error) { diff --git a/internal/osclients/mock/doc.go b/internal/osclients/mock/doc.go index 5ee7aa5da..244ee10a8 100644 --- a/internal/osclients/mock/doc.go +++ b/internal/osclients/mock/doc.go @@ -53,6 +53,9 @@ import ( //go:generate mockgen -package mock -destination=keypair.go -source=../keypair.go github.com/k-orc/openstack-resource-controller/internal/osclients/mock KeyPairClient //go:generate /usr/bin/env bash -c "cat ../../../hack/boilerplate.go.txt keypair.go > _keypair.go && mv _keypair.go keypair.go" +//go:generate mockgen -package mock -destination=loadbalancer.go -source=../loadbalancer.go github.com/k-orc/openstack-resource-controller/internal/osclients/mock LoadBalancerClient +//go:generate /usr/bin/env bash -c "cat ../../../hack/boilerplate.go.txt loadbalancer.go > _loadbalancer.go && mv _loadbalancer.go loadbalancer.go" + //go:generate mockgen -package mock -destination=role.go -source=../role.go github.com/k-orc/openstack-resource-controller/internal/osclients/mock RoleClient //go:generate /usr/bin/env bash -c "cat ../../../hack/boilerplate.go.txt role.go > _role.go && mv _role.go role.go" diff --git a/internal/osclients/mock/loadbalancer.go b/internal/osclients/mock/loadbalancer.go new file mode 100644 index 000000000..aae159cd9 --- /dev/null +++ b/internal/osclients/mock/loadbalancer.go @@ -0,0 +1,131 @@ +/* +Copyright The ORC Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ +// Code generated by MockGen. DO NOT EDIT. +// Source: ../loadbalancer.go +// +// Generated by this command: +// +// mockgen -package mock -destination=loadbalancer.go -source=../loadbalancer.go github.com/k-orc/openstack-resource-controller/internal/osclients/mock LoadBalancerClient +// + +// Package mock is a generated GoMock package. +package mock + +import ( + context "context" + iter "iter" + reflect "reflect" + + loadbalancers "github.com/gophercloud/gophercloud/v2/openstack/loadbalancer/v2/loadbalancers" + gomock "go.uber.org/mock/gomock" +) + +// MockLoadBalancerClient is a mock of LoadBalancerClient interface. +type MockLoadBalancerClient struct { + ctrl *gomock.Controller + recorder *MockLoadBalancerClientMockRecorder + isgomock struct{} +} + +// MockLoadBalancerClientMockRecorder is the mock recorder for MockLoadBalancerClient. +type MockLoadBalancerClientMockRecorder struct { + mock *MockLoadBalancerClient +} + +// NewMockLoadBalancerClient creates a new mock instance. +func NewMockLoadBalancerClient(ctrl *gomock.Controller) *MockLoadBalancerClient { + mock := &MockLoadBalancerClient{ctrl: ctrl} + mock.recorder = &MockLoadBalancerClientMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use. +func (m *MockLoadBalancerClient) EXPECT() *MockLoadBalancerClientMockRecorder { + return m.recorder +} + +// CreateLoadBalancer mocks base method. +func (m *MockLoadBalancerClient) CreateLoadBalancer(ctx context.Context, opts loadbalancers.CreateOptsBuilder) (*loadbalancers.LoadBalancer, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "CreateLoadBalancer", ctx, opts) + ret0, _ := ret[0].(*loadbalancers.LoadBalancer) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// CreateLoadBalancer indicates an expected call of CreateLoadBalancer. +func (mr *MockLoadBalancerClientMockRecorder) CreateLoadBalancer(ctx, opts any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateLoadBalancer", reflect.TypeOf((*MockLoadBalancerClient)(nil).CreateLoadBalancer), ctx, opts) +} + +// DeleteLoadBalancer mocks base method. +func (m *MockLoadBalancerClient) DeleteLoadBalancer(ctx context.Context, resourceID string) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteLoadBalancer", ctx, resourceID) + ret0, _ := ret[0].(error) + return ret0 +} + +// DeleteLoadBalancer indicates an expected call of DeleteLoadBalancer. +func (mr *MockLoadBalancerClientMockRecorder) DeleteLoadBalancer(ctx, resourceID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteLoadBalancer", reflect.TypeOf((*MockLoadBalancerClient)(nil).DeleteLoadBalancer), ctx, resourceID) +} + +// GetLoadBalancer mocks base method. +func (m *MockLoadBalancerClient) GetLoadBalancer(ctx context.Context, resourceID string) (*loadbalancers.LoadBalancer, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetLoadBalancer", ctx, resourceID) + ret0, _ := ret[0].(*loadbalancers.LoadBalancer) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetLoadBalancer indicates an expected call of GetLoadBalancer. +func (mr *MockLoadBalancerClientMockRecorder) GetLoadBalancer(ctx, resourceID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetLoadBalancer", reflect.TypeOf((*MockLoadBalancerClient)(nil).GetLoadBalancer), ctx, resourceID) +} + +// ListLoadBalancers mocks base method. +func (m *MockLoadBalancerClient) ListLoadBalancers(ctx context.Context, listOpts loadbalancers.ListOptsBuilder) iter.Seq2[*loadbalancers.LoadBalancer, error] { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListLoadBalancers", ctx, listOpts) + ret0, _ := ret[0].(iter.Seq2[*loadbalancers.LoadBalancer, error]) + return ret0 +} + +// ListLoadBalancers indicates an expected call of ListLoadBalancers. +func (mr *MockLoadBalancerClientMockRecorder) ListLoadBalancers(ctx, listOpts any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListLoadBalancers", reflect.TypeOf((*MockLoadBalancerClient)(nil).ListLoadBalancers), ctx, listOpts) +} + +// UpdateLoadBalancer mocks base method. +func (m *MockLoadBalancerClient) UpdateLoadBalancer(ctx context.Context, id string, opts loadbalancers.UpdateOptsBuilder) (*loadbalancers.LoadBalancer, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateLoadBalancer", ctx, id, opts) + ret0, _ := ret[0].(*loadbalancers.LoadBalancer) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpdateLoadBalancer indicates an expected call of UpdateLoadBalancer. +func (mr *MockLoadBalancerClientMockRecorder) UpdateLoadBalancer(ctx, id, opts any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateLoadBalancer", reflect.TypeOf((*MockLoadBalancerClient)(nil).UpdateLoadBalancer), ctx, id, opts) +} diff --git a/internal/scope/mock.go b/internal/scope/mock.go index 8ea474b64..10e289726 100644 --- a/internal/scope/mock.go +++ b/internal/scope/mock.go @@ -43,6 +43,7 @@ type MockScopeFactory struct { IdentityClient *mock.MockIdentityClient ImageClient *mock.MockImageClient KeyPairClient *mock.MockKeyPairClient + LoadBalancerClient *mock.MockLoadBalancerClient NetworkClient *mock.MockNetworkClient RoleClient *mock.MockRoleClient ServiceClient *mock.MockServiceClient @@ -64,6 +65,7 @@ func NewMockScopeFactory(mockCtrl *gomock.Controller) *MockScopeFactory { identityClient := mock.NewMockIdentityClient(mockCtrl) imageClient := mock.NewMockImageClient(mockCtrl) keypairClient := mock.NewMockKeyPairClient(mockCtrl) + loadBalancerClient := mock.NewMockLoadBalancerClient(mockCtrl) networkClient := mock.NewMockNetworkClient(mockCtrl) roleClient := mock.NewMockRoleClient(mockCtrl) serviceClient := mock.NewMockServiceClient(mockCtrl) @@ -82,6 +84,7 @@ func NewMockScopeFactory(mockCtrl *gomock.Controller) *MockScopeFactory { IdentityClient: identityClient, ImageClient: imageClient, KeyPairClient: keypairClient, + LoadBalancerClient: loadBalancerClient, NetworkClient: networkClient, RoleClient: roleClient, ServiceClient: serviceClient, @@ -167,6 +170,10 @@ func (f *MockScopeFactory) NewApplicationCredentialClient() (osclients.Applicati return f.ApplicationCredentialClient, nil } +func (f *MockScopeFactory) NewLoadBalancerClient() (osclients.LoadBalancerClient, error) { + return f.LoadBalancerClient, nil +} + func (f *MockScopeFactory) ExtractToken() (*tokens.Token, error) { return &tokens.Token{ExpiresAt: time.Now().Add(24 * time.Hour)}, nil } diff --git a/internal/scope/provider.go b/internal/scope/provider.go index 1606e18a1..40fae3f6d 100644 --- a/internal/scope/provider.go +++ b/internal/scope/provider.go @@ -201,6 +201,10 @@ func (s *providerScope) NewRoleClient() (clients.RoleClient, error) { return clients.NewRoleClient(s.providerClient, s.providerClientOpts) } +func (s *providerScope) NewLoadBalancerClient() (clients.LoadBalancerClient, error) { + return clients.NewLoadBalancerClient(s.providerClient, s.providerClientOpts) +} + func (s *providerScope) ExtractToken() (*tokens.Token, error) { client, err := openstack.NewIdentityV3(s.providerClient, gophercloud.EndpointOpts{}) if err != nil { diff --git a/internal/scope/scope.go b/internal/scope/scope.go index 0b02b79bd..e76226603 100644 --- a/internal/scope/scope.go +++ b/internal/scope/scope.go @@ -64,6 +64,7 @@ type Scope interface { NewUserClient() (osclients.UserClient, error) NewVolumeClient() (osclients.VolumeClient, error) NewVolumeTypeClient() (osclients.VolumeTypeClient, error) + NewLoadBalancerClient() (osclients.LoadBalancerClient, error) ExtractToken() (*tokens.Token, error) } diff --git a/kuttl-test.yaml b/kuttl-test.yaml index 71fc135ed..f70013a48 100644 --- a/kuttl-test.yaml +++ b/kuttl-test.yaml @@ -11,6 +11,7 @@ testDirs: - ./internal/controllers/group/tests/ - ./internal/controllers/image/tests/ - ./internal/controllers/keypair/tests/ +- ./internal/controllers/loadbalancer/tests/ - ./internal/controllers/network/tests/ - ./internal/controllers/port/tests/ - ./internal/controllers/project/tests/ diff --git a/pkg/clients/applyconfiguration/api/v1alpha1/loadbalancer.go b/pkg/clients/applyconfiguration/api/v1alpha1/loadbalancer.go new file mode 100644 index 000000000..0fb8d2f2d --- /dev/null +++ b/pkg/clients/applyconfiguration/api/v1alpha1/loadbalancer.go @@ -0,0 +1,281 @@ +/* +Copyright The ORC Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + apiv1alpha1 "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1" + internal "github.com/k-orc/openstack-resource-controller/v2/pkg/clients/applyconfiguration/internal" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// LoadBalancerApplyConfiguration represents a declarative configuration of the LoadBalancer type for use +// with apply. +type LoadBalancerApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + Spec *LoadBalancerSpecApplyConfiguration `json:"spec,omitempty"` + Status *LoadBalancerStatusApplyConfiguration `json:"status,omitempty"` +} + +// LoadBalancer constructs a declarative configuration of the LoadBalancer type for use with +// apply. +func LoadBalancer(name, namespace string) *LoadBalancerApplyConfiguration { + b := &LoadBalancerApplyConfiguration{} + b.WithName(name) + b.WithNamespace(namespace) + b.WithKind("LoadBalancer") + b.WithAPIVersion("openstack.k-orc.cloud/v1alpha1") + return b +} + +// ExtractLoadBalancer extracts the applied configuration owned by fieldManager from +// loadBalancer. If no managedFields are found in loadBalancer for fieldManager, a +// LoadBalancerApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. It is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// loadBalancer must be a unmodified LoadBalancer API object that was retrieved from the Kubernetes API. +// ExtractLoadBalancer provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +// Experimental! +func ExtractLoadBalancer(loadBalancer *apiv1alpha1.LoadBalancer, fieldManager string) (*LoadBalancerApplyConfiguration, error) { + return extractLoadBalancer(loadBalancer, fieldManager, "") +} + +// ExtractLoadBalancerStatus is the same as ExtractLoadBalancer except +// that it extracts the status subresource applied configuration. +// Experimental! +func ExtractLoadBalancerStatus(loadBalancer *apiv1alpha1.LoadBalancer, fieldManager string) (*LoadBalancerApplyConfiguration, error) { + return extractLoadBalancer(loadBalancer, fieldManager, "status") +} + +func extractLoadBalancer(loadBalancer *apiv1alpha1.LoadBalancer, fieldManager string, subresource string) (*LoadBalancerApplyConfiguration, error) { + b := &LoadBalancerApplyConfiguration{} + err := managedfields.ExtractInto(loadBalancer, internal.Parser().Type("com.github.k-orc.openstack-resource-controller.v2.api.v1alpha1.LoadBalancer"), fieldManager, b, subresource) + if err != nil { + return nil, err + } + b.WithName(loadBalancer.Name) + b.WithNamespace(loadBalancer.Namespace) + + b.WithKind("LoadBalancer") + b.WithAPIVersion("openstack.k-orc.cloud/v1alpha1") + return b, nil +} +func (b LoadBalancerApplyConfiguration) IsApplyConfiguration() {} + +// WithKind sets the Kind field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Kind field is set to the value of the last call. +func (b *LoadBalancerApplyConfiguration) WithKind(value string) *LoadBalancerApplyConfiguration { + b.TypeMetaApplyConfiguration.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the APIVersion field is set to the value of the last call. +func (b *LoadBalancerApplyConfiguration) WithAPIVersion(value string) *LoadBalancerApplyConfiguration { + b.TypeMetaApplyConfiguration.APIVersion = &value + return b +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *LoadBalancerApplyConfiguration) WithName(value string) *LoadBalancerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ObjectMetaApplyConfiguration.Name = &value + return b +} + +// WithGenerateName sets the GenerateName field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the GenerateName field is set to the value of the last call. +func (b *LoadBalancerApplyConfiguration) WithGenerateName(value string) *LoadBalancerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ObjectMetaApplyConfiguration.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Namespace field is set to the value of the last call. +func (b *LoadBalancerApplyConfiguration) WithNamespace(value string) *LoadBalancerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ObjectMetaApplyConfiguration.Namespace = &value + return b +} + +// WithUID sets the UID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the UID field is set to the value of the last call. +func (b *LoadBalancerApplyConfiguration) WithUID(value types.UID) *LoadBalancerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ObjectMetaApplyConfiguration.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ResourceVersion field is set to the value of the last call. +func (b *LoadBalancerApplyConfiguration) WithResourceVersion(value string) *LoadBalancerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ObjectMetaApplyConfiguration.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Generation field is set to the value of the last call. +func (b *LoadBalancerApplyConfiguration) WithGeneration(value int64) *LoadBalancerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ObjectMetaApplyConfiguration.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CreationTimestamp field is set to the value of the last call. +func (b *LoadBalancerApplyConfiguration) WithCreationTimestamp(value metav1.Time) *LoadBalancerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ObjectMetaApplyConfiguration.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionTimestamp field is set to the value of the last call. +func (b *LoadBalancerApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *LoadBalancerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ObjectMetaApplyConfiguration.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *LoadBalancerApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *LoadBalancerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *LoadBalancerApplyConfiguration) WithLabels(entries map[string]string) *LoadBalancerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 { + b.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.ObjectMetaApplyConfiguration.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *LoadBalancerApplyConfiguration) WithAnnotations(entries map[string]string) *LoadBalancerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 { + b.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.ObjectMetaApplyConfiguration.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *LoadBalancerApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *LoadBalancerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *LoadBalancerApplyConfiguration) WithFinalizers(values ...string) *LoadBalancerApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i]) + } + return b +} + +func (b *LoadBalancerApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSpec sets the Spec field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Spec field is set to the value of the last call. +func (b *LoadBalancerApplyConfiguration) WithSpec(value *LoadBalancerSpecApplyConfiguration) *LoadBalancerApplyConfiguration { + b.Spec = value + return b +} + +// WithStatus sets the Status field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Status field is set to the value of the last call. +func (b *LoadBalancerApplyConfiguration) WithStatus(value *LoadBalancerStatusApplyConfiguration) *LoadBalancerApplyConfiguration { + b.Status = value + return b +} + +// GetKind retrieves the value of the Kind field in the declarative configuration. +func (b *LoadBalancerApplyConfiguration) GetKind() *string { + return b.TypeMetaApplyConfiguration.Kind +} + +// GetAPIVersion retrieves the value of the APIVersion field in the declarative configuration. +func (b *LoadBalancerApplyConfiguration) GetAPIVersion() *string { + return b.TypeMetaApplyConfiguration.APIVersion +} + +// GetName retrieves the value of the Name field in the declarative configuration. +func (b *LoadBalancerApplyConfiguration) GetName() *string { + b.ensureObjectMetaApplyConfigurationExists() + return b.ObjectMetaApplyConfiguration.Name +} + +// GetNamespace retrieves the value of the Namespace field in the declarative configuration. +func (b *LoadBalancerApplyConfiguration) GetNamespace() *string { + b.ensureObjectMetaApplyConfigurationExists() + return b.ObjectMetaApplyConfiguration.Namespace +} diff --git a/pkg/clients/applyconfiguration/api/v1alpha1/loadbalancerfilter.go b/pkg/clients/applyconfiguration/api/v1alpha1/loadbalancerfilter.go new file mode 100644 index 000000000..46b3abe89 --- /dev/null +++ b/pkg/clients/applyconfiguration/api/v1alpha1/loadbalancerfilter.go @@ -0,0 +1,159 @@ +/* +Copyright The ORC Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + apiv1alpha1 "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1" +) + +// LoadBalancerFilterApplyConfiguration represents a declarative configuration of the LoadBalancerFilter type for use +// with apply. +type LoadBalancerFilterApplyConfiguration struct { + Name *apiv1alpha1.OpenStackName `json:"name,omitempty"` + Description *string `json:"description,omitempty"` + ProjectRef *apiv1alpha1.KubernetesNameRef `json:"projectRef,omitempty"` + VIPSubnetRef *apiv1alpha1.KubernetesNameRef `json:"vipSubnetRef,omitempty"` + VIPNetworkRef *apiv1alpha1.KubernetesNameRef `json:"vipNetworkRef,omitempty"` + VIPPortRef *apiv1alpha1.KubernetesNameRef `json:"vipPortRef,omitempty"` + AvailabilityZone *string `json:"availabilityZone,omitempty"` + Provider *string `json:"provider,omitempty"` + VIPAddress *string `json:"vipAddress,omitempty"` + Tags []apiv1alpha1.LoadBalancerTag `json:"tags,omitempty"` + TagsAny []apiv1alpha1.LoadBalancerTag `json:"tagsAny,omitempty"` + NotTags []apiv1alpha1.LoadBalancerTag `json:"notTags,omitempty"` + NotTagsAny []apiv1alpha1.LoadBalancerTag `json:"notTagsAny,omitempty"` +} + +// LoadBalancerFilterApplyConfiguration constructs a declarative configuration of the LoadBalancerFilter type for use with +// apply. +func LoadBalancerFilter() *LoadBalancerFilterApplyConfiguration { + return &LoadBalancerFilterApplyConfiguration{} +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *LoadBalancerFilterApplyConfiguration) WithName(value apiv1alpha1.OpenStackName) *LoadBalancerFilterApplyConfiguration { + b.Name = &value + return b +} + +// WithDescription sets the Description field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Description field is set to the value of the last call. +func (b *LoadBalancerFilterApplyConfiguration) WithDescription(value string) *LoadBalancerFilterApplyConfiguration { + b.Description = &value + return b +} + +// WithProjectRef sets the ProjectRef field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ProjectRef field is set to the value of the last call. +func (b *LoadBalancerFilterApplyConfiguration) WithProjectRef(value apiv1alpha1.KubernetesNameRef) *LoadBalancerFilterApplyConfiguration { + b.ProjectRef = &value + return b +} + +// WithVIPSubnetRef sets the VIPSubnetRef field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the VIPSubnetRef field is set to the value of the last call. +func (b *LoadBalancerFilterApplyConfiguration) WithVIPSubnetRef(value apiv1alpha1.KubernetesNameRef) *LoadBalancerFilterApplyConfiguration { + b.VIPSubnetRef = &value + return b +} + +// WithVIPNetworkRef sets the VIPNetworkRef field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the VIPNetworkRef field is set to the value of the last call. +func (b *LoadBalancerFilterApplyConfiguration) WithVIPNetworkRef(value apiv1alpha1.KubernetesNameRef) *LoadBalancerFilterApplyConfiguration { + b.VIPNetworkRef = &value + return b +} + +// WithVIPPortRef sets the VIPPortRef field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the VIPPortRef field is set to the value of the last call. +func (b *LoadBalancerFilterApplyConfiguration) WithVIPPortRef(value apiv1alpha1.KubernetesNameRef) *LoadBalancerFilterApplyConfiguration { + b.VIPPortRef = &value + return b +} + +// WithAvailabilityZone sets the AvailabilityZone field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the AvailabilityZone field is set to the value of the last call. +func (b *LoadBalancerFilterApplyConfiguration) WithAvailabilityZone(value string) *LoadBalancerFilterApplyConfiguration { + b.AvailabilityZone = &value + return b +} + +// WithProvider sets the Provider field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Provider field is set to the value of the last call. +func (b *LoadBalancerFilterApplyConfiguration) WithProvider(value string) *LoadBalancerFilterApplyConfiguration { + b.Provider = &value + return b +} + +// WithVIPAddress sets the VIPAddress field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the VIPAddress field is set to the value of the last call. +func (b *LoadBalancerFilterApplyConfiguration) WithVIPAddress(value string) *LoadBalancerFilterApplyConfiguration { + b.VIPAddress = &value + return b +} + +// WithTags adds the given value to the Tags field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Tags field. +func (b *LoadBalancerFilterApplyConfiguration) WithTags(values ...apiv1alpha1.LoadBalancerTag) *LoadBalancerFilterApplyConfiguration { + for i := range values { + b.Tags = append(b.Tags, values[i]) + } + return b +} + +// WithTagsAny adds the given value to the TagsAny field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the TagsAny field. +func (b *LoadBalancerFilterApplyConfiguration) WithTagsAny(values ...apiv1alpha1.LoadBalancerTag) *LoadBalancerFilterApplyConfiguration { + for i := range values { + b.TagsAny = append(b.TagsAny, values[i]) + } + return b +} + +// WithNotTags adds the given value to the NotTags field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the NotTags field. +func (b *LoadBalancerFilterApplyConfiguration) WithNotTags(values ...apiv1alpha1.LoadBalancerTag) *LoadBalancerFilterApplyConfiguration { + for i := range values { + b.NotTags = append(b.NotTags, values[i]) + } + return b +} + +// WithNotTagsAny adds the given value to the NotTagsAny field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the NotTagsAny field. +func (b *LoadBalancerFilterApplyConfiguration) WithNotTagsAny(values ...apiv1alpha1.LoadBalancerTag) *LoadBalancerFilterApplyConfiguration { + for i := range values { + b.NotTagsAny = append(b.NotTagsAny, values[i]) + } + return b +} diff --git a/pkg/clients/applyconfiguration/api/v1alpha1/loadbalancerimport.go b/pkg/clients/applyconfiguration/api/v1alpha1/loadbalancerimport.go new file mode 100644 index 000000000..df3c50e17 --- /dev/null +++ b/pkg/clients/applyconfiguration/api/v1alpha1/loadbalancerimport.go @@ -0,0 +1,48 @@ +/* +Copyright The ORC Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +// LoadBalancerImportApplyConfiguration represents a declarative configuration of the LoadBalancerImport type for use +// with apply. +type LoadBalancerImportApplyConfiguration struct { + ID *string `json:"id,omitempty"` + Filter *LoadBalancerFilterApplyConfiguration `json:"filter,omitempty"` +} + +// LoadBalancerImportApplyConfiguration constructs a declarative configuration of the LoadBalancerImport type for use with +// apply. +func LoadBalancerImport() *LoadBalancerImportApplyConfiguration { + return &LoadBalancerImportApplyConfiguration{} +} + +// WithID sets the ID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ID field is set to the value of the last call. +func (b *LoadBalancerImportApplyConfiguration) WithID(value string) *LoadBalancerImportApplyConfiguration { + b.ID = &value + return b +} + +// WithFilter sets the Filter field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Filter field is set to the value of the last call. +func (b *LoadBalancerImportApplyConfiguration) WithFilter(value *LoadBalancerFilterApplyConfiguration) *LoadBalancerImportApplyConfiguration { + b.Filter = value + return b +} diff --git a/pkg/clients/applyconfiguration/api/v1alpha1/loadbalancerresourcespec.go b/pkg/clients/applyconfiguration/api/v1alpha1/loadbalancerresourcespec.go new file mode 100644 index 000000000..5b3482fe1 --- /dev/null +++ b/pkg/clients/applyconfiguration/api/v1alpha1/loadbalancerresourcespec.go @@ -0,0 +1,144 @@ +/* +Copyright The ORC Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + apiv1alpha1 "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1" +) + +// LoadBalancerResourceSpecApplyConfiguration represents a declarative configuration of the LoadBalancerResourceSpec type for use +// with apply. +type LoadBalancerResourceSpecApplyConfiguration struct { + Name *apiv1alpha1.OpenStackName `json:"name,omitempty"` + Description *string `json:"description,omitempty"` + VIPSubnetRef *apiv1alpha1.KubernetesNameRef `json:"vipSubnetRef,omitempty"` + VIPNetworkRef *apiv1alpha1.KubernetesNameRef `json:"vipNetworkRef,omitempty"` + VIPPortRef *apiv1alpha1.KubernetesNameRef `json:"vipPortRef,omitempty"` + FlavorRef *apiv1alpha1.KubernetesNameRef `json:"flavorRef,omitempty"` + ProjectRef *apiv1alpha1.KubernetesNameRef `json:"projectRef,omitempty"` + AdminStateUp *bool `json:"adminStateUp,omitempty"` + AvailabilityZone *string `json:"availabilityZone,omitempty"` + Provider *string `json:"provider,omitempty"` + VIPAddress *apiv1alpha1.IPvAny `json:"vipAddress,omitempty"` + Tags []apiv1alpha1.LoadBalancerTag `json:"tags,omitempty"` +} + +// LoadBalancerResourceSpecApplyConfiguration constructs a declarative configuration of the LoadBalancerResourceSpec type for use with +// apply. +func LoadBalancerResourceSpec() *LoadBalancerResourceSpecApplyConfiguration { + return &LoadBalancerResourceSpecApplyConfiguration{} +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *LoadBalancerResourceSpecApplyConfiguration) WithName(value apiv1alpha1.OpenStackName) *LoadBalancerResourceSpecApplyConfiguration { + b.Name = &value + return b +} + +// WithDescription sets the Description field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Description field is set to the value of the last call. +func (b *LoadBalancerResourceSpecApplyConfiguration) WithDescription(value string) *LoadBalancerResourceSpecApplyConfiguration { + b.Description = &value + return b +} + +// WithVIPSubnetRef sets the VIPSubnetRef field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the VIPSubnetRef field is set to the value of the last call. +func (b *LoadBalancerResourceSpecApplyConfiguration) WithVIPSubnetRef(value apiv1alpha1.KubernetesNameRef) *LoadBalancerResourceSpecApplyConfiguration { + b.VIPSubnetRef = &value + return b +} + +// WithVIPNetworkRef sets the VIPNetworkRef field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the VIPNetworkRef field is set to the value of the last call. +func (b *LoadBalancerResourceSpecApplyConfiguration) WithVIPNetworkRef(value apiv1alpha1.KubernetesNameRef) *LoadBalancerResourceSpecApplyConfiguration { + b.VIPNetworkRef = &value + return b +} + +// WithVIPPortRef sets the VIPPortRef field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the VIPPortRef field is set to the value of the last call. +func (b *LoadBalancerResourceSpecApplyConfiguration) WithVIPPortRef(value apiv1alpha1.KubernetesNameRef) *LoadBalancerResourceSpecApplyConfiguration { + b.VIPPortRef = &value + return b +} + +// WithFlavorRef sets the FlavorRef field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the FlavorRef field is set to the value of the last call. +func (b *LoadBalancerResourceSpecApplyConfiguration) WithFlavorRef(value apiv1alpha1.KubernetesNameRef) *LoadBalancerResourceSpecApplyConfiguration { + b.FlavorRef = &value + return b +} + +// WithProjectRef sets the ProjectRef field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ProjectRef field is set to the value of the last call. +func (b *LoadBalancerResourceSpecApplyConfiguration) WithProjectRef(value apiv1alpha1.KubernetesNameRef) *LoadBalancerResourceSpecApplyConfiguration { + b.ProjectRef = &value + return b +} + +// WithAdminStateUp sets the AdminStateUp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the AdminStateUp field is set to the value of the last call. +func (b *LoadBalancerResourceSpecApplyConfiguration) WithAdminStateUp(value bool) *LoadBalancerResourceSpecApplyConfiguration { + b.AdminStateUp = &value + return b +} + +// WithAvailabilityZone sets the AvailabilityZone field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the AvailabilityZone field is set to the value of the last call. +func (b *LoadBalancerResourceSpecApplyConfiguration) WithAvailabilityZone(value string) *LoadBalancerResourceSpecApplyConfiguration { + b.AvailabilityZone = &value + return b +} + +// WithProvider sets the Provider field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Provider field is set to the value of the last call. +func (b *LoadBalancerResourceSpecApplyConfiguration) WithProvider(value string) *LoadBalancerResourceSpecApplyConfiguration { + b.Provider = &value + return b +} + +// WithVIPAddress sets the VIPAddress field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the VIPAddress field is set to the value of the last call. +func (b *LoadBalancerResourceSpecApplyConfiguration) WithVIPAddress(value apiv1alpha1.IPvAny) *LoadBalancerResourceSpecApplyConfiguration { + b.VIPAddress = &value + return b +} + +// WithTags adds the given value to the Tags field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Tags field. +func (b *LoadBalancerResourceSpecApplyConfiguration) WithTags(values ...apiv1alpha1.LoadBalancerTag) *LoadBalancerResourceSpecApplyConfiguration { + for i := range values { + b.Tags = append(b.Tags, values[i]) + } + return b +} diff --git a/pkg/clients/applyconfiguration/api/v1alpha1/loadbalancerresourcestatus.go b/pkg/clients/applyconfiguration/api/v1alpha1/loadbalancerresourcestatus.go new file mode 100644 index 000000000..0ed7be781 --- /dev/null +++ b/pkg/clients/applyconfiguration/api/v1alpha1/loadbalancerresourcestatus.go @@ -0,0 +1,158 @@ +/* +Copyright The ORC Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +// LoadBalancerResourceStatusApplyConfiguration represents a declarative configuration of the LoadBalancerResourceStatus type for use +// with apply. +type LoadBalancerResourceStatusApplyConfiguration struct { + Name *string `json:"name,omitempty"` + Description *string `json:"description,omitempty"` + VIPSubnetID *string `json:"vipSubnetID,omitempty"` + VIPNetworkID *string `json:"vipNetworkID,omitempty"` + VIPPortID *string `json:"vipPortID,omitempty"` + FlavorID *string `json:"flavorID,omitempty"` + ProjectID *string `json:"projectID,omitempty"` + AdminStateUp *bool `json:"adminStateUp,omitempty"` + Tags []string `json:"tags,omitempty"` + AvailabilityZone *string `json:"availabilityZone,omitempty"` + ProvisioningStatus *string `json:"provisioningStatus,omitempty"` + OperatingStatus *string `json:"operatingStatus,omitempty"` + Provider *string `json:"provider,omitempty"` + VIPAddress *string `json:"vipAddress,omitempty"` +} + +// LoadBalancerResourceStatusApplyConfiguration constructs a declarative configuration of the LoadBalancerResourceStatus type for use with +// apply. +func LoadBalancerResourceStatus() *LoadBalancerResourceStatusApplyConfiguration { + return &LoadBalancerResourceStatusApplyConfiguration{} +} + +// WithName sets the Name field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Name field is set to the value of the last call. +func (b *LoadBalancerResourceStatusApplyConfiguration) WithName(value string) *LoadBalancerResourceStatusApplyConfiguration { + b.Name = &value + return b +} + +// WithDescription sets the Description field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Description field is set to the value of the last call. +func (b *LoadBalancerResourceStatusApplyConfiguration) WithDescription(value string) *LoadBalancerResourceStatusApplyConfiguration { + b.Description = &value + return b +} + +// WithVIPSubnetID sets the VIPSubnetID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the VIPSubnetID field is set to the value of the last call. +func (b *LoadBalancerResourceStatusApplyConfiguration) WithVIPSubnetID(value string) *LoadBalancerResourceStatusApplyConfiguration { + b.VIPSubnetID = &value + return b +} + +// WithVIPNetworkID sets the VIPNetworkID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the VIPNetworkID field is set to the value of the last call. +func (b *LoadBalancerResourceStatusApplyConfiguration) WithVIPNetworkID(value string) *LoadBalancerResourceStatusApplyConfiguration { + b.VIPNetworkID = &value + return b +} + +// WithVIPPortID sets the VIPPortID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the VIPPortID field is set to the value of the last call. +func (b *LoadBalancerResourceStatusApplyConfiguration) WithVIPPortID(value string) *LoadBalancerResourceStatusApplyConfiguration { + b.VIPPortID = &value + return b +} + +// WithFlavorID sets the FlavorID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the FlavorID field is set to the value of the last call. +func (b *LoadBalancerResourceStatusApplyConfiguration) WithFlavorID(value string) *LoadBalancerResourceStatusApplyConfiguration { + b.FlavorID = &value + return b +} + +// WithProjectID sets the ProjectID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ProjectID field is set to the value of the last call. +func (b *LoadBalancerResourceStatusApplyConfiguration) WithProjectID(value string) *LoadBalancerResourceStatusApplyConfiguration { + b.ProjectID = &value + return b +} + +// WithAdminStateUp sets the AdminStateUp field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the AdminStateUp field is set to the value of the last call. +func (b *LoadBalancerResourceStatusApplyConfiguration) WithAdminStateUp(value bool) *LoadBalancerResourceStatusApplyConfiguration { + b.AdminStateUp = &value + return b +} + +// WithTags adds the given value to the Tags field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Tags field. +func (b *LoadBalancerResourceStatusApplyConfiguration) WithTags(values ...string) *LoadBalancerResourceStatusApplyConfiguration { + for i := range values { + b.Tags = append(b.Tags, values[i]) + } + return b +} + +// WithAvailabilityZone sets the AvailabilityZone field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the AvailabilityZone field is set to the value of the last call. +func (b *LoadBalancerResourceStatusApplyConfiguration) WithAvailabilityZone(value string) *LoadBalancerResourceStatusApplyConfiguration { + b.AvailabilityZone = &value + return b +} + +// WithProvisioningStatus sets the ProvisioningStatus field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ProvisioningStatus field is set to the value of the last call. +func (b *LoadBalancerResourceStatusApplyConfiguration) WithProvisioningStatus(value string) *LoadBalancerResourceStatusApplyConfiguration { + b.ProvisioningStatus = &value + return b +} + +// WithOperatingStatus sets the OperatingStatus field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the OperatingStatus field is set to the value of the last call. +func (b *LoadBalancerResourceStatusApplyConfiguration) WithOperatingStatus(value string) *LoadBalancerResourceStatusApplyConfiguration { + b.OperatingStatus = &value + return b +} + +// WithProvider sets the Provider field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Provider field is set to the value of the last call. +func (b *LoadBalancerResourceStatusApplyConfiguration) WithProvider(value string) *LoadBalancerResourceStatusApplyConfiguration { + b.Provider = &value + return b +} + +// WithVIPAddress sets the VIPAddress field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the VIPAddress field is set to the value of the last call. +func (b *LoadBalancerResourceStatusApplyConfiguration) WithVIPAddress(value string) *LoadBalancerResourceStatusApplyConfiguration { + b.VIPAddress = &value + return b +} diff --git a/pkg/clients/applyconfiguration/api/v1alpha1/loadbalancerspec.go b/pkg/clients/applyconfiguration/api/v1alpha1/loadbalancerspec.go new file mode 100644 index 000000000..db531a018 --- /dev/null +++ b/pkg/clients/applyconfiguration/api/v1alpha1/loadbalancerspec.go @@ -0,0 +1,79 @@ +/* +Copyright The ORC Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + apiv1alpha1 "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1" +) + +// LoadBalancerSpecApplyConfiguration represents a declarative configuration of the LoadBalancerSpec type for use +// with apply. +type LoadBalancerSpecApplyConfiguration struct { + Import *LoadBalancerImportApplyConfiguration `json:"import,omitempty"` + Resource *LoadBalancerResourceSpecApplyConfiguration `json:"resource,omitempty"` + ManagementPolicy *apiv1alpha1.ManagementPolicy `json:"managementPolicy,omitempty"` + ManagedOptions *ManagedOptionsApplyConfiguration `json:"managedOptions,omitempty"` + CloudCredentialsRef *CloudCredentialsReferenceApplyConfiguration `json:"cloudCredentialsRef,omitempty"` +} + +// LoadBalancerSpecApplyConfiguration constructs a declarative configuration of the LoadBalancerSpec type for use with +// apply. +func LoadBalancerSpec() *LoadBalancerSpecApplyConfiguration { + return &LoadBalancerSpecApplyConfiguration{} +} + +// WithImport sets the Import field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Import field is set to the value of the last call. +func (b *LoadBalancerSpecApplyConfiguration) WithImport(value *LoadBalancerImportApplyConfiguration) *LoadBalancerSpecApplyConfiguration { + b.Import = value + return b +} + +// WithResource sets the Resource field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Resource field is set to the value of the last call. +func (b *LoadBalancerSpecApplyConfiguration) WithResource(value *LoadBalancerResourceSpecApplyConfiguration) *LoadBalancerSpecApplyConfiguration { + b.Resource = value + return b +} + +// WithManagementPolicy sets the ManagementPolicy field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ManagementPolicy field is set to the value of the last call. +func (b *LoadBalancerSpecApplyConfiguration) WithManagementPolicy(value apiv1alpha1.ManagementPolicy) *LoadBalancerSpecApplyConfiguration { + b.ManagementPolicy = &value + return b +} + +// WithManagedOptions sets the ManagedOptions field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ManagedOptions field is set to the value of the last call. +func (b *LoadBalancerSpecApplyConfiguration) WithManagedOptions(value *ManagedOptionsApplyConfiguration) *LoadBalancerSpecApplyConfiguration { + b.ManagedOptions = value + return b +} + +// WithCloudCredentialsRef sets the CloudCredentialsRef field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the CloudCredentialsRef field is set to the value of the last call. +func (b *LoadBalancerSpecApplyConfiguration) WithCloudCredentialsRef(value *CloudCredentialsReferenceApplyConfiguration) *LoadBalancerSpecApplyConfiguration { + b.CloudCredentialsRef = value + return b +} diff --git a/pkg/clients/applyconfiguration/api/v1alpha1/loadbalancerstatus.go b/pkg/clients/applyconfiguration/api/v1alpha1/loadbalancerstatus.go new file mode 100644 index 000000000..28c977f47 --- /dev/null +++ b/pkg/clients/applyconfiguration/api/v1alpha1/loadbalancerstatus.go @@ -0,0 +1,66 @@ +/* +Copyright The ORC Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// LoadBalancerStatusApplyConfiguration represents a declarative configuration of the LoadBalancerStatus type for use +// with apply. +type LoadBalancerStatusApplyConfiguration struct { + Conditions []v1.ConditionApplyConfiguration `json:"conditions,omitempty"` + ID *string `json:"id,omitempty"` + Resource *LoadBalancerResourceStatusApplyConfiguration `json:"resource,omitempty"` +} + +// LoadBalancerStatusApplyConfiguration constructs a declarative configuration of the LoadBalancerStatus type for use with +// apply. +func LoadBalancerStatus() *LoadBalancerStatusApplyConfiguration { + return &LoadBalancerStatusApplyConfiguration{} +} + +// WithConditions adds the given value to the Conditions field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Conditions field. +func (b *LoadBalancerStatusApplyConfiguration) WithConditions(values ...*v1.ConditionApplyConfiguration) *LoadBalancerStatusApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithConditions") + } + b.Conditions = append(b.Conditions, *values[i]) + } + return b +} + +// WithID sets the ID field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the ID field is set to the value of the last call. +func (b *LoadBalancerStatusApplyConfiguration) WithID(value string) *LoadBalancerStatusApplyConfiguration { + b.ID = &value + return b +} + +// WithResource sets the Resource field in the declarative configuration to the given value +// and returns the receiver, so that objects can be built by chaining "With" function invocations. +// If called multiple times, the Resource field is set to the value of the last call. +func (b *LoadBalancerStatusApplyConfiguration) WithResource(value *LoadBalancerResourceStatusApplyConfiguration) *LoadBalancerStatusApplyConfiguration { + b.Resource = value + return b +} diff --git a/pkg/clients/applyconfiguration/internal/internal.go b/pkg/clients/applyconfiguration/internal/internal.go index abfc36fe8..27a0ff14b 100644 --- a/pkg/clients/applyconfiguration/internal/internal.go +++ b/pkg/clients/applyconfiguration/internal/internal.go @@ -1451,6 +1451,216 @@ var schemaYAML = typed.YAMLObject(`types: - name: resource type: namedType: com.github.k-orc.openstack-resource-controller.v2.api.v1alpha1.KeyPairResourceStatus +- name: com.github.k-orc.openstack-resource-controller.v2.api.v1alpha1.LoadBalancer + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: com.github.k-orc.openstack-resource-controller.v2.api.v1alpha1.LoadBalancerSpec + default: {} + - name: status + type: + namedType: com.github.k-orc.openstack-resource-controller.v2.api.v1alpha1.LoadBalancerStatus + default: {} +- name: com.github.k-orc.openstack-resource-controller.v2.api.v1alpha1.LoadBalancerFilter + map: + fields: + - name: availabilityZone + type: + scalar: string + - name: description + type: + scalar: string + - name: name + type: + scalar: string + - name: notTags + type: + list: + elementType: + scalar: string + elementRelationship: associative + - name: notTagsAny + type: + list: + elementType: + scalar: string + elementRelationship: associative + - name: projectRef + type: + scalar: string + - name: provider + type: + scalar: string + - name: tags + type: + list: + elementType: + scalar: string + elementRelationship: associative + - name: tagsAny + type: + list: + elementType: + scalar: string + elementRelationship: associative + - name: vipAddress + type: + scalar: string + - name: vipNetworkRef + type: + scalar: string + - name: vipPortRef + type: + scalar: string + - name: vipSubnetRef + type: + scalar: string +- name: com.github.k-orc.openstack-resource-controller.v2.api.v1alpha1.LoadBalancerImport + map: + fields: + - name: filter + type: + namedType: com.github.k-orc.openstack-resource-controller.v2.api.v1alpha1.LoadBalancerFilter + - name: id + type: + scalar: string +- name: com.github.k-orc.openstack-resource-controller.v2.api.v1alpha1.LoadBalancerResourceSpec + map: + fields: + - name: adminStateUp + type: + scalar: boolean + - name: availabilityZone + type: + scalar: string + - name: description + type: + scalar: string + - name: flavorRef + type: + scalar: string + - name: name + type: + scalar: string + - name: projectRef + type: + scalar: string + - name: provider + type: + scalar: string + - name: tags + type: + list: + elementType: + scalar: string + elementRelationship: associative + - name: vipAddress + type: + scalar: string + - name: vipNetworkRef + type: + scalar: string + - name: vipPortRef + type: + scalar: string + - name: vipSubnetRef + type: + scalar: string +- name: com.github.k-orc.openstack-resource-controller.v2.api.v1alpha1.LoadBalancerResourceStatus + map: + fields: + - name: adminStateUp + type: + scalar: boolean + - name: availabilityZone + type: + scalar: string + - name: description + type: + scalar: string + - name: flavorID + type: + scalar: string + - name: name + type: + scalar: string + - name: operatingStatus + type: + scalar: string + - name: projectID + type: + scalar: string + - name: provider + type: + scalar: string + - name: provisioningStatus + type: + scalar: string + - name: tags + type: + list: + elementType: + scalar: string + elementRelationship: atomic + - name: vipAddress + type: + scalar: string + - name: vipNetworkID + type: + scalar: string + - name: vipPortID + type: + scalar: string + - name: vipSubnetID + type: + scalar: string +- name: com.github.k-orc.openstack-resource-controller.v2.api.v1alpha1.LoadBalancerSpec + map: + fields: + - name: cloudCredentialsRef + type: + namedType: com.github.k-orc.openstack-resource-controller.v2.api.v1alpha1.CloudCredentialsReference + default: {} + - name: import + type: + namedType: com.github.k-orc.openstack-resource-controller.v2.api.v1alpha1.LoadBalancerImport + - name: managedOptions + type: + namedType: com.github.k-orc.openstack-resource-controller.v2.api.v1alpha1.ManagedOptions + - name: managementPolicy + type: + scalar: string + - name: resource + type: + namedType: com.github.k-orc.openstack-resource-controller.v2.api.v1alpha1.LoadBalancerResourceSpec +- name: com.github.k-orc.openstack-resource-controller.v2.api.v1alpha1.LoadBalancerStatus + map: + fields: + - name: conditions + type: + list: + elementType: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Condition + elementRelationship: associative + keys: + - type + - name: id + type: + scalar: string + - name: resource + type: + namedType: com.github.k-orc.openstack-resource-controller.v2.api.v1alpha1.LoadBalancerResourceStatus - name: com.github.k-orc.openstack-resource-controller.v2.api.v1alpha1.ManagedOptions map: fields: diff --git a/pkg/clients/applyconfiguration/utils.go b/pkg/clients/applyconfiguration/utils.go index 1e5ffabc0..23ec2e142 100644 --- a/pkg/clients/applyconfiguration/utils.go +++ b/pkg/clients/applyconfiguration/utils.go @@ -214,6 +214,20 @@ func ForKind(kind schema.GroupVersionKind) interface{} { return &apiv1alpha1.KeyPairSpecApplyConfiguration{} case v1alpha1.SchemeGroupVersion.WithKind("KeyPairStatus"): return &apiv1alpha1.KeyPairStatusApplyConfiguration{} + case v1alpha1.SchemeGroupVersion.WithKind("LoadBalancer"): + return &apiv1alpha1.LoadBalancerApplyConfiguration{} + case v1alpha1.SchemeGroupVersion.WithKind("LoadBalancerFilter"): + return &apiv1alpha1.LoadBalancerFilterApplyConfiguration{} + case v1alpha1.SchemeGroupVersion.WithKind("LoadBalancerImport"): + return &apiv1alpha1.LoadBalancerImportApplyConfiguration{} + case v1alpha1.SchemeGroupVersion.WithKind("LoadBalancerResourceSpec"): + return &apiv1alpha1.LoadBalancerResourceSpecApplyConfiguration{} + case v1alpha1.SchemeGroupVersion.WithKind("LoadBalancerResourceStatus"): + return &apiv1alpha1.LoadBalancerResourceStatusApplyConfiguration{} + case v1alpha1.SchemeGroupVersion.WithKind("LoadBalancerSpec"): + return &apiv1alpha1.LoadBalancerSpecApplyConfiguration{} + case v1alpha1.SchemeGroupVersion.WithKind("LoadBalancerStatus"): + return &apiv1alpha1.LoadBalancerStatusApplyConfiguration{} case v1alpha1.SchemeGroupVersion.WithKind("ManagedOptions"): return &apiv1alpha1.ManagedOptionsApplyConfiguration{} case v1alpha1.SchemeGroupVersion.WithKind("Network"): diff --git a/pkg/clients/clientset/clientset/typed/api/v1alpha1/api_client.go b/pkg/clients/clientset/clientset/typed/api/v1alpha1/api_client.go index d5c517b1e..3f55000b7 100644 --- a/pkg/clients/clientset/clientset/typed/api/v1alpha1/api_client.go +++ b/pkg/clients/clientset/clientset/typed/api/v1alpha1/api_client.go @@ -37,6 +37,7 @@ type OpenstackV1alpha1Interface interface { GroupsGetter ImagesGetter KeyPairsGetter + LoadBalancersGetter NetworksGetter PortsGetter ProjectsGetter @@ -96,6 +97,10 @@ func (c *OpenstackV1alpha1Client) KeyPairs(namespace string) KeyPairInterface { return newKeyPairs(c, namespace) } +func (c *OpenstackV1alpha1Client) LoadBalancers(namespace string) LoadBalancerInterface { + return newLoadBalancers(c, namespace) +} + func (c *OpenstackV1alpha1Client) Networks(namespace string) NetworkInterface { return newNetworks(c, namespace) } diff --git a/pkg/clients/clientset/clientset/typed/api/v1alpha1/fake/fake_api_client.go b/pkg/clients/clientset/clientset/typed/api/v1alpha1/fake/fake_api_client.go index f5dcb5da4..6bbb6a3ed 100644 --- a/pkg/clients/clientset/clientset/typed/api/v1alpha1/fake/fake_api_client.go +++ b/pkg/clients/clientset/clientset/typed/api/v1alpha1/fake/fake_api_client.go @@ -64,6 +64,10 @@ func (c *FakeOpenstackV1alpha1) KeyPairs(namespace string) v1alpha1.KeyPairInter return newFakeKeyPairs(c, namespace) } +func (c *FakeOpenstackV1alpha1) LoadBalancers(namespace string) v1alpha1.LoadBalancerInterface { + return newFakeLoadBalancers(c, namespace) +} + func (c *FakeOpenstackV1alpha1) Networks(namespace string) v1alpha1.NetworkInterface { return newFakeNetworks(c, namespace) } diff --git a/pkg/clients/clientset/clientset/typed/api/v1alpha1/fake/fake_loadbalancer.go b/pkg/clients/clientset/clientset/typed/api/v1alpha1/fake/fake_loadbalancer.go new file mode 100644 index 000000000..8e50b630e --- /dev/null +++ b/pkg/clients/clientset/clientset/typed/api/v1alpha1/fake/fake_loadbalancer.go @@ -0,0 +1,53 @@ +/* +Copyright The ORC Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package fake + +import ( + v1alpha1 "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1" + apiv1alpha1 "github.com/k-orc/openstack-resource-controller/v2/pkg/clients/applyconfiguration/api/v1alpha1" + typedapiv1alpha1 "github.com/k-orc/openstack-resource-controller/v2/pkg/clients/clientset/clientset/typed/api/v1alpha1" + gentype "k8s.io/client-go/gentype" +) + +// fakeLoadBalancers implements LoadBalancerInterface +type fakeLoadBalancers struct { + *gentype.FakeClientWithListAndApply[*v1alpha1.LoadBalancer, *v1alpha1.LoadBalancerList, *apiv1alpha1.LoadBalancerApplyConfiguration] + Fake *FakeOpenstackV1alpha1 +} + +func newFakeLoadBalancers(fake *FakeOpenstackV1alpha1, namespace string) typedapiv1alpha1.LoadBalancerInterface { + return &fakeLoadBalancers{ + gentype.NewFakeClientWithListAndApply[*v1alpha1.LoadBalancer, *v1alpha1.LoadBalancerList, *apiv1alpha1.LoadBalancerApplyConfiguration]( + fake.Fake, + namespace, + v1alpha1.SchemeGroupVersion.WithResource("loadbalancers"), + v1alpha1.SchemeGroupVersion.WithKind("LoadBalancer"), + func() *v1alpha1.LoadBalancer { return &v1alpha1.LoadBalancer{} }, + func() *v1alpha1.LoadBalancerList { return &v1alpha1.LoadBalancerList{} }, + func(dst, src *v1alpha1.LoadBalancerList) { dst.ListMeta = src.ListMeta }, + func(list *v1alpha1.LoadBalancerList) []*v1alpha1.LoadBalancer { + return gentype.ToPointerSlice(list.Items) + }, + func(list *v1alpha1.LoadBalancerList, items []*v1alpha1.LoadBalancer) { + list.Items = gentype.FromPointerSlice(items) + }, + ), + fake, + } +} diff --git a/pkg/clients/clientset/clientset/typed/api/v1alpha1/generated_expansion.go b/pkg/clients/clientset/clientset/typed/api/v1alpha1/generated_expansion.go index e13858a9c..93d5b901c 100644 --- a/pkg/clients/clientset/clientset/typed/api/v1alpha1/generated_expansion.go +++ b/pkg/clients/clientset/clientset/typed/api/v1alpha1/generated_expansion.go @@ -36,6 +36,8 @@ type ImageExpansion interface{} type KeyPairExpansion interface{} +type LoadBalancerExpansion interface{} + type NetworkExpansion interface{} type PortExpansion interface{} diff --git a/pkg/clients/clientset/clientset/typed/api/v1alpha1/loadbalancer.go b/pkg/clients/clientset/clientset/typed/api/v1alpha1/loadbalancer.go new file mode 100644 index 000000000..9437a4493 --- /dev/null +++ b/pkg/clients/clientset/clientset/typed/api/v1alpha1/loadbalancer.go @@ -0,0 +1,74 @@ +/* +Copyright The ORC Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by client-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + context "context" + + apiv1alpha1 "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1" + applyconfigurationapiv1alpha1 "github.com/k-orc/openstack-resource-controller/v2/pkg/clients/applyconfiguration/api/v1alpha1" + scheme "github.com/k-orc/openstack-resource-controller/v2/pkg/clients/clientset/clientset/scheme" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + gentype "k8s.io/client-go/gentype" +) + +// LoadBalancersGetter has a method to return a LoadBalancerInterface. +// A group's client should implement this interface. +type LoadBalancersGetter interface { + LoadBalancers(namespace string) LoadBalancerInterface +} + +// LoadBalancerInterface has methods to work with LoadBalancer resources. +type LoadBalancerInterface interface { + Create(ctx context.Context, loadBalancer *apiv1alpha1.LoadBalancer, opts v1.CreateOptions) (*apiv1alpha1.LoadBalancer, error) + Update(ctx context.Context, loadBalancer *apiv1alpha1.LoadBalancer, opts v1.UpdateOptions) (*apiv1alpha1.LoadBalancer, error) + // Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). + UpdateStatus(ctx context.Context, loadBalancer *apiv1alpha1.LoadBalancer, opts v1.UpdateOptions) (*apiv1alpha1.LoadBalancer, error) + Delete(ctx context.Context, name string, opts v1.DeleteOptions) error + DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error + Get(ctx context.Context, name string, opts v1.GetOptions) (*apiv1alpha1.LoadBalancer, error) + List(ctx context.Context, opts v1.ListOptions) (*apiv1alpha1.LoadBalancerList, error) + Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) + Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *apiv1alpha1.LoadBalancer, err error) + Apply(ctx context.Context, loadBalancer *applyconfigurationapiv1alpha1.LoadBalancerApplyConfiguration, opts v1.ApplyOptions) (result *apiv1alpha1.LoadBalancer, err error) + // Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). + ApplyStatus(ctx context.Context, loadBalancer *applyconfigurationapiv1alpha1.LoadBalancerApplyConfiguration, opts v1.ApplyOptions) (result *apiv1alpha1.LoadBalancer, err error) + LoadBalancerExpansion +} + +// loadBalancers implements LoadBalancerInterface +type loadBalancers struct { + *gentype.ClientWithListAndApply[*apiv1alpha1.LoadBalancer, *apiv1alpha1.LoadBalancerList, *applyconfigurationapiv1alpha1.LoadBalancerApplyConfiguration] +} + +// newLoadBalancers returns a LoadBalancers +func newLoadBalancers(c *OpenstackV1alpha1Client, namespace string) *loadBalancers { + return &loadBalancers{ + gentype.NewClientWithListAndApply[*apiv1alpha1.LoadBalancer, *apiv1alpha1.LoadBalancerList, *applyconfigurationapiv1alpha1.LoadBalancerApplyConfiguration]( + "loadbalancers", + c.RESTClient(), + scheme.ParameterCodec, + namespace, + func() *apiv1alpha1.LoadBalancer { return &apiv1alpha1.LoadBalancer{} }, + func() *apiv1alpha1.LoadBalancerList { return &apiv1alpha1.LoadBalancerList{} }, + ), + } +} diff --git a/pkg/clients/informers/externalversions/api/v1alpha1/interface.go b/pkg/clients/informers/externalversions/api/v1alpha1/interface.go index 2e9f92392..5b97e288e 100644 --- a/pkg/clients/informers/externalversions/api/v1alpha1/interface.go +++ b/pkg/clients/informers/externalversions/api/v1alpha1/interface.go @@ -42,6 +42,8 @@ type Interface interface { Images() ImageInformer // KeyPairs returns a KeyPairInformer. KeyPairs() KeyPairInformer + // LoadBalancers returns a LoadBalancerInformer. + LoadBalancers() LoadBalancerInformer // Networks returns a NetworkInformer. Networks() NetworkInformer // Ports returns a PortInformer. @@ -132,6 +134,11 @@ func (v *version) KeyPairs() KeyPairInformer { return &keyPairInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} } +// LoadBalancers returns a LoadBalancerInformer. +func (v *version) LoadBalancers() LoadBalancerInformer { + return &loadBalancerInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} +} + // Networks returns a NetworkInformer. func (v *version) Networks() NetworkInformer { return &networkInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} diff --git a/pkg/clients/informers/externalversions/api/v1alpha1/loadbalancer.go b/pkg/clients/informers/externalversions/api/v1alpha1/loadbalancer.go new file mode 100644 index 000000000..d47c37881 --- /dev/null +++ b/pkg/clients/informers/externalversions/api/v1alpha1/loadbalancer.go @@ -0,0 +1,102 @@ +/* +Copyright The ORC Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by informer-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + context "context" + time "time" + + v2apiv1alpha1 "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1" + clientset "github.com/k-orc/openstack-resource-controller/v2/pkg/clients/clientset/clientset" + internalinterfaces "github.com/k-orc/openstack-resource-controller/v2/pkg/clients/informers/externalversions/internalinterfaces" + apiv1alpha1 "github.com/k-orc/openstack-resource-controller/v2/pkg/clients/listers/api/v1alpha1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" + watch "k8s.io/apimachinery/pkg/watch" + cache "k8s.io/client-go/tools/cache" +) + +// LoadBalancerInformer provides access to a shared informer and lister for +// LoadBalancers. +type LoadBalancerInformer interface { + Informer() cache.SharedIndexInformer + Lister() apiv1alpha1.LoadBalancerLister +} + +type loadBalancerInformer struct { + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc + namespace string +} + +// NewLoadBalancerInformer constructs a new informer for LoadBalancer type. +// Always prefer using an informer factory to get a shared informer instead of getting an independent +// one. This reduces memory footprint and number of connections to the server. +func NewLoadBalancerInformer(client clientset.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewFilteredLoadBalancerInformer(client, namespace, resyncPeriod, indexers, nil) +} + +// NewFilteredLoadBalancerInformer constructs a new informer for LoadBalancer type. +// Always prefer using an informer factory to get a shared informer instead of getting an independent +// one. This reduces memory footprint and number of connections to the server. +func NewFilteredLoadBalancerInformer(client clientset.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { + return cache.NewSharedIndexInformer( + &cache.ListWatch{ + ListFunc: func(options v1.ListOptions) (runtime.Object, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.OpenstackV1alpha1().LoadBalancers(namespace).List(context.Background(), options) + }, + WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.OpenstackV1alpha1().LoadBalancers(namespace).Watch(context.Background(), options) + }, + ListWithContextFunc: func(ctx context.Context, options v1.ListOptions) (runtime.Object, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.OpenstackV1alpha1().LoadBalancers(namespace).List(ctx, options) + }, + WatchFuncWithContext: func(ctx context.Context, options v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&options) + } + return client.OpenstackV1alpha1().LoadBalancers(namespace).Watch(ctx, options) + }, + }, + &v2apiv1alpha1.LoadBalancer{}, + resyncPeriod, + indexers, + ) +} + +func (f *loadBalancerInformer) defaultInformer(client clientset.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewFilteredLoadBalancerInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) +} + +func (f *loadBalancerInformer) Informer() cache.SharedIndexInformer { + return f.factory.InformerFor(&v2apiv1alpha1.LoadBalancer{}, f.defaultInformer) +} + +func (f *loadBalancerInformer) Lister() apiv1alpha1.LoadBalancerLister { + return apiv1alpha1.NewLoadBalancerLister(f.Informer().GetIndexer()) +} diff --git a/pkg/clients/informers/externalversions/generic.go b/pkg/clients/informers/externalversions/generic.go index fb3637f1e..03d1e2878 100644 --- a/pkg/clients/informers/externalversions/generic.go +++ b/pkg/clients/informers/externalversions/generic.go @@ -71,6 +71,8 @@ func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource return &genericInformer{resource: resource.GroupResource(), informer: f.Openstack().V1alpha1().Images().Informer()}, nil case v1alpha1.SchemeGroupVersion.WithResource("keypairs"): return &genericInformer{resource: resource.GroupResource(), informer: f.Openstack().V1alpha1().KeyPairs().Informer()}, nil + case v1alpha1.SchemeGroupVersion.WithResource("loadbalancers"): + return &genericInformer{resource: resource.GroupResource(), informer: f.Openstack().V1alpha1().LoadBalancers().Informer()}, nil case v1alpha1.SchemeGroupVersion.WithResource("networks"): return &genericInformer{resource: resource.GroupResource(), informer: f.Openstack().V1alpha1().Networks().Informer()}, nil case v1alpha1.SchemeGroupVersion.WithResource("ports"): diff --git a/pkg/clients/listers/api/v1alpha1/expansion_generated.go b/pkg/clients/listers/api/v1alpha1/expansion_generated.go index 4d7043581..0f64c5546 100644 --- a/pkg/clients/listers/api/v1alpha1/expansion_generated.go +++ b/pkg/clients/listers/api/v1alpha1/expansion_generated.go @@ -90,6 +90,14 @@ type KeyPairListerExpansion interface{} // KeyPairNamespaceLister. type KeyPairNamespaceListerExpansion interface{} +// LoadBalancerListerExpansion allows custom methods to be added to +// LoadBalancerLister. +type LoadBalancerListerExpansion interface{} + +// LoadBalancerNamespaceListerExpansion allows custom methods to be added to +// LoadBalancerNamespaceLister. +type LoadBalancerNamespaceListerExpansion interface{} + // NetworkListerExpansion allows custom methods to be added to // NetworkLister. type NetworkListerExpansion interface{} diff --git a/pkg/clients/listers/api/v1alpha1/loadbalancer.go b/pkg/clients/listers/api/v1alpha1/loadbalancer.go new file mode 100644 index 000000000..f231564f8 --- /dev/null +++ b/pkg/clients/listers/api/v1alpha1/loadbalancer.go @@ -0,0 +1,70 @@ +/* +Copyright The ORC Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by lister-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + apiv1alpha1 "github.com/k-orc/openstack-resource-controller/v2/api/v1alpha1" + labels "k8s.io/apimachinery/pkg/labels" + listers "k8s.io/client-go/listers" + cache "k8s.io/client-go/tools/cache" +) + +// LoadBalancerLister helps list LoadBalancers. +// All objects returned here must be treated as read-only. +type LoadBalancerLister interface { + // List lists all LoadBalancers in the indexer. + // Objects returned here must be treated as read-only. + List(selector labels.Selector) (ret []*apiv1alpha1.LoadBalancer, err error) + // LoadBalancers returns an object that can list and get LoadBalancers. + LoadBalancers(namespace string) LoadBalancerNamespaceLister + LoadBalancerListerExpansion +} + +// loadBalancerLister implements the LoadBalancerLister interface. +type loadBalancerLister struct { + listers.ResourceIndexer[*apiv1alpha1.LoadBalancer] +} + +// NewLoadBalancerLister returns a new LoadBalancerLister. +func NewLoadBalancerLister(indexer cache.Indexer) LoadBalancerLister { + return &loadBalancerLister{listers.New[*apiv1alpha1.LoadBalancer](indexer, apiv1alpha1.Resource("loadbalancer"))} +} + +// LoadBalancers returns an object that can list and get LoadBalancers. +func (s *loadBalancerLister) LoadBalancers(namespace string) LoadBalancerNamespaceLister { + return loadBalancerNamespaceLister{listers.NewNamespaced[*apiv1alpha1.LoadBalancer](s.ResourceIndexer, namespace)} +} + +// LoadBalancerNamespaceLister helps list and get LoadBalancers. +// All objects returned here must be treated as read-only. +type LoadBalancerNamespaceLister interface { + // List lists all LoadBalancers in the indexer for a given namespace. + // Objects returned here must be treated as read-only. + List(selector labels.Selector) (ret []*apiv1alpha1.LoadBalancer, err error) + // Get retrieves the LoadBalancer from the indexer for a given namespace and name. + // Objects returned here must be treated as read-only. + Get(name string) (*apiv1alpha1.LoadBalancer, error) + LoadBalancerNamespaceListerExpansion +} + +// loadBalancerNamespaceLister implements the LoadBalancerNamespaceLister +// interface. +type loadBalancerNamespaceLister struct { + listers.ResourceIndexer[*apiv1alpha1.LoadBalancer] +} diff --git a/website/docs/crd-reference.md b/website/docs/crd-reference.md index fd70e764b..15b21b83c 100644 --- a/website/docs/crd-reference.md +++ b/website/docs/crd-reference.md @@ -19,6 +19,7 @@ Package v1alpha1 contains API Schema definitions for the openstack v1alpha1 API - [Group](#group) - [Image](#image) - [KeyPair](#keypair) +- [LoadBalancer](#loadbalancer) - [Network](#network) - [Port](#port) - [Project](#project) @@ -511,6 +512,7 @@ _Appears in:_ - [GroupSpec](#groupspec) - [ImageSpec](#imagespec) - [KeyPairSpec](#keypairspec) +- [LoadBalancerSpec](#loadbalancerspec) - [NetworkSpec](#networkspec) - [PortSpec](#portspec) - [ProjectSpec](#projectspec) @@ -1571,6 +1573,7 @@ _Appears in:_ - [FloatingIPFilter](#floatingipfilter) - [FloatingIPResourceSpec](#floatingipresourcespec) - [HostRoute](#hostroute) +- [LoadBalancerResourceSpec](#loadbalancerresourcespec) - [SubnetFilter](#subnetfilter) - [SubnetGateway](#subnetgateway) - [SubnetResourceSpec](#subnetresourcespec) @@ -2223,9 +2226,181 @@ _Appears in:_ +#### LoadBalancer + + + +LoadBalancer is the Schema for an ORC resource. + + + + + +| Field | Description | Default | Validation | +| --- | --- | --- | --- | +| `apiVersion` _string_ | `openstack.k-orc.cloud/v1alpha1` | | | +| `kind` _string_ | `LoadBalancer` | | | +| `metadata` _[ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#objectmeta-v1-meta)_ | Refer to Kubernetes API documentation for fields of `metadata`. | | Optional: \{\}
| +| `spec` _[LoadBalancerSpec](#loadbalancerspec)_ | spec specifies the desired state of the resource. | | Required: \{\}
| +| `status` _[LoadBalancerStatus](#loadbalancerstatus)_ | status defines the observed state of the resource. | | Optional: \{\}
| + + +#### LoadBalancerFilter + + + +LoadBalancerFilter defines an existing resource by its properties + +_Validation:_ +- MinProperties: 1 + +_Appears in:_ +- [LoadBalancerImport](#loadbalancerimport) + +| Field | Description | Default | Validation | +| --- | --- | --- | --- | +| `name` _[OpenStackName](#openstackname)_ | name of the existing resource | | MaxLength: 255
MinLength: 1
Pattern: `^[^,]+$`
Optional: \{\}
| +| `description` _string_ | description of the existing resource | | MaxLength: 255
MinLength: 1
Optional: \{\}
| +| `projectRef` _[KubernetesNameRef](#kubernetesnameref)_ | projectRef is a reference to the ORC Project this resource is associated with.
Typically, only used by admin. | | MaxLength: 253
MinLength: 1
Optional: \{\}
| +| `vipSubnetRef` _[KubernetesNameRef](#kubernetesnameref)_ | vipSubnetRef filters by the subnet on which the load balancer's address is allocated. | | MaxLength: 253
MinLength: 1
Optional: \{\}
| +| `vipNetworkRef` _[KubernetesNameRef](#kubernetesnameref)_ | vipNetworkRef filters by the network on which the load balancer's address is allocated. | | MaxLength: 253
MinLength: 1
Optional: \{\}
| +| `vipPortRef` _[KubernetesNameRef](#kubernetesnameref)_ | vipPortRef filters by the neutron port used for the VIP. | | MaxLength: 253
MinLength: 1
Optional: \{\}
| +| `availabilityZone` _string_ | availabilityZone is the availability zone in which to create the load balancer. | | MaxLength: 255
Optional: \{\}
| +| `provider` _string_ | provider filters by the name of the load balancer provider. | | MaxLength: 255
Optional: \{\}
| +| `vipAddress` _string_ | vipAddress filters by the IP address of the load balancer's VIP. | | MaxLength: 64
Optional: \{\}
| +| `tags` _[LoadBalancerTag](#loadbalancertag) array_ | tags is a list of tags to filter by. If specified, the resource must
have all of the tags specified to be included in the result. | | MaxItems: 64
MaxLength: 255
MinLength: 1
Optional: \{\}
| +| `tagsAny` _[LoadBalancerTag](#loadbalancertag) array_ | tagsAny is a list of tags to filter by. If specified, the resource
must have at least one of the tags specified to be included in the
result. | | MaxItems: 64
MaxLength: 255
MinLength: 1
Optional: \{\}
| +| `notTags` _[LoadBalancerTag](#loadbalancertag) array_ | notTags is a list of tags to filter by. If specified, resources which
contain all of the given tags will be excluded from the result. | | MaxItems: 64
MaxLength: 255
MinLength: 1
Optional: \{\}
| +| `notTagsAny` _[LoadBalancerTag](#loadbalancertag) array_ | notTagsAny is a list of tags to filter by. If specified, resources
which contain any of the given tags will be excluded from the result. | | MaxItems: 64
MaxLength: 255
MinLength: 1
Optional: \{\}
| + + +#### LoadBalancerImport + + +LoadBalancerImport specifies an existing resource which will be imported instead of +creating a new one + +_Validation:_ +- MaxProperties: 1 +- MinProperties: 1 + +_Appears in:_ +- [LoadBalancerSpec](#loadbalancerspec) + +| Field | Description | Default | Validation | +| --- | --- | --- | --- | +| `id` _string_ | id contains the unique identifier of an existing OpenStack resource. Note
that when specifying an import by ID, the resource MUST already exist.
The ORC object will enter an error state if the resource does not exist. | | Format: uuid
MaxLength: 36
Optional: \{\}
| +| `filter` _[LoadBalancerFilter](#loadbalancerfilter)_ | filter contains a resource query which is expected to return a single
result. The controller will continue to retry if filter returns no
results. If filter returns multiple results the controller will set an
error state and will not continue to retry. | | MinProperties: 1
Optional: \{\}
| +#### LoadBalancerResourceSpec + + + +LoadBalancerResourceSpec contains the desired state of the resource. + + + +_Appears in:_ +- [LoadBalancerSpec](#loadbalancerspec) + +| Field | Description | Default | Validation | +| --- | --- | --- | --- | +| `name` _[OpenStackName](#openstackname)_ | name will be the name of the created resource. If not specified, the
name of the ORC object will be used. | | MaxLength: 255
MinLength: 1
Pattern: `^[^,]+$`
Optional: \{\}
| +| `description` _string_ | description is a human-readable description for the resource. | | MaxLength: 255
MinLength: 1
Optional: \{\}
| +| `vipSubnetRef` _[KubernetesNameRef](#kubernetesnameref)_ | vipSubnetRef is the subnet on which to allocate the load balancer's address. | | MaxLength: 253
MinLength: 1
Optional: \{\}
| +| `vipNetworkRef` _[KubernetesNameRef](#kubernetesnameref)_ | vipNetworkRef is the network on which to allocate the load balancer's address. | | MaxLength: 253
MinLength: 1
Optional: \{\}
| +| `vipPortRef` _[KubernetesNameRef](#kubernetesnameref)_ | vipPortRef is a reference to a neutron port to use for the VIP. If the port
has more than one subnet you must specify either vipSubnetRef or vipAddress
to clarify which address should be used for the VIP. | | MaxLength: 253
MinLength: 1
Optional: \{\}
| +| `flavorRef` _[KubernetesNameRef](#kubernetesnameref)_ | flavorRef is a reference to the ORC Compute Flavor which this resource is associated with. | | MaxLength: 253
MinLength: 1
Optional: \{\}
| +| `projectRef` _[KubernetesNameRef](#kubernetesnameref)_ | projectRef is a reference to the ORC Project which this resource is associated with. | | MaxLength: 253
MinLength: 1
Optional: \{\}
| +| `adminStateUp` _boolean_ | adminStateUp is the administrative state of the load balancer, which is up (true) or down (false) | | Optional: \{\}
| +| `availabilityZone` _string_ | availabilityZone is the availability zone in which to create the load balancer. | | MaxLength: 255
Optional: \{\}
| +| `provider` _string_ | provider is the name of the load balancer provider. | | MaxLength: 255
Optional: \{\}
| +| `vipAddress` _[IPvAny](#ipvany)_ | vipAddress is the specific IP address to use for the VIP (optional).
If not specified, one is allocated automatically from the subnet. | | MaxLength: 45
MinLength: 1
Optional: \{\}
| +| `tags` _[LoadBalancerTag](#loadbalancertag) array_ | tags is a list of tags which will be applied to the load balancer. | | MaxItems: 64
MaxLength: 255
MinLength: 1
Optional: \{\}
| + + +#### LoadBalancerResourceStatus + + + +LoadBalancerResourceStatus represents the observed state of the resource. + + + +_Appears in:_ +- [LoadBalancerStatus](#loadbalancerstatus) + +| Field | Description | Default | Validation | +| --- | --- | --- | --- | +| `name` _string_ | name is a Human-readable name for the resource. Might not be unique. | | MaxLength: 1024
Optional: \{\}
| +| `description` _string_ | description is a human-readable description for the resource. | | MaxLength: 1024
Optional: \{\}
| +| `vipSubnetID` _string_ | vipSubnetID is the ID of the Subnet to which the resource is associated. | | MaxLength: 1024
Optional: \{\}
| +| `vipNetworkID` _string_ | vipNetworkID is the ID of the Network to which the resource is associated. | | MaxLength: 1024
Optional: \{\}
| +| `vipPortID` _string_ | vipPortID is the ID of the Port to which the resource is associated. | | MaxLength: 1024
Optional: \{\}
| +| `flavorID` _string_ | flavorID is the ID of the Compute Flavor to which the resource is associated. | | MaxLength: 1024
Optional: \{\}
| +| `projectID` _string_ | projectID is the ID of the Project to which the resource is associated. | | MaxLength: 1024
Optional: \{\}
| +| `adminStateUp` _boolean_ | adminStateUp is the administrative state of the load balancer,
which is up (true) or down (false). | | Optional: \{\}
| +| `tags` _string array_ | tags is the list of tags on the resource. | | MaxItems: 64
items:MaxLength: 255
Optional: \{\}
| +| `availabilityZone` _string_ | availabilityZone is the availability zone where the load balancer is located. | | MaxLength: 1024
Optional: \{\}
| +| `provisioningStatus` _string_ | provisioningStatus is the provisioning status of the load balancer.
This value is ACTIVE, PENDING_CREATE or ERROR. | | MaxLength: 1024
Optional: \{\}
| +| `operatingStatus` _string_ | operatingStatus is the operating status of the load balancer,
such as ONLINE or OFFLINE. | | MaxLength: 1024
Optional: \{\}
| +| `provider` _string_ | provider is the name of the load balancer provider. | | MaxLength: 1024
Optional: \{\}
| +| `vipAddress` _string_ | vipAddress is the IP address of the load balancer's VIP. | | MaxLength: 64
Optional: \{\}
| + + +#### LoadBalancerSpec + + + +LoadBalancerSpec defines the desired state of an ORC object. + + + +_Appears in:_ +- [LoadBalancer](#loadbalancer) + +| Field | Description | Default | Validation | +| --- | --- | --- | --- | +| `import` _[LoadBalancerImport](#loadbalancerimport)_ | import refers to an existing OpenStack resource which will be imported instead of
creating a new one. | | MaxProperties: 1
MinProperties: 1
Optional: \{\}
| +| `resource` _[LoadBalancerResourceSpec](#loadbalancerresourcespec)_ | resource specifies the desired state of the resource.
resource may not be specified if the management policy is `unmanaged`.
resource must be specified if the management policy is `managed`. | | Optional: \{\}
| +| `managementPolicy` _[ManagementPolicy](#managementpolicy)_ | managementPolicy defines how ORC will treat the object. Valid values are
`managed`: ORC will create, update, and delete the resource; `unmanaged`:
ORC will import an existing resource, and will not apply updates to it or
delete it. | managed | Enum: [managed unmanaged]
Optional: \{\}
| +| `managedOptions` _[ManagedOptions](#managedoptions)_ | managedOptions specifies options which may be applied to managed objects. | | Optional: \{\}
| +| `cloudCredentialsRef` _[CloudCredentialsReference](#cloudcredentialsreference)_ | cloudCredentialsRef points to a secret containing OpenStack credentials | | Required: \{\}
| + + +#### LoadBalancerStatus + + + +LoadBalancerStatus defines the observed state of an ORC resource. + + + +_Appears in:_ +- [LoadBalancer](#loadbalancer) + +| Field | Description | Default | Validation | +| --- | --- | --- | --- | +| `conditions` _[Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#condition-v1-meta) array_ | conditions represents the observed status of the object.
Known .status.conditions.type are: "Available", "Progressing"
Available represents the availability of the OpenStack resource. If it is
true then the resource is ready for use.
Progressing indicates whether the controller is still attempting to
reconcile the current state of the OpenStack resource to the desired
state. Progressing will be False either because the desired state has
been achieved, or because some terminal error prevents it from ever being
achieved and the controller is no longer attempting to reconcile. If
Progressing is True, an observer waiting on the resource should continue
to wait. | | MaxItems: 32
Optional: \{\}
| +| `id` _string_ | id is the unique identifier of the OpenStack resource. | | MaxLength: 1024
Optional: \{\}
| +| `resource` _[LoadBalancerResourceStatus](#loadbalancerresourcestatus)_ | resource contains the observed state of the OpenStack resource. | | Optional: \{\}
| + + +#### LoadBalancerTag + +_Underlying type:_ _string_ + + + +_Validation:_ +- MaxLength: 255 +- MinLength: 1 + +_Appears in:_ +- [LoadBalancerFilter](#loadbalancerfilter) +- [LoadBalancerResourceSpec](#loadbalancerresourcespec) @@ -2277,6 +2452,7 @@ _Appears in:_ - [GroupSpec](#groupspec) - [ImageSpec](#imagespec) - [KeyPairSpec](#keypairspec) +- [LoadBalancerSpec](#loadbalancerspec) - [NetworkSpec](#networkspec) - [PortSpec](#portspec) - [ProjectSpec](#projectspec) @@ -2317,6 +2493,7 @@ _Appears in:_ - [GroupSpec](#groupspec) - [ImageSpec](#imagespec) - [KeyPairSpec](#keypairspec) +- [LoadBalancerSpec](#loadbalancerspec) - [NetworkSpec](#networkspec) - [PortSpec](#portspec) - [ProjectSpec](#projectspec)