diff --git a/Makefile b/Makefile index a6a0f7be7..7413f2357 100644 --- a/Makefile +++ b/Makefile @@ -31,6 +31,7 @@ GO_INSTALL = ./scripts/go_install.sh GOLANGCI_LINT := $(TOOLS_BIN_DIR)/golangci-lint KUSTOMIZE := $(TOOLS_BIN_DIR)/kustomize GOJQ := $(TOOLS_BIN_DIR)/gojq +CONVERSION_GEN := $(TOOLS_BIN_DIR)/conversion-gen STAGING_REGISTRY ?= gcr.io/k8s-staging-capi-ibmcloud STAGING_BUCKET ?= artifacts.k8s-staging-capi-ibmcloud.appspot.com @@ -62,6 +63,13 @@ else GOBIN=$(shell go env GOBIN) endif +# Set --output-base for conversion-gen if we are not within GOPATH +ifneq ($(abspath $(ROOT_DIR_RELATIVE)),$(shell go env GOPATH)/src/sigs.k8s.io/cluster-api-provider-ibmcloud) + CONVERSION_GEN_OUTPUT_BASE := --output-base=$(ROOT_DIR_RELATIVE) +else + export GOPATH := $(shell go env GOPATH) +endif + all: manager # Run tests @@ -93,6 +101,16 @@ deploy: manifests $(KUSTOMIZE) manifests: controller-gen #$(CONTROLLER_GEN) $(CRD_OPTIONS) rbac:roleName=manager-role webhook paths="./..." output:crd:artifacts:config=config/crd/bases $(CONTROLLER_GEN) $(CRD_OPTIONS) rbac:roleName=manager-role paths="./..." output:crd:artifacts:config=config/crd/bases + +.PHONY: generate-go-conversions-core +generate-go-conversions-core: $(CONVERSION_GEN) + $(MAKE) clean-generated-conversions SRC_DIRS="./api/v1alpha4" + $(CONVERSION_GEN) \ + --input-dirs=./api/v1alpha4 \ + --build-tag=ignore_autogenerated_core \ + --output-file-base=zz_generated.conversion $(CONVERSION_GEN_OUTPUT_BASE) \ + --go-header-file=./hack/boilerplate/boilerplate.generatego.txt + # Run go fmt against code fmt: go fmt ./... @@ -301,6 +319,10 @@ clean-temporary: ## Remove all temporary files and folders clean-release: ## Remove the release folder rm -rf $(RELEASE_DIR) +.PHONY: clean-generated-conversions +clean-generated-conversions: ## Remove files generated by conversion-gen from the mentioned dirs + (IFS=','; for i in $(SRC_DIRS); do find $$i -type f -name 'zz_generated.conversion*' -exec rm -f {} \;; done) + .PHONY: verify verify: ./hack/verify-boilerplate.sh diff --git a/PROJECT b/PROJECT index 2b1c42898..810c91218 100644 --- a/PROJECT +++ b/PROJECT @@ -1,6 +1,16 @@ domain: cluster.x-k8s.io repo: sigs.k8s.io/cluster-api-provider-ibmcloud resources: +# v1alpha4 types +- group: infrastructure + kind: IBMVPCCluster + version: v1alpha4 +- group: infrastructure + kind: IBMVPCMachine + version: v1alpha4 +- group: infrastructure + kind: IBMVPCMachineTemplate + version: v1alpha4 - group: infrastructure kind: IBMPowerVSCluster version: v1alpha4 @@ -10,4 +20,23 @@ resources: - group: infrastructure kind: IBMPowerVSMachineTemplate version: v1alpha4 +# v1beta1 types +- group: infrastructure + kind: IBMVPCCluster + version: v1beta1 +- group: infrastructure + kind: IBMVPCMachine + version: v1beta1 +- group: infrastructure + kind: IBMVPCMachineTemplate + version: v1beta1 +- group: infrastructure + kind: IBMPowerVSCluster + version: v1beta1 +- group: infrastructure + kind: IBMPowerVSMachine + version: v1beta1 +- group: infrastructure + kind: IBMPowerVSMachineTemplate + version: v1beta1 version: "2" diff --git a/api/v1alpha3/ibmvpccluster_types.go b/api/v1alpha3/ibmvpccluster_types.go index 5d4ac997b..b0a37fa45 100644 --- a/api/v1alpha3/ibmvpccluster_types.go +++ b/api/v1alpha3/ibmvpccluster_types.go @@ -18,7 +18,7 @@ package v1alpha3 import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - clusterv1 "sigs.k8s.io/cluster-api/api/v1alpha4" + clusterv1 "sigs.k8s.io/cluster-api/api/v1alpha3" ) // EDIT THIS FILE! THIS IS SCAFFOLDING FOR YOU TO OWN! @@ -60,7 +60,7 @@ type IBMVPCClusterStatus struct { // Bastion Instance `json:"bastion,omitempty"` Ready bool `json:"ready"` Subnet Subnet `json:"subnet,omitempty"` - APIEndpoint APIEndpoint `json:"apiEndpoint,omitempty"` + VPCEndpoint VPCEndpoint `json:"vpcEndpoint,omitempty"` } // VPC holds the VPC information diff --git a/api/v1alpha3/types.go b/api/v1alpha3/types.go index b5927a9c7..4a555acb1 100644 --- a/api/v1alpha3/types.go +++ b/api/v1alpha3/types.go @@ -30,8 +30,8 @@ type Subnet struct { Zone *string `json:"zone"` } -// APIEndpoint describes a APIEndpoint -type APIEndpoint struct { +// VPCEndpoint describes a VPCEndpoint +type VPCEndpoint struct { Address *string `json:"address"` FIPID *string `json:"floatingIPID"` } diff --git a/api/v1alpha3/zz_generated.deepcopy.go b/api/v1alpha3/zz_generated.deepcopy.go index 0165e7265..d4e2657c7 100644 --- a/api/v1alpha3/zz_generated.deepcopy.go +++ b/api/v1alpha3/zz_generated.deepcopy.go @@ -25,31 +25,6 @@ import ( runtime "k8s.io/apimachinery/pkg/runtime" ) -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *APIEndpoint) DeepCopyInto(out *APIEndpoint) { - *out = *in - if in.Address != nil { - in, out := &in.Address, &out.Address - *out = new(string) - **out = **in - } - if in.FIPID != nil { - in, out := &in.FIPID, &out.FIPID - *out = new(string) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIEndpoint. -func (in *APIEndpoint) DeepCopy() *APIEndpoint { - if in == nil { - return nil - } - out := new(APIEndpoint) - in.DeepCopyInto(out) - return out -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *IBMVPCCluster) DeepCopyInto(out *IBMVPCCluster) { *out = *in @@ -130,7 +105,7 @@ func (in *IBMVPCClusterStatus) DeepCopyInto(out *IBMVPCClusterStatus) { *out = *in out.VPC = in.VPC in.Subnet.DeepCopyInto(&out.Subnet) - in.APIEndpoint.DeepCopyInto(&out.APIEndpoint) + in.VPCEndpoint.DeepCopyInto(&out.VPCEndpoint) } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IBMVPCClusterStatus. @@ -408,3 +383,28 @@ func (in *VPC) DeepCopy() *VPC { in.DeepCopyInto(out) return out } + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VPCEndpoint) DeepCopyInto(out *VPCEndpoint) { + *out = *in + if in.Address != nil { + in, out := &in.Address, &out.Address + *out = new(string) + **out = **in + } + if in.FIPID != nil { + in, out := &in.FIPID, &out.FIPID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VPCEndpoint. +func (in *VPCEndpoint) DeepCopy() *VPCEndpoint { + if in == nil { + return nil + } + out := new(VPCEndpoint) + in.DeepCopyInto(out) + return out +} diff --git a/api/v1alpha4/conversion.go b/api/v1alpha4/conversion.go new file mode 100644 index 000000000..e543007f8 --- /dev/null +++ b/api/v1alpha4/conversion.go @@ -0,0 +1,31 @@ +/* +Copyright 2021 The Kubernetes 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 v1alpha4 + +import ( + apiconversion "k8s.io/apimachinery/pkg/conversion" + clusterv1alpha4 "sigs.k8s.io/cluster-api/api/v1alpha4" + clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1" +) + +func Convert_v1alpha4_APIEndpoint_To_v1beta1_APIEndpoint(in *clusterv1alpha4.APIEndpoint, out *clusterv1.APIEndpoint, s apiconversion.Scope) error { + return clusterv1alpha4.Convert_v1alpha4_APIEndpoint_To_v1beta1_APIEndpoint(in, out, s) +} + +func Convert_v1beta1_APIEndpoint_To_v1alpha4_APIEndpoint(in *clusterv1.APIEndpoint, out *clusterv1alpha4.APIEndpoint, s apiconversion.Scope) error { + return clusterv1alpha4.Convert_v1beta1_APIEndpoint_To_v1alpha4_APIEndpoint(in, out, s) +} diff --git a/api/v1alpha4/doc.go b/api/v1alpha4/doc.go new file mode 100644 index 000000000..0c05663d0 --- /dev/null +++ b/api/v1alpha4/doc.go @@ -0,0 +1,19 @@ +/* +Copyright 2021 The Kubernetes 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 v1alpha4 contains the v1alpha4 API implementation. +// +k8s:conversion-gen=sigs.k8s.io/cluster-api-provider-ibmcloud/api/v1beta1 +package v1alpha4 diff --git a/api/v1alpha4/groupversion_info.go b/api/v1alpha4/groupversion_info.go index c9ceb24ed..8ab8c79b9 100644 --- a/api/v1alpha4/groupversion_info.go +++ b/api/v1alpha4/groupversion_info.go @@ -33,4 +33,6 @@ var ( // AddToScheme adds the types in this group-version to the given scheme. AddToScheme = SchemeBuilder.AddToScheme + + localSchemeBuilder = SchemeBuilder.SchemeBuilder ) diff --git a/api/v1alpha4/ibmpowervs_conversion.go b/api/v1alpha4/ibmpowervs_conversion.go new file mode 100644 index 000000000..8300b92dc --- /dev/null +++ b/api/v1alpha4/ibmpowervs_conversion.go @@ -0,0 +1,94 @@ +/* +Copyright 2020 The Kubernetes 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 v1alpha4 + +import ( + "sigs.k8s.io/cluster-api-provider-ibmcloud/api/v1beta1" + "sigs.k8s.io/controller-runtime/pkg/conversion" +) + +func (src *IBMPowerVSCluster) ConvertTo(dstRaw conversion.Hub) error { + dst := dstRaw.(*v1beta1.IBMPowerVSCluster) + + return Convert_v1alpha4_IBMPowerVSCluster_To_v1beta1_IBMPowerVSCluster(src, dst, nil) +} + +func (dst *IBMPowerVSCluster) ConvertFrom(srcRaw conversion.Hub) error { + src := srcRaw.(*v1beta1.IBMPowerVSCluster) + + return Convert_v1beta1_IBMPowerVSCluster_To_v1alpha4_IBMPowerVSCluster(src, dst, nil) +} + +func (src *IBMPowerVSClusterList) ConvertTo(dstRaw conversion.Hub) error { + dst := dstRaw.(*v1beta1.IBMPowerVSClusterList) + + return Convert_v1alpha4_IBMPowerVSClusterList_To_v1beta1_IBMPowerVSClusterList(src, dst, nil) +} + +func (dst *IBMPowerVSClusterList) ConvertFrom(srcRaw conversion.Hub) error { + src := srcRaw.(*v1beta1.IBMPowerVSClusterList) + + return Convert_v1beta1_IBMPowerVSClusterList_To_v1alpha4_IBMPowerVSClusterList(src, dst, nil) +} + +func (src *IBMPowerVSMachine) ConvertTo(dstRaw conversion.Hub) error { + dst := dstRaw.(*v1beta1.IBMPowerVSMachine) + + return Convert_v1alpha4_IBMPowerVSMachine_To_v1beta1_IBMPowerVSMachine(src, dst, nil) +} + +func (dst *IBMPowerVSMachine) ConvertFrom(srcRaw conversion.Hub) error { + src := srcRaw.(*v1beta1.IBMPowerVSMachine) + + return Convert_v1beta1_IBMPowerVSMachine_To_v1alpha4_IBMPowerVSMachine(src, dst, nil) +} + +func (src *IBMPowerVSMachineList) ConvertTo(dstRaw conversion.Hub) error { + dst := dstRaw.(*v1beta1.IBMPowerVSMachineList) + + return Convert_v1alpha4_IBMPowerVSMachineList_To_v1beta1_IBMPowerVSMachineList(src, dst, nil) +} + +func (dst *IBMPowerVSMachineList) ConvertFrom(srcRaw conversion.Hub) error { + src := srcRaw.(*v1beta1.IBMPowerVSMachineList) + + return Convert_v1beta1_IBMPowerVSMachineList_To_v1alpha4_IBMPowerVSMachineList(src, dst, nil) +} + +func (src *IBMPowerVSMachineTemplate) ConvertTo(dstRaw conversion.Hub) error { + dst := dstRaw.(*v1beta1.IBMPowerVSMachineTemplate) + + return Convert_v1alpha4_IBMPowerVSMachineTemplate_To_v1beta1_IBMPowerVSMachineTemplate(src, dst, nil) +} + +func (dst *IBMPowerVSMachineTemplate) ConvertFrom(srcRaw conversion.Hub) error { + src := srcRaw.(*v1beta1.IBMPowerVSMachineTemplate) + + return Convert_v1beta1_IBMPowerVSMachineTemplate_To_v1alpha4_IBMPowerVSMachineTemplate(src, dst, nil) +} + +func (src *IBMPowerVSMachineTemplateList) ConvertTo(dstRaw conversion.Hub) error { + dst := dstRaw.(*v1beta1.IBMPowerVSMachineTemplateList) + + return Convert_v1alpha4_IBMPowerVSMachineTemplateList_To_v1beta1_IBMPowerVSMachineTemplateList(src, dst, nil) +} + +func (dst *IBMPowerVSMachineTemplateList) ConvertFrom(srcRaw conversion.Hub) error { + src := srcRaw.(*v1beta1.IBMPowerVSMachineTemplateList) + + return Convert_v1beta1_IBMPowerVSMachineTemplateList_To_v1alpha4_IBMPowerVSMachineTemplateList(src, dst, nil) +} diff --git a/api/v1alpha4/ibmvpc_conversion.go b/api/v1alpha4/ibmvpc_conversion.go new file mode 100644 index 000000000..b73987858 --- /dev/null +++ b/api/v1alpha4/ibmvpc_conversion.go @@ -0,0 +1,94 @@ +/* +Copyright 2020 The Kubernetes 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 v1alpha4 + +import ( + "sigs.k8s.io/cluster-api-provider-ibmcloud/api/v1beta1" + "sigs.k8s.io/controller-runtime/pkg/conversion" +) + +func (src *IBMVPCCluster) ConvertTo(dstRaw conversion.Hub) error { + dst := dstRaw.(*v1beta1.IBMVPCCluster) + + return Convert_v1alpha4_IBMVPCCluster_To_v1beta1_IBMVPCCluster(src, dst, nil) +} + +func (dst *IBMVPCCluster) ConvertFrom(srcRaw conversion.Hub) error { + src := srcRaw.(*v1beta1.IBMVPCCluster) + + return Convert_v1beta1_IBMVPCCluster_To_v1alpha4_IBMVPCCluster(src, dst, nil) +} + +func (src *IBMVPCClusterList) ConvertTo(dstRaw conversion.Hub) error { + dst := dstRaw.(*v1beta1.IBMVPCClusterList) + + return Convert_v1alpha4_IBMVPCClusterList_To_v1beta1_IBMVPCClusterList(src, dst, nil) +} + +func (dst *IBMVPCClusterList) ConvertFrom(srcRaw conversion.Hub) error { + src := srcRaw.(*v1beta1.IBMVPCClusterList) + + return Convert_v1beta1_IBMVPCClusterList_To_v1alpha4_IBMVPCClusterList(src, dst, nil) +} + +func (src *IBMVPCMachine) ConvertTo(dstRaw conversion.Hub) error { + dst := dstRaw.(*v1beta1.IBMVPCMachine) + + return Convert_v1alpha4_IBMVPCMachine_To_v1beta1_IBMVPCMachine(src, dst, nil) +} + +func (dst *IBMVPCMachine) ConvertFrom(srcRaw conversion.Hub) error { + src := srcRaw.(*v1beta1.IBMVPCMachine) + + return Convert_v1beta1_IBMVPCMachine_To_v1alpha4_IBMVPCMachine(src, dst, nil) +} + +func (src *IBMVPCMachineList) ConvertTo(dstRaw conversion.Hub) error { + dst := dstRaw.(*v1beta1.IBMVPCMachineList) + + return Convert_v1alpha4_IBMVPCMachineList_To_v1beta1_IBMVPCMachineList(src, dst, nil) +} + +func (dst *IBMVPCMachineList) ConvertFrom(srcRaw conversion.Hub) error { + src := srcRaw.(*v1beta1.IBMVPCMachineList) + + return Convert_v1beta1_IBMVPCMachineList_To_v1alpha4_IBMVPCMachineList(src, dst, nil) +} + +func (src *IBMVPCMachineTemplate) ConvertTo(dstRaw conversion.Hub) error { + dst := dstRaw.(*v1beta1.IBMVPCMachineTemplate) + + return Convert_v1alpha4_IBMVPCMachineTemplate_To_v1beta1_IBMVPCMachineTemplate(src, dst, nil) +} + +func (dst *IBMVPCMachineTemplate) ConvertFrom(srcRaw conversion.Hub) error { + src := srcRaw.(*v1beta1.IBMVPCMachineTemplate) + + return Convert_v1beta1_IBMVPCMachineTemplate_To_v1alpha4_IBMVPCMachineTemplate(src, dst, nil) +} + +func (src *IBMVPCMachineTemplateList) ConvertTo(dstRaw conversion.Hub) error { + dst := dstRaw.(*v1beta1.IBMVPCMachineTemplateList) + + return Convert_v1alpha4_IBMVPCMachineTemplateList_To_v1beta1_IBMVPCMachineTemplateList(src, dst, nil) +} + +func (dst *IBMVPCMachineTemplateList) ConvertFrom(srcRaw conversion.Hub) error { + src := srcRaw.(*v1beta1.IBMVPCMachineTemplateList) + + return Convert_v1beta1_IBMVPCMachineTemplateList_To_v1alpha4_IBMVPCMachineTemplateList(src, dst, nil) +} diff --git a/api/v1alpha4/ibmvpccluster_types.go b/api/v1alpha4/ibmvpccluster_types.go index d9fafa939..13def96f9 100644 --- a/api/v1alpha4/ibmvpccluster_types.go +++ b/api/v1alpha4/ibmvpccluster_types.go @@ -60,7 +60,7 @@ type IBMVPCClusterStatus struct { // Bastion Instance `json:"bastion,omitempty"` Ready bool `json:"ready"` Subnet Subnet `json:"subnet,omitempty"` - APIEndpoint APIEndpoint `json:"apiEndpoint,omitempty"` + VPCEndpoint VPCEndpoint `json:"vpcEndpoint,omitempty"` } // VPC holds the VPC information @@ -71,7 +71,6 @@ type VPC struct { // +kubebuilder:object:root=true // +kubebuilder:resource:path=ibmvpcclusters,scope=Namespaced,categories=cluster-api -// +kubebuilder:storageversion // +kubebuilder:subresource:status // +kubebuilder:printcolumn:name="Cluster",type="string",JSONPath=".metadata.labels.cluster\\.x-k8s\\.io/cluster-name",description="Cluster to which this IBMVPCCluster belongs" // +kubebuilder:printcolumn:name="Ready",type="string",JSONPath=".status.ready",description="Cluster infrastructure is ready for IBM VPC instances" diff --git a/api/v1alpha4/ibmvpcmachine_types.go b/api/v1alpha4/ibmvpcmachine_types.go index 34a5f8644..ca66f115b 100644 --- a/api/v1alpha4/ibmvpcmachine_types.go +++ b/api/v1alpha4/ibmvpcmachine_types.go @@ -80,7 +80,6 @@ type IBMVPCMachineStatus struct { // +kubebuilder:object:root=true // +kubebuilder:resource:path=ibmvpcmachines,scope=Namespaced,categories=cluster-api -// +kubebuilder:storageversion // +kubebuilder:subresource:status // +kubebuilder:printcolumn:name="Ready",type="string",JSONPath=".status.ready",description="Cluster infrastructure is ready for IBM VPC instances" diff --git a/api/v1alpha4/ibmvpcmachinetemplate_types.go b/api/v1alpha4/ibmvpcmachinetemplate_types.go index 5274bb14b..239a4317e 100644 --- a/api/v1alpha4/ibmvpcmachinetemplate_types.go +++ b/api/v1alpha4/ibmvpcmachinetemplate_types.go @@ -33,7 +33,6 @@ type IBMVPCMachineTemplateResource struct { // +kubebuilder:object:root=true // +kubebuilder:resource:path=ibmvpcmachinetemplates,scope=Namespaced,categories=cluster-api -// +kubebuilder:storageversion // IBMVPCMachineTemplate is the Schema for the IBMVPCMachinetemplates API type IBMVPCMachineTemplate struct { diff --git a/api/v1alpha4/types.go b/api/v1alpha4/types.go index eec96d624..759742c14 100644 --- a/api/v1alpha4/types.go +++ b/api/v1alpha4/types.go @@ -30,8 +30,8 @@ type Subnet struct { Zone *string `json:"zone"` } -// APIEndpoint describes a APIEndpoint -type APIEndpoint struct { +// VPCEndpoint describes a VPCEndpoint +type VPCEndpoint struct { Address *string `json:"address"` FIPID *string `json:"floatingIPID"` } diff --git a/api/v1alpha4/zz_generated.conversion.go b/api/v1alpha4/zz_generated.conversion.go new file mode 100644 index 000000000..eab4544ee --- /dev/null +++ b/api/v1alpha4/zz_generated.conversion.go @@ -0,0 +1,1194 @@ +// +build !ignore_autogenerated_core + +/* +Copyright The Kubernetes 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 conversion-gen. DO NOT EDIT. + +package v1alpha4 + +import ( + unsafe "unsafe" + + v1 "k8s.io/api/core/v1" + conversion "k8s.io/apimachinery/pkg/conversion" + runtime "k8s.io/apimachinery/pkg/runtime" + v1beta1 "sigs.k8s.io/cluster-api-provider-ibmcloud/api/v1beta1" + apiv1alpha4 "sigs.k8s.io/cluster-api/api/v1alpha4" + apiv1beta1 "sigs.k8s.io/cluster-api/api/v1beta1" +) + +func init() { + localSchemeBuilder.Register(RegisterConversions) +} + +// RegisterConversions adds conversion functions to the given scheme. +// Public to allow building arbitrary schemes. +func RegisterConversions(s *runtime.Scheme) error { + if err := s.AddGeneratedConversionFunc((*IBMPowerVSCluster)(nil), (*v1beta1.IBMPowerVSCluster)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha4_IBMPowerVSCluster_To_v1beta1_IBMPowerVSCluster(a.(*IBMPowerVSCluster), b.(*v1beta1.IBMPowerVSCluster), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*v1beta1.IBMPowerVSCluster)(nil), (*IBMPowerVSCluster)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta1_IBMPowerVSCluster_To_v1alpha4_IBMPowerVSCluster(a.(*v1beta1.IBMPowerVSCluster), b.(*IBMPowerVSCluster), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*IBMPowerVSClusterList)(nil), (*v1beta1.IBMPowerVSClusterList)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha4_IBMPowerVSClusterList_To_v1beta1_IBMPowerVSClusterList(a.(*IBMPowerVSClusterList), b.(*v1beta1.IBMPowerVSClusterList), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*v1beta1.IBMPowerVSClusterList)(nil), (*IBMPowerVSClusterList)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta1_IBMPowerVSClusterList_To_v1alpha4_IBMPowerVSClusterList(a.(*v1beta1.IBMPowerVSClusterList), b.(*IBMPowerVSClusterList), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*IBMPowerVSClusterSpec)(nil), (*v1beta1.IBMPowerVSClusterSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha4_IBMPowerVSClusterSpec_To_v1beta1_IBMPowerVSClusterSpec(a.(*IBMPowerVSClusterSpec), b.(*v1beta1.IBMPowerVSClusterSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*v1beta1.IBMPowerVSClusterSpec)(nil), (*IBMPowerVSClusterSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta1_IBMPowerVSClusterSpec_To_v1alpha4_IBMPowerVSClusterSpec(a.(*v1beta1.IBMPowerVSClusterSpec), b.(*IBMPowerVSClusterSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*IBMPowerVSClusterStatus)(nil), (*v1beta1.IBMPowerVSClusterStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha4_IBMPowerVSClusterStatus_To_v1beta1_IBMPowerVSClusterStatus(a.(*IBMPowerVSClusterStatus), b.(*v1beta1.IBMPowerVSClusterStatus), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*v1beta1.IBMPowerVSClusterStatus)(nil), (*IBMPowerVSClusterStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta1_IBMPowerVSClusterStatus_To_v1alpha4_IBMPowerVSClusterStatus(a.(*v1beta1.IBMPowerVSClusterStatus), b.(*IBMPowerVSClusterStatus), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*IBMPowerVSMachine)(nil), (*v1beta1.IBMPowerVSMachine)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha4_IBMPowerVSMachine_To_v1beta1_IBMPowerVSMachine(a.(*IBMPowerVSMachine), b.(*v1beta1.IBMPowerVSMachine), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*v1beta1.IBMPowerVSMachine)(nil), (*IBMPowerVSMachine)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta1_IBMPowerVSMachine_To_v1alpha4_IBMPowerVSMachine(a.(*v1beta1.IBMPowerVSMachine), b.(*IBMPowerVSMachine), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*IBMPowerVSMachineList)(nil), (*v1beta1.IBMPowerVSMachineList)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha4_IBMPowerVSMachineList_To_v1beta1_IBMPowerVSMachineList(a.(*IBMPowerVSMachineList), b.(*v1beta1.IBMPowerVSMachineList), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*v1beta1.IBMPowerVSMachineList)(nil), (*IBMPowerVSMachineList)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta1_IBMPowerVSMachineList_To_v1alpha4_IBMPowerVSMachineList(a.(*v1beta1.IBMPowerVSMachineList), b.(*IBMPowerVSMachineList), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*IBMPowerVSMachineSpec)(nil), (*v1beta1.IBMPowerVSMachineSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha4_IBMPowerVSMachineSpec_To_v1beta1_IBMPowerVSMachineSpec(a.(*IBMPowerVSMachineSpec), b.(*v1beta1.IBMPowerVSMachineSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*v1beta1.IBMPowerVSMachineSpec)(nil), (*IBMPowerVSMachineSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta1_IBMPowerVSMachineSpec_To_v1alpha4_IBMPowerVSMachineSpec(a.(*v1beta1.IBMPowerVSMachineSpec), b.(*IBMPowerVSMachineSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*IBMPowerVSMachineStatus)(nil), (*v1beta1.IBMPowerVSMachineStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha4_IBMPowerVSMachineStatus_To_v1beta1_IBMPowerVSMachineStatus(a.(*IBMPowerVSMachineStatus), b.(*v1beta1.IBMPowerVSMachineStatus), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*v1beta1.IBMPowerVSMachineStatus)(nil), (*IBMPowerVSMachineStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta1_IBMPowerVSMachineStatus_To_v1alpha4_IBMPowerVSMachineStatus(a.(*v1beta1.IBMPowerVSMachineStatus), b.(*IBMPowerVSMachineStatus), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*IBMPowerVSMachineTemplate)(nil), (*v1beta1.IBMPowerVSMachineTemplate)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha4_IBMPowerVSMachineTemplate_To_v1beta1_IBMPowerVSMachineTemplate(a.(*IBMPowerVSMachineTemplate), b.(*v1beta1.IBMPowerVSMachineTemplate), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*v1beta1.IBMPowerVSMachineTemplate)(nil), (*IBMPowerVSMachineTemplate)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta1_IBMPowerVSMachineTemplate_To_v1alpha4_IBMPowerVSMachineTemplate(a.(*v1beta1.IBMPowerVSMachineTemplate), b.(*IBMPowerVSMachineTemplate), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*IBMPowerVSMachineTemplateList)(nil), (*v1beta1.IBMPowerVSMachineTemplateList)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha4_IBMPowerVSMachineTemplateList_To_v1beta1_IBMPowerVSMachineTemplateList(a.(*IBMPowerVSMachineTemplateList), b.(*v1beta1.IBMPowerVSMachineTemplateList), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*v1beta1.IBMPowerVSMachineTemplateList)(nil), (*IBMPowerVSMachineTemplateList)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta1_IBMPowerVSMachineTemplateList_To_v1alpha4_IBMPowerVSMachineTemplateList(a.(*v1beta1.IBMPowerVSMachineTemplateList), b.(*IBMPowerVSMachineTemplateList), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*IBMPowerVSMachineTemplateResource)(nil), (*v1beta1.IBMPowerVSMachineTemplateResource)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha4_IBMPowerVSMachineTemplateResource_To_v1beta1_IBMPowerVSMachineTemplateResource(a.(*IBMPowerVSMachineTemplateResource), b.(*v1beta1.IBMPowerVSMachineTemplateResource), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*v1beta1.IBMPowerVSMachineTemplateResource)(nil), (*IBMPowerVSMachineTemplateResource)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta1_IBMPowerVSMachineTemplateResource_To_v1alpha4_IBMPowerVSMachineTemplateResource(a.(*v1beta1.IBMPowerVSMachineTemplateResource), b.(*IBMPowerVSMachineTemplateResource), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*IBMPowerVSMachineTemplateSpec)(nil), (*v1beta1.IBMPowerVSMachineTemplateSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha4_IBMPowerVSMachineTemplateSpec_To_v1beta1_IBMPowerVSMachineTemplateSpec(a.(*IBMPowerVSMachineTemplateSpec), b.(*v1beta1.IBMPowerVSMachineTemplateSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*v1beta1.IBMPowerVSMachineTemplateSpec)(nil), (*IBMPowerVSMachineTemplateSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta1_IBMPowerVSMachineTemplateSpec_To_v1alpha4_IBMPowerVSMachineTemplateSpec(a.(*v1beta1.IBMPowerVSMachineTemplateSpec), b.(*IBMPowerVSMachineTemplateSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*IBMPowerVSMachineTemplateStatus)(nil), (*v1beta1.IBMPowerVSMachineTemplateStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha4_IBMPowerVSMachineTemplateStatus_To_v1beta1_IBMPowerVSMachineTemplateStatus(a.(*IBMPowerVSMachineTemplateStatus), b.(*v1beta1.IBMPowerVSMachineTemplateStatus), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*v1beta1.IBMPowerVSMachineTemplateStatus)(nil), (*IBMPowerVSMachineTemplateStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta1_IBMPowerVSMachineTemplateStatus_To_v1alpha4_IBMPowerVSMachineTemplateStatus(a.(*v1beta1.IBMPowerVSMachineTemplateStatus), b.(*IBMPowerVSMachineTemplateStatus), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*IBMPowerVSResourceReference)(nil), (*v1beta1.IBMPowerVSResourceReference)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha4_IBMPowerVSResourceReference_To_v1beta1_IBMPowerVSResourceReference(a.(*IBMPowerVSResourceReference), b.(*v1beta1.IBMPowerVSResourceReference), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*v1beta1.IBMPowerVSResourceReference)(nil), (*IBMPowerVSResourceReference)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta1_IBMPowerVSResourceReference_To_v1alpha4_IBMPowerVSResourceReference(a.(*v1beta1.IBMPowerVSResourceReference), b.(*IBMPowerVSResourceReference), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*IBMVPCCluster)(nil), (*v1beta1.IBMVPCCluster)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha4_IBMVPCCluster_To_v1beta1_IBMVPCCluster(a.(*IBMVPCCluster), b.(*v1beta1.IBMVPCCluster), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*v1beta1.IBMVPCCluster)(nil), (*IBMVPCCluster)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta1_IBMVPCCluster_To_v1alpha4_IBMVPCCluster(a.(*v1beta1.IBMVPCCluster), b.(*IBMVPCCluster), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*IBMVPCClusterList)(nil), (*v1beta1.IBMVPCClusterList)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha4_IBMVPCClusterList_To_v1beta1_IBMVPCClusterList(a.(*IBMVPCClusterList), b.(*v1beta1.IBMVPCClusterList), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*v1beta1.IBMVPCClusterList)(nil), (*IBMVPCClusterList)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta1_IBMVPCClusterList_To_v1alpha4_IBMVPCClusterList(a.(*v1beta1.IBMVPCClusterList), b.(*IBMVPCClusterList), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*IBMVPCClusterSpec)(nil), (*v1beta1.IBMVPCClusterSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha4_IBMVPCClusterSpec_To_v1beta1_IBMVPCClusterSpec(a.(*IBMVPCClusterSpec), b.(*v1beta1.IBMVPCClusterSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*v1beta1.IBMVPCClusterSpec)(nil), (*IBMVPCClusterSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta1_IBMVPCClusterSpec_To_v1alpha4_IBMVPCClusterSpec(a.(*v1beta1.IBMVPCClusterSpec), b.(*IBMVPCClusterSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*IBMVPCClusterStatus)(nil), (*v1beta1.IBMVPCClusterStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha4_IBMVPCClusterStatus_To_v1beta1_IBMVPCClusterStatus(a.(*IBMVPCClusterStatus), b.(*v1beta1.IBMVPCClusterStatus), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*v1beta1.IBMVPCClusterStatus)(nil), (*IBMVPCClusterStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta1_IBMVPCClusterStatus_To_v1alpha4_IBMVPCClusterStatus(a.(*v1beta1.IBMVPCClusterStatus), b.(*IBMVPCClusterStatus), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*IBMVPCMachine)(nil), (*v1beta1.IBMVPCMachine)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha4_IBMVPCMachine_To_v1beta1_IBMVPCMachine(a.(*IBMVPCMachine), b.(*v1beta1.IBMVPCMachine), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*v1beta1.IBMVPCMachine)(nil), (*IBMVPCMachine)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta1_IBMVPCMachine_To_v1alpha4_IBMVPCMachine(a.(*v1beta1.IBMVPCMachine), b.(*IBMVPCMachine), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*IBMVPCMachineList)(nil), (*v1beta1.IBMVPCMachineList)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha4_IBMVPCMachineList_To_v1beta1_IBMVPCMachineList(a.(*IBMVPCMachineList), b.(*v1beta1.IBMVPCMachineList), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*v1beta1.IBMVPCMachineList)(nil), (*IBMVPCMachineList)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta1_IBMVPCMachineList_To_v1alpha4_IBMVPCMachineList(a.(*v1beta1.IBMVPCMachineList), b.(*IBMVPCMachineList), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*IBMVPCMachineSpec)(nil), (*v1beta1.IBMVPCMachineSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha4_IBMVPCMachineSpec_To_v1beta1_IBMVPCMachineSpec(a.(*IBMVPCMachineSpec), b.(*v1beta1.IBMVPCMachineSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*v1beta1.IBMVPCMachineSpec)(nil), (*IBMVPCMachineSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta1_IBMVPCMachineSpec_To_v1alpha4_IBMVPCMachineSpec(a.(*v1beta1.IBMVPCMachineSpec), b.(*IBMVPCMachineSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*IBMVPCMachineStatus)(nil), (*v1beta1.IBMVPCMachineStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha4_IBMVPCMachineStatus_To_v1beta1_IBMVPCMachineStatus(a.(*IBMVPCMachineStatus), b.(*v1beta1.IBMVPCMachineStatus), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*v1beta1.IBMVPCMachineStatus)(nil), (*IBMVPCMachineStatus)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta1_IBMVPCMachineStatus_To_v1alpha4_IBMVPCMachineStatus(a.(*v1beta1.IBMVPCMachineStatus), b.(*IBMVPCMachineStatus), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*IBMVPCMachineTemplate)(nil), (*v1beta1.IBMVPCMachineTemplate)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha4_IBMVPCMachineTemplate_To_v1beta1_IBMVPCMachineTemplate(a.(*IBMVPCMachineTemplate), b.(*v1beta1.IBMVPCMachineTemplate), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*v1beta1.IBMVPCMachineTemplate)(nil), (*IBMVPCMachineTemplate)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta1_IBMVPCMachineTemplate_To_v1alpha4_IBMVPCMachineTemplate(a.(*v1beta1.IBMVPCMachineTemplate), b.(*IBMVPCMachineTemplate), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*IBMVPCMachineTemplateList)(nil), (*v1beta1.IBMVPCMachineTemplateList)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha4_IBMVPCMachineTemplateList_To_v1beta1_IBMVPCMachineTemplateList(a.(*IBMVPCMachineTemplateList), b.(*v1beta1.IBMVPCMachineTemplateList), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*v1beta1.IBMVPCMachineTemplateList)(nil), (*IBMVPCMachineTemplateList)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta1_IBMVPCMachineTemplateList_To_v1alpha4_IBMVPCMachineTemplateList(a.(*v1beta1.IBMVPCMachineTemplateList), b.(*IBMVPCMachineTemplateList), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*IBMVPCMachineTemplateResource)(nil), (*v1beta1.IBMVPCMachineTemplateResource)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha4_IBMVPCMachineTemplateResource_To_v1beta1_IBMVPCMachineTemplateResource(a.(*IBMVPCMachineTemplateResource), b.(*v1beta1.IBMVPCMachineTemplateResource), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*v1beta1.IBMVPCMachineTemplateResource)(nil), (*IBMVPCMachineTemplateResource)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta1_IBMVPCMachineTemplateResource_To_v1alpha4_IBMVPCMachineTemplateResource(a.(*v1beta1.IBMVPCMachineTemplateResource), b.(*IBMVPCMachineTemplateResource), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*IBMVPCMachineTemplateSpec)(nil), (*v1beta1.IBMVPCMachineTemplateSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha4_IBMVPCMachineTemplateSpec_To_v1beta1_IBMVPCMachineTemplateSpec(a.(*IBMVPCMachineTemplateSpec), b.(*v1beta1.IBMVPCMachineTemplateSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*v1beta1.IBMVPCMachineTemplateSpec)(nil), (*IBMVPCMachineTemplateSpec)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta1_IBMVPCMachineTemplateSpec_To_v1alpha4_IBMVPCMachineTemplateSpec(a.(*v1beta1.IBMVPCMachineTemplateSpec), b.(*IBMVPCMachineTemplateSpec), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*NetworkInterface)(nil), (*v1beta1.NetworkInterface)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha4_NetworkInterface_To_v1beta1_NetworkInterface(a.(*NetworkInterface), b.(*v1beta1.NetworkInterface), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*v1beta1.NetworkInterface)(nil), (*NetworkInterface)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta1_NetworkInterface_To_v1alpha4_NetworkInterface(a.(*v1beta1.NetworkInterface), b.(*NetworkInterface), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*Subnet)(nil), (*v1beta1.Subnet)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha4_Subnet_To_v1beta1_Subnet(a.(*Subnet), b.(*v1beta1.Subnet), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*v1beta1.Subnet)(nil), (*Subnet)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta1_Subnet_To_v1alpha4_Subnet(a.(*v1beta1.Subnet), b.(*Subnet), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*VPC)(nil), (*v1beta1.VPC)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha4_VPC_To_v1beta1_VPC(a.(*VPC), b.(*v1beta1.VPC), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*v1beta1.VPC)(nil), (*VPC)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta1_VPC_To_v1alpha4_VPC(a.(*v1beta1.VPC), b.(*VPC), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*VPCEndpoint)(nil), (*v1beta1.VPCEndpoint)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha4_VPCEndpoint_To_v1beta1_VPCEndpoint(a.(*VPCEndpoint), b.(*v1beta1.VPCEndpoint), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*v1beta1.VPCEndpoint)(nil), (*VPCEndpoint)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta1_VPCEndpoint_To_v1alpha4_VPCEndpoint(a.(*v1beta1.VPCEndpoint), b.(*VPCEndpoint), scope) + }); err != nil { + return err + } + if err := s.AddConversionFunc((*apiv1alpha4.APIEndpoint)(nil), (*apiv1beta1.APIEndpoint)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1alpha4_APIEndpoint_To_v1beta1_APIEndpoint(a.(*apiv1alpha4.APIEndpoint), b.(*apiv1beta1.APIEndpoint), scope) + }); err != nil { + return err + } + if err := s.AddConversionFunc((*apiv1beta1.APIEndpoint)(nil), (*apiv1alpha4.APIEndpoint)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta1_APIEndpoint_To_v1alpha4_APIEndpoint(a.(*apiv1beta1.APIEndpoint), b.(*apiv1alpha4.APIEndpoint), scope) + }); err != nil { + return err + } + return nil +} + +func autoConvert_v1alpha4_IBMPowerVSCluster_To_v1beta1_IBMPowerVSCluster(in *IBMPowerVSCluster, out *v1beta1.IBMPowerVSCluster, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_v1alpha4_IBMPowerVSClusterSpec_To_v1beta1_IBMPowerVSClusterSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + if err := Convert_v1alpha4_IBMPowerVSClusterStatus_To_v1beta1_IBMPowerVSClusterStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +// Convert_v1alpha4_IBMPowerVSCluster_To_v1beta1_IBMPowerVSCluster is an autogenerated conversion function. +func Convert_v1alpha4_IBMPowerVSCluster_To_v1beta1_IBMPowerVSCluster(in *IBMPowerVSCluster, out *v1beta1.IBMPowerVSCluster, s conversion.Scope) error { + return autoConvert_v1alpha4_IBMPowerVSCluster_To_v1beta1_IBMPowerVSCluster(in, out, s) +} + +func autoConvert_v1beta1_IBMPowerVSCluster_To_v1alpha4_IBMPowerVSCluster(in *v1beta1.IBMPowerVSCluster, out *IBMPowerVSCluster, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_v1beta1_IBMPowerVSClusterSpec_To_v1alpha4_IBMPowerVSClusterSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + if err := Convert_v1beta1_IBMPowerVSClusterStatus_To_v1alpha4_IBMPowerVSClusterStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +// Convert_v1beta1_IBMPowerVSCluster_To_v1alpha4_IBMPowerVSCluster is an autogenerated conversion function. +func Convert_v1beta1_IBMPowerVSCluster_To_v1alpha4_IBMPowerVSCluster(in *v1beta1.IBMPowerVSCluster, out *IBMPowerVSCluster, s conversion.Scope) error { + return autoConvert_v1beta1_IBMPowerVSCluster_To_v1alpha4_IBMPowerVSCluster(in, out, s) +} + +func autoConvert_v1alpha4_IBMPowerVSClusterList_To_v1beta1_IBMPowerVSClusterList(in *IBMPowerVSClusterList, out *v1beta1.IBMPowerVSClusterList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]v1beta1.IBMPowerVSCluster, len(*in)) + for i := range *in { + if err := Convert_v1alpha4_IBMPowerVSCluster_To_v1beta1_IBMPowerVSCluster(&(*in)[i], &(*out)[i], s); err != nil { + return err + } + } + } else { + out.Items = nil + } + return nil +} + +// Convert_v1alpha4_IBMPowerVSClusterList_To_v1beta1_IBMPowerVSClusterList is an autogenerated conversion function. +func Convert_v1alpha4_IBMPowerVSClusterList_To_v1beta1_IBMPowerVSClusterList(in *IBMPowerVSClusterList, out *v1beta1.IBMPowerVSClusterList, s conversion.Scope) error { + return autoConvert_v1alpha4_IBMPowerVSClusterList_To_v1beta1_IBMPowerVSClusterList(in, out, s) +} + +func autoConvert_v1beta1_IBMPowerVSClusterList_To_v1alpha4_IBMPowerVSClusterList(in *v1beta1.IBMPowerVSClusterList, out *IBMPowerVSClusterList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]IBMPowerVSCluster, len(*in)) + for i := range *in { + if err := Convert_v1beta1_IBMPowerVSCluster_To_v1alpha4_IBMPowerVSCluster(&(*in)[i], &(*out)[i], s); err != nil { + return err + } + } + } else { + out.Items = nil + } + return nil +} + +// Convert_v1beta1_IBMPowerVSClusterList_To_v1alpha4_IBMPowerVSClusterList is an autogenerated conversion function. +func Convert_v1beta1_IBMPowerVSClusterList_To_v1alpha4_IBMPowerVSClusterList(in *v1beta1.IBMPowerVSClusterList, out *IBMPowerVSClusterList, s conversion.Scope) error { + return autoConvert_v1beta1_IBMPowerVSClusterList_To_v1alpha4_IBMPowerVSClusterList(in, out, s) +} + +func autoConvert_v1alpha4_IBMPowerVSClusterSpec_To_v1beta1_IBMPowerVSClusterSpec(in *IBMPowerVSClusterSpec, out *v1beta1.IBMPowerVSClusterSpec, s conversion.Scope) error { + out.ServiceInstanceID = in.ServiceInstanceID + if err := Convert_v1alpha4_IBMPowerVSResourceReference_To_v1beta1_IBMPowerVSResourceReference(&in.Network, &out.Network, s); err != nil { + return err + } + if err := Convert_v1alpha4_APIEndpoint_To_v1beta1_APIEndpoint(&in.ControlPlaneEndpoint, &out.ControlPlaneEndpoint, s); err != nil { + return err + } + return nil +} + +// Convert_v1alpha4_IBMPowerVSClusterSpec_To_v1beta1_IBMPowerVSClusterSpec is an autogenerated conversion function. +func Convert_v1alpha4_IBMPowerVSClusterSpec_To_v1beta1_IBMPowerVSClusterSpec(in *IBMPowerVSClusterSpec, out *v1beta1.IBMPowerVSClusterSpec, s conversion.Scope) error { + return autoConvert_v1alpha4_IBMPowerVSClusterSpec_To_v1beta1_IBMPowerVSClusterSpec(in, out, s) +} + +func autoConvert_v1beta1_IBMPowerVSClusterSpec_To_v1alpha4_IBMPowerVSClusterSpec(in *v1beta1.IBMPowerVSClusterSpec, out *IBMPowerVSClusterSpec, s conversion.Scope) error { + out.ServiceInstanceID = in.ServiceInstanceID + if err := Convert_v1beta1_IBMPowerVSResourceReference_To_v1alpha4_IBMPowerVSResourceReference(&in.Network, &out.Network, s); err != nil { + return err + } + if err := Convert_v1beta1_APIEndpoint_To_v1alpha4_APIEndpoint(&in.ControlPlaneEndpoint, &out.ControlPlaneEndpoint, s); err != nil { + return err + } + return nil +} + +// Convert_v1beta1_IBMPowerVSClusterSpec_To_v1alpha4_IBMPowerVSClusterSpec is an autogenerated conversion function. +func Convert_v1beta1_IBMPowerVSClusterSpec_To_v1alpha4_IBMPowerVSClusterSpec(in *v1beta1.IBMPowerVSClusterSpec, out *IBMPowerVSClusterSpec, s conversion.Scope) error { + return autoConvert_v1beta1_IBMPowerVSClusterSpec_To_v1alpha4_IBMPowerVSClusterSpec(in, out, s) +} + +func autoConvert_v1alpha4_IBMPowerVSClusterStatus_To_v1beta1_IBMPowerVSClusterStatus(in *IBMPowerVSClusterStatus, out *v1beta1.IBMPowerVSClusterStatus, s conversion.Scope) error { + out.Ready = in.Ready + return nil +} + +// Convert_v1alpha4_IBMPowerVSClusterStatus_To_v1beta1_IBMPowerVSClusterStatus is an autogenerated conversion function. +func Convert_v1alpha4_IBMPowerVSClusterStatus_To_v1beta1_IBMPowerVSClusterStatus(in *IBMPowerVSClusterStatus, out *v1beta1.IBMPowerVSClusterStatus, s conversion.Scope) error { + return autoConvert_v1alpha4_IBMPowerVSClusterStatus_To_v1beta1_IBMPowerVSClusterStatus(in, out, s) +} + +func autoConvert_v1beta1_IBMPowerVSClusterStatus_To_v1alpha4_IBMPowerVSClusterStatus(in *v1beta1.IBMPowerVSClusterStatus, out *IBMPowerVSClusterStatus, s conversion.Scope) error { + out.Ready = in.Ready + return nil +} + +// Convert_v1beta1_IBMPowerVSClusterStatus_To_v1alpha4_IBMPowerVSClusterStatus is an autogenerated conversion function. +func Convert_v1beta1_IBMPowerVSClusterStatus_To_v1alpha4_IBMPowerVSClusterStatus(in *v1beta1.IBMPowerVSClusterStatus, out *IBMPowerVSClusterStatus, s conversion.Scope) error { + return autoConvert_v1beta1_IBMPowerVSClusterStatus_To_v1alpha4_IBMPowerVSClusterStatus(in, out, s) +} + +func autoConvert_v1alpha4_IBMPowerVSMachine_To_v1beta1_IBMPowerVSMachine(in *IBMPowerVSMachine, out *v1beta1.IBMPowerVSMachine, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_v1alpha4_IBMPowerVSMachineSpec_To_v1beta1_IBMPowerVSMachineSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + if err := Convert_v1alpha4_IBMPowerVSMachineStatus_To_v1beta1_IBMPowerVSMachineStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +// Convert_v1alpha4_IBMPowerVSMachine_To_v1beta1_IBMPowerVSMachine is an autogenerated conversion function. +func Convert_v1alpha4_IBMPowerVSMachine_To_v1beta1_IBMPowerVSMachine(in *IBMPowerVSMachine, out *v1beta1.IBMPowerVSMachine, s conversion.Scope) error { + return autoConvert_v1alpha4_IBMPowerVSMachine_To_v1beta1_IBMPowerVSMachine(in, out, s) +} + +func autoConvert_v1beta1_IBMPowerVSMachine_To_v1alpha4_IBMPowerVSMachine(in *v1beta1.IBMPowerVSMachine, out *IBMPowerVSMachine, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_v1beta1_IBMPowerVSMachineSpec_To_v1alpha4_IBMPowerVSMachineSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + if err := Convert_v1beta1_IBMPowerVSMachineStatus_To_v1alpha4_IBMPowerVSMachineStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +// Convert_v1beta1_IBMPowerVSMachine_To_v1alpha4_IBMPowerVSMachine is an autogenerated conversion function. +func Convert_v1beta1_IBMPowerVSMachine_To_v1alpha4_IBMPowerVSMachine(in *v1beta1.IBMPowerVSMachine, out *IBMPowerVSMachine, s conversion.Scope) error { + return autoConvert_v1beta1_IBMPowerVSMachine_To_v1alpha4_IBMPowerVSMachine(in, out, s) +} + +func autoConvert_v1alpha4_IBMPowerVSMachineList_To_v1beta1_IBMPowerVSMachineList(in *IBMPowerVSMachineList, out *v1beta1.IBMPowerVSMachineList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + out.Items = *(*[]v1beta1.IBMPowerVSMachine)(unsafe.Pointer(&in.Items)) + return nil +} + +// Convert_v1alpha4_IBMPowerVSMachineList_To_v1beta1_IBMPowerVSMachineList is an autogenerated conversion function. +func Convert_v1alpha4_IBMPowerVSMachineList_To_v1beta1_IBMPowerVSMachineList(in *IBMPowerVSMachineList, out *v1beta1.IBMPowerVSMachineList, s conversion.Scope) error { + return autoConvert_v1alpha4_IBMPowerVSMachineList_To_v1beta1_IBMPowerVSMachineList(in, out, s) +} + +func autoConvert_v1beta1_IBMPowerVSMachineList_To_v1alpha4_IBMPowerVSMachineList(in *v1beta1.IBMPowerVSMachineList, out *IBMPowerVSMachineList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + out.Items = *(*[]IBMPowerVSMachine)(unsafe.Pointer(&in.Items)) + return nil +} + +// Convert_v1beta1_IBMPowerVSMachineList_To_v1alpha4_IBMPowerVSMachineList is an autogenerated conversion function. +func Convert_v1beta1_IBMPowerVSMachineList_To_v1alpha4_IBMPowerVSMachineList(in *v1beta1.IBMPowerVSMachineList, out *IBMPowerVSMachineList, s conversion.Scope) error { + return autoConvert_v1beta1_IBMPowerVSMachineList_To_v1alpha4_IBMPowerVSMachineList(in, out, s) +} + +func autoConvert_v1alpha4_IBMPowerVSMachineSpec_To_v1beta1_IBMPowerVSMachineSpec(in *IBMPowerVSMachineSpec, out *v1beta1.IBMPowerVSMachineSpec, s conversion.Scope) error { + out.ServiceInstanceID = in.ServiceInstanceID + out.SSHKey = in.SSHKey + if err := Convert_v1alpha4_IBMPowerVSResourceReference_To_v1beta1_IBMPowerVSResourceReference(&in.Image, &out.Image, s); err != nil { + return err + } + out.SysType = in.SysType + out.ProcType = in.ProcType + out.Processors = in.Processors + out.Memory = in.Memory + if err := Convert_v1alpha4_IBMPowerVSResourceReference_To_v1beta1_IBMPowerVSResourceReference(&in.Network, &out.Network, s); err != nil { + return err + } + out.ProviderID = (*string)(unsafe.Pointer(in.ProviderID)) + return nil +} + +// Convert_v1alpha4_IBMPowerVSMachineSpec_To_v1beta1_IBMPowerVSMachineSpec is an autogenerated conversion function. +func Convert_v1alpha4_IBMPowerVSMachineSpec_To_v1beta1_IBMPowerVSMachineSpec(in *IBMPowerVSMachineSpec, out *v1beta1.IBMPowerVSMachineSpec, s conversion.Scope) error { + return autoConvert_v1alpha4_IBMPowerVSMachineSpec_To_v1beta1_IBMPowerVSMachineSpec(in, out, s) +} + +func autoConvert_v1beta1_IBMPowerVSMachineSpec_To_v1alpha4_IBMPowerVSMachineSpec(in *v1beta1.IBMPowerVSMachineSpec, out *IBMPowerVSMachineSpec, s conversion.Scope) error { + out.ServiceInstanceID = in.ServiceInstanceID + out.SSHKey = in.SSHKey + if err := Convert_v1beta1_IBMPowerVSResourceReference_To_v1alpha4_IBMPowerVSResourceReference(&in.Image, &out.Image, s); err != nil { + return err + } + out.SysType = in.SysType + out.ProcType = in.ProcType + out.Processors = in.Processors + out.Memory = in.Memory + if err := Convert_v1beta1_IBMPowerVSResourceReference_To_v1alpha4_IBMPowerVSResourceReference(&in.Network, &out.Network, s); err != nil { + return err + } + out.ProviderID = (*string)(unsafe.Pointer(in.ProviderID)) + return nil +} + +// Convert_v1beta1_IBMPowerVSMachineSpec_To_v1alpha4_IBMPowerVSMachineSpec is an autogenerated conversion function. +func Convert_v1beta1_IBMPowerVSMachineSpec_To_v1alpha4_IBMPowerVSMachineSpec(in *v1beta1.IBMPowerVSMachineSpec, out *IBMPowerVSMachineSpec, s conversion.Scope) error { + return autoConvert_v1beta1_IBMPowerVSMachineSpec_To_v1alpha4_IBMPowerVSMachineSpec(in, out, s) +} + +func autoConvert_v1alpha4_IBMPowerVSMachineStatus_To_v1beta1_IBMPowerVSMachineStatus(in *IBMPowerVSMachineStatus, out *v1beta1.IBMPowerVSMachineStatus, s conversion.Scope) error { + out.InstanceID = in.InstanceID + out.Ready = in.Ready + out.Addresses = *(*[]v1.NodeAddress)(unsafe.Pointer(&in.Addresses)) + out.Health = in.Health + out.InstanceState = in.InstanceState + out.Fault = in.Fault + return nil +} + +// Convert_v1alpha4_IBMPowerVSMachineStatus_To_v1beta1_IBMPowerVSMachineStatus is an autogenerated conversion function. +func Convert_v1alpha4_IBMPowerVSMachineStatus_To_v1beta1_IBMPowerVSMachineStatus(in *IBMPowerVSMachineStatus, out *v1beta1.IBMPowerVSMachineStatus, s conversion.Scope) error { + return autoConvert_v1alpha4_IBMPowerVSMachineStatus_To_v1beta1_IBMPowerVSMachineStatus(in, out, s) +} + +func autoConvert_v1beta1_IBMPowerVSMachineStatus_To_v1alpha4_IBMPowerVSMachineStatus(in *v1beta1.IBMPowerVSMachineStatus, out *IBMPowerVSMachineStatus, s conversion.Scope) error { + out.InstanceID = in.InstanceID + out.Ready = in.Ready + out.Addresses = *(*[]v1.NodeAddress)(unsafe.Pointer(&in.Addresses)) + out.Health = in.Health + out.InstanceState = in.InstanceState + out.Fault = in.Fault + return nil +} + +// Convert_v1beta1_IBMPowerVSMachineStatus_To_v1alpha4_IBMPowerVSMachineStatus is an autogenerated conversion function. +func Convert_v1beta1_IBMPowerVSMachineStatus_To_v1alpha4_IBMPowerVSMachineStatus(in *v1beta1.IBMPowerVSMachineStatus, out *IBMPowerVSMachineStatus, s conversion.Scope) error { + return autoConvert_v1beta1_IBMPowerVSMachineStatus_To_v1alpha4_IBMPowerVSMachineStatus(in, out, s) +} + +func autoConvert_v1alpha4_IBMPowerVSMachineTemplate_To_v1beta1_IBMPowerVSMachineTemplate(in *IBMPowerVSMachineTemplate, out *v1beta1.IBMPowerVSMachineTemplate, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_v1alpha4_IBMPowerVSMachineTemplateSpec_To_v1beta1_IBMPowerVSMachineTemplateSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + if err := Convert_v1alpha4_IBMPowerVSMachineTemplateStatus_To_v1beta1_IBMPowerVSMachineTemplateStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +// Convert_v1alpha4_IBMPowerVSMachineTemplate_To_v1beta1_IBMPowerVSMachineTemplate is an autogenerated conversion function. +func Convert_v1alpha4_IBMPowerVSMachineTemplate_To_v1beta1_IBMPowerVSMachineTemplate(in *IBMPowerVSMachineTemplate, out *v1beta1.IBMPowerVSMachineTemplate, s conversion.Scope) error { + return autoConvert_v1alpha4_IBMPowerVSMachineTemplate_To_v1beta1_IBMPowerVSMachineTemplate(in, out, s) +} + +func autoConvert_v1beta1_IBMPowerVSMachineTemplate_To_v1alpha4_IBMPowerVSMachineTemplate(in *v1beta1.IBMPowerVSMachineTemplate, out *IBMPowerVSMachineTemplate, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_v1beta1_IBMPowerVSMachineTemplateSpec_To_v1alpha4_IBMPowerVSMachineTemplateSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + if err := Convert_v1beta1_IBMPowerVSMachineTemplateStatus_To_v1alpha4_IBMPowerVSMachineTemplateStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +// Convert_v1beta1_IBMPowerVSMachineTemplate_To_v1alpha4_IBMPowerVSMachineTemplate is an autogenerated conversion function. +func Convert_v1beta1_IBMPowerVSMachineTemplate_To_v1alpha4_IBMPowerVSMachineTemplate(in *v1beta1.IBMPowerVSMachineTemplate, out *IBMPowerVSMachineTemplate, s conversion.Scope) error { + return autoConvert_v1beta1_IBMPowerVSMachineTemplate_To_v1alpha4_IBMPowerVSMachineTemplate(in, out, s) +} + +func autoConvert_v1alpha4_IBMPowerVSMachineTemplateList_To_v1beta1_IBMPowerVSMachineTemplateList(in *IBMPowerVSMachineTemplateList, out *v1beta1.IBMPowerVSMachineTemplateList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + out.Items = *(*[]v1beta1.IBMPowerVSMachineTemplate)(unsafe.Pointer(&in.Items)) + return nil +} + +// Convert_v1alpha4_IBMPowerVSMachineTemplateList_To_v1beta1_IBMPowerVSMachineTemplateList is an autogenerated conversion function. +func Convert_v1alpha4_IBMPowerVSMachineTemplateList_To_v1beta1_IBMPowerVSMachineTemplateList(in *IBMPowerVSMachineTemplateList, out *v1beta1.IBMPowerVSMachineTemplateList, s conversion.Scope) error { + return autoConvert_v1alpha4_IBMPowerVSMachineTemplateList_To_v1beta1_IBMPowerVSMachineTemplateList(in, out, s) +} + +func autoConvert_v1beta1_IBMPowerVSMachineTemplateList_To_v1alpha4_IBMPowerVSMachineTemplateList(in *v1beta1.IBMPowerVSMachineTemplateList, out *IBMPowerVSMachineTemplateList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + out.Items = *(*[]IBMPowerVSMachineTemplate)(unsafe.Pointer(&in.Items)) + return nil +} + +// Convert_v1beta1_IBMPowerVSMachineTemplateList_To_v1alpha4_IBMPowerVSMachineTemplateList is an autogenerated conversion function. +func Convert_v1beta1_IBMPowerVSMachineTemplateList_To_v1alpha4_IBMPowerVSMachineTemplateList(in *v1beta1.IBMPowerVSMachineTemplateList, out *IBMPowerVSMachineTemplateList, s conversion.Scope) error { + return autoConvert_v1beta1_IBMPowerVSMachineTemplateList_To_v1alpha4_IBMPowerVSMachineTemplateList(in, out, s) +} + +func autoConvert_v1alpha4_IBMPowerVSMachineTemplateResource_To_v1beta1_IBMPowerVSMachineTemplateResource(in *IBMPowerVSMachineTemplateResource, out *v1beta1.IBMPowerVSMachineTemplateResource, s conversion.Scope) error { + if err := Convert_v1alpha4_IBMPowerVSMachineSpec_To_v1beta1_IBMPowerVSMachineSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + return nil +} + +// Convert_v1alpha4_IBMPowerVSMachineTemplateResource_To_v1beta1_IBMPowerVSMachineTemplateResource is an autogenerated conversion function. +func Convert_v1alpha4_IBMPowerVSMachineTemplateResource_To_v1beta1_IBMPowerVSMachineTemplateResource(in *IBMPowerVSMachineTemplateResource, out *v1beta1.IBMPowerVSMachineTemplateResource, s conversion.Scope) error { + return autoConvert_v1alpha4_IBMPowerVSMachineTemplateResource_To_v1beta1_IBMPowerVSMachineTemplateResource(in, out, s) +} + +func autoConvert_v1beta1_IBMPowerVSMachineTemplateResource_To_v1alpha4_IBMPowerVSMachineTemplateResource(in *v1beta1.IBMPowerVSMachineTemplateResource, out *IBMPowerVSMachineTemplateResource, s conversion.Scope) error { + if err := Convert_v1beta1_IBMPowerVSMachineSpec_To_v1alpha4_IBMPowerVSMachineSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + return nil +} + +// Convert_v1beta1_IBMPowerVSMachineTemplateResource_To_v1alpha4_IBMPowerVSMachineTemplateResource is an autogenerated conversion function. +func Convert_v1beta1_IBMPowerVSMachineTemplateResource_To_v1alpha4_IBMPowerVSMachineTemplateResource(in *v1beta1.IBMPowerVSMachineTemplateResource, out *IBMPowerVSMachineTemplateResource, s conversion.Scope) error { + return autoConvert_v1beta1_IBMPowerVSMachineTemplateResource_To_v1alpha4_IBMPowerVSMachineTemplateResource(in, out, s) +} + +func autoConvert_v1alpha4_IBMPowerVSMachineTemplateSpec_To_v1beta1_IBMPowerVSMachineTemplateSpec(in *IBMPowerVSMachineTemplateSpec, out *v1beta1.IBMPowerVSMachineTemplateSpec, s conversion.Scope) error { + if err := Convert_v1alpha4_IBMPowerVSMachineTemplateResource_To_v1beta1_IBMPowerVSMachineTemplateResource(&in.Template, &out.Template, s); err != nil { + return err + } + return nil +} + +// Convert_v1alpha4_IBMPowerVSMachineTemplateSpec_To_v1beta1_IBMPowerVSMachineTemplateSpec is an autogenerated conversion function. +func Convert_v1alpha4_IBMPowerVSMachineTemplateSpec_To_v1beta1_IBMPowerVSMachineTemplateSpec(in *IBMPowerVSMachineTemplateSpec, out *v1beta1.IBMPowerVSMachineTemplateSpec, s conversion.Scope) error { + return autoConvert_v1alpha4_IBMPowerVSMachineTemplateSpec_To_v1beta1_IBMPowerVSMachineTemplateSpec(in, out, s) +} + +func autoConvert_v1beta1_IBMPowerVSMachineTemplateSpec_To_v1alpha4_IBMPowerVSMachineTemplateSpec(in *v1beta1.IBMPowerVSMachineTemplateSpec, out *IBMPowerVSMachineTemplateSpec, s conversion.Scope) error { + if err := Convert_v1beta1_IBMPowerVSMachineTemplateResource_To_v1alpha4_IBMPowerVSMachineTemplateResource(&in.Template, &out.Template, s); err != nil { + return err + } + return nil +} + +// Convert_v1beta1_IBMPowerVSMachineTemplateSpec_To_v1alpha4_IBMPowerVSMachineTemplateSpec is an autogenerated conversion function. +func Convert_v1beta1_IBMPowerVSMachineTemplateSpec_To_v1alpha4_IBMPowerVSMachineTemplateSpec(in *v1beta1.IBMPowerVSMachineTemplateSpec, out *IBMPowerVSMachineTemplateSpec, s conversion.Scope) error { + return autoConvert_v1beta1_IBMPowerVSMachineTemplateSpec_To_v1alpha4_IBMPowerVSMachineTemplateSpec(in, out, s) +} + +func autoConvert_v1alpha4_IBMPowerVSMachineTemplateStatus_To_v1beta1_IBMPowerVSMachineTemplateStatus(in *IBMPowerVSMachineTemplateStatus, out *v1beta1.IBMPowerVSMachineTemplateStatus, s conversion.Scope) error { + return nil +} + +// Convert_v1alpha4_IBMPowerVSMachineTemplateStatus_To_v1beta1_IBMPowerVSMachineTemplateStatus is an autogenerated conversion function. +func Convert_v1alpha4_IBMPowerVSMachineTemplateStatus_To_v1beta1_IBMPowerVSMachineTemplateStatus(in *IBMPowerVSMachineTemplateStatus, out *v1beta1.IBMPowerVSMachineTemplateStatus, s conversion.Scope) error { + return autoConvert_v1alpha4_IBMPowerVSMachineTemplateStatus_To_v1beta1_IBMPowerVSMachineTemplateStatus(in, out, s) +} + +func autoConvert_v1beta1_IBMPowerVSMachineTemplateStatus_To_v1alpha4_IBMPowerVSMachineTemplateStatus(in *v1beta1.IBMPowerVSMachineTemplateStatus, out *IBMPowerVSMachineTemplateStatus, s conversion.Scope) error { + return nil +} + +// Convert_v1beta1_IBMPowerVSMachineTemplateStatus_To_v1alpha4_IBMPowerVSMachineTemplateStatus is an autogenerated conversion function. +func Convert_v1beta1_IBMPowerVSMachineTemplateStatus_To_v1alpha4_IBMPowerVSMachineTemplateStatus(in *v1beta1.IBMPowerVSMachineTemplateStatus, out *IBMPowerVSMachineTemplateStatus, s conversion.Scope) error { + return autoConvert_v1beta1_IBMPowerVSMachineTemplateStatus_To_v1alpha4_IBMPowerVSMachineTemplateStatus(in, out, s) +} + +func autoConvert_v1alpha4_IBMPowerVSResourceReference_To_v1beta1_IBMPowerVSResourceReference(in *IBMPowerVSResourceReference, out *v1beta1.IBMPowerVSResourceReference, s conversion.Scope) error { + out.ID = (*string)(unsafe.Pointer(in.ID)) + out.Name = (*string)(unsafe.Pointer(in.Name)) + return nil +} + +// Convert_v1alpha4_IBMPowerVSResourceReference_To_v1beta1_IBMPowerVSResourceReference is an autogenerated conversion function. +func Convert_v1alpha4_IBMPowerVSResourceReference_To_v1beta1_IBMPowerVSResourceReference(in *IBMPowerVSResourceReference, out *v1beta1.IBMPowerVSResourceReference, s conversion.Scope) error { + return autoConvert_v1alpha4_IBMPowerVSResourceReference_To_v1beta1_IBMPowerVSResourceReference(in, out, s) +} + +func autoConvert_v1beta1_IBMPowerVSResourceReference_To_v1alpha4_IBMPowerVSResourceReference(in *v1beta1.IBMPowerVSResourceReference, out *IBMPowerVSResourceReference, s conversion.Scope) error { + out.ID = (*string)(unsafe.Pointer(in.ID)) + out.Name = (*string)(unsafe.Pointer(in.Name)) + return nil +} + +// Convert_v1beta1_IBMPowerVSResourceReference_To_v1alpha4_IBMPowerVSResourceReference is an autogenerated conversion function. +func Convert_v1beta1_IBMPowerVSResourceReference_To_v1alpha4_IBMPowerVSResourceReference(in *v1beta1.IBMPowerVSResourceReference, out *IBMPowerVSResourceReference, s conversion.Scope) error { + return autoConvert_v1beta1_IBMPowerVSResourceReference_To_v1alpha4_IBMPowerVSResourceReference(in, out, s) +} + +func autoConvert_v1alpha4_IBMVPCCluster_To_v1beta1_IBMVPCCluster(in *IBMVPCCluster, out *v1beta1.IBMVPCCluster, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_v1alpha4_IBMVPCClusterSpec_To_v1beta1_IBMVPCClusterSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + if err := Convert_v1alpha4_IBMVPCClusterStatus_To_v1beta1_IBMVPCClusterStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +// Convert_v1alpha4_IBMVPCCluster_To_v1beta1_IBMVPCCluster is an autogenerated conversion function. +func Convert_v1alpha4_IBMVPCCluster_To_v1beta1_IBMVPCCluster(in *IBMVPCCluster, out *v1beta1.IBMVPCCluster, s conversion.Scope) error { + return autoConvert_v1alpha4_IBMVPCCluster_To_v1beta1_IBMVPCCluster(in, out, s) +} + +func autoConvert_v1beta1_IBMVPCCluster_To_v1alpha4_IBMVPCCluster(in *v1beta1.IBMVPCCluster, out *IBMVPCCluster, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_v1beta1_IBMVPCClusterSpec_To_v1alpha4_IBMVPCClusterSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + if err := Convert_v1beta1_IBMVPCClusterStatus_To_v1alpha4_IBMVPCClusterStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +// Convert_v1beta1_IBMVPCCluster_To_v1alpha4_IBMVPCCluster is an autogenerated conversion function. +func Convert_v1beta1_IBMVPCCluster_To_v1alpha4_IBMVPCCluster(in *v1beta1.IBMVPCCluster, out *IBMVPCCluster, s conversion.Scope) error { + return autoConvert_v1beta1_IBMVPCCluster_To_v1alpha4_IBMVPCCluster(in, out, s) +} + +func autoConvert_v1alpha4_IBMVPCClusterList_To_v1beta1_IBMVPCClusterList(in *IBMVPCClusterList, out *v1beta1.IBMVPCClusterList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]v1beta1.IBMVPCCluster, len(*in)) + for i := range *in { + if err := Convert_v1alpha4_IBMVPCCluster_To_v1beta1_IBMVPCCluster(&(*in)[i], &(*out)[i], s); err != nil { + return err + } + } + } else { + out.Items = nil + } + return nil +} + +// Convert_v1alpha4_IBMVPCClusterList_To_v1beta1_IBMVPCClusterList is an autogenerated conversion function. +func Convert_v1alpha4_IBMVPCClusterList_To_v1beta1_IBMVPCClusterList(in *IBMVPCClusterList, out *v1beta1.IBMVPCClusterList, s conversion.Scope) error { + return autoConvert_v1alpha4_IBMVPCClusterList_To_v1beta1_IBMVPCClusterList(in, out, s) +} + +func autoConvert_v1beta1_IBMVPCClusterList_To_v1alpha4_IBMVPCClusterList(in *v1beta1.IBMVPCClusterList, out *IBMVPCClusterList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]IBMVPCCluster, len(*in)) + for i := range *in { + if err := Convert_v1beta1_IBMVPCCluster_To_v1alpha4_IBMVPCCluster(&(*in)[i], &(*out)[i], s); err != nil { + return err + } + } + } else { + out.Items = nil + } + return nil +} + +// Convert_v1beta1_IBMVPCClusterList_To_v1alpha4_IBMVPCClusterList is an autogenerated conversion function. +func Convert_v1beta1_IBMVPCClusterList_To_v1alpha4_IBMVPCClusterList(in *v1beta1.IBMVPCClusterList, out *IBMVPCClusterList, s conversion.Scope) error { + return autoConvert_v1beta1_IBMVPCClusterList_To_v1alpha4_IBMVPCClusterList(in, out, s) +} + +func autoConvert_v1alpha4_IBMVPCClusterSpec_To_v1beta1_IBMVPCClusterSpec(in *IBMVPCClusterSpec, out *v1beta1.IBMVPCClusterSpec, s conversion.Scope) error { + out.Region = in.Region + out.ResourceGroup = in.ResourceGroup + out.VPC = in.VPC + out.Zone = in.Zone + if err := Convert_v1alpha4_APIEndpoint_To_v1beta1_APIEndpoint(&in.ControlPlaneEndpoint, &out.ControlPlaneEndpoint, s); err != nil { + return err + } + return nil +} + +// Convert_v1alpha4_IBMVPCClusterSpec_To_v1beta1_IBMVPCClusterSpec is an autogenerated conversion function. +func Convert_v1alpha4_IBMVPCClusterSpec_To_v1beta1_IBMVPCClusterSpec(in *IBMVPCClusterSpec, out *v1beta1.IBMVPCClusterSpec, s conversion.Scope) error { + return autoConvert_v1alpha4_IBMVPCClusterSpec_To_v1beta1_IBMVPCClusterSpec(in, out, s) +} + +func autoConvert_v1beta1_IBMVPCClusterSpec_To_v1alpha4_IBMVPCClusterSpec(in *v1beta1.IBMVPCClusterSpec, out *IBMVPCClusterSpec, s conversion.Scope) error { + out.Region = in.Region + out.ResourceGroup = in.ResourceGroup + out.VPC = in.VPC + out.Zone = in.Zone + if err := Convert_v1beta1_APIEndpoint_To_v1alpha4_APIEndpoint(&in.ControlPlaneEndpoint, &out.ControlPlaneEndpoint, s); err != nil { + return err + } + return nil +} + +// Convert_v1beta1_IBMVPCClusterSpec_To_v1alpha4_IBMVPCClusterSpec is an autogenerated conversion function. +func Convert_v1beta1_IBMVPCClusterSpec_To_v1alpha4_IBMVPCClusterSpec(in *v1beta1.IBMVPCClusterSpec, out *IBMVPCClusterSpec, s conversion.Scope) error { + return autoConvert_v1beta1_IBMVPCClusterSpec_To_v1alpha4_IBMVPCClusterSpec(in, out, s) +} + +func autoConvert_v1alpha4_IBMVPCClusterStatus_To_v1beta1_IBMVPCClusterStatus(in *IBMVPCClusterStatus, out *v1beta1.IBMVPCClusterStatus, s conversion.Scope) error { + if err := Convert_v1alpha4_VPC_To_v1beta1_VPC(&in.VPC, &out.VPC, s); err != nil { + return err + } + out.Ready = in.Ready + if err := Convert_v1alpha4_Subnet_To_v1beta1_Subnet(&in.Subnet, &out.Subnet, s); err != nil { + return err + } + if err := Convert_v1alpha4_VPCEndpoint_To_v1beta1_VPCEndpoint(&in.VPCEndpoint, &out.VPCEndpoint, s); err != nil { + return err + } + return nil +} + +// Convert_v1alpha4_IBMVPCClusterStatus_To_v1beta1_IBMVPCClusterStatus is an autogenerated conversion function. +func Convert_v1alpha4_IBMVPCClusterStatus_To_v1beta1_IBMVPCClusterStatus(in *IBMVPCClusterStatus, out *v1beta1.IBMVPCClusterStatus, s conversion.Scope) error { + return autoConvert_v1alpha4_IBMVPCClusterStatus_To_v1beta1_IBMVPCClusterStatus(in, out, s) +} + +func autoConvert_v1beta1_IBMVPCClusterStatus_To_v1alpha4_IBMVPCClusterStatus(in *v1beta1.IBMVPCClusterStatus, out *IBMVPCClusterStatus, s conversion.Scope) error { + if err := Convert_v1beta1_VPC_To_v1alpha4_VPC(&in.VPC, &out.VPC, s); err != nil { + return err + } + out.Ready = in.Ready + if err := Convert_v1beta1_Subnet_To_v1alpha4_Subnet(&in.Subnet, &out.Subnet, s); err != nil { + return err + } + if err := Convert_v1beta1_VPCEndpoint_To_v1alpha4_VPCEndpoint(&in.VPCEndpoint, &out.VPCEndpoint, s); err != nil { + return err + } + return nil +} + +// Convert_v1beta1_IBMVPCClusterStatus_To_v1alpha4_IBMVPCClusterStatus is an autogenerated conversion function. +func Convert_v1beta1_IBMVPCClusterStatus_To_v1alpha4_IBMVPCClusterStatus(in *v1beta1.IBMVPCClusterStatus, out *IBMVPCClusterStatus, s conversion.Scope) error { + return autoConvert_v1beta1_IBMVPCClusterStatus_To_v1alpha4_IBMVPCClusterStatus(in, out, s) +} + +func autoConvert_v1alpha4_IBMVPCMachine_To_v1beta1_IBMVPCMachine(in *IBMVPCMachine, out *v1beta1.IBMVPCMachine, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_v1alpha4_IBMVPCMachineSpec_To_v1beta1_IBMVPCMachineSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + if err := Convert_v1alpha4_IBMVPCMachineStatus_To_v1beta1_IBMVPCMachineStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +// Convert_v1alpha4_IBMVPCMachine_To_v1beta1_IBMVPCMachine is an autogenerated conversion function. +func Convert_v1alpha4_IBMVPCMachine_To_v1beta1_IBMVPCMachine(in *IBMVPCMachine, out *v1beta1.IBMVPCMachine, s conversion.Scope) error { + return autoConvert_v1alpha4_IBMVPCMachine_To_v1beta1_IBMVPCMachine(in, out, s) +} + +func autoConvert_v1beta1_IBMVPCMachine_To_v1alpha4_IBMVPCMachine(in *v1beta1.IBMVPCMachine, out *IBMVPCMachine, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_v1beta1_IBMVPCMachineSpec_To_v1alpha4_IBMVPCMachineSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + if err := Convert_v1beta1_IBMVPCMachineStatus_To_v1alpha4_IBMVPCMachineStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +// Convert_v1beta1_IBMVPCMachine_To_v1alpha4_IBMVPCMachine is an autogenerated conversion function. +func Convert_v1beta1_IBMVPCMachine_To_v1alpha4_IBMVPCMachine(in *v1beta1.IBMVPCMachine, out *IBMVPCMachine, s conversion.Scope) error { + return autoConvert_v1beta1_IBMVPCMachine_To_v1alpha4_IBMVPCMachine(in, out, s) +} + +func autoConvert_v1alpha4_IBMVPCMachineList_To_v1beta1_IBMVPCMachineList(in *IBMVPCMachineList, out *v1beta1.IBMVPCMachineList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + out.Items = *(*[]v1beta1.IBMVPCMachine)(unsafe.Pointer(&in.Items)) + return nil +} + +// Convert_v1alpha4_IBMVPCMachineList_To_v1beta1_IBMVPCMachineList is an autogenerated conversion function. +func Convert_v1alpha4_IBMVPCMachineList_To_v1beta1_IBMVPCMachineList(in *IBMVPCMachineList, out *v1beta1.IBMVPCMachineList, s conversion.Scope) error { + return autoConvert_v1alpha4_IBMVPCMachineList_To_v1beta1_IBMVPCMachineList(in, out, s) +} + +func autoConvert_v1beta1_IBMVPCMachineList_To_v1alpha4_IBMVPCMachineList(in *v1beta1.IBMVPCMachineList, out *IBMVPCMachineList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + out.Items = *(*[]IBMVPCMachine)(unsafe.Pointer(&in.Items)) + return nil +} + +// Convert_v1beta1_IBMVPCMachineList_To_v1alpha4_IBMVPCMachineList is an autogenerated conversion function. +func Convert_v1beta1_IBMVPCMachineList_To_v1alpha4_IBMVPCMachineList(in *v1beta1.IBMVPCMachineList, out *IBMVPCMachineList, s conversion.Scope) error { + return autoConvert_v1beta1_IBMVPCMachineList_To_v1alpha4_IBMVPCMachineList(in, out, s) +} + +func autoConvert_v1alpha4_IBMVPCMachineSpec_To_v1beta1_IBMVPCMachineSpec(in *IBMVPCMachineSpec, out *v1beta1.IBMVPCMachineSpec, s conversion.Scope) error { + out.Name = in.Name + out.Image = in.Image + out.Zone = in.Zone + out.Profile = in.Profile + out.ProviderID = (*string)(unsafe.Pointer(in.ProviderID)) + if err := Convert_v1alpha4_NetworkInterface_To_v1beta1_NetworkInterface(&in.PrimaryNetworkInterface, &out.PrimaryNetworkInterface, s); err != nil { + return err + } + out.SSHKeys = *(*[]*string)(unsafe.Pointer(&in.SSHKeys)) + return nil +} + +// Convert_v1alpha4_IBMVPCMachineSpec_To_v1beta1_IBMVPCMachineSpec is an autogenerated conversion function. +func Convert_v1alpha4_IBMVPCMachineSpec_To_v1beta1_IBMVPCMachineSpec(in *IBMVPCMachineSpec, out *v1beta1.IBMVPCMachineSpec, s conversion.Scope) error { + return autoConvert_v1alpha4_IBMVPCMachineSpec_To_v1beta1_IBMVPCMachineSpec(in, out, s) +} + +func autoConvert_v1beta1_IBMVPCMachineSpec_To_v1alpha4_IBMVPCMachineSpec(in *v1beta1.IBMVPCMachineSpec, out *IBMVPCMachineSpec, s conversion.Scope) error { + out.Name = in.Name + out.Image = in.Image + out.Zone = in.Zone + out.Profile = in.Profile + out.ProviderID = (*string)(unsafe.Pointer(in.ProviderID)) + if err := Convert_v1beta1_NetworkInterface_To_v1alpha4_NetworkInterface(&in.PrimaryNetworkInterface, &out.PrimaryNetworkInterface, s); err != nil { + return err + } + out.SSHKeys = *(*[]*string)(unsafe.Pointer(&in.SSHKeys)) + return nil +} + +// Convert_v1beta1_IBMVPCMachineSpec_To_v1alpha4_IBMVPCMachineSpec is an autogenerated conversion function. +func Convert_v1beta1_IBMVPCMachineSpec_To_v1alpha4_IBMVPCMachineSpec(in *v1beta1.IBMVPCMachineSpec, out *IBMVPCMachineSpec, s conversion.Scope) error { + return autoConvert_v1beta1_IBMVPCMachineSpec_To_v1alpha4_IBMVPCMachineSpec(in, out, s) +} + +func autoConvert_v1alpha4_IBMVPCMachineStatus_To_v1beta1_IBMVPCMachineStatus(in *IBMVPCMachineStatus, out *v1beta1.IBMVPCMachineStatus, s conversion.Scope) error { + out.InstanceID = in.InstanceID + out.Ready = in.Ready + out.Addresses = *(*[]v1.NodeAddress)(unsafe.Pointer(&in.Addresses)) + out.InstanceStatus = in.InstanceStatus + return nil +} + +// Convert_v1alpha4_IBMVPCMachineStatus_To_v1beta1_IBMVPCMachineStatus is an autogenerated conversion function. +func Convert_v1alpha4_IBMVPCMachineStatus_To_v1beta1_IBMVPCMachineStatus(in *IBMVPCMachineStatus, out *v1beta1.IBMVPCMachineStatus, s conversion.Scope) error { + return autoConvert_v1alpha4_IBMVPCMachineStatus_To_v1beta1_IBMVPCMachineStatus(in, out, s) +} + +func autoConvert_v1beta1_IBMVPCMachineStatus_To_v1alpha4_IBMVPCMachineStatus(in *v1beta1.IBMVPCMachineStatus, out *IBMVPCMachineStatus, s conversion.Scope) error { + out.InstanceID = in.InstanceID + out.Ready = in.Ready + out.Addresses = *(*[]v1.NodeAddress)(unsafe.Pointer(&in.Addresses)) + out.InstanceStatus = in.InstanceStatus + return nil +} + +// Convert_v1beta1_IBMVPCMachineStatus_To_v1alpha4_IBMVPCMachineStatus is an autogenerated conversion function. +func Convert_v1beta1_IBMVPCMachineStatus_To_v1alpha4_IBMVPCMachineStatus(in *v1beta1.IBMVPCMachineStatus, out *IBMVPCMachineStatus, s conversion.Scope) error { + return autoConvert_v1beta1_IBMVPCMachineStatus_To_v1alpha4_IBMVPCMachineStatus(in, out, s) +} + +func autoConvert_v1alpha4_IBMVPCMachineTemplate_To_v1beta1_IBMVPCMachineTemplate(in *IBMVPCMachineTemplate, out *v1beta1.IBMVPCMachineTemplate, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_v1alpha4_IBMVPCMachineTemplateSpec_To_v1beta1_IBMVPCMachineTemplateSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + return nil +} + +// Convert_v1alpha4_IBMVPCMachineTemplate_To_v1beta1_IBMVPCMachineTemplate is an autogenerated conversion function. +func Convert_v1alpha4_IBMVPCMachineTemplate_To_v1beta1_IBMVPCMachineTemplate(in *IBMVPCMachineTemplate, out *v1beta1.IBMVPCMachineTemplate, s conversion.Scope) error { + return autoConvert_v1alpha4_IBMVPCMachineTemplate_To_v1beta1_IBMVPCMachineTemplate(in, out, s) +} + +func autoConvert_v1beta1_IBMVPCMachineTemplate_To_v1alpha4_IBMVPCMachineTemplate(in *v1beta1.IBMVPCMachineTemplate, out *IBMVPCMachineTemplate, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_v1beta1_IBMVPCMachineTemplateSpec_To_v1alpha4_IBMVPCMachineTemplateSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + return nil +} + +// Convert_v1beta1_IBMVPCMachineTemplate_To_v1alpha4_IBMVPCMachineTemplate is an autogenerated conversion function. +func Convert_v1beta1_IBMVPCMachineTemplate_To_v1alpha4_IBMVPCMachineTemplate(in *v1beta1.IBMVPCMachineTemplate, out *IBMVPCMachineTemplate, s conversion.Scope) error { + return autoConvert_v1beta1_IBMVPCMachineTemplate_To_v1alpha4_IBMVPCMachineTemplate(in, out, s) +} + +func autoConvert_v1alpha4_IBMVPCMachineTemplateList_To_v1beta1_IBMVPCMachineTemplateList(in *IBMVPCMachineTemplateList, out *v1beta1.IBMVPCMachineTemplateList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + out.Items = *(*[]v1beta1.IBMVPCMachineTemplate)(unsafe.Pointer(&in.Items)) + return nil +} + +// Convert_v1alpha4_IBMVPCMachineTemplateList_To_v1beta1_IBMVPCMachineTemplateList is an autogenerated conversion function. +func Convert_v1alpha4_IBMVPCMachineTemplateList_To_v1beta1_IBMVPCMachineTemplateList(in *IBMVPCMachineTemplateList, out *v1beta1.IBMVPCMachineTemplateList, s conversion.Scope) error { + return autoConvert_v1alpha4_IBMVPCMachineTemplateList_To_v1beta1_IBMVPCMachineTemplateList(in, out, s) +} + +func autoConvert_v1beta1_IBMVPCMachineTemplateList_To_v1alpha4_IBMVPCMachineTemplateList(in *v1beta1.IBMVPCMachineTemplateList, out *IBMVPCMachineTemplateList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + out.Items = *(*[]IBMVPCMachineTemplate)(unsafe.Pointer(&in.Items)) + return nil +} + +// Convert_v1beta1_IBMVPCMachineTemplateList_To_v1alpha4_IBMVPCMachineTemplateList is an autogenerated conversion function. +func Convert_v1beta1_IBMVPCMachineTemplateList_To_v1alpha4_IBMVPCMachineTemplateList(in *v1beta1.IBMVPCMachineTemplateList, out *IBMVPCMachineTemplateList, s conversion.Scope) error { + return autoConvert_v1beta1_IBMVPCMachineTemplateList_To_v1alpha4_IBMVPCMachineTemplateList(in, out, s) +} + +func autoConvert_v1alpha4_IBMVPCMachineTemplateResource_To_v1beta1_IBMVPCMachineTemplateResource(in *IBMVPCMachineTemplateResource, out *v1beta1.IBMVPCMachineTemplateResource, s conversion.Scope) error { + if err := Convert_v1alpha4_IBMVPCMachineSpec_To_v1beta1_IBMVPCMachineSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + return nil +} + +// Convert_v1alpha4_IBMVPCMachineTemplateResource_To_v1beta1_IBMVPCMachineTemplateResource is an autogenerated conversion function. +func Convert_v1alpha4_IBMVPCMachineTemplateResource_To_v1beta1_IBMVPCMachineTemplateResource(in *IBMVPCMachineTemplateResource, out *v1beta1.IBMVPCMachineTemplateResource, s conversion.Scope) error { + return autoConvert_v1alpha4_IBMVPCMachineTemplateResource_To_v1beta1_IBMVPCMachineTemplateResource(in, out, s) +} + +func autoConvert_v1beta1_IBMVPCMachineTemplateResource_To_v1alpha4_IBMVPCMachineTemplateResource(in *v1beta1.IBMVPCMachineTemplateResource, out *IBMVPCMachineTemplateResource, s conversion.Scope) error { + if err := Convert_v1beta1_IBMVPCMachineSpec_To_v1alpha4_IBMVPCMachineSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + return nil +} + +// Convert_v1beta1_IBMVPCMachineTemplateResource_To_v1alpha4_IBMVPCMachineTemplateResource is an autogenerated conversion function. +func Convert_v1beta1_IBMVPCMachineTemplateResource_To_v1alpha4_IBMVPCMachineTemplateResource(in *v1beta1.IBMVPCMachineTemplateResource, out *IBMVPCMachineTemplateResource, s conversion.Scope) error { + return autoConvert_v1beta1_IBMVPCMachineTemplateResource_To_v1alpha4_IBMVPCMachineTemplateResource(in, out, s) +} + +func autoConvert_v1alpha4_IBMVPCMachineTemplateSpec_To_v1beta1_IBMVPCMachineTemplateSpec(in *IBMVPCMachineTemplateSpec, out *v1beta1.IBMVPCMachineTemplateSpec, s conversion.Scope) error { + if err := Convert_v1alpha4_IBMVPCMachineTemplateResource_To_v1beta1_IBMVPCMachineTemplateResource(&in.Template, &out.Template, s); err != nil { + return err + } + return nil +} + +// Convert_v1alpha4_IBMVPCMachineTemplateSpec_To_v1beta1_IBMVPCMachineTemplateSpec is an autogenerated conversion function. +func Convert_v1alpha4_IBMVPCMachineTemplateSpec_To_v1beta1_IBMVPCMachineTemplateSpec(in *IBMVPCMachineTemplateSpec, out *v1beta1.IBMVPCMachineTemplateSpec, s conversion.Scope) error { + return autoConvert_v1alpha4_IBMVPCMachineTemplateSpec_To_v1beta1_IBMVPCMachineTemplateSpec(in, out, s) +} + +func autoConvert_v1beta1_IBMVPCMachineTemplateSpec_To_v1alpha4_IBMVPCMachineTemplateSpec(in *v1beta1.IBMVPCMachineTemplateSpec, out *IBMVPCMachineTemplateSpec, s conversion.Scope) error { + if err := Convert_v1beta1_IBMVPCMachineTemplateResource_To_v1alpha4_IBMVPCMachineTemplateResource(&in.Template, &out.Template, s); err != nil { + return err + } + return nil +} + +// Convert_v1beta1_IBMVPCMachineTemplateSpec_To_v1alpha4_IBMVPCMachineTemplateSpec is an autogenerated conversion function. +func Convert_v1beta1_IBMVPCMachineTemplateSpec_To_v1alpha4_IBMVPCMachineTemplateSpec(in *v1beta1.IBMVPCMachineTemplateSpec, out *IBMVPCMachineTemplateSpec, s conversion.Scope) error { + return autoConvert_v1beta1_IBMVPCMachineTemplateSpec_To_v1alpha4_IBMVPCMachineTemplateSpec(in, out, s) +} + +func autoConvert_v1alpha4_NetworkInterface_To_v1beta1_NetworkInterface(in *NetworkInterface, out *v1beta1.NetworkInterface, s conversion.Scope) error { + out.Subnet = in.Subnet + return nil +} + +// Convert_v1alpha4_NetworkInterface_To_v1beta1_NetworkInterface is an autogenerated conversion function. +func Convert_v1alpha4_NetworkInterface_To_v1beta1_NetworkInterface(in *NetworkInterface, out *v1beta1.NetworkInterface, s conversion.Scope) error { + return autoConvert_v1alpha4_NetworkInterface_To_v1beta1_NetworkInterface(in, out, s) +} + +func autoConvert_v1beta1_NetworkInterface_To_v1alpha4_NetworkInterface(in *v1beta1.NetworkInterface, out *NetworkInterface, s conversion.Scope) error { + out.Subnet = in.Subnet + return nil +} + +// Convert_v1beta1_NetworkInterface_To_v1alpha4_NetworkInterface is an autogenerated conversion function. +func Convert_v1beta1_NetworkInterface_To_v1alpha4_NetworkInterface(in *v1beta1.NetworkInterface, out *NetworkInterface, s conversion.Scope) error { + return autoConvert_v1beta1_NetworkInterface_To_v1alpha4_NetworkInterface(in, out, s) +} + +func autoConvert_v1alpha4_Subnet_To_v1beta1_Subnet(in *Subnet, out *v1beta1.Subnet, s conversion.Scope) error { + out.Ipv4CidrBlock = (*string)(unsafe.Pointer(in.Ipv4CidrBlock)) + out.Name = (*string)(unsafe.Pointer(in.Name)) + out.ID = (*string)(unsafe.Pointer(in.ID)) + out.Zone = (*string)(unsafe.Pointer(in.Zone)) + return nil +} + +// Convert_v1alpha4_Subnet_To_v1beta1_Subnet is an autogenerated conversion function. +func Convert_v1alpha4_Subnet_To_v1beta1_Subnet(in *Subnet, out *v1beta1.Subnet, s conversion.Scope) error { + return autoConvert_v1alpha4_Subnet_To_v1beta1_Subnet(in, out, s) +} + +func autoConvert_v1beta1_Subnet_To_v1alpha4_Subnet(in *v1beta1.Subnet, out *Subnet, s conversion.Scope) error { + out.Ipv4CidrBlock = (*string)(unsafe.Pointer(in.Ipv4CidrBlock)) + out.Name = (*string)(unsafe.Pointer(in.Name)) + out.ID = (*string)(unsafe.Pointer(in.ID)) + out.Zone = (*string)(unsafe.Pointer(in.Zone)) + return nil +} + +// Convert_v1beta1_Subnet_To_v1alpha4_Subnet is an autogenerated conversion function. +func Convert_v1beta1_Subnet_To_v1alpha4_Subnet(in *v1beta1.Subnet, out *Subnet, s conversion.Scope) error { + return autoConvert_v1beta1_Subnet_To_v1alpha4_Subnet(in, out, s) +} + +func autoConvert_v1alpha4_VPC_To_v1beta1_VPC(in *VPC, out *v1beta1.VPC, s conversion.Scope) error { + out.ID = in.ID + out.Name = in.Name + return nil +} + +// Convert_v1alpha4_VPC_To_v1beta1_VPC is an autogenerated conversion function. +func Convert_v1alpha4_VPC_To_v1beta1_VPC(in *VPC, out *v1beta1.VPC, s conversion.Scope) error { + return autoConvert_v1alpha4_VPC_To_v1beta1_VPC(in, out, s) +} + +func autoConvert_v1beta1_VPC_To_v1alpha4_VPC(in *v1beta1.VPC, out *VPC, s conversion.Scope) error { + out.ID = in.ID + out.Name = in.Name + return nil +} + +// Convert_v1beta1_VPC_To_v1alpha4_VPC is an autogenerated conversion function. +func Convert_v1beta1_VPC_To_v1alpha4_VPC(in *v1beta1.VPC, out *VPC, s conversion.Scope) error { + return autoConvert_v1beta1_VPC_To_v1alpha4_VPC(in, out, s) +} + +func autoConvert_v1alpha4_VPCEndpoint_To_v1beta1_VPCEndpoint(in *VPCEndpoint, out *v1beta1.VPCEndpoint, s conversion.Scope) error { + out.Address = (*string)(unsafe.Pointer(in.Address)) + out.FIPID = (*string)(unsafe.Pointer(in.FIPID)) + return nil +} + +// Convert_v1alpha4_VPCEndpoint_To_v1beta1_VPCEndpoint is an autogenerated conversion function. +func Convert_v1alpha4_VPCEndpoint_To_v1beta1_VPCEndpoint(in *VPCEndpoint, out *v1beta1.VPCEndpoint, s conversion.Scope) error { + return autoConvert_v1alpha4_VPCEndpoint_To_v1beta1_VPCEndpoint(in, out, s) +} + +func autoConvert_v1beta1_VPCEndpoint_To_v1alpha4_VPCEndpoint(in *v1beta1.VPCEndpoint, out *VPCEndpoint, s conversion.Scope) error { + out.Address = (*string)(unsafe.Pointer(in.Address)) + out.FIPID = (*string)(unsafe.Pointer(in.FIPID)) + return nil +} + +// Convert_v1beta1_VPCEndpoint_To_v1alpha4_VPCEndpoint is an autogenerated conversion function. +func Convert_v1beta1_VPCEndpoint_To_v1alpha4_VPCEndpoint(in *v1beta1.VPCEndpoint, out *VPCEndpoint, s conversion.Scope) error { + return autoConvert_v1beta1_VPCEndpoint_To_v1alpha4_VPCEndpoint(in, out, s) +} diff --git a/api/v1alpha4/zz_generated.deepcopy.go b/api/v1alpha4/zz_generated.deepcopy.go index b36602e8d..d6e04a777 100644 --- a/api/v1alpha4/zz_generated.deepcopy.go +++ b/api/v1alpha4/zz_generated.deepcopy.go @@ -22,34 +22,9 @@ package v1alpha4 import ( "k8s.io/api/core/v1" - runtime "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime" ) -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *APIEndpoint) DeepCopyInto(out *APIEndpoint) { - *out = *in - if in.Address != nil { - in, out := &in.Address, &out.Address - *out = new(string) - **out = **in - } - if in.FIPID != nil { - in, out := &in.FIPID, &out.FIPID - *out = new(string) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new APIEndpoint. -func (in *APIEndpoint) DeepCopy() *APIEndpoint { - if in == nil { - return nil - } - out := new(APIEndpoint) - in.DeepCopyInto(out) - return out -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *IBMPowerVSCluster) DeepCopyInto(out *IBMPowerVSCluster) { *out = *in @@ -453,7 +428,7 @@ func (in *IBMVPCClusterStatus) DeepCopyInto(out *IBMVPCClusterStatus) { *out = *in out.VPC = in.VPC in.Subnet.DeepCopyInto(&out.Subnet) - in.APIEndpoint.DeepCopyInto(&out.APIEndpoint) + in.VPCEndpoint.DeepCopyInto(&out.VPCEndpoint) } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IBMVPCClusterStatus. @@ -731,3 +706,28 @@ func (in *VPC) DeepCopy() *VPC { in.DeepCopyInto(out) return out } + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VPCEndpoint) DeepCopyInto(out *VPCEndpoint) { + *out = *in + if in.Address != nil { + in, out := &in.Address, &out.Address + *out = new(string) + **out = **in + } + if in.FIPID != nil { + in, out := &in.FIPID, &out.FIPID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VPCEndpoint. +func (in *VPCEndpoint) DeepCopy() *VPCEndpoint { + if in == nil { + return nil + } + out := new(VPCEndpoint) + in.DeepCopyInto(out) + return out +} diff --git a/api/v1beta1/conversion.go b/api/v1beta1/conversion.go new file mode 100644 index 000000000..262511542 --- /dev/null +++ b/api/v1beta1/conversion.go @@ -0,0 +1,30 @@ +/* +Copyright 2021 The Kubernetes 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 v1beta1 + +func (*IBMPowerVSCluster) Hub() {} +func (*IBMPowerVSClusterList) Hub() {} +func (*IBMPowerVSMachine) Hub() {} +func (*IBMPowerVSMachineList) Hub() {} +func (*IBMPowerVSMachineTemplate) Hub() {} +func (*IBMPowerVSMachineTemplateList) Hub() {} +func (*IBMVPCCluster) Hub() {} +func (*IBMVPCClusterList) Hub() {} +func (*IBMVPCMachine) Hub() {} +func (*IBMVPCMachineList) Hub() {} +func (*IBMVPCMachineTemplate) Hub() {} +func (*IBMVPCMachineTemplateList) Hub() {} diff --git a/api/v1beta1/doc.go b/api/v1beta1/doc.go new file mode 100644 index 000000000..969c92c63 --- /dev/null +++ b/api/v1beta1/doc.go @@ -0,0 +1,18 @@ +/* +Copyright 2021 The Kubernetes 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 v1beta1 contains the v1beta1 API implementation. +package v1beta1 diff --git a/api/v1beta1/groupversion_info.go b/api/v1beta1/groupversion_info.go new file mode 100644 index 000000000..6c140414f --- /dev/null +++ b/api/v1beta1/groupversion_info.go @@ -0,0 +1,36 @@ +/* +Copyright 2021 The Kubernetes 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 v1beta1 contains API Schema definitions for the infrastructure v1beta1 API group +//+kubebuilder:object:generate=true +//+groupName=infrastructure.cluster.x-k8s.io +package v1beta1 + +import ( + "k8s.io/apimachinery/pkg/runtime/schema" + "sigs.k8s.io/controller-runtime/pkg/scheme" +) + +var ( + // GroupVersion is group version used to register these objects + GroupVersion = schema.GroupVersion{Group: "infrastructure.cluster.x-k8s.io", Version: "v1beta1"} + + // SchemeBuilder is used to add go types to the GroupVersionKind scheme + SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion} + + // AddToScheme adds the types in this group-version to the given scheme. + AddToScheme = SchemeBuilder.AddToScheme +) diff --git a/api/v1beta1/ibmpowervscluster_types.go b/api/v1beta1/ibmpowervscluster_types.go new file mode 100644 index 000000000..8e8080bec --- /dev/null +++ b/api/v1beta1/ibmpowervscluster_types.go @@ -0,0 +1,80 @@ +/* +Copyright 2021 The Kubernetes 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 v1beta1 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1" +) + +// EDIT THIS FILE! THIS IS SCAFFOLDING FOR YOU TO OWN! +// NOTE: json tags are required. Any new fields you add must have json tags for the fields to be serialized. + +const ( + // IBMPowerVSClusterFinalizer allows IBMPowerVSClusterReconciler to clean up resources associated with IBMPowerVSCluster before + // removing it from the apiserver. + IBMPowerVSClusterFinalizer = "ibmpowervscluster.infrastructure.cluster.x-k8s.io" +) + +// IBMPowerVSClusterSpec defines the desired state of IBMPowerVSCluster +type IBMPowerVSClusterSpec struct { + // INSERT ADDITIONAL SPEC FIELDS - desired state of cluster + // Important: Run "make" to regenerate code after modifying this file + + // ServiceInstanceID is the id of the power cloud instance where the vsi instance will get deployed + ServiceInstanceID string `json:"serviceInstanceID"` + + // Network is the reference to the Network to use for this cluster. + Network IBMPowerVSResourceReference `json:"network"` + + // ControlPlaneEndpoint represents the endpoint used to communicate with the control plane. + // +optional + ControlPlaneEndpoint clusterv1.APIEndpoint `json:"controlPlaneEndpoint"` +} + +// IBMPowerVSClusterStatus defines the observed state of IBMPowerVSCluster +type IBMPowerVSClusterStatus struct { + // INSERT ADDITIONAL STATUS FIELD - define observed state of cluster + // Important: Run "make" to regenerate code after modifying this file + Ready bool `json:"ready"` +} + +//+kubebuilder:object:root=true +//+kubebuilder:subresource:status +//+kubebuilder:storageversion + +// IBMPowerVSCluster is the Schema for the ibmpowervsclusters API +type IBMPowerVSCluster struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + + Spec IBMPowerVSClusterSpec `json:"spec,omitempty"` + Status IBMPowerVSClusterStatus `json:"status,omitempty"` +} + +//+kubebuilder:object:root=true + +// IBMPowerVSClusterList contains a list of IBMPowerVSCluster +type IBMPowerVSClusterList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []IBMPowerVSCluster `json:"items"` +} + +func init() { + SchemeBuilder.Register(&IBMPowerVSCluster{}, &IBMPowerVSClusterList{}) +} diff --git a/api/v1beta1/ibmpowervsmachine_types.go b/api/v1beta1/ibmpowervsmachine_types.go new file mode 100644 index 000000000..9c9806d83 --- /dev/null +++ b/api/v1beta1/ibmpowervsmachine_types.go @@ -0,0 +1,134 @@ +/* +Copyright 2021 The Kubernetes 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 v1beta1 + +import ( + v1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// EDIT THIS FILE! THIS IS SCAFFOLDING FOR YOU TO OWN! +// NOTE: json tags are required. Any new fields you add must have json tags for the fields to be serialized. + +const ( + // IBMPowerVSMachineFinalizer allows IBMPowerVSMachineReconciler to clean up resources associated with IBMPowerVSMachine before + // removing it from the apiserver. + IBMPowerVSMachineFinalizer = "ibmpowervsmachine.infrastructure.cluster.x-k8s.io" +) + +// IBMPowerVSMachineSpec defines the desired state of IBMPowerVSMachine +type IBMPowerVSMachineSpec struct { + // INSERT ADDITIONAL SPEC FIELDS - desired state of cluster + // Important: Run "make" to regenerate code after modifying this file + + // ServiceInstanceID is the id of the power cloud instance where the vsi instance will get deployed + ServiceInstanceID string `json:"serviceInstanceID"` + + // SSHKey is the name of the SSH key pair provided to the vsi for authenticating users + SSHKey string `json:"sshKey,omitempty"` + + // Image is the reference to the Image from which to create the machine instance. + Image IBMPowerVSResourceReference `json:"image"` + + // SysType is the System type used to host the vsi + SysType string `json:"sysType"` + + // ProcType is the processor type, e.g: dedicated, shared, capped + ProcType string `json:"procType"` + + // Processors is Number of processors allocated + Processors string `json:"processors"` + + // Memory is Amount of memory allocated (in GB) + Memory string `json:"memory"` + + // Network is the reference to the Network to use for this instance. + Network IBMPowerVSResourceReference `json:"network"` + + // ProviderID is the unique identifier as specified by the cloud provider. + // +optional + ProviderID *string `json:"providerID,omitempty"` +} + +// IBMPowerVSResourceReference is a reference to a specific PowerVS resource by ID or Name +// Only one of ID or Name may be specified. Specifying more than one will result in +// a validation error. +type IBMPowerVSResourceReference struct { + // ID of resource + // +optional + ID *string `json:"id,omitempty"` + + // Name of resource + // +optional + Name *string `json:"name,omitempty"` +} + +// IBMPowerVSMachineStatus defines the observed state of IBMPowerVSMachine +type IBMPowerVSMachineStatus struct { + // INSERT ADDITIONAL STATUS FIELD - define observed state of cluster + // Important: Run "make" to regenerate code after modifying this file + + InstanceID string `json:"instanceID,omitempty"` + + // Ready is true when the provider resource is ready. + // +optional + Ready bool `json:"ready"` + + // Addresses contains the vsi associated addresses. + Addresses []v1.NodeAddress `json:"addresses,omitempty"` + + // Health is the health of the vsi + // +optional + Health string `json:"health,omitempty"` + + // InstanceState is the status of the vsi + InstanceState string `json:"instanceState"` + + // Fault will report if any fault messages for the vsi + // +optional + Fault string `json:"fault,omitempty"` +} + +//+kubebuilder:object:root=true +//+kubebuilder:subresource:status +//+kubebuilder:storageversion +// +kubebuilder:printcolumn:name="Cluster",type="string",JSONPath=".metadata.labels.cluster\\.x-k8s\\.io/cluster-name",description="Cluster to which this IBMPowerVSMachine belongs" +// +kubebuilder:printcolumn:name="Ready",type="string",JSONPath=".status.ready",description="Cluster infrastructure is ready for IBM PowerVS instances" +// +kubebuilder:printcolumn:name="State",type="string",JSONPath=".status.instanceState",description="PowerVS instance state" +// +kubebuilder:printcolumn:name="Health",type="string",JSONPath=".status.health",description="PowerVS instance health" + +// IBMPowerVSMachine is the Schema for the ibmpowervsmachines API +type IBMPowerVSMachine struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + + Spec IBMPowerVSMachineSpec `json:"spec,omitempty"` + Status IBMPowerVSMachineStatus `json:"status,omitempty"` +} + +//+kubebuilder:object:root=true + +// IBMPowerVSMachineList contains a list of IBMPowerVSMachine +type IBMPowerVSMachineList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []IBMPowerVSMachine `json:"items"` +} + +func init() { + SchemeBuilder.Register(&IBMPowerVSMachine{}, &IBMPowerVSMachineList{}) +} diff --git a/api/v1beta1/ibmpowervsmachinetemplate_types.go b/api/v1beta1/ibmpowervsmachinetemplate_types.go new file mode 100644 index 000000000..4eac1af6d --- /dev/null +++ b/api/v1beta1/ibmpowervsmachinetemplate_types.go @@ -0,0 +1,65 @@ +/* +Copyright 2021 The Kubernetes 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 v1beta1 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// EDIT THIS FILE! THIS IS SCAFFOLDING FOR YOU TO OWN! +// NOTE: json tags are required. Any new fields you add must have json tags for the fields to be serialized. + +// IBMPowerVSMachineTemplateSpec defines the desired state of IBMPowerVSMachineTemplate +type IBMPowerVSMachineTemplateSpec struct { + Template IBMPowerVSMachineTemplateResource `json:"template"` +} + +// IBMPowerVSMachineTemplateResource holds the IBMPowerVSMachine spec +type IBMPowerVSMachineTemplateResource struct { + Spec IBMPowerVSMachineSpec `json:"spec"` +} + +// IBMPowerVSMachineTemplateStatus defines the observed state of IBMPowerVSMachineTemplate +type IBMPowerVSMachineTemplateStatus struct { + // INSERT ADDITIONAL STATUS FIELD - define observed state of cluster + // Important: Run "make" to regenerate code after modifying this file +} + +//+kubebuilder:object:root=true +//+kubebuilder:storageversion + +// IBMPowerVSMachineTemplate is the Schema for the ibmpowervsmachinetemplates API +type IBMPowerVSMachineTemplate struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + + Spec IBMPowerVSMachineTemplateSpec `json:"spec,omitempty"` + Status IBMPowerVSMachineTemplateStatus `json:"status,omitempty"` +} + +//+kubebuilder:object:root=true + +// IBMPowerVSMachineTemplateList contains a list of IBMPowerVSMachineTemplate +type IBMPowerVSMachineTemplateList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []IBMPowerVSMachineTemplate `json:"items"` +} + +func init() { + SchemeBuilder.Register(&IBMPowerVSMachineTemplate{}, &IBMPowerVSMachineTemplateList{}) +} diff --git a/api/v1beta1/ibmvpccluster_types.go b/api/v1beta1/ibmvpccluster_types.go new file mode 100644 index 000000000..1b58db203 --- /dev/null +++ b/api/v1beta1/ibmvpccluster_types.go @@ -0,0 +1,99 @@ +/* +Copyright 2021 The Kubernetes 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 v1beta1 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1" +) + +// EDIT THIS FILE! THIS IS SCAFFOLDING FOR YOU TO OWN! +// NOTE: json tags are required. Any new fields you add must have json tags for the fields to be serialized. + +const ( + // ClusterFinalizer allows DockerClusterReconciler to clean up resources associated with DockerCluster before + // removing it from the apiserver. + ClusterFinalizer = "ibmvpccluster.infrastructure.cluster.x-k8s.io" +) + +// IBMVPCClusterSpec defines the desired state of IBMVPCCluster +type IBMVPCClusterSpec struct { + // INSERT ADDITIONAL SPEC FIELDS - desired state of cluster + // Important: Run "make" to regenerate code after modifying this file + + // The IBM Cloud Region the cluster lives in. + Region string `json:"region"` + + // The VPC resources should be created under the resource group + ResourceGroup string `json:"resourceGroup"` + + // The Name of VPC + VPC string `json:"vpc,omitempty"` + + // The Name of availability zone + Zone string `json:"zone,omitempty"` + + // ControlPlaneEndpoint represents the endpoint used to communicate with the control plane. + // +optional + ControlPlaneEndpoint clusterv1.APIEndpoint `json:"controlPlaneEndpoint"` +} + +// IBMVPCClusterStatus defines the observed state of IBMVPCCluster +type IBMVPCClusterStatus struct { + // INSERT ADDITIONAL STATUS FIELD - define observed state of cluster + // Important: Run "make" to regenerate code after modifying this file + VPC VPC `json:"vpc,omitempty"` + // Bastion Instance `json:"bastion,omitempty"` + Ready bool `json:"ready"` + Subnet Subnet `json:"subnet,omitempty"` + VPCEndpoint VPCEndpoint `json:"vpcEndpoint,omitempty"` +} + +// VPC holds the VPC information +type VPC struct { + ID string `json:"id"` + Name string `json:"name"` +} + +// +kubebuilder:object:root=true +// +kubebuilder:resource:path=ibmvpcclusters,scope=Namespaced,categories=cluster-api +// +kubebuilder:storageversion +// +kubebuilder:subresource:status +// +kubebuilder:printcolumn:name="Cluster",type="string",JSONPath=".metadata.labels.cluster\\.x-k8s\\.io/cluster-name",description="Cluster to which this IBMVPCCluster belongs" +// +kubebuilder:printcolumn:name="Ready",type="string",JSONPath=".status.ready",description="Cluster infrastructure is ready for IBM VPC instances" + +// IBMVPCCluster is the Schema for the ibmvpcclusters API +type IBMVPCCluster struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + + Spec IBMVPCClusterSpec `json:"spec,omitempty"` + Status IBMVPCClusterStatus `json:"status,omitempty"` +} + +//+kubebuilder:object:root=true + +// IBMVPCClusterList contains a list of IBMVPCCluster +type IBMVPCClusterList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []IBMVPCCluster `json:"items"` +} + +func init() { + SchemeBuilder.Register(&IBMVPCCluster{}, &IBMVPCClusterList{}) +} diff --git a/api/v1beta1/ibmvpcmachine_types.go b/api/v1beta1/ibmvpcmachine_types.go new file mode 100644 index 000000000..3bebf487c --- /dev/null +++ b/api/v1beta1/ibmvpcmachine_types.go @@ -0,0 +1,107 @@ +/* +Copyright 2021 The Kubernetes 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 v1beta1 + +import ( + v1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// EDIT THIS FILE! THIS IS SCAFFOLDING FOR YOU TO OWN! +// NOTE: json tags are required. Any new fields you add must have json tags for the fields to be serialized. +const ( + // MachineFinalizer allows IBMVPCMachineReconciler to clean up resources associated with IBMVPCMachine before + // removing it from the apiserver. + MachineFinalizer = "ibmvpcmachine.infrastructure.cluster.x-k8s.io" +) + +// IBMVPCMachineSpec defines the desired state of IBMVPCMachine +type IBMVPCMachineSpec struct { + // INSERT ADDITIONAL SPEC FIELDS - desired state of cluster + // Important: Run "make" to regenerate code after modifying this file + + // Name of the instance + Name string `json:"name,omitempty"` + + // Image is the id of OS image which would be install on the instance. + // Example: r134-ed3f775f-ad7e-4e37-ae62-7199b4988b00 + // TODO: allow user to specify a image name is much reasonable. Example: ibm-ubuntu-18-04-1-minimal-amd64-2 + Image string `json:"image"` + + // Zone is the place where the instance should be created. Example: us-south-3 + // TODO: Actually zone is transparent to user. The field user can access is location. Example: Dallas 2 + Zone string `json:"zone"` + + // Profile indicates the flavor of instance. Example: bx2-8x32 means 8 vCPUs 32 GB RAM 16 Gbps + // TODO: add a reference link of profile + Profile string `json:"profile"` + + // ProviderID is the unique identifier as specified by the cloud provider. + // +optional + ProviderID *string `json:"providerID,omitempty"` + + // PrimaryNetworkInterface is required to specify subnet + PrimaryNetworkInterface NetworkInterface `json:"primaryNetworkInterface,omitempty"` + + // SSHKeys is the SSH pub keys that will be used to access VM + SSHKeys []*string `json:"sshKeys,omitempty"` +} + +// IBMVPCMachineStatus defines the observed state of IBMVPCMachine +type IBMVPCMachineStatus struct { + // INSERT ADDITIONAL STATUS FIELD - define observed state of cluster + // Important: Run "make" to regenerate code after modifying this file + + InstanceID string `json:"instanceID,omitempty"` + + Ready bool `json:"ready"` + + // Addresses contains the GCP instance associated addresses. + Addresses []v1.NodeAddress `json:"addresses,omitempty"` + + // InstanceStatus is the status of the GCP instance for this machine. + // +optional + InstanceStatus string `json:"instanceState,omitempty"` +} + +// +kubebuilder:object:root=true +// +kubebuilder:resource:path=ibmvpcmachines,scope=Namespaced,categories=cluster-api +// +kubebuilder:storageversion +// +kubebuilder:subresource:status +// +kubebuilder:printcolumn:name="Ready",type="string",JSONPath=".status.ready",description="Cluster infrastructure is ready for IBM VPC instances" + +// IBMVPCMachine is the Schema for the ibmvpcmachines API +type IBMVPCMachine struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + + Spec IBMVPCMachineSpec `json:"spec,omitempty"` + Status IBMVPCMachineStatus `json:"status,omitempty"` +} + +//+kubebuilder:object:root=true + +// IBMVPCMachineList contains a list of IBMVPCMachine +type IBMVPCMachineList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []IBMVPCMachine `json:"items"` +} + +func init() { + SchemeBuilder.Register(&IBMVPCMachine{}, &IBMVPCMachineList{}) +} diff --git a/api/v1beta1/ibmvpcmachinetemplate_types.go b/api/v1beta1/ibmvpcmachinetemplate_types.go new file mode 100644 index 000000000..fa8533c57 --- /dev/null +++ b/api/v1beta1/ibmvpcmachinetemplate_types.go @@ -0,0 +1,57 @@ +/* +Copyright 2021 The Kubernetes 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 v1beta1 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// IBMVPCMachineTemplateSpec defines the desired state of IBMVPCMachineTemplate +type IBMVPCMachineTemplateSpec struct { + Template IBMVPCMachineTemplateResource `json:"template"` +} + +// IBMVPCMachineTemplateResource describes the data needed to create am IBMVPCMachine from a template +type IBMVPCMachineTemplateResource struct { + // Spec is the specification of the desired behavior of the machine. + Spec IBMVPCMachineSpec `json:"spec"` +} + +// +kubebuilder:object:root=true +// +kubebuilder:resource:path=ibmvpcmachinetemplates,scope=Namespaced,categories=cluster-api +// +kubebuilder:storageversion + +// IBMVPCMachineTemplate is the Schema for the ibmvpcmachinetemplates API +type IBMVPCMachineTemplate struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + + Spec IBMVPCMachineTemplateSpec `json:"spec,omitempty"` +} + +//+kubebuilder:object:root=true + +// IBMVPCMachineTemplateList contains a list of IBMVPCMachineTemplate +type IBMVPCMachineTemplateList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []IBMVPCMachineTemplate `json:"items"` +} + +func init() { + SchemeBuilder.Register(&IBMVPCMachineTemplate{}, &IBMVPCMachineTemplateList{}) +} diff --git a/api/v1beta1/types.go b/api/v1beta1/types.go new file mode 100644 index 000000000..c49cbe900 --- /dev/null +++ b/api/v1beta1/types.go @@ -0,0 +1,37 @@ +/* +Copyright 2021 The Kubernetes 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 v1beta1 + +// NetworkInterface holds the network interface information like subnet id. +type NetworkInterface struct { + // Subnet ID of the network interface + Subnet string `json:"subnet,omitempty"` +} + +// Subnet describes a subnet +type Subnet struct { + Ipv4CidrBlock *string `json:"cidr"` + Name *string `json:"name"` + ID *string `json:"id"` + Zone *string `json:"zone"` +} + +// VPCEndpoint describes a VPCEndpoint +type VPCEndpoint struct { + Address *string `json:"address"` + FIPID *string `json:"floatingIPID"` +} diff --git a/api/v1beta1/zz_generated.deepcopy.go b/api/v1beta1/zz_generated.deepcopy.go new file mode 100644 index 000000000..fed361d51 --- /dev/null +++ b/api/v1beta1/zz_generated.deepcopy.go @@ -0,0 +1,733 @@ +// +build !ignore_autogenerated + +/* +Copyright The Kubernetes 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 controller-gen. DO NOT EDIT. + +package v1beta1 + +import ( + "k8s.io/api/core/v1" + runtime "k8s.io/apimachinery/pkg/runtime" +) + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IBMPowerVSCluster) DeepCopyInto(out *IBMPowerVSCluster) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + out.Status = in.Status +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IBMPowerVSCluster. +func (in *IBMPowerVSCluster) DeepCopy() *IBMPowerVSCluster { + if in == nil { + return nil + } + out := new(IBMPowerVSCluster) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *IBMPowerVSCluster) 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 *IBMPowerVSClusterList) DeepCopyInto(out *IBMPowerVSClusterList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]IBMPowerVSCluster, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IBMPowerVSClusterList. +func (in *IBMPowerVSClusterList) DeepCopy() *IBMPowerVSClusterList { + if in == nil { + return nil + } + out := new(IBMPowerVSClusterList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *IBMPowerVSClusterList) 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 *IBMPowerVSClusterSpec) DeepCopyInto(out *IBMPowerVSClusterSpec) { + *out = *in + in.Network.DeepCopyInto(&out.Network) + out.ControlPlaneEndpoint = in.ControlPlaneEndpoint +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IBMPowerVSClusterSpec. +func (in *IBMPowerVSClusterSpec) DeepCopy() *IBMPowerVSClusterSpec { + if in == nil { + return nil + } + out := new(IBMPowerVSClusterSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IBMPowerVSClusterStatus) DeepCopyInto(out *IBMPowerVSClusterStatus) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IBMPowerVSClusterStatus. +func (in *IBMPowerVSClusterStatus) DeepCopy() *IBMPowerVSClusterStatus { + if in == nil { + return nil + } + out := new(IBMPowerVSClusterStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IBMPowerVSMachine) DeepCopyInto(out *IBMPowerVSMachine) { + *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 IBMPowerVSMachine. +func (in *IBMPowerVSMachine) DeepCopy() *IBMPowerVSMachine { + if in == nil { + return nil + } + out := new(IBMPowerVSMachine) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *IBMPowerVSMachine) 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 *IBMPowerVSMachineList) DeepCopyInto(out *IBMPowerVSMachineList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]IBMPowerVSMachine, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IBMPowerVSMachineList. +func (in *IBMPowerVSMachineList) DeepCopy() *IBMPowerVSMachineList { + if in == nil { + return nil + } + out := new(IBMPowerVSMachineList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *IBMPowerVSMachineList) 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 *IBMPowerVSMachineSpec) DeepCopyInto(out *IBMPowerVSMachineSpec) { + *out = *in + in.Image.DeepCopyInto(&out.Image) + in.Network.DeepCopyInto(&out.Network) + if in.ProviderID != nil { + in, out := &in.ProviderID, &out.ProviderID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IBMPowerVSMachineSpec. +func (in *IBMPowerVSMachineSpec) DeepCopy() *IBMPowerVSMachineSpec { + if in == nil { + return nil + } + out := new(IBMPowerVSMachineSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IBMPowerVSMachineStatus) DeepCopyInto(out *IBMPowerVSMachineStatus) { + *out = *in + if in.Addresses != nil { + in, out := &in.Addresses, &out.Addresses + *out = make([]v1.NodeAddress, len(*in)) + copy(*out, *in) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IBMPowerVSMachineStatus. +func (in *IBMPowerVSMachineStatus) DeepCopy() *IBMPowerVSMachineStatus { + if in == nil { + return nil + } + out := new(IBMPowerVSMachineStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IBMPowerVSMachineTemplate) DeepCopyInto(out *IBMPowerVSMachineTemplate) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + out.Status = in.Status +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IBMPowerVSMachineTemplate. +func (in *IBMPowerVSMachineTemplate) DeepCopy() *IBMPowerVSMachineTemplate { + if in == nil { + return nil + } + out := new(IBMPowerVSMachineTemplate) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *IBMPowerVSMachineTemplate) 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 *IBMPowerVSMachineTemplateList) DeepCopyInto(out *IBMPowerVSMachineTemplateList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]IBMPowerVSMachineTemplate, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IBMPowerVSMachineTemplateList. +func (in *IBMPowerVSMachineTemplateList) DeepCopy() *IBMPowerVSMachineTemplateList { + if in == nil { + return nil + } + out := new(IBMPowerVSMachineTemplateList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *IBMPowerVSMachineTemplateList) 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 *IBMPowerVSMachineTemplateResource) DeepCopyInto(out *IBMPowerVSMachineTemplateResource) { + *out = *in + in.Spec.DeepCopyInto(&out.Spec) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IBMPowerVSMachineTemplateResource. +func (in *IBMPowerVSMachineTemplateResource) DeepCopy() *IBMPowerVSMachineTemplateResource { + if in == nil { + return nil + } + out := new(IBMPowerVSMachineTemplateResource) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IBMPowerVSMachineTemplateSpec) DeepCopyInto(out *IBMPowerVSMachineTemplateSpec) { + *out = *in + in.Template.DeepCopyInto(&out.Template) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IBMPowerVSMachineTemplateSpec. +func (in *IBMPowerVSMachineTemplateSpec) DeepCopy() *IBMPowerVSMachineTemplateSpec { + if in == nil { + return nil + } + out := new(IBMPowerVSMachineTemplateSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IBMPowerVSMachineTemplateStatus) DeepCopyInto(out *IBMPowerVSMachineTemplateStatus) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IBMPowerVSMachineTemplateStatus. +func (in *IBMPowerVSMachineTemplateStatus) DeepCopy() *IBMPowerVSMachineTemplateStatus { + if in == nil { + return nil + } + out := new(IBMPowerVSMachineTemplateStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IBMPowerVSResourceReference) DeepCopyInto(out *IBMPowerVSResourceReference) { + *out = *in + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IBMPowerVSResourceReference. +func (in *IBMPowerVSResourceReference) DeepCopy() *IBMPowerVSResourceReference { + if in == nil { + return nil + } + out := new(IBMPowerVSResourceReference) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IBMVPCCluster) DeepCopyInto(out *IBMVPCCluster) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + out.Spec = in.Spec + in.Status.DeepCopyInto(&out.Status) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IBMVPCCluster. +func (in *IBMVPCCluster) DeepCopy() *IBMVPCCluster { + if in == nil { + return nil + } + out := new(IBMVPCCluster) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *IBMVPCCluster) 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 *IBMVPCClusterList) DeepCopyInto(out *IBMVPCClusterList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]IBMVPCCluster, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IBMVPCClusterList. +func (in *IBMVPCClusterList) DeepCopy() *IBMVPCClusterList { + if in == nil { + return nil + } + out := new(IBMVPCClusterList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *IBMVPCClusterList) 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 *IBMVPCClusterSpec) DeepCopyInto(out *IBMVPCClusterSpec) { + *out = *in + out.ControlPlaneEndpoint = in.ControlPlaneEndpoint +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IBMVPCClusterSpec. +func (in *IBMVPCClusterSpec) DeepCopy() *IBMVPCClusterSpec { + if in == nil { + return nil + } + out := new(IBMVPCClusterSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IBMVPCClusterStatus) DeepCopyInto(out *IBMVPCClusterStatus) { + *out = *in + out.VPC = in.VPC + in.Subnet.DeepCopyInto(&out.Subnet) + in.VPCEndpoint.DeepCopyInto(&out.VPCEndpoint) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IBMVPCClusterStatus. +func (in *IBMVPCClusterStatus) DeepCopy() *IBMVPCClusterStatus { + if in == nil { + return nil + } + out := new(IBMVPCClusterStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IBMVPCMachine) DeepCopyInto(out *IBMVPCMachine) { + *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 IBMVPCMachine. +func (in *IBMVPCMachine) DeepCopy() *IBMVPCMachine { + if in == nil { + return nil + } + out := new(IBMVPCMachine) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *IBMVPCMachine) 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 *IBMVPCMachineList) DeepCopyInto(out *IBMVPCMachineList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]IBMVPCMachine, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IBMVPCMachineList. +func (in *IBMVPCMachineList) DeepCopy() *IBMVPCMachineList { + if in == nil { + return nil + } + out := new(IBMVPCMachineList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *IBMVPCMachineList) 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 *IBMVPCMachineSpec) DeepCopyInto(out *IBMVPCMachineSpec) { + *out = *in + if in.ProviderID != nil { + in, out := &in.ProviderID, &out.ProviderID + *out = new(string) + **out = **in + } + out.PrimaryNetworkInterface = in.PrimaryNetworkInterface + if in.SSHKeys != nil { + in, out := &in.SSHKeys, &out.SSHKeys + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IBMVPCMachineSpec. +func (in *IBMVPCMachineSpec) DeepCopy() *IBMVPCMachineSpec { + if in == nil { + return nil + } + out := new(IBMVPCMachineSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IBMVPCMachineStatus) DeepCopyInto(out *IBMVPCMachineStatus) { + *out = *in + if in.Addresses != nil { + in, out := &in.Addresses, &out.Addresses + *out = make([]v1.NodeAddress, len(*in)) + copy(*out, *in) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IBMVPCMachineStatus. +func (in *IBMVPCMachineStatus) DeepCopy() *IBMVPCMachineStatus { + if in == nil { + return nil + } + out := new(IBMVPCMachineStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IBMVPCMachineTemplate) DeepCopyInto(out *IBMVPCMachineTemplate) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IBMVPCMachineTemplate. +func (in *IBMVPCMachineTemplate) DeepCopy() *IBMVPCMachineTemplate { + if in == nil { + return nil + } + out := new(IBMVPCMachineTemplate) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *IBMVPCMachineTemplate) 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 *IBMVPCMachineTemplateList) DeepCopyInto(out *IBMVPCMachineTemplateList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]IBMVPCMachineTemplate, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IBMVPCMachineTemplateList. +func (in *IBMVPCMachineTemplateList) DeepCopy() *IBMVPCMachineTemplateList { + if in == nil { + return nil + } + out := new(IBMVPCMachineTemplateList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *IBMVPCMachineTemplateList) 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 *IBMVPCMachineTemplateResource) DeepCopyInto(out *IBMVPCMachineTemplateResource) { + *out = *in + in.Spec.DeepCopyInto(&out.Spec) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IBMVPCMachineTemplateResource. +func (in *IBMVPCMachineTemplateResource) DeepCopy() *IBMVPCMachineTemplateResource { + if in == nil { + return nil + } + out := new(IBMVPCMachineTemplateResource) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IBMVPCMachineTemplateSpec) DeepCopyInto(out *IBMVPCMachineTemplateSpec) { + *out = *in + in.Template.DeepCopyInto(&out.Template) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IBMVPCMachineTemplateSpec. +func (in *IBMVPCMachineTemplateSpec) DeepCopy() *IBMVPCMachineTemplateSpec { + if in == nil { + return nil + } + out := new(IBMVPCMachineTemplateSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NetworkInterface) DeepCopyInto(out *NetworkInterface) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkInterface. +func (in *NetworkInterface) DeepCopy() *NetworkInterface { + if in == nil { + return nil + } + out := new(NetworkInterface) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Subnet) DeepCopyInto(out *Subnet) { + *out = *in + if in.Ipv4CidrBlock != nil { + in, out := &in.Ipv4CidrBlock, &out.Ipv4CidrBlock + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.Zone != nil { + in, out := &in.Zone, &out.Zone + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Subnet. +func (in *Subnet) DeepCopy() *Subnet { + if in == nil { + return nil + } + out := new(Subnet) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VPC) DeepCopyInto(out *VPC) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VPC. +func (in *VPC) DeepCopy() *VPC { + if in == nil { + return nil + } + out := new(VPC) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VPCEndpoint) DeepCopyInto(out *VPCEndpoint) { + *out = *in + if in.Address != nil { + in, out := &in.Address, &out.Address + *out = new(string) + **out = **in + } + if in.FIPID != nil { + in, out := &in.FIPID, &out.FIPID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VPCEndpoint. +func (in *VPCEndpoint) DeepCopy() *VPCEndpoint { + if in == nil { + return nil + } + out := new(VPCEndpoint) + in.DeepCopyInto(out) + return out +} diff --git a/cloud/scope/cluster.go b/cloud/scope/cluster.go index 1134af6e8..1555791b3 100644 --- a/cloud/scope/cluster.go +++ b/cloud/scope/cluster.go @@ -27,11 +27,11 @@ import ( "github.com/IBM/vpc-go-sdk/vpcv1" "k8s.io/klog/v2/klogr" - clusterv1 "sigs.k8s.io/cluster-api/api/v1alpha4" + clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1" "sigs.k8s.io/cluster-api/util/patch" "sigs.k8s.io/controller-runtime/pkg/client" - infrav1 "sigs.k8s.io/cluster-api-provider-ibmcloud/api/v1alpha3" + infrav1 "sigs.k8s.io/cluster-api-provider-ibmcloud/api/v1beta1" ) // ClusterScopeParams defines the input parameters used to create a new ClusterScope. @@ -188,7 +188,7 @@ func (s *ClusterScope) ensureFIPUnique(fipName string) (*vpcv1.FloatingIP, error // DeleteFloatingIP deletes a Floating IP associated with floating ip id func (s *ClusterScope) DeleteFloatingIP() error { - fipID := *s.IBMVPCCluster.Status.APIEndpoint.FIPID + fipID := *s.IBMVPCCluster.Status.VPCEndpoint.FIPID if fipID != "" { deleteFIPOption := &vpcv1.DeleteFloatingIPOptions{} deleteFIPOption.SetID(fipID) diff --git a/cloud/scope/machine.go b/cloud/scope/machine.go index c3d5d47f2..add67e5f5 100644 --- a/cloud/scope/machine.go +++ b/cloud/scope/machine.go @@ -29,11 +29,11 @@ import ( corev1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/types" "k8s.io/klog/v2/klogr" - clusterv1 "sigs.k8s.io/cluster-api/api/v1alpha4" + clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1" "sigs.k8s.io/cluster-api/util/patch" "sigs.k8s.io/controller-runtime/pkg/client" - infrav1 "sigs.k8s.io/cluster-api-provider-ibmcloud/api/v1alpha3" + infrav1 "sigs.k8s.io/cluster-api-provider-ibmcloud/api/v1beta1" ) // MachineScopeParams defines the input parameters used to create a new MachineScope. diff --git a/cloud/scope/powervs_cluster.go b/cloud/scope/powervs_cluster.go index 99bbeca2f..6f315f8a8 100644 --- a/cloud/scope/powervs_cluster.go +++ b/cloud/scope/powervs_cluster.go @@ -26,11 +26,11 @@ import ( utils "github.com/ppc64le-cloud/powervs-utils" "k8s.io/klog/v2/klogr" - clusterv1 "sigs.k8s.io/cluster-api/api/v1alpha4" + clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1" "sigs.k8s.io/cluster-api/util/patch" "sigs.k8s.io/controller-runtime/pkg/client" - "sigs.k8s.io/cluster-api-provider-ibmcloud/api/v1alpha4" + "sigs.k8s.io/cluster-api-provider-ibmcloud/api/v1beta1" "sigs.k8s.io/cluster-api-provider-ibmcloud/pkg" ) @@ -39,7 +39,7 @@ type PowerVSClusterScopeParams struct { Client client.Client Logger logr.Logger Cluster *clusterv1.Cluster - IBMPowerVSCluster *v1alpha4.IBMPowerVSCluster + IBMPowerVSCluster *v1beta1.IBMPowerVSCluster } // PowerVSClusterScope defines a scope defined around a Power VS Cluster. @@ -50,7 +50,7 @@ type PowerVSClusterScope struct { IBMPowerVSClient *IBMPowerVSClient Cluster *clusterv1.Cluster - IBMPowerVSCluster *v1alpha4.IBMPowerVSCluster + IBMPowerVSCluster *v1beta1.IBMPowerVSCluster } // NewPowerVSClusterScope creates a new PowerVSClusterScope from the supplied parameters. diff --git a/cloud/scope/powervs_machine.go b/cloud/scope/powervs_machine.go index 81faf93f0..f06ccde08 100644 --- a/cloud/scope/powervs_machine.go +++ b/cloud/scope/powervs_machine.go @@ -35,11 +35,11 @@ import ( corev1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/types" "k8s.io/klog/v2/klogr" - clusterv1 "sigs.k8s.io/cluster-api/api/v1alpha4" + clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1" "sigs.k8s.io/cluster-api/util/patch" "sigs.k8s.io/controller-runtime/pkg/client" - "sigs.k8s.io/cluster-api-provider-ibmcloud/api/v1alpha4" + "sigs.k8s.io/cluster-api-provider-ibmcloud/api/v1beta1" "sigs.k8s.io/cluster-api-provider-ibmcloud/pkg" ) @@ -49,8 +49,8 @@ type PowerVSMachineScopeParams struct { Client client.Client Cluster *clusterv1.Cluster Machine *clusterv1.Machine - IBMPowerVSCluster *v1alpha4.IBMPowerVSCluster - IBMPowerVSMachine *v1alpha4.IBMPowerVSMachine + IBMPowerVSCluster *v1beta1.IBMPowerVSCluster + IBMPowerVSMachine *v1beta1.IBMPowerVSMachine } // PowerVSMachineScope defines a scope defined around a Power VS Machine. @@ -62,8 +62,8 @@ type PowerVSMachineScope struct { IBMPowerVSClient *IBMPowerVSClient Cluster *clusterv1.Cluster Machine *clusterv1.Machine - IBMPowerVSCluster *v1alpha4.IBMPowerVSCluster - IBMPowerVSMachine *v1alpha4.IBMPowerVSMachine + IBMPowerVSCluster *v1beta1.IBMPowerVSCluster + IBMPowerVSMachine *v1beta1.IBMPowerVSMachine } // NewPowerVSMachineScope creates a new PowerVSMachineScope from the supplied parameters. @@ -228,7 +228,7 @@ func (m *PowerVSMachineScope) GetBootstrapData() (string, error) { return base64.StdEncoding.EncodeToString(value), nil } -func getImageID(image v1alpha4.IBMPowerVSResourceReference, m *PowerVSMachineScope) (*string, error) { +func getImageID(image v1beta1.IBMPowerVSResourceReference, m *PowerVSMachineScope) (*string, error) { if image.ID != nil { return image.ID, nil } else if image.Name != nil { @@ -253,7 +253,7 @@ func (m *PowerVSMachineScope) GetImages() (*models.Images, error) { return m.IBMPowerVSClient.ImageClient.GetAll(m.IBMPowerVSMachine.Spec.ServiceInstanceID) } -func getNetworkID(network v1alpha4.IBMPowerVSResourceReference, m *PowerVSMachineScope) (*string, error) { +func getNetworkID(network v1beta1.IBMPowerVSResourceReference, m *PowerVSMachineScope) (*string, error) { if network.ID != nil { return network.ID, nil } else if network.Name != nil { diff --git a/config/crd/bases/infrastructure.cluster.x-k8s.io_ibmpowervsclusters.yaml b/config/crd/bases/infrastructure.cluster.x-k8s.io_ibmpowervsclusters.yaml index 3a65ad0d6..14faa2275 100644 --- a/config/crd/bases/infrastructure.cluster.x-k8s.io_ibmpowervsclusters.yaml +++ b/config/crd/bases/infrastructure.cluster.x-k8s.io_ibmpowervsclusters.yaml @@ -17,6 +17,76 @@ spec: scope: Namespaced versions: - name: v1alpha4 + schema: + openAPIV3Schema: + description: IBMPowerVSCluster is the Schema for the ibmpowervsclusters API + 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: IBMPowerVSClusterSpec defines the desired state of IBMPowerVSCluster + properties: + controlPlaneEndpoint: + description: ControlPlaneEndpoint represents the endpoint used to + communicate with the control plane. + properties: + host: + description: The hostname on which the API server is serving. + type: string + port: + description: The port on which the API server is serving. + format: int32 + type: integer + required: + - host + - port + type: object + network: + description: Network is the reference to the Network to use for this + cluster. + properties: + id: + description: ID of resource + type: string + name: + description: Name of resource + type: string + type: object + serviceInstanceID: + description: ServiceInstanceID is the id of the power cloud instance + where the vsi instance will get deployed + type: string + required: + - network + - serviceInstanceID + type: object + status: + description: IBMPowerVSClusterStatus defines the observed state of IBMPowerVSCluster + properties: + ready: + description: 'INSERT ADDITIONAL STATUS FIELD - define observed state + of cluster Important: Run "make" to regenerate code after modifying + this file' + type: boolean + required: + - ready + type: object + type: object + served: true + storage: false + subresources: + status: {} + - name: v1beta1 schema: openAPIV3Schema: description: IBMPowerVSCluster is the Schema for the ibmpowervsclusters API diff --git a/config/crd/bases/infrastructure.cluster.x-k8s.io_ibmpowervsmachines.yaml b/config/crd/bases/infrastructure.cluster.x-k8s.io_ibmpowervsmachines.yaml index 38fb56925..02f60b0e0 100644 --- a/config/crd/bases/infrastructure.cluster.x-k8s.io_ibmpowervsmachines.yaml +++ b/config/crd/bases/infrastructure.cluster.x-k8s.io_ibmpowervsmachines.yaml @@ -148,6 +148,141 @@ spec: type: object type: object served: true + storage: false + subresources: + status: {} + - additionalPrinterColumns: + - description: Cluster to which this IBMPowerVSMachine belongs + jsonPath: .metadata.labels.cluster\.x-k8s\.io/cluster-name + name: Cluster + type: string + - description: Cluster infrastructure is ready for IBM PowerVS instances + jsonPath: .status.ready + name: Ready + type: string + - description: PowerVS instance state + jsonPath: .status.instanceState + name: State + type: string + - description: PowerVS instance health + jsonPath: .status.health + name: Health + type: string + name: v1beta1 + schema: + openAPIV3Schema: + description: IBMPowerVSMachine is the Schema for the ibmpowervsmachines API + 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: IBMPowerVSMachineSpec defines the desired state of IBMPowerVSMachine + properties: + image: + description: Image is the reference to the Image from which to create + the machine instance. + properties: + id: + description: ID of resource + type: string + name: + description: Name of resource + type: string + type: object + memory: + description: Memory is Amount of memory allocated (in GB) + type: string + network: + description: Network is the reference to the Network to use for this + instance. + properties: + id: + description: ID of resource + type: string + name: + description: Name of resource + type: string + type: object + procType: + description: 'ProcType is the processor type, e.g: dedicated, shared, + capped' + type: string + processors: + description: Processors is Number of processors allocated + type: string + providerID: + description: ProviderID is the unique identifier as specified by the + cloud provider. + type: string + serviceInstanceID: + description: ServiceInstanceID is the id of the power cloud instance + where the vsi instance will get deployed + type: string + sshKey: + description: SSHKey is the name of the SSH key pair provided to the + vsi for authenticating users + type: string + sysType: + description: SysType is the System type used to host the vsi + type: string + required: + - image + - memory + - network + - procType + - processors + - serviceInstanceID + - sysType + type: object + status: + description: IBMPowerVSMachineStatus defines the observed state of IBMPowerVSMachine + properties: + addresses: + description: Addresses contains the vsi associated addresses. + items: + description: NodeAddress contains information for the node's address. + properties: + address: + description: The node address. + type: string + type: + description: Node address type, one of Hostname, ExternalIP + or InternalIP. + type: string + required: + - address + - type + type: object + type: array + fault: + description: Fault will report if any fault messages for the vsi + type: string + health: + description: Health is the health of the vsi + type: string + instanceID: + type: string + instanceState: + description: InstanceState is the status of the vsi + type: string + ready: + description: Ready is true when the provider resource is ready. + type: boolean + required: + - instanceState + type: object + type: object + served: true storage: true subresources: status: {} diff --git a/config/crd/bases/infrastructure.cluster.x-k8s.io_ibmpowervsmachinetemplates.yaml b/config/crd/bases/infrastructure.cluster.x-k8s.io_ibmpowervsmachinetemplates.yaml index 98c1e254f..156ed3593 100644 --- a/config/crd/bases/infrastructure.cluster.x-k8s.io_ibmpowervsmachinetemplates.yaml +++ b/config/crd/bases/infrastructure.cluster.x-k8s.io_ibmpowervsmachinetemplates.yaml @@ -17,6 +17,105 @@ spec: scope: Namespaced versions: - name: v1alpha4 + schema: + openAPIV3Schema: + description: IBMPowerVSMachineTemplate is the Schema for the ibmpowervsmachinetemplates + API + 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: IBMPowerVSMachineTemplateSpec defines the desired state of + IBMPowerVSMachineTemplate + properties: + template: + description: IBMPowerVSMachineTemplateResource holds the IBMPowerVSMachine + spec + properties: + spec: + description: IBMPowerVSMachineSpec defines the desired state of + IBMPowerVSMachine + properties: + image: + description: Image is the reference to the Image from which + to create the machine instance. + properties: + id: + description: ID of resource + type: string + name: + description: Name of resource + type: string + type: object + memory: + description: Memory is Amount of memory allocated (in GB) + type: string + network: + description: Network is the reference to the Network to use + for this instance. + properties: + id: + description: ID of resource + type: string + name: + description: Name of resource + type: string + type: object + procType: + description: 'ProcType is the processor type, e.g: dedicated, + shared, capped' + type: string + processors: + description: Processors is Number of processors allocated + type: string + providerID: + description: ProviderID is the unique identifier as specified + by the cloud provider. + type: string + serviceInstanceID: + description: ServiceInstanceID is the id of the power cloud + instance where the vsi instance will get deployed + type: string + sshKey: + description: SSHKey is the name of the SSH key pair provided + to the vsi for authenticating users + type: string + sysType: + description: SysType is the System type used to host the vsi + type: string + required: + - image + - memory + - network + - procType + - processors + - serviceInstanceID + - sysType + type: object + required: + - spec + type: object + required: + - template + type: object + status: + description: IBMPowerVSMachineTemplateStatus defines the observed state + of IBMPowerVSMachineTemplate + type: object + type: object + served: true + storage: false + - name: v1beta1 schema: openAPIV3Schema: description: IBMPowerVSMachineTemplate is the Schema for the ibmpowervsmachinetemplates diff --git a/config/crd/bases/infrastructure.cluster.x-k8s.io_ibmvpcclusters.yaml b/config/crd/bases/infrastructure.cluster.x-k8s.io_ibmvpcclusters.yaml index 949855bd4..94d4ab415 100644 --- a/config/crd/bases/infrastructure.cluster.x-k8s.io_ibmvpcclusters.yaml +++ b/config/crd/bases/infrastructure.cluster.x-k8s.io_ibmvpcclusters.yaml @@ -82,17 +82,6 @@ spec: status: description: IBMVPCClusterStatus defines the observed state of IBMVPCCluster properties: - apiEndpoint: - description: APIEndpoint describes a APIEndpoint - properties: - address: - type: string - floatingIPID: - type: string - required: - - address - - floatingIPID - type: object ready: description: Bastion Instance `json:"bastion,omitempty"` type: boolean @@ -126,6 +115,17 @@ spec: - id - name type: object + vpcEndpoint: + description: VPCEndpoint describes a VPCEndpoint + properties: + address: + type: string + floatingIPID: + type: string + required: + - address + - floatingIPID + type: object required: - ready type: object @@ -198,8 +198,41 @@ spec: status: description: IBMVPCClusterStatus defines the observed state of IBMVPCCluster properties: - apiEndpoint: - description: APIEndpoint describes a APIEndpoint + ready: + description: Bastion Instance `json:"bastion,omitempty"` + type: boolean + subnet: + description: Subnet describes a subnet + properties: + cidr: + type: string + id: + type: string + name: + type: string + zone: + type: string + required: + - cidr + - id + - name + - zone + type: object + vpc: + description: 'INSERT ADDITIONAL STATUS FIELD - define observed state + of cluster Important: Run "make" to regenerate code after modifying + this file' + properties: + id: + type: string + name: + type: string + required: + - id + - name + type: object + vpcEndpoint: + description: VPCEndpoint describes a VPCEndpoint properties: address: type: string @@ -209,6 +242,78 @@ spec: - address - floatingIPID type: object + required: + - ready + type: object + type: object + served: true + storage: false + subresources: + status: {} + - additionalPrinterColumns: + - description: Cluster to which this IBMVPCCluster belongs + jsonPath: .metadata.labels.cluster\.x-k8s\.io/cluster-name + name: Cluster + type: string + - description: Cluster infrastructure is ready for IBM VPC instances + jsonPath: .status.ready + name: Ready + type: string + name: v1beta1 + schema: + openAPIV3Schema: + description: IBMVPCCluster is the Schema for the ibmvpcclusters API + 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: IBMVPCClusterSpec defines the desired state of IBMVPCCluster + properties: + controlPlaneEndpoint: + description: ControlPlaneEndpoint represents the endpoint used to + communicate with the control plane. + properties: + host: + description: The hostname on which the API server is serving. + type: string + port: + description: The port on which the API server is serving. + format: int32 + type: integer + required: + - host + - port + type: object + region: + description: The IBM Cloud Region the cluster lives in. + type: string + resourceGroup: + description: The VPC resources should be created under the resource + group + type: string + vpc: + description: The Name of VPC + type: string + zone: + description: The Name of availability zone + type: string + required: + - region + - resourceGroup + type: object + status: + description: IBMVPCClusterStatus defines the observed state of IBMVPCCluster + properties: ready: description: Bastion Instance `json:"bastion,omitempty"` type: boolean @@ -242,6 +347,17 @@ spec: - id - name type: object + vpcEndpoint: + description: VPCEndpoint describes a VPCEndpoint + properties: + address: + type: string + floatingIPID: + type: string + required: + - address + - floatingIPID + type: object required: - ready type: object diff --git a/config/crd/bases/infrastructure.cluster.x-k8s.io_ibmvpcmachines.yaml b/config/crd/bases/infrastructure.cluster.x-k8s.io_ibmvpcmachines.yaml index 16461521f..86bd2c3b4 100644 --- a/config/crd/bases/infrastructure.cluster.x-k8s.io_ibmvpcmachines.yaml +++ b/config/crd/bases/infrastructure.cluster.x-k8s.io_ibmvpcmachines.yaml @@ -217,6 +217,107 @@ spec: type: object type: object served: true + storage: false + subresources: + status: {} + - additionalPrinterColumns: + - description: Cluster infrastructure is ready for IBM VPC instances + jsonPath: .status.ready + name: Ready + type: string + name: v1beta1 + schema: + openAPIV3Schema: + description: IBMVPCMachine is the Schema for the ibmvpcmachines API + 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: IBMVPCMachineSpec defines the desired state of IBMVPCMachine + properties: + image: + description: 'Image is the id of OS image which would be install on + the instance. Example: r134-ed3f775f-ad7e-4e37-ae62-7199b4988b00 + TODO: allow user to specify a image name is much reasonable. Example: + ibm-ubuntu-18-04-1-minimal-amd64-2' + type: string + name: + description: Name of the instance + type: string + primaryNetworkInterface: + description: PrimaryNetworkInterface is required to specify subnet + properties: + subnet: + description: Subnet ID of the network interface + type: string + type: object + profile: + description: "Profile indicates the flavor of instance. Example: bx2-8x32\tmeans + 8 vCPUs\t32 GB RAM\t16 Gbps TODO: add a reference link of profile" + type: string + providerID: + description: ProviderID is the unique identifier as specified by the + cloud provider. + type: string + sshKeys: + description: SSHKeys is the SSH pub keys that will be used to access + VM + items: + type: string + type: array + zone: + description: 'Zone is the place where the instance should be created. + Example: us-south-3 TODO: Actually zone is transparent to user. + The field user can access is location. Example: Dallas 2' + type: string + required: + - image + - profile + - zone + type: object + status: + description: IBMVPCMachineStatus defines the observed state of IBMVPCMachine + properties: + addresses: + description: Addresses contains the GCP instance associated addresses. + items: + description: NodeAddress contains information for the node's address. + properties: + address: + description: The node address. + type: string + type: + description: Node address type, one of Hostname, ExternalIP + or InternalIP. + type: string + required: + - address + - type + type: object + type: array + instanceID: + type: string + instanceState: + description: InstanceStatus is the status of the GCP instance for + this machine. + type: string + ready: + type: boolean + required: + - ready + type: object + type: object + served: true storage: true subresources: status: {} diff --git a/config/crd/bases/infrastructure.cluster.x-k8s.io_ibmvpcmachinetemplates.yaml b/config/crd/bases/infrastructure.cluster.x-k8s.io_ibmvpcmachinetemplates.yaml index 328aa19dc..e1b3fd5b9 100644 --- a/config/crd/bases/infrastructure.cluster.x-k8s.io_ibmvpcmachinetemplates.yaml +++ b/config/crd/bases/infrastructure.cluster.x-k8s.io_ibmvpcmachinetemplates.yaml @@ -179,6 +179,87 @@ spec: type: object type: object served: true + storage: false + - name: v1beta1 + schema: + openAPIV3Schema: + description: IBMVPCMachineTemplate is the Schema for the ibmvpcmachinetemplates + API + 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: IBMVPCMachineTemplateSpec defines the desired state of IBMVPCMachineTemplate + properties: + template: + description: IBMVPCMachineTemplateResource describes the data needed + to create am IBMVPCMachine from a template + properties: + spec: + description: Spec is the specification of the desired behavior + of the machine. + properties: + image: + description: 'Image is the id of OS image which would be install + on the instance. Example: r134-ed3f775f-ad7e-4e37-ae62-7199b4988b00 + TODO: allow user to specify a image name is much reasonable. + Example: ibm-ubuntu-18-04-1-minimal-amd64-2' + type: string + name: + description: Name of the instance + type: string + primaryNetworkInterface: + description: PrimaryNetworkInterface is required to specify + subnet + properties: + subnet: + description: Subnet ID of the network interface + type: string + type: object + profile: + description: "Profile indicates the flavor of instance. Example: + bx2-8x32\tmeans 8 vCPUs\t32 GB RAM\t16 Gbps TODO: add a + reference link of profile" + type: string + providerID: + description: ProviderID is the unique identifier as specified + by the cloud provider. + type: string + sshKeys: + description: SSHKeys is the SSH pub keys that will be used + to access VM + items: + type: string + type: array + zone: + description: 'Zone is the place where the instance should + be created. Example: us-south-3 TODO: Actually zone is transparent + to user. The field user can access is location. Example: + Dallas 2' + type: string + required: + - image + - profile + - zone + type: object + required: + - spec + type: object + required: + - template + type: object + type: object + served: true storage: true status: acceptedNames: diff --git a/config/crd/kustomization.yaml b/config/crd/kustomization.yaml index 89b0ce639..746c1a1bd 100644 --- a/config/crd/kustomization.yaml +++ b/config/crd/kustomization.yaml @@ -3,6 +3,7 @@ kind: Kustomization commonLabels: cluster.x-k8s.io/v1alpha3: v1alpha3 cluster.x-k8s.io/v1alpha4: v1alpha4 + cluster.x-k8s.io/v1beta1: v1beta1 # This kustomization.yaml is not intended to be run by itself, # since it depends on service name and namespace that are out of this kustomize package. @@ -24,6 +25,7 @@ patchesStrategicMerge: #- patches/webhook_in_ibmpowervsclusters.yaml #- patches/webhook_in_ibmpowervsmachines.yaml #- patches/webhook_in_ibmpowervsmachinetemplates.yaml +#- patches/webhook_in_ibmvpcmachinetemplates.yaml # +kubebuilder:scaffold:crdkustomizewebhookpatch # [CERTMANAGER] To enable webhook, uncomment all the sections with [CERTMANAGER] prefix. @@ -33,6 +35,7 @@ patchesStrategicMerge: #- patches/cainjection_in_ibmpowervsclusters.yaml #- patches/cainjection_in_ibmpowervsmachines.yaml #- patches/cainjection_in_ibmpowervsmachinetemplates.yaml +#- patches/cainjection_in_ibmvpcmachinetemplates.yaml # +kubebuilder:scaffold:crdkustomizecainjectionpatch # the following config is for teaching kustomize how to do kustomization for CRDs. diff --git a/config/crd/patches/cainjection_in_ibmvpcmachinetemplates.yaml b/config/crd/patches/cainjection_in_ibmvpcmachinetemplates.yaml new file mode 100644 index 000000000..c801df7b2 --- /dev/null +++ b/config/crd/patches/cainjection_in_ibmvpcmachinetemplates.yaml @@ -0,0 +1,8 @@ +# The following patch adds a directive for certmanager to inject CA into the CRD +# CRD conversion requires k8s 1.13 or later. +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + annotations: + cert-manager.io/inject-ca-from: $(CERTIFICATE_NAMESPACE)/$(CERTIFICATE_NAME) + name: ibmvpcmachinetemplates.infrastructure.cluster.x-k8s.io diff --git a/config/crd/patches/webhook_in_ibmvpcmachinetemplates.yaml b/config/crd/patches/webhook_in_ibmvpcmachinetemplates.yaml new file mode 100644 index 000000000..52678cf28 --- /dev/null +++ b/config/crd/patches/webhook_in_ibmvpcmachinetemplates.yaml @@ -0,0 +1,17 @@ +# The following patch enables conversion webhook for CRD +# CRD conversion requires k8s 1.13 or later. +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + name: ibmvpcmachinetemplates.infrastructure.cluster.x-k8s.io +spec: + conversion: + strategy: Webhook + webhookClientConfig: + # this is "\n" used as a placeholder, otherwise it will be rejected by the apiserver for being blank, + # but we're going to set it later using the cert-manager (or potentially a patch if not using cert-manager) + caBundle: Cg== + service: + namespace: system + name: webhook-service + path: /convert diff --git a/config/rbac/ibmvpcmachinetemplate_editor_role.yaml b/config/rbac/ibmvpcmachinetemplate_editor_role.yaml new file mode 100644 index 000000000..a5db47291 --- /dev/null +++ b/config/rbac/ibmvpcmachinetemplate_editor_role.yaml @@ -0,0 +1,24 @@ +# permissions for end users to edit ibmvpcmachinetemplates. +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: ibmvpcmachinetemplate-editor-role +rules: +- apiGroups: + - infrastructure.cluster.x-k8s.io + resources: + - ibmvpcmachinetemplates + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - infrastructure.cluster.x-k8s.io + resources: + - ibmvpcmachinetemplates/status + verbs: + - get diff --git a/config/rbac/ibmvpcmachinetemplate_viewer_role.yaml b/config/rbac/ibmvpcmachinetemplate_viewer_role.yaml new file mode 100644 index 000000000..1112bd946 --- /dev/null +++ b/config/rbac/ibmvpcmachinetemplate_viewer_role.yaml @@ -0,0 +1,20 @@ +# permissions for end users to view ibmvpcmachinetemplates. +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: ibmvpcmachinetemplate-viewer-role +rules: +- apiGroups: + - infrastructure.cluster.x-k8s.io + resources: + - ibmvpcmachinetemplates + verbs: + - get + - list + - watch +- apiGroups: + - infrastructure.cluster.x-k8s.io + resources: + - ibmvpcmachinetemplates/status + verbs: + - get diff --git a/config/samples/infrastructure_v1alpha4_ibmpowervscluster.yaml b/config/samples/infrastructure_v1alpha4_ibmpowervscluster.yaml new file mode 100644 index 000000000..53ff5b86f --- /dev/null +++ b/config/samples/infrastructure_v1alpha4_ibmpowervscluster.yaml @@ -0,0 +1,11 @@ +apiVersion: infrastructure.cluster.x-k8s.io/v1alpha4 +kind: IBMPowerVSCluster +metadata: + name: ibmpowervscluster-sample +spec: + controlPlaneEndpoint: + host: 158.175.162.122 + port: 6443 + network: + name: capi-test-3 + serviceInstanceID: 7845d372-d4e1-46b8-91fc-41051c984601 diff --git a/config/samples/infrastructure_v1alpha4_ibmpowervsmachine.yaml b/config/samples/infrastructure_v1alpha4_ibmpowervsmachine.yaml new file mode 100644 index 000000000..70a9384a4 --- /dev/null +++ b/config/samples/infrastructure_v1alpha4_ibmpowervsmachine.yaml @@ -0,0 +1,15 @@ +apiVersion: infrastructure.cluster.x-k8s.io/v1alpha4 +kind: IBMPowerVSMachine +metadata: + name: ibmpowervsmachine-sample +spec: + image: + name: capibm-powervs-centos-8-1-22-4 + memory: "8" + network: + name: capi-test-3 + procType: shared + processors: "0.25" + serviceInstanceID: 7845d372-d4e1-46b8-91fc-41051c984601 + sshKey: sample-pub-key + sysType: s922 diff --git a/config/samples/infrastructure_v1alpha4_ibmpowervsmachinetemplate.yaml b/config/samples/infrastructure_v1alpha4_ibmpowervsmachinetemplate.yaml new file mode 100644 index 000000000..bca482f09 --- /dev/null +++ b/config/samples/infrastructure_v1alpha4_ibmpowervsmachinetemplate.yaml @@ -0,0 +1,17 @@ +apiVersion: infrastructure.cluster.x-k8s.io/v1alpha4 +kind: IBMPowerVSMachineTemplate +metadata: + name: ibmpowervsmachinetemplate-sample +spec: + template: + spec: + image: + name: capibm-powervs-centos-8-1-22-4 + memory: "8" + network: + name: capi-test-3 + procType: shared + processors: "0.25" + serviceInstanceID: 7845d372-d4e1-46b8-91fc-41051c984601 + sshKey: sample-pub-key + sysType: s922 diff --git a/config/samples/infrastructure_v1alpha4_ibmvpccluster.yaml b/config/samples/infrastructure_v1alpha4_ibmvpccluster.yaml new file mode 100644 index 000000000..f1d8bb830 --- /dev/null +++ b/config/samples/infrastructure_v1alpha4_ibmvpccluster.yaml @@ -0,0 +1,9 @@ +apiVersion: infrastructure.cluster.x-k8s.io/v1alpha4 +kind: IBMVPCCluster +metadata: + name: ibmvpccluster-sample +spec: + region: us-south-1 + resourceGroup: 4f15679623607b855b1a27a67f20e1c7 + vpc: ibm-vpc-1 + zone: us-south-1 diff --git a/config/samples/infrastructure_v1alpha4_ibmvpcmachine.yaml b/config/samples/infrastructure_v1alpha4_ibmvpcmachine.yaml new file mode 100644 index 000000000..0181ac83e --- /dev/null +++ b/config/samples/infrastructure_v1alpha4_ibmvpcmachine.yaml @@ -0,0 +1,10 @@ +apiVersion: infrastructure.cluster.x-k8s.io/v1alpha4 +kind: IBMVPCMachine +metadata: + name: ibmvpcmachine-sample +spec: + image: r134-ea84bbec-7986-4ff5-8489-d9ec34611dd4 + profile: bx2-4x16 + sshKeys: + - r134-2a82b725-e570-43d3-8b23-9539e8641944 + zone: us-south-1 diff --git a/config/samples/infrastructure_v1alpha4_ibmvpcmachinetemplate.yaml b/config/samples/infrastructure_v1alpha4_ibmvpcmachinetemplate.yaml new file mode 100644 index 000000000..8c85dd61f --- /dev/null +++ b/config/samples/infrastructure_v1alpha4_ibmvpcmachinetemplate.yaml @@ -0,0 +1,12 @@ +apiVersion: infrastructure.cluster.x-k8s.io/v1alpha4 +kind: IBMVPCMachineTemplate +metadata: + name: ibmvpcmachinetemplate-sample +spec: + template: + spec: + image: r134-ea84bbec-7986-4ff5-8489-d9ec34611dd4 + profile: bx2-4x16 + sshKeys: + - r134-2a82b725-e570-43d3-8b23-9539e8641944 + zone: us-south-1 diff --git a/config/samples/infrastructure_v1beta1_ibmpowervscluster.yaml b/config/samples/infrastructure_v1beta1_ibmpowervscluster.yaml new file mode 100644 index 000000000..5e6a9c4c9 --- /dev/null +++ b/config/samples/infrastructure_v1beta1_ibmpowervscluster.yaml @@ -0,0 +1,11 @@ +apiVersion: infrastructure.cluster.x-k8s.io/v1beta1 +kind: IBMPowerVSCluster +metadata: + name: ibmpowervscluster-sample +spec: + controlPlaneEndpoint: + host: 158.175.162.122 + port: 6443 + network: + name: capi-test-3 + serviceInstanceID: 7845d372-d4e1-46b8-91fc-41051c984601 diff --git a/config/samples/infrastructure_v1beta1_ibmpowervsmachine.yaml b/config/samples/infrastructure_v1beta1_ibmpowervsmachine.yaml new file mode 100644 index 000000000..917996970 --- /dev/null +++ b/config/samples/infrastructure_v1beta1_ibmpowervsmachine.yaml @@ -0,0 +1,15 @@ +apiVersion: infrastructure.cluster.x-k8s.io/v1beta1 +kind: IBMPowerVSMachine +metadata: + name: ibmpowervsmachine-sample +spec: + image: + name: capibm-powervs-centos-8-1-22-4 + memory: "8" + network: + name: capi-test-3 + procType: shared + processors: "0.25" + serviceInstanceID: 7845d372-d4e1-46b8-91fc-41051c984601 + sshKey: sample-pub-key + sysType: s922 diff --git a/config/samples/infrastructure_v1beta1_ibmpowervsmachinetemplate.yaml b/config/samples/infrastructure_v1beta1_ibmpowervsmachinetemplate.yaml new file mode 100644 index 000000000..9d580050c --- /dev/null +++ b/config/samples/infrastructure_v1beta1_ibmpowervsmachinetemplate.yaml @@ -0,0 +1,17 @@ +apiVersion: infrastructure.cluster.x-k8s.io/v1beta1 +kind: IBMPowerVSMachineTemplate +metadata: + name: ibmpowervsmachinetemplate-sample +spec: + template: + spec: + image: + name: capibm-powervs-centos-8-1-22-4 + memory: "8" + network: + name: capi-test-3 + procType: shared + processors: "0.25" + serviceInstanceID: 7845d372-d4e1-46b8-91fc-41051c984601 + sshKey: sample-pub-key + sysType: s922 diff --git a/config/samples/infrastructure_v1beta1_ibmvpccluster.yaml b/config/samples/infrastructure_v1beta1_ibmvpccluster.yaml new file mode 100644 index 000000000..af2c94abd --- /dev/null +++ b/config/samples/infrastructure_v1beta1_ibmvpccluster.yaml @@ -0,0 +1,9 @@ +apiVersion: infrastructure.cluster.x-k8s.io/v1beta1 +kind: IBMVPCCluster +metadata: + name: ibmvpccluster-sample +spec: + region: us-south-1 + resourceGroup: 4f15679623607b855b1a27a67f20e1c7 + vpc: ibm-vpc-1 + zone: us-south-1 diff --git a/config/samples/infrastructure_v1beta1_ibmvpcmachine.yaml b/config/samples/infrastructure_v1beta1_ibmvpcmachine.yaml new file mode 100644 index 000000000..4d4dba7f4 --- /dev/null +++ b/config/samples/infrastructure_v1beta1_ibmvpcmachine.yaml @@ -0,0 +1,10 @@ +apiVersion: infrastructure.cluster.x-k8s.io/v1beta1 +kind: IBMVPCMachine +metadata: + name: ibmvpcmachine-sample +spec: + image: r134-ea84bbec-7986-4ff5-8489-d9ec34611dd4 + profile: bx2-4x16 + sshKeys: + - r134-2a82b725-e570-43d3-8b23-9539e8641944 + zone: us-south-1 diff --git a/config/samples/infrastructure_v1beta1_ibmvpcmachinetemplate.yaml b/config/samples/infrastructure_v1beta1_ibmvpcmachinetemplate.yaml new file mode 100644 index 000000000..8c72bf776 --- /dev/null +++ b/config/samples/infrastructure_v1beta1_ibmvpcmachinetemplate.yaml @@ -0,0 +1,12 @@ +apiVersion: infrastructure.cluster.x-k8s.io/v1beta1 +kind: IBMVPCMachineTemplate +metadata: + name: ibmvpcmachinetemplate-sample +spec: + template: + spec: + image: r134-ea84bbec-7986-4ff5-8489-d9ec34611dd4 + profile: bx2-4x16 + sshKeys: + - r134-2a82b725-e570-43d3-8b23-9539e8641944 + zone: us-south-1 diff --git a/controllers/ibmpowervscluster_controller.go b/controllers/ibmpowervscluster_controller.go index 5e0bc5ad8..b5297bea5 100644 --- a/controllers/ibmpowervscluster_controller.go +++ b/controllers/ibmpowervscluster_controller.go @@ -30,7 +30,7 @@ import ( "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" "sigs.k8s.io/controller-runtime/pkg/reconcile" - "sigs.k8s.io/cluster-api-provider-ibmcloud/api/v1alpha4" + "sigs.k8s.io/cluster-api-provider-ibmcloud/api/v1beta1" "sigs.k8s.io/cluster-api-provider-ibmcloud/cloud/scope" ) @@ -49,7 +49,7 @@ func (r *IBMPowerVSClusterReconciler) Reconcile(ctx context.Context, req ctrl.Re log := r.Log.WithValues("ibmpowervscluster", req.NamespacedName) // Fetch the IBMPowerVSCluster instance - ibmCluster := &v1alpha4.IBMPowerVSCluster{} + ibmCluster := &v1beta1.IBMPowerVSCluster{} err := r.Get(ctx, req.NamespacedName, ibmCluster) if err != nil { if apierrors.IsNotFound(err) { @@ -95,8 +95,8 @@ func (r *IBMPowerVSClusterReconciler) Reconcile(ctx context.Context, req ctrl.Re } func (r *IBMPowerVSClusterReconciler) reconcile(ctx context.Context, clusterScope *scope.PowerVSClusterScope) (ctrl.Result, error) { - if !controllerutil.ContainsFinalizer(clusterScope.IBMPowerVSCluster, v1alpha4.IBMPowerVSClusterFinalizer) { - controllerutil.AddFinalizer(clusterScope.IBMPowerVSCluster, v1alpha4.IBMPowerVSClusterFinalizer) + if !controllerutil.ContainsFinalizer(clusterScope.IBMPowerVSCluster, v1beta1.IBMPowerVSClusterFinalizer) { + controllerutil.AddFinalizer(clusterScope.IBMPowerVSCluster, v1beta1.IBMPowerVSClusterFinalizer) return ctrl.Result{}, nil } @@ -106,13 +106,13 @@ func (r *IBMPowerVSClusterReconciler) reconcile(ctx context.Context, clusterScop } func (r *IBMPowerVSClusterReconciler) reconcileDelete(clusterScope *scope.PowerVSClusterScope) (ctrl.Result, error) { - controllerutil.RemoveFinalizer(clusterScope.IBMPowerVSCluster, v1alpha4.IBMPowerVSClusterFinalizer) + controllerutil.RemoveFinalizer(clusterScope.IBMPowerVSCluster, v1beta1.IBMPowerVSClusterFinalizer) return ctrl.Result{}, nil } // SetupWithManager creates a new IBMPowerVSCluster controller for a manager. func (r *IBMPowerVSClusterReconciler) SetupWithManager(mgr ctrl.Manager) error { return ctrl.NewControllerManagedBy(mgr). - For(&v1alpha4.IBMPowerVSCluster{}). + For(&v1beta1.IBMPowerVSCluster{}). Complete(r) } diff --git a/controllers/ibmpowervscluster_controller_test.go b/controllers/ibmpowervscluster_controller_test.go index ea6d98dd9..5d979ef39 100644 --- a/controllers/ibmpowervscluster_controller_test.go +++ b/controllers/ibmpowervscluster_controller_test.go @@ -24,7 +24,7 @@ import ( ctrl "sigs.k8s.io/controller-runtime" "sigs.k8s.io/controller-runtime/pkg/client" - "sigs.k8s.io/cluster-api-provider-ibmcloud/api/v1alpha4" + "sigs.k8s.io/cluster-api-provider-ibmcloud/api/v1beta1" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" @@ -41,7 +41,7 @@ var _ = Describe("IBMPowerVSClusterReconciler", func() { Log: klogr.New(), } - instance := &v1alpha4.IBMPowerVSCluster{ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "default"}} + instance := &v1beta1.IBMPowerVSCluster{ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "default"}} // Create the IBMPowerVSCluster object and expect the Reconcile to be created Expect(k8sClient.Create(ctx, instance)).To(Succeed()) diff --git a/controllers/ibmpowervsmachine_controller.go b/controllers/ibmpowervsmachine_controller.go index 5ae67ed1e..831fc1073 100644 --- a/controllers/ibmpowervsmachine_controller.go +++ b/controllers/ibmpowervsmachine_controller.go @@ -35,7 +35,7 @@ import ( "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" - "sigs.k8s.io/cluster-api-provider-ibmcloud/api/v1alpha4" + "sigs.k8s.io/cluster-api-provider-ibmcloud/api/v1beta1" "sigs.k8s.io/cluster-api-provider-ibmcloud/cloud/scope" ) @@ -53,7 +53,7 @@ type IBMPowerVSMachineReconciler struct { func (r *IBMPowerVSMachineReconciler) Reconcile(ctx context.Context, req ctrl.Request) (_ ctrl.Result, reterr error) { log := r.Log.WithValues("ibmpowervsmachine", req.NamespacedName) - ibmPowerVSMachine := &v1alpha4.IBMPowerVSMachine{} + ibmPowerVSMachine := &v1beta1.IBMPowerVSMachine{} err := r.Get(ctx, req.NamespacedName, ibmPowerVSMachine) if err != nil { if apierrors.IsNotFound(err) { @@ -81,7 +81,7 @@ func (r *IBMPowerVSMachineReconciler) Reconcile(ctx context.Context, req ctrl.Re log = log.WithValues("cluster", cluster.Name) - ibmCluster := &v1alpha4.IBMPowerVSCluster{} + ibmCluster := &v1beta1.IBMPowerVSCluster{} ibmPowerVSClusterName := client.ObjectKey{ Namespace: ibmPowerVSMachine.Namespace, Name: cluster.Spec.InfrastructureRef.Name, @@ -123,7 +123,7 @@ func (r *IBMPowerVSMachineReconciler) Reconcile(ctx context.Context, req ctrl.Re // SetupWithManager creates a new IBMPowerVSMachine controller for a manager. func (r *IBMPowerVSMachineReconciler) SetupWithManager(mgr ctrl.Manager) error { return ctrl.NewControllerManagedBy(mgr). - For(&v1alpha4.IBMPowerVSMachine{}). + For(&v1beta1.IBMPowerVSMachine{}). Complete(r) } @@ -133,7 +133,7 @@ func (r *IBMPowerVSMachineReconciler) reconcileDelete(scope *scope.PowerVSMachin defer func() { if reterr == nil { // VSI is deleted so remove the finalizer. - controllerutil.RemoveFinalizer(scope.IBMPowerVSMachine, v1alpha4.IBMPowerVSMachineFinalizer) + controllerutil.RemoveFinalizer(scope.IBMPowerVSMachine, v1beta1.IBMPowerVSMachineFinalizer) } }() @@ -155,7 +155,7 @@ func (r *IBMPowerVSMachineReconciler) getOrCreate(scope *scope.PowerVSMachineSco } func (r *IBMPowerVSMachineReconciler) reconcileNormal(ctx context.Context, machineScope *scope.PowerVSMachineScope) (ctrl.Result, error) { - controllerutil.AddFinalizer(machineScope.IBMPowerVSMachine, v1alpha4.IBMPowerVSMachineFinalizer) + controllerutil.AddFinalizer(machineScope.IBMPowerVSMachine, v1beta1.IBMPowerVSMachineFinalizer) // Make sure bootstrap data is available and populated. if machineScope.Machine.Spec.Bootstrap.DataSecretName == nil { diff --git a/controllers/ibmpowervsmachine_controller_test.go b/controllers/ibmpowervsmachine_controller_test.go index cbb09a47b..69c9fad3e 100644 --- a/controllers/ibmpowervsmachine_controller_test.go +++ b/controllers/ibmpowervsmachine_controller_test.go @@ -24,7 +24,7 @@ import ( ctrl "sigs.k8s.io/controller-runtime" "sigs.k8s.io/controller-runtime/pkg/client" - "sigs.k8s.io/cluster-api-provider-ibmcloud/api/v1alpha4" + "sigs.k8s.io/cluster-api-provider-ibmcloud/api/v1beta1" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" @@ -40,7 +40,7 @@ var _ = Describe("IBMPowerVSMachineReconciler", func() { } By("Calling reconcile") ctx := context.Background() - instance := &v1alpha4.IBMPowerVSMachine{ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "default"}} + instance := &v1beta1.IBMPowerVSMachine{ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "default"}} result, err := reconciler.Reconcile(ctx, ctrl.Request{ NamespacedName: client.ObjectKey{ Namespace: instance.Namespace, diff --git a/controllers/ibmvpccluster_controller.go b/controllers/ibmvpccluster_controller.go index c0d7032c5..7a9d4cba9 100644 --- a/controllers/ibmvpccluster_controller.go +++ b/controllers/ibmvpccluster_controller.go @@ -27,7 +27,7 @@ import ( apierrors "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/runtime" - clusterv1 "sigs.k8s.io/cluster-api/api/v1alpha4" + clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1" "sigs.k8s.io/cluster-api/util" "sigs.k8s.io/cluster-api/util/predicates" ctrl "sigs.k8s.io/controller-runtime" @@ -35,7 +35,7 @@ import ( "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" "sigs.k8s.io/controller-runtime/pkg/reconcile" - infrastructurev1alpha3 "sigs.k8s.io/cluster-api-provider-ibmcloud/api/v1alpha3" + infrastructurev1beta1 "sigs.k8s.io/cluster-api-provider-ibmcloud/api/v1beta1" "sigs.k8s.io/cluster-api-provider-ibmcloud/cloud/scope" "sigs.k8s.io/cluster-api-provider-ibmcloud/pkg" ) @@ -57,7 +57,7 @@ func (r *IBMVPCClusterReconciler) Reconcile(ctx context.Context, req ctrl.Reques // your logic here // Fetch the IBMVPCCluster instance - ibmCluster := &infrastructurev1alpha3.IBMVPCCluster{} + ibmCluster := &infrastructurev1beta1.IBMVPCCluster{} err := r.Get(ctx, req.NamespacedName, ibmCluster) if err != nil { if apierrors.IsNotFound(err) { @@ -111,8 +111,8 @@ func (r *IBMVPCClusterReconciler) Reconcile(ctx context.Context, req ctrl.Reques } func (r *IBMVPCClusterReconciler) reconcile(ctx context.Context, clusterScope *scope.ClusterScope) (ctrl.Result, error) { - if !controllerutil.ContainsFinalizer(clusterScope.IBMVPCCluster, infrastructurev1alpha3.ClusterFinalizer) { - controllerutil.AddFinalizer(clusterScope.IBMVPCCluster, infrastructurev1alpha3.ClusterFinalizer) + if !controllerutil.ContainsFinalizer(clusterScope.IBMVPCCluster, infrastructurev1beta1.ClusterFinalizer) { + controllerutil.AddFinalizer(clusterScope.IBMVPCCluster, infrastructurev1beta1.ClusterFinalizer) //_ = r.Update(ctx, clusterScope.IBMVPCCluster) return ctrl.Result{}, nil } @@ -122,7 +122,7 @@ func (r *IBMVPCClusterReconciler) reconcile(ctx context.Context, clusterScope *s return ctrl.Result{}, errors.Wrapf(err, "failed to reconcile VPC for IBMVPCCluster %s/%s", clusterScope.IBMVPCCluster.Namespace, clusterScope.IBMVPCCluster.Name) } if vpc != nil { - clusterScope.IBMVPCCluster.Status.VPC = infrastructurev1alpha3.VPC{ + clusterScope.IBMVPCCluster.Status.VPC = infrastructurev1beta1.VPC{ ID: *vpc.ID, Name: *vpc.Name, } @@ -140,7 +140,7 @@ func (r *IBMVPCClusterReconciler) reconcile(ctx context.Context, clusterScope *s Port: 6443, } - clusterScope.IBMVPCCluster.Status.APIEndpoint = infrastructurev1alpha3.APIEndpoint{ + clusterScope.IBMVPCCluster.Status.VPCEndpoint = infrastructurev1beta1.VPCEndpoint{ Address: fip.Address, FIPID: fip.ID, } @@ -153,7 +153,7 @@ func (r *IBMVPCClusterReconciler) reconcile(ctx context.Context, clusterScope *s return ctrl.Result{}, errors.Wrapf(err, "failed to reconcile Subnet for IBMVPCCluster %s/%s", clusterScope.IBMVPCCluster.Namespace, clusterScope.IBMVPCCluster.Name) } if subnet != nil { - clusterScope.IBMVPCCluster.Status.Subnet = infrastructurev1alpha3.Subnet{ + clusterScope.IBMVPCCluster.Status.Subnet = infrastructurev1beta1.Subnet{ Ipv4CidrBlock: subnet.Ipv4CIDRBlock, Name: subnet.Name, ID: subnet.ID, @@ -191,14 +191,14 @@ func (r *IBMVPCClusterReconciler) reconcileDelete(clusterScope *scope.ClusterSco if err := clusterScope.DeleteVPC(); err != nil { return ctrl.Result{}, errors.Wrap(err, "failed to delete VPC") } - controllerutil.RemoveFinalizer(clusterScope.IBMVPCCluster, infrastructurev1alpha3.ClusterFinalizer) + controllerutil.RemoveFinalizer(clusterScope.IBMVPCCluster, infrastructurev1beta1.ClusterFinalizer) return ctrl.Result{}, nil } // SetupWithManager creates a new IBMVPCCluster controller for a manager. func (r *IBMVPCClusterReconciler) SetupWithManager(mgr ctrl.Manager) error { return ctrl.NewControllerManagedBy(mgr). - For(&infrastructurev1alpha3.IBMVPCCluster{}). + For(&infrastructurev1beta1.IBMVPCCluster{}). WithEventFilter(predicates.ResourceIsNotExternallyManaged(ctrl.LoggerFrom(context.TODO()))). Complete(r) } diff --git a/controllers/ibmvpcmachine_controller.go b/controllers/ibmvpcmachine_controller.go index e9d9d3dbe..f3ff7abea 100644 --- a/controllers/ibmvpcmachine_controller.go +++ b/controllers/ibmvpcmachine_controller.go @@ -30,13 +30,13 @@ import ( apierrors "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/runtime" "k8s.io/utils/pointer" - clusterv1 "sigs.k8s.io/cluster-api/api/v1alpha4" + clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1" "sigs.k8s.io/cluster-api/util" ctrl "sigs.k8s.io/controller-runtime" "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" - infrastructurev1alpha3 "sigs.k8s.io/cluster-api-provider-ibmcloud/api/v1alpha3" + infrastructurev1beta1 "sigs.k8s.io/cluster-api-provider-ibmcloud/api/v1beta1" "sigs.k8s.io/cluster-api-provider-ibmcloud/cloud/scope" "sigs.k8s.io/cluster-api-provider-ibmcloud/pkg" ) @@ -60,7 +60,7 @@ func (r *IBMVPCMachineReconciler) Reconcile(ctx context.Context, req ctrl.Reques // Fetch the IBMVPCMachine instance. - ibmVpcMachine := &infrastructurev1alpha3.IBMVPCMachine{} + ibmVpcMachine := &infrastructurev1beta1.IBMVPCMachine{} err := r.Get(ctx, req.NamespacedName, ibmVpcMachine) if err != nil { if apierrors.IsNotFound(err) { @@ -87,7 +87,7 @@ func (r *IBMVPCMachineReconciler) Reconcile(ctx context.Context, req ctrl.Reques log = log.WithValues("cluster", cluster.Name) - ibmCluster := &infrastructurev1alpha3.IBMVPCCluster{} + ibmCluster := &infrastructurev1beta1.IBMVPCCluster{} ibmVpcClusterName := client.ObjectKey{ Namespace: ibmVpcMachine.Namespace, Name: cluster.Spec.InfrastructureRef.Name, @@ -137,12 +137,12 @@ func (r *IBMVPCMachineReconciler) Reconcile(ctx context.Context, req ctrl.Reques // SetupWithManager creates a new IBMVPCMachine controller for a manager. func (r *IBMVPCMachineReconciler) SetupWithManager(mgr ctrl.Manager) error { return ctrl.NewControllerManagedBy(mgr). - For(&infrastructurev1alpha3.IBMVPCMachine{}). + For(&infrastructurev1beta1.IBMVPCMachine{}). Complete(r) } func (r *IBMVPCMachineReconciler) reconcileNormal(ctx context.Context, machineScope *scope.MachineScope) (ctrl.Result, error) { - controllerutil.AddFinalizer(machineScope.IBMVPCMachine, infrastructurev1alpha3.MachineFinalizer) + controllerutil.AddFinalizer(machineScope.IBMVPCMachine, infrastructurev1beta1.MachineFinalizer) // Make sure bootstrap data is available and populated. if machineScope.Machine.Spec.Bootstrap.DataSecretName == nil { @@ -151,7 +151,7 @@ func (r *IBMVPCMachineReconciler) reconcileNormal(ctx context.Context, machineSc } if machineScope.IBMVPCCluster.Status.Subnet.ID != nil { - machineScope.IBMVPCMachine.Spec.PrimaryNetworkInterface = infrastructurev1alpha3.NetworkInterface{ + machineScope.IBMVPCMachine.Spec.PrimaryNetworkInterface = infrastructurev1beta1.NetworkInterface{ Subnet: *machineScope.IBMVPCCluster.Status.Subnet.ID, } } @@ -173,7 +173,7 @@ func (r *IBMVPCMachineReconciler) reconcileNormal(ctx context.Context, machineSc machineScope.IBMVPCMachine.Spec.ProviderID = pointer.StringPtr(fmt.Sprintf("ibmvpc://%s/%s", machineScope.Machine.Spec.ClusterName, machineScope.IBMVPCMachine.Name)) if ok { options := &vpcv1.AddInstanceNetworkInterfaceFloatingIPOptions{} - options.SetID(*machineScope.IBMVPCCluster.Status.APIEndpoint.FIPID) + options.SetID(*machineScope.IBMVPCCluster.Status.VPCEndpoint.FIPID) options.SetInstanceID(*instance.ID) options.SetNetworkInterfaceID(*instance.PrimaryNetworkInterface.ID) floatingIP, _, err := @@ -209,7 +209,7 @@ func (r *IBMVPCMachineReconciler) reconcileDelete(scope *scope.MachineScope) (_ defer func() { if reterr == nil { // VSI is deleted so remove the finalizer. - controllerutil.RemoveFinalizer(scope.IBMVPCMachine, infrastructurev1alpha3.MachineFinalizer) + controllerutil.RemoveFinalizer(scope.IBMVPCMachine, infrastructurev1beta1.MachineFinalizer) } }() diff --git a/controllers/suite_test.go b/controllers/suite_test.go index 6dbe409f6..4c33ab50b 100644 --- a/controllers/suite_test.go +++ b/controllers/suite_test.go @@ -23,11 +23,11 @@ import ( "github.com/onsi/ginkgo/reporters" "k8s.io/client-go/kubernetes/scheme" "k8s.io/client-go/rest" - clusterv1 "sigs.k8s.io/cluster-api/api/v1alpha4" + clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1" "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/controller-runtime/pkg/envtest" - infrastructurev1alpha4 "sigs.k8s.io/cluster-api-provider-ibmcloud/api/v1alpha4" + infrastructurev1beta1 "sigs.k8s.io/cluster-api-provider-ibmcloud/api/v1beta1" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" @@ -61,7 +61,7 @@ var _ = BeforeSuite(func(done Done) { Expect(cfg).ToNot(BeNil()) Expect(clusterv1.AddToScheme(scheme.Scheme)).To(Succeed()) - Expect(infrastructurev1alpha4.AddToScheme(scheme.Scheme)).To(Succeed()) + Expect(infrastructurev1beta1.AddToScheme(scheme.Scheme)).To(Succeed()) // +kubebuilder:scaffold:scheme diff --git a/go.mod b/go.mod index c050f2098..86ce600dc 100644 --- a/go.mod +++ b/go.mod @@ -13,13 +13,12 @@ require ( github.com/onsi/gomega v1.17.0 github.com/pkg/errors v0.9.1 github.com/ppc64le-cloud/powervs-utils v0.0.0-20210106101518-5d3f965b0344 - k8s.io/api v0.21.7 - k8s.io/apimachinery v0.21.7 - k8s.io/client-go v0.21.7 + k8s.io/api v0.22.2 + k8s.io/apimachinery v0.22.2 + k8s.io/client-go v0.22.2 k8s.io/klog/v2 v2.9.0 - k8s.io/utils v0.0.0-20210802155522-efc7438f0176 - sigs.k8s.io/cluster-api v0.0.0-20210526191338-0e1629b75111 - sigs.k8s.io/controller-runtime v0.9.7 + k8s.io/kube-openapi v0.0.0-20211110012726-3cc51fd1e909 // indirect + k8s.io/utils v0.0.0-20210930125809-cb0fa318a74b + sigs.k8s.io/cluster-api v1.0.1 + sigs.k8s.io/controller-runtime v0.10.3 ) - -replace sigs.k8s.io/cluster-api => sigs.k8s.io/cluster-api v0.4.4 diff --git a/go.sum b/go.sum index 1fd073e13..201692475 100644 --- a/go.sum +++ b/go.sum @@ -17,8 +17,13 @@ cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKP cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg= cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8= -cloud.google.com/go v0.81.0 h1:at8Tk2zUz63cLPR0JPWm5vp77pEZmzxEQBEfRKn1VV8= cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0= +cloud.google.com/go v0.83.0/go.mod h1:Z7MJUsANfY0pYPdw0lbnivPx4/vhy/e2FEkSkF7vAVY= +cloud.google.com/go v0.84.0/go.mod h1:RazrYuxIK6Kb7YrzzhPoLmCVzl7Sup4NrbKPg8KHSUM= +cloud.google.com/go v0.87.0/go.mod h1:TpDYlFy7vuLzZMMZ+B6iRiELaY7z/gJPaqbMx6mlWcY= +cloud.google.com/go v0.90.0/go.mod h1:kRX0mNRHe0e2rC6oNakvwQqzyDmg57xJ+SZU1eT2aDQ= +cloud.google.com/go v0.93.3 h1:wPBktZFzYBcCZVARvwVKqH1uEj+aLXofJEtrb4oOsio= +cloud.google.com/go v0.93.3/go.mod h1:8utlLll2EF5XMAV15woO4lSbWQlk8rer9aLOfLh7+YI= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= @@ -28,6 +33,7 @@ cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM7 cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk= +cloud.google.com/go/firestore v1.6.0/go.mod h1:afJwI0vaXwAG54kI7A//lP/lSPDkQORQuMkv56TxEPU= cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= @@ -38,13 +44,14 @@ cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohl cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= +github.com/Azure/go-ansiterm v0.0.0-20210608223527-2377c96fe795/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= +github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= -github.com/Azure/go-autorest/autorest v0.11.12/go.mod h1:eipySxLmqSyC5s5k1CLupqet0PSENBEDP93LQ9a8QYw= -github.com/Azure/go-autorest/autorest/adal v0.9.5/go.mod h1:B7KF7jKIeC9Mct5spmyCB/A8CG/sEz1vwIRGv/bbw7A= +github.com/Azure/go-autorest/autorest v0.11.18/go.mod h1:dSiJPy22c3u0OtOKDNttNgqpNFY/GeWa7GH/Pz56QRA= +github.com/Azure/go-autorest/autorest/adal v0.9.13/go.mod h1:W/MM4U6nLxnIskrw4UwWzlHfGjwUS50aOsc/I3yuU8M= github.com/Azure/go-autorest/autorest/date v0.3.0/go.mod h1:BI0uouVdmngYNUzGWeSYnokU+TrmwEsOqdt8Y6sso74= github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k= -github.com/Azure/go-autorest/logger v0.2.0/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= +github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= @@ -81,6 +88,7 @@ github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hC github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= +github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= github.com/asaskevich/govalidator v0.0.0-20200108200545-475eaeb16496/go.mod h1:oGkLhpf+kjZl6xBf758TQhh5XrAeiJv/7FRz/2spLIg= @@ -88,6 +96,7 @@ github.com/asaskevich/govalidator v0.0.0-20200428143746-21a406dcc535/go.mod h1:o github.com/asaskevich/govalidator v0.0.0-20200907205600-7a23bdc65eef h1:46PFijGLmAjMPwCCCo7Jf0W6f9slllCkkv7vyc1yOSg= github.com/asaskevich/govalidator v0.0.0-20200907205600-7a23bdc65eef/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= github.com/aws/aws-sdk-go v1.34.28/go.mod h1:H7NKnBqNVzoTJpGfLrQkkD+ytBA93eiDYi/+8rV9s48= +github.com/benbjohnson/clock v1.0.3/go.mod h1:bGMdMPoPVvcYyt1gHDf4J2KE153Yf9BuiUKYMaxlTDM= github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8= github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= @@ -100,6 +109,8 @@ github.com/bketelsen/crypt v0.0.4/go.mod h1:aI6NrJ0pMGgvZKL1iVgXLnfIFJtfV+bKCoqO github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ= github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/certifi/gocertifi v0.0.0-20191021191039-0944d244cd40/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA= +github.com/certifi/gocertifi v0.0.0-20200922220541-2c3bb06c6054/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA= github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY= @@ -113,24 +124,23 @@ github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGX github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= -github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= +github.com/cockroachdb/datadriven v0.0.0-20200714090401-bf6692d28da5/go.mod h1:h6jFvWxBdQXxjopDMZyH2UVceIRfR84bdzbkoKrsWNo= +github.com/cockroachdb/errors v1.2.4/go.mod h1:rQD95gz6FARkaKkQXUksEje/d9a6wBJoCr5oaCLELYA= +github.com/cockroachdb/logtags v0.0.0-20190617123548-eb05cc24525f/go.mod h1:i/u985jwjWRlyHXQbwatDASoW0RMlZ/3i9yJHE2xLkI= github.com/coredns/caddy v1.1.0 h1:ezvsPrT/tA/7pYDBZxu0cT0VmWk75AfIaf6GSYCNMf0= github.com/coredns/caddy v1.1.0/go.mod h1:A6ntJQlAWuQfFlsd9hvigKbo2WS0VUs2l1e2F+BawD4= -github.com/coredns/corefile-migration v1.0.12 h1:TJGATo0YLQJVIKJZLajXE1IrhRFtYTR1cYsGIT1YNEk= -github.com/coredns/corefile-migration v1.0.12/go.mod h1:NJOI8ceUF/NTgEwtjD+TUq3/BnH/GF7WAM3RzCa3hBo= +github.com/coredns/corefile-migration v1.0.13 h1:ld5RswmH1xjqBUEukw4QxC1PakLNNoVlsZEV8FGwoV8= +github.com/coredns/corefile-migration v1.0.13/go.mod h1:XnhgULOEouimnzgn0t4WPuFDN2/PJQcTxdWKC5eXNGE= github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/go-oidc v2.1.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= -github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -145,7 +155,6 @@ github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDD github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= github.com/drone/envsubst/v2 v2.0.0-20210615175204-7bf45dbf5372/go.mod h1:esf2rsHFNlZlxsqsZDojNBcnNs5REqIvRrWRHqX0vEU= -github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= @@ -159,21 +168,24 @@ github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.m github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/evanphx/json-patch v0.5.2/go.mod h1:ZWS5hhDbVDyob71nXKNL0+PWn6ToqBHMikGIFbs31qQ= -github.com/evanphx/json-patch v4.5.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/evanphx/json-patch v4.11.0+incompatible h1:glyUF9yIYtMHzn8xaKw5rMhdWcwsYV8dZHIq5567/xs= github.com/evanphx/json-patch v4.11.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d/go.mod h1:ZZMPRZwes7CROmyNKgQzC3XPs6L/G2EJLHddWejkmf4= github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwoZc+/fpc= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/fatih/color v1.12.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM= +github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= +github.com/fatih/color v1.13.0 h1:8LOYc1KYPPmyKMuN8QV2DNRWNbLo6LZ0iLs8+mlH53w= +github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= +github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= github.com/form3tech-oss/jwt-go v3.2.3+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= +github.com/fsnotify/fsnotify v1.5.1 h1:mZcQUHVQUQWoPXXtuf9yuEXKudkV2sx1E06UadKWpgI= +github.com/fsnotify/fsnotify v1.5.1/go.mod h1:T3375wBYaZdLLcVNkcVbzGHY7f1l/uK5T5Ai1i3InKU= github.com/fvbommel/sortorder v1.0.1/go.mod h1:uk88iVf1ovNn1iLfgUVU2F9o5eO30ui720w+kxuqRs0= +github.com/getsentry/raven-go v0.2.0/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= @@ -232,7 +244,6 @@ github.com/go-openapi/loads v0.18.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf github.com/go-openapi/loads v0.19.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= github.com/go-openapi/loads v0.19.2/go.mod h1:QAskZPMX5V0C2gvfkGZzJlINuP7Hx/4+ix5jWFxsNPs= github.com/go-openapi/loads v0.19.3/go.mod h1:YVfqhUCdahYwR3f3iiwQLhicVRvLlU/WO5WPaZvcvSI= -github.com/go-openapi/loads v0.19.4/go.mod h1:zZVHonKd8DXyxyw4yfnVjPzBjIQcLt0CCsn0N0ZrQsk= github.com/go-openapi/loads v0.19.5/go.mod h1:dswLCAdonkRufe/gSUC3gN8nTSaB9uaS2es0x5/IbjY= github.com/go-openapi/loads v0.19.6/go.mod h1:brCsvE6j8mnbmGBh103PT/QLHfbyDxA4hsKvYBNEGVc= github.com/go-openapi/loads v0.19.7/go.mod h1:brCsvE6j8mnbmGBh103PT/QLHfbyDxA4hsKvYBNEGVc= @@ -252,7 +263,6 @@ github.com/go-openapi/spec v0.17.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsd github.com/go-openapi/spec v0.18.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= github.com/go-openapi/spec v0.19.2/go.mod h1:sCxk3jxKgioEJikev4fgkNmwS+3kuYdJtcsZsD5zxMY= github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo= -github.com/go-openapi/spec v0.19.5/go.mod h1:Hm2Jr4jv8G1ciIAo+frC/Ft+rR2kQDh8JHKHb3gWUSk= github.com/go-openapi/spec v0.19.6/go.mod h1:Hm2Jr4jv8G1ciIAo+frC/Ft+rR2kQDh8JHKHb3gWUSk= github.com/go-openapi/spec v0.19.8/go.mod h1:Hm2Jr4jv8G1ciIAo+frC/Ft+rR2kQDh8JHKHb3gWUSk= github.com/go-openapi/spec v0.19.15/go.mod h1:+81FIL1JwC5P3/Iuuozq3pPE9dXdIEGxFutcFKaVbmU= @@ -288,7 +298,6 @@ github.com/go-openapi/swag v0.19.15/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/ github.com/go-openapi/validate v0.18.0/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+MYsct2VUrAJ4= github.com/go-openapi/validate v0.19.2/go.mod h1:1tRCw7m3jtI8eNWEEliiAqUIcBztB2KDnRCRMUi7GTA= github.com/go-openapi/validate v0.19.3/go.mod h1:90Vh6jjkTn+OT1Eefm0ZixWNFjhtOH7vS9k0lo6zwJo= -github.com/go-openapi/validate v0.19.8/go.mod h1:8DJv2CVJQ6kGNpFW6eV9N3JviE1C85nY1c2z52x1Gk4= github.com/go-openapi/validate v0.19.10/go.mod h1:RKEZTUWDkxKQxN2jDT7ZnZi2bhZlbNMAuKvKB+IaGx8= github.com/go-openapi/validate v0.19.12/go.mod h1:Rzou8hA/CBw8donlS6WNEUQupNvUZ0waH08tGe6kAQ4= github.com/go-openapi/validate v0.19.15/go.mod h1:tbn/fdOwYHgrhPBzidZfJC2MIVvs9GA7monOmWBbeCI= @@ -321,7 +330,6 @@ github.com/gobuffalo/gitgen v0.0.0-20190315122116-cc086187d211/go.mod h1:vEHJk/E github.com/gobuffalo/gogen v0.0.0-20190315121717-8f38393713f5/go.mod h1:V9QVDIxsgKNZs6L2IYiGR8datgMhB577vzTDqypH360= github.com/gobuffalo/gogen v0.1.0/go.mod h1:8NTelM5qd8RZ15VjQTFkAW6qOMx5wBbW4dSCS3BY8gg= github.com/gobuffalo/gogen v0.1.1/go.mod h1:y8iBtmHmGc4qa3urIyo1shvOD8JftTtfcKi+71xfDNE= -github.com/gobuffalo/here v0.6.0/go.mod h1:wAG085dHOYqUpf+Ap+WOdrPTp5IYcDAs/x7PLa8Y5fM= github.com/gobuffalo/logger v0.0.0-20190315122211-86e12af44bc2/go.mod h1:QdxcLw541hSGtBnhUc4gaNIXRjiDppFGaDqzbrBd3v8= github.com/gobuffalo/mapi v1.0.1/go.mod h1:4VAGh89y6rVOvm5A8fKFxYG+wIW6LO1FMTG9hnKStFc= github.com/gobuffalo/mapi v1.0.2/go.mod h1:4VAGh89y6rVOvm5A8fKFxYG+wIW6LO1FMTG9hnKStFc= @@ -333,12 +341,12 @@ github.com/gobuffalo/syncx v0.0.0-20190224160051-33c29581e754/go.mod h1:HhnNqWY9 github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang-jwt/jwt v3.2.2+incompatible h1:IfV12K8xAKAnZqdXVzCZ+TOjboZ2keLg81eXfW3O+oY= github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -353,6 +361,7 @@ github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8= +github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= @@ -372,9 +381,11 @@ github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golangplus/testing v0.0.0-20180327235837-af21d9c3145e/go.mod h1:0AA//k/eakGydO4jKRoRL2j92ZKSzTgj9tclaCrvXHk= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= @@ -397,6 +408,7 @@ github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/ github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= +github.com/google/martian/v3 v3.2.1/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= @@ -408,6 +420,9 @@ github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLe github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= @@ -416,35 +431,40 @@ github.com/google/uuid v1.1.2 h1:EVhdT+1Kseyi1/pUmXKaFxYsDNy9RQYkMWRH68J/W7Y= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= +github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0= github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg= +github.com/googleapis/gnostic v0.5.1/go.mod h1:6U4PtQXGIEt/Z3h5MAT7FNofLnw9vXk2cUuW7uA/OeU= github.com/googleapis/gnostic v0.5.5 h1:9fHAtK0uDfpveeqqo1hkEZJcFvYXAiCN3UutL8F9xHw= github.com/googleapis/gnostic v0.5.5/go.mod h1:7+EbHbldMins07ALC74bsA81Ovc97DwqyJO1AENw9kA= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gosuri/uitable v0.0.4/go.mod h1:tKR86bXuXPZazfOTG1FIzvjIdXzd0mo4Vtn16vt0PJo= github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= +github.com/grpc-ecosystem/go-grpc-middleware v1.3.0/go.mod h1:z0ButlSOZa5vEBq9m2m2hlwIgKw+rp3sdCBRoJY+30Y= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= -github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= +github.com/hashicorp/consul/api v1.10.1/go.mod h1:XjsvQN+RJGWI2TWy1/kqaE16HrR2J/FWgkYjdZQsX9M= github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= +github.com/hashicorp/consul/sdk v0.8.0/go.mod h1:GBvyrGALthsZObzUGsfgHZQDXjg4lOjagTIwIR1vPms= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ= github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48= -github.com/hashicorp/go-hclog v0.9.2 h1:CG6TE5H9/JXsFWJCfoIVpKFIkFe6ysEuHirp4DxCsHI= github.com/hashicorp/go-hclog v0.9.2/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ= +github.com/hashicorp/go-hclog v0.12.0 h1:d4QkX8FRTYaKaCZBoXYY8zJX2BXjWxurN/GA2tkrmZM= +github.com/hashicorp/go-hclog v0.12.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= +github.com/hashicorp/go-multierror v1.1.0/go.mod h1:spPvp8C1qA32ftKqdAHm4hHTbPw+vmowP0z+KUhOZdA= github.com/hashicorp/go-retryablehttp v0.7.0 h1:eu1EI/mbirUgP5C8hVsTNaGZreBDlYiwC1FZWkvQPQ4= github.com/hashicorp/go-retryablehttp v0.7.0/go.mod h1:vAew36LZh98gCBJNLH42IQ1ER/9wtLZZ8meHqQvEYWY= github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= +github.com/hashicorp/go-rootcerts v1.0.2/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= @@ -452,13 +472,14 @@ github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/b github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.4 h1:YDjusn29QI/Das2iO9M0BHnIbxPeyuCHsjMW+lJfyTc= -github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= +github.com/hashicorp/mdns v1.0.1/go.mod h1:4gW7WsVCke5TE7EPeYliwHlRUyBtfCwuFwuMg2DmyNY= github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= +github.com/hashicorp/memberlist v0.2.2/go.mod h1:MS2lj3INKhZjWNqd3N0m3J+Jxf3DAOnAH9VT3Sh9MUE= github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= +github.com/hashicorp/serf v0.9.5/go.mod h1:UWDWwZeL5cuWDJdl0C6wrvrUwEqtQ4ZKBKKENpqIUyk= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= @@ -471,11 +492,11 @@ github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHW github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= +github.com/jonboulle/clockwork v0.2.2/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8= github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= -github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.11 h1:uVUAXhF2To8cbw/3xN3pxj6kk7TYKs98NIrTqPlMWAQ= github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= @@ -520,21 +541,28 @@ github.com/mailru/easyjson v0.7.1/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7 github.com/mailru/easyjson v0.7.6 h1:8yTIVnZgCoiM1TgqoeTl+LfU5Jg6/xL3QhGQnimLYnA= github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/markbates/oncer v0.0.0-20181203154359-bf2de49a0be2/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE= -github.com/markbates/pkger v0.17.1/go.mod h1:0JoVlrol20BSywW79rN3kdFFsE5xYM+rSCQDXbLhiuI= github.com/markbates/safe v1.0.1/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= -github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= +github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= +github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= +github.com/mattn/go-colorable v0.1.9 h1:sqDoxXbdeALODt0DAeJCVp38ps9ZogZEAXjus69YV3U= +github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= -github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= +github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84= +github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= -github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= +github.com/mattn/go-isatty v0.0.14 h1:yVuAays6BHfxijgZPzw+3Zlu5yQgKGP2/hcQbHb7S9Y= +github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-runewidth v0.0.7/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.13/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 h1:I0XW9+e1XWDxdcEniV4rQAIOPUGDq67JSCiRCgGCZLI= github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= +github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= +github.com/mitchellh/cli v1.1.0/go.mod h1:xcISNoH86gajksDmfB23e/pu+B+GeFRMYmoHXxx3xhI= github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= @@ -546,10 +574,11 @@ github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh github.com/mitchellh/mapstructure v1.3.2/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/mapstructure v1.3.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/mapstructure v1.4.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -github.com/mitchellh/mapstructure v1.4.1 h1:CpVNEelQCZBooIPDn+AR3NpivK/TIKU8bDxdASFVQag= github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mitchellh/mapstructure v1.4.2 h1:6h7AQ0yhTcIsmFmnAwQls75jp2Gzs4iB8W7pjMO+rqo= +github.com/mitchellh/mapstructure v1.4.2/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/moby/spdystream v0.2.0/go.mod h1:f7i0iNDQJ059oMTcWxx8MA/zKFIuD/lY+0GqbN2Wy8c= -github.com/moby/term v0.0.0-20201216013528-df9cb8a40635/go.mod h1:FBS0z0QWA44HXygs7VXDUOGoN/1TV3RuWkLO04am3wc= +github.com/moby/term v0.0.0-20210610120745-9d4ed1856297/go.mod h1:vgPCkQMyxTZ7IDy8SXRufE172gr8+K/JE/7hHFxHW3A= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -570,26 +599,26 @@ github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= github.com/oklog/ulid v1.3.1 h1:EGfNDEx6MqHz8B3uNV6QAib1UR2Lm97sHi3ocA6ESJ4= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= -github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= github.com/olekukonko/tablewriter v0.0.4/go.mod h1:zq6QwlOf5SlnkVbMSr5EoBv3636FWnp+qbPhuoO21uA= github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= +github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= github.com/onsi/ginkgo v1.14.2/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= -github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= github.com/onsi/gomega v1.10.5/go.mod h1:gza4q3jKQJijlu05nKWRCW/GavJumGt8aNRxWg7mt48= github.com/onsi/gomega v1.15.0/go.mod h1:cIuvLEne0aoVhAgh/O6ac0Op8WWw9H6eYCriF+tEHG0= +github.com/onsi/gomega v1.16.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= github.com/onsi/gomega v1.17.0 h1:9Luw4uT5HTjHTN8+aNcSThgH1vdXnmdJ8xIfZ4wyTRE= github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= +github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs= github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= @@ -598,6 +627,7 @@ github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/9 github.com/pelletier/go-toml v1.4.0/go.mod h1:PN7xzY2wHTK0K9p34ErDQMlFxa51Fk0OUruD3k1mMwo= github.com/pelletier/go-toml v1.7.0/go.mod h1:vwGMzjaWMwyfHwgIBhI2YUM4fB6nL6lVAvS1LBMMhTE= github.com/pelletier/go-toml v1.9.3/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= +github.com/pelletier/go-toml v1.9.4/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -607,6 +637,7 @@ github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= +github.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSgv7Sy7s/s= github.com/ppc64le-cloud/powervs-utils v0.0.0-20210106101518-5d3f965b0344 h1:GDCICxOMTqRacDpbpNM79dUM3IZ0PwaayPt19Srq21k= github.com/ppc64le-cloud/powervs-utils v0.0.0-20210106101518-5d3f965b0344/go.mod h1:KImYgHmvBVtAczNhyDBDSN54PGIdz0+QiPVQMmObEQY= github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA= @@ -631,7 +662,6 @@ github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/procfs v0.2.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.6.0 h1:mxy4L2jP6qMonqmq+aTtOx1ifVWUgG/TAmntgbh3xv4= github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= @@ -644,6 +674,7 @@ github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFR github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= +github.com/sagikazarmark/crypt v0.1.0/go.mod h1:B/mN0msZuINBtQ1zZLEQcegFJJf9vnYIR88KRMEuODE= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= @@ -654,29 +685,32 @@ github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMB github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= +github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= +github.com/soheilhy/cmux v0.1.5/go.mod h1:T7TcVDs9LWfQgPlPsdngu6I6QIoyIFZDDC6sNE1GqG0= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= +github.com/spf13/cast v1.4.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= -github.com/spf13/cobra v1.1.1/go.mod h1:WnodtKOvamDL/PwE2M4iKs8aMDBZ5Q5klgD3qfVJQMI= +github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSWzOo= github.com/spf13/cobra v1.2.1/go.mod h1:ExllRjgxM/piMAM+3tAZvg8fsklGAf3tPfi+i8t68Nk= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= -github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= github.com/spf13/viper v1.8.1/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH9Ns= +github.com/spf13/viper v1.9.0/go.mod h1:+i6ajR7OX2XaiBkrcZJFK21htRk7eDeLg7+O6bhUPP4= github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= @@ -691,10 +725,9 @@ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tidwall/pretty v1.0.0 h1:HsD+QiTn7sK6flMKIvNmpqz1qrpP3Ps6jOKIKMooyg4= github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= -github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= +github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= -github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw= github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= github.com/xdg-go/scram v1.0.2/go.mod h1:1WAq6h33pAW+iRreB34OORO2Nf7qel3VV3fjBj+hCSs= @@ -711,16 +744,16 @@ github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -go.etcd.io/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= -go.etcd.io/etcd v0.5.0-alpha.5.0.20200910180754-dd1b699fc489/go.mod h1:yVHk9ub3CSBatqGNg7GRmsnfLWtoW60w4eDYfh7vHDg= +go.etcd.io/bbolt v1.3.6/go.mod h1:qXsaaIqmgQH0T+OPdb99Bf+PKfBBQVAdyD6TY9G8XM4= go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs= go.etcd.io/etcd/client/pkg/v3 v3.5.0/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ= go.etcd.io/etcd/client/v3 v3.5.0/go.mod h1:AIKXXVX/DQXtfTEqBryiLTUXwON+GuvO6Z7lLS/oTh0= +go.etcd.io/etcd/pkg/v3 v3.5.0/go.mod h1:UzJGatBQ1lXChBkQF0AuAtkRQMYnHubxAEYIrC3MSsE= +go.etcd.io/etcd/raft/v3 v3.5.0/go.mod h1:UFOHSIvO/nKwd4lhkwabrTD3cqW5yVyYYf/KlD00Szc= +go.etcd.io/etcd/server/v3 v3.5.0/go.mod h1:3Ah5ruV+M+7RZr0+Y/5mNLwC+eQlni+mQmOVdCRJoS4= go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= go.mongodb.org/mongo-driver v1.1.1/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= -go.mongodb.org/mongo-driver v1.1.2/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= go.mongodb.org/mongo-driver v1.3.0/go.mod h1:MSWZXKOynuguX+JSvwP8i+58jYCXxbia8HS3gZBapIE= go.mongodb.org/mongo-driver v1.3.4/go.mod h1:MSWZXKOynuguX+JSvwP8i+58jYCXxbia8HS3gZBapIE= go.mongodb.org/mongo-driver v1.4.3/go.mod h1:WcMNYLx/IlOxLe6JRJiv2uXuCz6zBLndR4SoGjYphSc= @@ -737,9 +770,19 @@ go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= +go.opentelemetry.io/contrib v0.20.0/go.mod h1:G/EtFaa6qaN7+LxqfIAT3GiZa7Wv5DTBUzl5H4LY0Kc= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.20.0/go.mod h1:oVGt1LRbBOBq1A5BQLlUg9UaU/54aiHw8cgjV3aWZ/E= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.20.0/go.mod h1:2AboqHi0CiIZU0qwhtUfCYD1GeUzvvIXWNkhDt7ZMG4= +go.opentelemetry.io/otel v0.20.0/go.mod h1:Y3ugLH2oa81t5QO+Lty+zXf8zC9L26ax4Nzoxm/dooo= +go.opentelemetry.io/otel/exporters/otlp v0.20.0/go.mod h1:YIieizyaN77rtLJra0buKiNBOm9XQfkPEKBeuhoMwAM= +go.opentelemetry.io/otel/metric v0.20.0/go.mod h1:598I5tYlH1vzBjn+BTuhzTCSb/9debfNp6R3s7Pr1eU= +go.opentelemetry.io/otel/oteltest v0.20.0/go.mod h1:L7bgKf9ZB7qCwT9Up7i9/pn0PWIa9FqQ2IQ8LoxiGnw= +go.opentelemetry.io/otel/sdk v0.20.0/go.mod h1:g/IcepuwNsoiX5Byy2nNV0ySUF1em498m7hBWC279Yc= +go.opentelemetry.io/otel/sdk/export/metric v0.20.0/go.mod h1:h7RBNMsDJ5pmI1zExLi+bJK+Dr8NQCh0qGhm1KDnNlE= +go.opentelemetry.io/otel/sdk/metric v0.20.0/go.mod h1:knxiS8Xd4E/N+ZqKmUPf3gTTZ4/0TjTXukfxjzSTpHE= +go.opentelemetry.io/otel/trace v0.20.0/go.mod h1:6GjCW8zgDjwGHGa6GkyeB8+/5vjT16gUEi0Nf1iBdgw= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5/go.mod h1:nmDLcffg48OtT/PSW0Hg7FvpRQsQh5OSqIylirxKC7o= -go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= @@ -763,11 +806,13 @@ golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190617133340-57b3e21c3d56/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190923035154-9ee001bba392/go.mod h1:/lpIB1dKB+9EgE3H3cr1v9wB50oz8l4C4h62xy7jSTY= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= +golang.org/x/crypto v0.0.0-20210817164053-32db794688a5/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -801,7 +846,6 @@ golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzB golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.3.1-0.20200828183125-ce943fd02449/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= @@ -826,8 +870,8 @@ golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -851,13 +895,14 @@ golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb/go.mod h1:sp8m0HH+o8qH0wwXwY golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210224082022-3d97a244fca7/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20210421230115-4e50805a0758/go.mod h1:72T/g9IO56b78aLF+1Kcs5dz7/ng1VjMUvfKvpfy+jM= -golang.org/x/net v0.0.0-20210428140749-89ef3d95e781 h1:DzZ89McO9/gWPsQXS/FVKAlG02ZjaQ6AlZRBimEYOd0= golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= +golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20210520170846-37e1c6afe023 h1:ADo5wSpq2gqaCGQWzk7S5vd//0iyyLeAratkEoG5dLE= +golang.org/x/net v0.0.0-20210520170846-37e1c6afe023/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -870,8 +915,11 @@ golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210402161424-2e8d93401602/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210628180205-a41e5a781914 h1:3B43BWw0xEBsLZ/NO1VALz6fppU3481pik+2Ksv45z8= +golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210628180205-a41e5a781914/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210805134026-6f1e6394065a/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f h1:Qmd2pbz05z7z6lm0DrgQVVPuBm92jqujBKMHMOlOQEw= +golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -892,6 +940,7 @@ golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190321052220-f7bb7a8bee54/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -905,11 +954,13 @@ golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191002063906-3421d5a6bb1c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -918,6 +969,7 @@ golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200124204421-9fbb57f87de9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -934,6 +986,7 @@ golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200831180312-196b9ba8737a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200923182605-d9f96fdee20d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -949,11 +1002,17 @@ golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210420072515-93ed5bcd2bfe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210426230700-d19ff857e887/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210817190340-bfb29a6856f2 h1:c8PlLMqBbOHoqtjteWm5/kbe6rNY2pbRfbIMVnepueo= +golang.org/x/sys v0.0.0-20210603125802-9665404d3644/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210817190340-bfb29a6856f2/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf h1:2ucpDCmfkl8Bd/FsLtiD653Wf96cW37s+iGx93zsu4k= +golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d h1:SZxvLBoTP5yHO3Frd4z4vrF+DBX9vMVanchswa69toE= @@ -968,7 +1027,6 @@ golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -999,6 +1057,7 @@ golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgw golang.org/x/tools v0.0.0-20190624222133-a101b041ded4/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190907020128-2ca718005c18/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= @@ -1038,8 +1097,12 @@ golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4f golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= -golang.org/x/tools v0.1.2 h1:kRBLX7v7Af8W7Gdbbc908OJcdgtK8bOz9Uaj8/F1ACA= +golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.5 h1:ouewzE6p+/VEB31YYnTbEJdi8pFqKp4P4n85vwo3DHA= +golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1069,6 +1132,12 @@ google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjR google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU= google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94= google.golang.org/api v0.44.0/go.mod h1:EBOGZqzyhtvMDoxwS97ctnh0zUmYY6CxqXsc1AvkYD8= +google.golang.org/api v0.47.0/go.mod h1:Wbvgpq1HddcWVtzsVLyfLp8lDg6AA241LmgIL59tHXo= +google.golang.org/api v0.48.0/go.mod h1:71Pr1vy+TAZRPkPs/xlCf5SsU8WjuAWv1Pfjbtukyy4= +google.golang.org/api v0.50.0/go.mod h1:4bNT5pAuq5ji4SRZm+5QIkjny9JAyVD/3gaSihNefaw= +google.golang.org/api v0.51.0/go.mod h1:t4HdrdoNgyN5cbEfm7Lum0lcLDLiise1F8qDKX00sOU= +google.golang.org/api v0.54.0/go.mod h1:7C4bFFOvVDGXjfDTAsgGwDgAxRDeQ4X8NvUedIt6z3k= +google.golang.org/api v0.56.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -1098,6 +1167,7 @@ google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfG google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= @@ -1110,7 +1180,6 @@ google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201019141844-1ed22bb0c154/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201110150050-8816d57aaa9a/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= @@ -1119,7 +1188,18 @@ google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= +google.golang.org/genproto v0.0.0-20210513213006-bf773b8c8384/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A= google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= +google.golang.org/genproto v0.0.0-20210604141403-392c879c8b08/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= +google.golang.org/genproto v0.0.0-20210608205507-b6d2f5bf0d7d/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= +google.golang.org/genproto v0.0.0-20210624195500-8bfb893ecb84/go.mod h1:SzzZ/N+nwJDaO1kznhnlzqS8ocJICar6hYhVyhi++24= +google.golang.org/genproto v0.0.0-20210713002101-d411969a0d9a/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k= +google.golang.org/genproto v0.0.0-20210716133855-ce7ef5c701ea/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k= +google.golang.org/genproto v0.0.0-20210728212813-7823e685a01f/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48= +google.golang.org/genproto v0.0.0-20210805201207-89edb61ffb67/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48= +google.golang.org/genproto v0.0.0-20210813162853-db860fec028c/go.mod h1:cFeNkxwySK631ADgubI+/XFU/xp8FD5KIVV4rj8UC5w= +google.golang.org/genproto v0.0.0-20210821163610-241b8fcbd6c8/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= +google.golang.org/genproto v0.0.0-20210828152312-66f60bf46e71/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= @@ -1140,8 +1220,13 @@ google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA5 google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= +google.golang.org/grpc v1.37.1/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= google.golang.org/grpc v1.39.0/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= +google.golang.org/grpc v1.39.1/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= +google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= +google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -1153,15 +1238,15 @@ google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpAD google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0 h1:bxAC2xTBsZGibn2RTntX0oH50xLsqy1OxA9tTL3p/lk= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.27.1 h1:SnqbnDw1V7RiZcXPx5MEeqPv2s79L9i7BJUlG/+RurQ= +google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/go-playground/assert.v1 v1.2.1 h1:xoYuJVE7KT85PYWrN730RguIQO0ePzVRfFMXadIrXTM= @@ -1172,6 +1257,7 @@ gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/ini.v1 v1.63.2/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= @@ -1183,7 +1269,6 @@ gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.7/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= @@ -1202,57 +1287,52 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -k8s.io/api v0.21.4/go.mod h1:fTVGP+M4D8+00FN2cMnJqk/eb/GH53bvmNs2SVTmpFk= -k8s.io/api v0.21.7 h1:h+uKRQM59vNKUiv8jo5/h9w9zjk7etiBBfaTZ2Q1nLs= -k8s.io/api v0.21.7/go.mod h1:9Z7hGak48detDeDBCo3Db9N/EqdFSTOEJ9BpIRC3Cms= -k8s.io/apiextensions-apiserver v0.21.4 h1:HkajN/vmT/9HnFmUxvpXfSGkTCvH/ax4e3+j6mqWUDU= -k8s.io/apiextensions-apiserver v0.21.4/go.mod h1:OoC8LhI9LnV+wKjZkXIBbLUwtnOGJiTRE33qctH5CIk= -k8s.io/apimachinery v0.21.4/go.mod h1:H/IM+5vH9kZRNJ4l3x/fXP/5bOPJaVP/guptnZPeCFI= -k8s.io/apimachinery v0.21.7 h1:7Aeg8xTM367t1J/6x8WPZeHe0MSzL3PVMw8gDaBR4A0= -k8s.io/apimachinery v0.21.7/go.mod h1:Ee84YWaZJo/QdW7/nsjTQCSaCJEJ/CyHkdWbdiBZ3Ns= -k8s.io/apiserver v0.21.4 h1:egJgdhW0ueq5iJSY0c5YedPvRM2Ft/D3dcXOgwvs9jY= -k8s.io/apiserver v0.21.4/go.mod h1:SErUuFBBPZUcD2nsUU8hItxoYheqyYr2o/pCINEPW8g= -k8s.io/cli-runtime v0.21.4/go.mod h1:eRbLHYkdVWzvG87yrkgGd8CqX6/+fAG9DTdAqTXmlRY= -k8s.io/client-go v0.21.4/go.mod h1:t0/eMKyUAq/DoQ7vW8NVVA00/nomlwC+eInsS8PxSew= -k8s.io/client-go v0.21.7 h1:YzpdGcyT0dXWo2af4DpxLsHSBxvQqOYQTnF/RHbVcyg= -k8s.io/client-go v0.21.7/go.mod h1:IdmcpVUFBlFrzDtr58R5o/q3OaA8AJ+FF6LyE9Fpr0w= -k8s.io/cluster-bootstrap v0.21.4 h1:dnCOcVJdCAMz8+nvqodrFv/yd/3Ae9Jn14cChpQjps8= -k8s.io/cluster-bootstrap v0.21.4/go.mod h1:GtXGuiEtdV4XQJcscR6qQCm/vtQWkhUi3qnl9KL9jzw= -k8s.io/code-generator v0.21.4/go.mod h1:K3y0Bv9Cz2cOW2vXUrNZlFbflhuPvuadW6JdnN6gGKo= -k8s.io/component-base v0.21.4 h1:Bc0AttSyhJFVXEIHz+VX+D11j/5z7SPPhl6whiXaRzs= -k8s.io/component-base v0.21.4/go.mod h1:ZKG0eHVX+tUDcaoIGpU3Vtk4TIjMddN9uhEWDmW6Nyg= -k8s.io/component-helpers v0.21.4/go.mod h1:/5TBNWmxaAymZweO1JWv3Pt5rcYJV1LbWWY0x1rDdVU= +k8s.io/api v0.22.2 h1:M8ZzAD0V6725Fjg53fKeTJxGsJvRbk4TEm/fexHMtfw= +k8s.io/api v0.22.2/go.mod h1:y3ydYpLJAaDI+BbSe2xmGcqxiWHmWjkEeIbiwHvnPR8= +k8s.io/apiextensions-apiserver v0.22.2 h1:zK7qI8Ery7j2CaN23UCFaC1hj7dMiI87n01+nKuewd4= +k8s.io/apiextensions-apiserver v0.22.2/go.mod h1:2E0Ve/isxNl7tWLSUDgi6+cmwHi5fQRdwGVCxbC+KFA= +k8s.io/apimachinery v0.22.2 h1:ejz6y/zNma8clPVfNDLnPbleBo6MpoFy/HBiBqCouVk= +k8s.io/apimachinery v0.22.2/go.mod h1:O3oNtNadZdeOMxHFVxOreoznohCpy0z6mocxbZr7oJ0= +k8s.io/apiserver v0.22.2 h1:TdIfZJc6YNhu2WxeAOWq1TvukHF0Sfx0+ln4XK9qnL4= +k8s.io/apiserver v0.22.2/go.mod h1:vrpMmbyjWrgdyOvZTSpsusQq5iigKNWv9o9KlDAbBHI= +k8s.io/cli-runtime v0.22.2/go.mod h1:tkm2YeORFpbgQHEK/igqttvPTRIHFRz5kATlw53zlMI= +k8s.io/client-go v0.22.2 h1:DaSQgs02aCC1QcwUdkKZWOeaVsQjYvWv8ZazcZ6JcHc= +k8s.io/client-go v0.22.2/go.mod h1:sAlhrkVDf50ZHx6z4K0S40wISNTarf1r800F+RlCF6U= +k8s.io/cluster-bootstrap v0.22.2 h1:jP6Nkp3CdSfr50cAn/7WGsNS52zrwMhvr0V+E3Vkh/w= +k8s.io/cluster-bootstrap v0.22.2/go.mod h1:ZkmQKprEqvrUccMnbRHISsMscA1dsQ8SffM9nHq6CgE= +k8s.io/code-generator v0.22.2/go.mod h1:eV77Y09IopzeXOJzndrDyCI88UBok2h6WxAlBwpxa+o= +k8s.io/component-base v0.22.2 h1:vNIvE0AIrLhjX8drH0BgCNJcR4QZxMXcJzBsDplDx9M= +k8s.io/component-base v0.22.2/go.mod h1:5Br2QhI9OTe79p+TzPe9JKNQYvEKbq9rTJDWllunGug= +k8s.io/component-helpers v0.22.2/go.mod h1:+N61JAR9aKYSWbnLA88YcFr9K/6ISYvRNybX7QW7Rs8= k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= k8s.io/gengo v0.0.0-20201214224949-b6c5ce23f027/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= -k8s.io/klog/v2 v2.8.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec= k8s.io/klog/v2 v2.9.0 h1:D7HV+n1V57XeZ0m6tdRkfknthUaM06VFbWldOFh8kzM= k8s.io/klog/v2 v2.9.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec= -k8s.io/kube-openapi v0.0.0-20210305001622-591a79e4bda7/go.mod h1:wXW5VT87nVfh/iLV8FpR2uDvrFyomxbtb1KivDbvPTE= +k8s.io/kube-openapi v0.0.0-20210421082810-95288971da7e/go.mod h1:vHXdDvt9+2spS2Rx9ql3I8tycm3H9FDfdUoIuKCefvw= k8s.io/kube-openapi v0.0.0-20211110012726-3cc51fd1e909 h1:s77MRc/+/eQjsF89MB12JssAlsoi9mnNoaacRqibeAU= k8s.io/kube-openapi v0.0.0-20211110012726-3cc51fd1e909/go.mod h1:wXW5VT87nVfh/iLV8FpR2uDvrFyomxbtb1KivDbvPTE= -k8s.io/kubectl v0.21.4/go.mod h1:rRYB5HeScoGQKxZDQmus17pTSVIuqfm0D31ApET/qSM= -k8s.io/metrics v0.21.4/go.mod h1:uhWoVuVumUMSeCa1B1p2tm4Y4XuZIg0n24QEtB54wuA= -k8s.io/utils v0.0.0-20201110183641-67b214c5f920/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -k8s.io/utils v0.0.0-20210521133846-da695404a2bc/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -k8s.io/utils v0.0.0-20210802155522-efc7438f0176 h1:Mx0aa+SUAcNRQbs5jUzV8lkDlGFU8laZsY9jrcVX5SY= -k8s.io/utils v0.0.0-20210802155522-efc7438f0176/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= +k8s.io/kubectl v0.22.2/go.mod h1:BApg2j0edxLArCOfO0ievI27EeTQqBDMNU9VQH734iQ= +k8s.io/metrics v0.22.2/go.mod h1:GUcsBtpsqQD1tKFS/2wCKu4ZBowwRncLOJH1rgWs3uw= +k8s.io/utils v0.0.0-20210819203725-bdf08cb9a70a/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= +k8s.io/utils v0.0.0-20210930125809-cb0fa318a74b h1:wxEMGetGMur3J1xuGLQY7GEQYg9bZxKn3tKo5k/eYcs= +k8s.io/utils v0.0.0-20210930125809-cb0fa318a74b/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.22/go.mod h1:LEScyzhFmoF5pso/YSeBstl57mOzx9xlU9n85RGrDQg= -sigs.k8s.io/cluster-api v0.4.4 h1:gTSjXQEfSwphgYMelKEZZPXvok06GCF5tsCC550A5zA= -sigs.k8s.io/cluster-api v0.4.4/go.mod h1:KKycu4yJEm1sxKG5UaHX9ZnYxRiBzJsFjJVmvMQUP2k= -sigs.k8s.io/controller-runtime v0.9.7 h1:DlHMlAyLpgEITVvNsuZqMbf8/sJl9HirmCZIeR5H9mQ= -sigs.k8s.io/controller-runtime v0.9.7/go.mod h1:nExcHcQ2zvLMeoO9K7rOesGCmgu32srN5SENvpAEbGA= -sigs.k8s.io/kustomize/api v0.8.8/go.mod h1:He1zoK0nk43Pc6NlV085xDXDXTNprtcyKZVm3swsdNY= -sigs.k8s.io/kustomize/cmd/config v0.9.10/go.mod h1:Mrby0WnRH7hA6OwOYnYpfpiY0WJIMgYrEDfwOeFdMK0= -sigs.k8s.io/kustomize/kustomize/v4 v4.1.2/go.mod h1:PxBvo4WGYlCLeRPL+ziT64wBXqbgfcalOS/SXa/tcyo= -sigs.k8s.io/kustomize/kyaml v0.10.17/go.mod h1:mlQFagmkm1P+W4lZJbJ/yaxMd8PqMRSC4cPcfUVt5Hg= +sigs.k8s.io/cluster-api v1.0.1 h1:0YXQoemI4WnZF8RzT9T2vCtnXAi22rD4Fx1Tj2hhCEM= +sigs.k8s.io/cluster-api v1.0.1/go.mod h1:/LkJXtsvhxTV4U0z1Y2Y1Gr2xebJ0/ce09Ab2M0XU/U= +sigs.k8s.io/controller-runtime v0.10.3 h1:s5Ttmw/B4AuIbwrXD3sfBkXwnPMMWrqpVj4WRt1dano= +sigs.k8s.io/controller-runtime v0.10.3/go.mod h1:CQp8eyUQZ/Q7PJvnIrB6/hgfTC1kBkGylwsLgOQi1WY= +sigs.k8s.io/kustomize/api v0.8.11/go.mod h1:a77Ls36JdfCWojpUqR6m60pdGY1AYFix4AH83nJtY1g= +sigs.k8s.io/kustomize/cmd/config v0.9.13/go.mod h1:7547FLF8W/lTaDf0BDqFTbZxM9zqwEJqCKN9sSR0xSs= +sigs.k8s.io/kustomize/kustomize/v4 v4.2.0/go.mod h1:MOkR6fmhwG7hEDRXBYELTi5GSFcLwfqwzTRHW3kv5go= +sigs.k8s.io/kustomize/kyaml v0.11.0/go.mod h1:GNMwjim4Ypgp/MueD3zXHLRJEjz7RvtPae0AwlvEMFM= sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= sigs.k8s.io/structured-merge-diff/v4 v4.1.2 h1:Hr/htKFmJEbtMgS/UD0N+gtgctAqz81t3nu+sPzynno= sigs.k8s.io/structured-merge-diff/v4 v4.1.2/go.mod h1:j/nl6xW8vLS49O8YvXW1ocPhZawJtm+Yrr7PPRQ0Vg4= -sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= -sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q= sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= +sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo= +sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8= diff --git a/hack/tools/Makefile b/hack/tools/Makefile index ef49c6b09..cca12faaa 100644 --- a/hack/tools/Makefile +++ b/hack/tools/Makefile @@ -74,3 +74,7 @@ $(MDBOOK_TABULATE): $(BIN_DIR) go.mod go.sum GOJQ := $(BIN_DIR)/gojq $(GOJQ): $(BIN_DIR) go.mod go.sum go build -tags=tools -o $@ github.com/itchyny/gojq/cmd/gojq + +CONVERSION_GEN := $(BIN_DIR)/conversion-gen +$(CONVERSION_GEN): $(BIN_DIR) go.mod go.sum + go build -tags=tools -o $@ k8s.io/code-generator/cmd/conversion-gen diff --git a/main.go b/main.go index 41007651e..0f8100324 100644 --- a/main.go +++ b/main.go @@ -24,12 +24,13 @@ import ( "k8s.io/apimachinery/pkg/runtime" clientgoscheme "k8s.io/client-go/kubernetes/scheme" _ "k8s.io/client-go/plugin/pkg/client/auth/gcp" - clusterv1 "sigs.k8s.io/cluster-api/api/v1alpha4" + clusterv1 "sigs.k8s.io/cluster-api/api/v1beta1" ctrl "sigs.k8s.io/controller-runtime" "sigs.k8s.io/controller-runtime/pkg/log/zap" infrastructurev1alpha3 "sigs.k8s.io/cluster-api-provider-ibmcloud/api/v1alpha3" infrastructurev1alpha4 "sigs.k8s.io/cluster-api-provider-ibmcloud/api/v1alpha4" + infrastructurev1beta1 "sigs.k8s.io/cluster-api-provider-ibmcloud/api/v1beta1" "sigs.k8s.io/cluster-api-provider-ibmcloud/controllers" // +kubebuilder:scaffold:imports ) @@ -46,6 +47,7 @@ func init() { _ = infrastructurev1alpha3.AddToScheme(scheme) _ = infrastructurev1alpha4.AddToScheme(scheme) + _ = infrastructurev1beta1.AddToScheme(scheme) _ = clusterv1.AddToScheme(scheme) // +kubebuilder:scaffold:scheme } diff --git a/metadata.yaml b/metadata.yaml index b00120618..894d4c9bb 100644 --- a/metadata.yaml +++ b/metadata.yaml @@ -5,6 +5,9 @@ # update this file only when a new major or minor version is released apiVersion: clusterctl.cluster.x-k8s.io/v1alpha3 releaseSeries: + - major: 0 + minor: 2 + contract: v1beta1 - major: 0 minor: 1 contract: v1alpha4 diff --git a/templates/cluster-template-powervs.yaml b/templates/cluster-template-powervs.yaml index 5697b27cf..3c3f6a5e0 100644 --- a/templates/cluster-template-powervs.yaml +++ b/templates/cluster-template-powervs.yaml @@ -1,4 +1,4 @@ -apiVersion: cluster.x-k8s.io/v1alpha4 +apiVersion: cluster.x-k8s.io/v1beta1 kind: Cluster metadata: labels: @@ -14,15 +14,15 @@ spec: cidrBlocks: - ${SERVICE_CIDR:="10.128.0.0/12"} infrastructureRef: - apiVersion: infrastructure.cluster.x-k8s.io/v1alpha4 + apiVersion: infrastructure.cluster.x-k8s.io/v1beta1 kind: IBMPowerVSCluster name: "${CLUSTER_NAME}" controlPlaneRef: - apiVersion: controlplane.cluster.x-k8s.io/v1alpha4 + apiVersion: controlplane.cluster.x-k8s.io/v1beta1 kind: KubeadmControlPlane name: "${CLUSTER_NAME}-control-plane" --- -apiVersion: infrastructure.cluster.x-k8s.io/v1alpha4 +apiVersion: infrastructure.cluster.x-k8s.io/v1beta1 kind: IBMPowerVSCluster metadata: labels: @@ -37,7 +37,7 @@ spec: port: 6443 --- kind: KubeadmControlPlane -apiVersion: controlplane.cluster.x-k8s.io/v1alpha4 +apiVersion: controlplane.cluster.x-k8s.io/v1beta1 metadata: name: "${CLUSTER_NAME}-control-plane" spec: @@ -46,7 +46,7 @@ spec: machineTemplate: infrastructureRef: kind: IBMPowerVSMachineTemplate - apiVersion: infrastructure.cluster.x-k8s.io/v1alpha4 + apiVersion: infrastructure.cluster.x-k8s.io/v1beta1 name: "${CLUSTER_NAME}-control-plane" kubeadmConfigSpec: clusterConfiguration: @@ -149,7 +149,7 @@ spec: owner: "root:root" permissions: "0744" --- -apiVersion: infrastructure.cluster.x-k8s.io/v1alpha4 +apiVersion: infrastructure.cluster.x-k8s.io/v1beta1 kind: IBMPowerVSMachineTemplate metadata: name: "${CLUSTER_NAME}-control-plane" @@ -167,7 +167,7 @@ spec: network: name: "${IBMPOWERVS_NETWORK_NAME}" --- -apiVersion: cluster.x-k8s.io/v1alpha4 +apiVersion: cluster.x-k8s.io/v1beta1 kind: MachineDeployment metadata: name: "${CLUSTER_NAME}-md-0" @@ -183,14 +183,14 @@ spec: bootstrap: configRef: name: "${CLUSTER_NAME}-md-0" - apiVersion: bootstrap.cluster.x-k8s.io/v1alpha4 + apiVersion: bootstrap.cluster.x-k8s.io/v1beta1 kind: KubeadmConfigTemplate infrastructureRef: name: "${CLUSTER_NAME}-md-0" - apiVersion: infrastructure.cluster.x-k8s.io/v1alpha4 + apiVersion: infrastructure.cluster.x-k8s.io/v1beta1 kind: IBMPowerVSMachineTemplate --- -apiVersion: infrastructure.cluster.x-k8s.io/v1alpha4 +apiVersion: infrastructure.cluster.x-k8s.io/v1beta1 kind: IBMPowerVSMachineTemplate metadata: name: "${CLUSTER_NAME}-md-0" @@ -208,7 +208,7 @@ spec: network: name: "${IBMPOWERVS_NETWORK_NAME}" --- -apiVersion: bootstrap.cluster.x-k8s.io/v1alpha4 +apiVersion: bootstrap.cluster.x-k8s.io/v1beta1 kind: KubeadmConfigTemplate metadata: labels: diff --git a/templates/cluster-template.yaml b/templates/cluster-template.yaml index 1c96ca492..688b2deb2 100644 --- a/templates/cluster-template.yaml +++ b/templates/cluster-template.yaml @@ -1,4 +1,4 @@ -apiVersion: cluster.x-k8s.io/v1alpha4 +apiVersion: cluster.x-k8s.io/v1beta1 kind: Cluster metadata: labels: @@ -15,17 +15,17 @@ spec: cidrBlocks: - ${SERVICE_CIDR:="10.128.0.0/12"} infrastructureRef: - apiVersion: infrastructure.cluster.x-k8s.io/v1alpha4 + apiVersion: infrastructure.cluster.x-k8s.io/v1beta1 kind: IBMVPCCluster name: "${CLUSTER_NAME}" namespace: "${NAMESPACE}" controlPlaneRef: - apiVersion: controlplane.cluster.x-k8s.io/v1alpha4 + apiVersion: controlplane.cluster.x-k8s.io/v1beta1 kind: KubeadmControlPlane name: "${CLUSTER_NAME}-control-plane" namespace: "${NAMESPACE}" --- -apiVersion: infrastructure.cluster.x-k8s.io/v1alpha4 +apiVersion: infrastructure.cluster.x-k8s.io/v1beta1 kind: IBMVPCCluster metadata: labels: @@ -38,7 +38,7 @@ spec: vpc: "${IBMVPC_NAME}" --- kind: KubeadmControlPlane -apiVersion: controlplane.cluster.x-k8s.io/v1alpha4 +apiVersion: controlplane.cluster.x-k8s.io/v1beta1 metadata: name: "${CLUSTER_NAME}-control-plane" namespace: "${NAMESPACE}" @@ -48,7 +48,7 @@ spec: machineTemplate: infrastructureRef: kind: IBMVPCMachineTemplate - apiVersion: infrastructure.cluster.x-k8s.io/v1alpha4 + apiVersion: infrastructure.cluster.x-k8s.io/v1beta1 name: "${CLUSTER_NAME}-control-plane" namespace: "${NAMESPACE}" kubeadmConfigSpec: @@ -79,7 +79,7 @@ spec: eviction-hard: 'nodefs.available<0%,nodefs.inodesFree<0%,imagefs.available<0%' --- kind: IBMVPCMachineTemplate -apiVersion: infrastructure.cluster.x-k8s.io/v1alpha4 +apiVersion: infrastructure.cluster.x-k8s.io/v1beta1 metadata: name: "${CLUSTER_NAME}-control-plane" spec: @@ -91,7 +91,7 @@ spec: sshKeys: - "${IBMVPC_SSHKEY_ID}" --- -apiVersion: cluster.x-k8s.io/v1alpha4 +apiVersion: cluster.x-k8s.io/v1beta1 kind: MachineDeployment metadata: name: "${CLUSTER_NAME}-md-0" @@ -107,14 +107,14 @@ spec: bootstrap: configRef: name: "${CLUSTER_NAME}-md-0" - apiVersion: bootstrap.cluster.x-k8s.io/v1alpha4 + apiVersion: bootstrap.cluster.x-k8s.io/v1beta1 kind: KubeadmConfigTemplate infrastructureRef: name: "${CLUSTER_NAME}-md-0" - apiVersion: infrastructure.cluster.x-k8s.io/v1alpha4 + apiVersion: infrastructure.cluster.x-k8s.io/v1beta1 kind: IBMVPCMachineTemplate --- -apiVersion: infrastructure.cluster.x-k8s.io/v1alpha4 +apiVersion: infrastructure.cluster.x-k8s.io/v1beta1 kind: IBMVPCMachineTemplate metadata: name: "${CLUSTER_NAME}-md-0" @@ -127,7 +127,7 @@ spec: sshKeys: - "${IBMVPC_SSHKEY_ID}" --- -apiVersion: bootstrap.cluster.x-k8s.io/v1alpha4 +apiVersion: bootstrap.cluster.x-k8s.io/v1beta1 kind: KubeadmConfigTemplate metadata: name: "${CLUSTER_NAME}-md-0"