func GetReconciler(known *cluster.Cluster, runtimeParameters *RuntimeParameters) (reconciler cloud.Reconciler, err error) {
	switch known.ProviderConfig().Cloud {
	case cluster.CloudGoogle:
		sdk, err := googleSDK.NewSdk()
		if err != nil {
			return nil, err
		}
		gr.Sdk = sdk
		return cloud.NewAtomicReconciler(known, compute.NewGoogleComputeModel(known)), nil
	case cluster.CloudDigitalOcean:
		sdk, err := godoSdk.NewSdk()
		if err != nil {
			return nil, err
		}
		dr.Sdk = sdk
		return cloud.NewAtomicReconciler(known, droplet.NewDigitalOceanDropletModel(known)), nil
	case cluster.CloudAmazon:
		awsProfile := ""
		if runtimeParameters != nil {
			awsProfile = runtimeParameters.AwsProfile
		}
		sdk, err := awsSdkGo.NewSdk(known.ProviderConfig().Location, awsProfile)
		if err != nil {
			return nil, err
		}
		ar.Sdk = sdk
		return cloud.NewAtomicReconciler(known, awspub.NewAmazonPublicModel(known)), nil
	case cluster.CloudAzure:
		sdk, err := azureSDK.NewSdk()
		if err != nil {
			return nil, err
		}
		azr.Sdk = sdk
		return cloud.NewAtomicReconciler(known, azpub.NewAzurePublicModel(known)), nil
	case cluster.CloudOVH:
		sdk, err := openstackSdk.NewSdk(known.ProviderConfig().Location)
		if err != nil {
			return nil, err
		}
		osr.Sdk = sdk
		return cloud.NewAtomicReconciler(known, osovh.NewOvhPublicModel(known)), nil
	case cluster.CloudPacket:
		sdk, err := packetSDK.NewSdk()
		if err != nil {
			return nil, err
		}
		packetr.Sdk = sdk
		return cloud.NewAtomicReconciler(known, packetpub.NewPacketPublicModel(known)), nil
	case cluster.CloudECS:
		sdk, err := openstackSdk.NewSdk(known.ProviderConfig().Location)
		if err != nil {
			return nil, err
		}
		osr.Sdk = sdk
		return cloud.NewAtomicReconciler(known, osecs.NewEcsPublicModel(known)), nil
	default:
		return nil, fmt.Errorf("Invalid cloud type: %s", known.ProviderConfig().Cloud)
	}
}
func GetReconciler(known *cluster.Cluster, runtimeParameters *RuntimeParameters) (reconciler cloud.Reconciler, err error) {
	switch known.ProviderConfig().Cloud {
	case cluster.CloudGoogle:
		sdk, err := googleSDK.NewSdk()
		if err != nil {
			return nil, err
		}
		gr.Sdk = sdk
		return cloud.NewAtomicReconciler(known, compute.NewGoogleComputeModel(known)), nil
	case cluster.CloudDigitalOcean:
		sdk, err := godoSdk.NewSdk()
		if err != nil {
			return nil, err
		}
		dr.Sdk = sdk
		return cloud.NewAtomicReconciler(known, droplet.NewDigitalOceanDropletModel(known)), nil
	case cluster.CloudAmazon:
		awsProfile := ""
		if runtimeParameters != nil {
			awsProfile = runtimeParameters.AwsProfile
		}
		sdk, err := awsSdkGo.NewSdk(known.ProviderConfig().Location, awsProfile)
		if err != nil {
			return nil, err
		}
		ar.Sdk = sdk
		return cloud.NewAtomicReconciler(known, awspub.NewAmazonPublicModel(known)), nil
	case cluster.CloudAzure:
		sdk, err := azureSDK.NewSdk()
		if err != nil {
			return nil, err
		}
		azr.Sdk = sdk
		return cloud.NewAtomicReconciler(known, azpub.NewAzurePublicModel(known)), nil
	case cluster.CloudOVH:
		sdk, err := openstackSdk.NewSdk(known.ProviderConfig().Location)
		if err != nil {
			return nil, err
		}
		osr.Sdk = sdk
		return cloud.NewAtomicReconciler(known, osovh.NewOvhPublicModel(known)), nil
	case cluster.CloudPacket:
		sdk, err := packetSDK.NewSdk()
		if err != nil {
			return nil, err
		}
		packetr.Sdk = sdk
		return cloud.NewAtomicReconciler(known, packetpub.NewPacketPublicModel(known)), nil
	case cluster.CloudECS:
		sdk, err := openstackSdk.NewSdk(known.ProviderConfig().Location)
		if err != nil {
			return nil, err
		}
		osr.Sdk = sdk
		return cloud.NewAtomicReconciler(known, osecs.NewEcsPublicModel(known)), nil
	default:
		return nil, fmt.Errorf("Invalid cloud type: %s", known.ProviderConfig().Cloud)
	}
}
func GetReconciler ( known * cluster . Cluster , runtimeParameters * RuntimeParameters ) ( reconciler cloud . Reconciler , err error ) { switch known . ProviderConfig ( ) . Cloud { case cluster . CloudGoogle : sdk , err := googleSDK . NewSdk ( ) if err != nil { return nil , err } gr . Sdk = sdk return cloud . NewAtomicReconciler ( known , compute . NewGoogleComputeModel ( known ) ) , nil case cluster . CloudDigitalOcean : sdk , err := godoSdk . NewSdk ( ) if err != nil { return nil , err } dr . Sdk = sdk return cloud . NewAtomicReconciler ( known , droplet . NewDigitalOceanDropletModel ( known ) ) , nil case cluster . CloudAmazon : awsProfile := " " if runtimeParameters != nil { awsProfile = runtimeParameters . AwsProfile } sdk , err := awsSdkGo . NewSdk ( known . ProviderConfig ( ) . Location , awsProfile ) if err != nil { return nil , err } ar . Sdk = sdk return cloud . NewAtomicReconciler ( known , awspub . NewAmazonPublicModel ( known ) ) , nil case cluster . CloudAzure : sdk , err := azureSDK . NewSdk ( ) if err != nil { return nil , err } azr . Sdk = sdk return cloud . NewAtomicReconciler ( known , azpub . NewAzurePublicModel ( known ) ) , nil case cluster . CloudOVH : sdk , err := openstackSdk . NewSdk ( known . ProviderConfig ( ) . Location ) if err != nil { return nil , err } osr . Sdk = sdk return cloud . NewAtomicReconciler ( known , osovh . NewOvhPublicModel ( known ) ) , nil case cluster . CloudPacket : sdk , err := packetSDK . NewSdk ( ) if err != nil { return nil , err } packetr . Sdk = sdk return cloud . NewAtomicReconciler ( known , packetpub . NewPacketPublicModel ( known ) ) , nil case cluster . CloudECS : sdk , err := openstackSdk . NewSdk ( known . ProviderConfig ( ) . Location ) if err != nil { return nil , err } osr . Sdk = sdk return cloud . NewAtomicReconciler ( known , osecs . NewEcsPublicModel ( known ) ) , nil default : return nil , fmt . Errorf ( " " , known . ProviderConfig ( ) . Cloud ) } }
// GetReconciler gets the correct Reconciler for the cloud provider currenty used.
GetReconciler gets the correct Reconciler for the cloud provider currenty used .