diff --git a/cmd/aws-actuator/utils.go b/cmd/aws-actuator/utils.go index c34c8d7084..ca2479742c 100644 --- a/cmd/aws-actuator/utils.go +++ b/cmd/aws-actuator/utils.go @@ -19,7 +19,7 @@ import ( "github.com/openshift/cluster-api-actuator-pkg/pkg/e2e/framework" machinev1 "github.com/openshift/cluster-api/pkg/apis/machine/v1beta1" machineactuator "sigs.k8s.io/cluster-api-provider-aws/pkg/actuators/machine" - "sigs.k8s.io/cluster-api-provider-aws/pkg/apis/awsproviderconfig/v1alpha1" + providerconfig "sigs.k8s.io/cluster-api-provider-aws/pkg/apis/openshiftawsproviderconfig/v1beta1" awsclient "sigs.k8s.io/cluster-api-provider-aws/pkg/client" ) @@ -120,7 +120,7 @@ func createActuator(machine *machinev1.Machine, awsCredentials, userData *apiv1. } fakeClient := fake.NewFakeClient(objList...) - codec, err := v1alpha1.NewCodec() + codec, err := providerconfig.NewCodec() if err != nil { return nil, err } diff --git a/cmd/manager/main.go b/cmd/manager/main.go index 4453bf5271..23994a834f 100644 --- a/cmd/manager/main.go +++ b/cmd/manager/main.go @@ -23,7 +23,7 @@ import ( _ "k8s.io/client-go/plugin/pkg/client/auth/gcp" "k8s.io/klog" machineactuator "sigs.k8s.io/cluster-api-provider-aws/pkg/actuators/machine" - "sigs.k8s.io/cluster-api-provider-aws/pkg/apis/awsproviderconfig/v1alpha1" + "sigs.k8s.io/cluster-api-provider-aws/pkg/apis/openshiftawsproviderconfig/v1beta1" awsclient "sigs.k8s.io/cluster-api-provider-aws/pkg/client" "sigs.k8s.io/controller-runtime/pkg/client/config" "sigs.k8s.io/controller-runtime/pkg/manager" @@ -77,7 +77,7 @@ func main() { } func initActuator(mgr manager.Manager) (*machineactuator.Actuator, error) { - codec, err := v1alpha1.NewCodec() + codec, err := v1beta1.NewCodec() if err != nil { return nil, fmt.Errorf("unable to create codec: %v", err) } diff --git a/hack/boilerplate.go.txt b/hack/boilerplate/boilerplate.go.txt similarity index 92% rename from hack/boilerplate.go.txt rename to hack/boilerplate/boilerplate.go.txt index 6dacee895c..4b76f1fdd8 100644 --- a/hack/boilerplate.go.txt +++ b/hack/boilerplate/boilerplate.go.txt @@ -1,5 +1,5 @@ /* -Copyright 2018 The Kubernetes Authors. +Copyright YEAR 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. @@ -12,4 +12,4 @@ 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. -*/ \ No newline at end of file +*/ diff --git a/pkg/actuators/machine/actuator.go b/pkg/actuators/machine/actuator.go index 90480d7cbc..8b59adb103 100644 --- a/pkg/actuators/machine/actuator.go +++ b/pkg/actuators/machine/actuator.go @@ -35,7 +35,7 @@ import ( machinev1 "github.com/openshift/cluster-api/pkg/apis/machine/v1beta1" clustererror "github.com/openshift/cluster-api/pkg/controller/error" apierrors "github.com/openshift/cluster-api/pkg/errors" - providerconfigv1 "sigs.k8s.io/cluster-api-provider-aws/pkg/apis/awsproviderconfig/v1alpha1" + providerconfigv1 "sigs.k8s.io/cluster-api-provider-aws/pkg/apis/openshiftawsproviderconfig/v1beta1" "github.com/aws/aws-sdk-go/service/ec2" @@ -457,6 +457,7 @@ func (a *Actuator) getMachineInstances(cluster *machinev1.Cluster, machine *mach func (a *Actuator) updateLoadBalancers(client awsclient.Client, providerConfig *providerconfigv1.AWSMachineProviderConfig, instance *ec2.Instance) error { if len(providerConfig.LoadBalancers) == 0 { glog.V(4).Infof("Instance %q has no load balancers configured. Skipping", *instance.InstanceId) + glog.V(4).Infof("providerconfig: %+v", providerConfig) return nil } errs := []error{} diff --git a/pkg/actuators/machine/actuator_test.go b/pkg/actuators/machine/actuator_test.go index 52ed5aa2da..2c974b8c30 100644 --- a/pkg/actuators/machine/actuator_test.go +++ b/pkg/actuators/machine/actuator_test.go @@ -2,6 +2,7 @@ package machine import ( "context" + "flag" "fmt" "strings" "testing" @@ -14,7 +15,7 @@ import ( "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/service/ec2" machinev1 "github.com/openshift/cluster-api/pkg/apis/machine/v1beta1" - providerconfigv1 "sigs.k8s.io/cluster-api-provider-aws/pkg/apis/awsproviderconfig/v1alpha1" + providerconfigv1 "sigs.k8s.io/cluster-api-provider-aws/pkg/apis/openshiftawsproviderconfig/v1beta1" awsclient "sigs.k8s.io/cluster-api-provider-aws/pkg/client" mockaws "sigs.k8s.io/cluster-api-provider-aws/pkg/client/mock" @@ -37,6 +38,10 @@ const ( ) func TestMachineEvents(t *testing.T) { + flag.Set("alsologtostderr", fmt.Sprintf("%t", true)) + var logLevel string + flag.StringVar(&logLevel, "logLevel", "4", "test") + flag.Lookup("v").Value.Set(logLevel) codec, err := providerconfigv1.NewCodec() if err != nil { t.Fatalf("unable to build codec: %v", err) @@ -105,6 +110,7 @@ func TestMachineEvents(t *testing.T) { actuator.CreateMachine(cluster, machine) }, event: "Warning FailedCreate CreateError", + //event: "Normal Created Created Machine aws-actuator-testing-machine", }, { name: "Create machine event succeed", @@ -187,7 +193,7 @@ func TestMachineEvents(t *testing.T) { select { case event := <-eventsChannel: if event != tc.event { - t.Errorf("Expected %q event, got %q", tc.event, event) + t.Errorf("tc.name %s failed. Expected %q event, got %q", tc.name, tc.event, event) } default: t.Errorf("Expected %q event, got none", tc.event) @@ -506,7 +512,7 @@ func TestActuator(t *testing.T) { }, }, { - name: "Delete machine failed (error terminating instances)", + name: "Delete machine failed (error terminating instances)", terminateInstancesErr: fmt.Errorf("error"), operation: func(objectClient client.Client, actuator *Actuator, cluster *machinev1.Cluster, machine *machinev1.Machine) { actuator.Delete(context.TODO(), cluster, machine) diff --git a/pkg/actuators/machine/instaces_test.go b/pkg/actuators/machine/instaces_test.go index d8564bcb62..99ac76b9c2 100644 --- a/pkg/actuators/machine/instaces_test.go +++ b/pkg/actuators/machine/instaces_test.go @@ -8,7 +8,7 @@ import ( "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/service/ec2" - providerconfigv1 "sigs.k8s.io/cluster-api-provider-aws/pkg/apis/awsproviderconfig/v1alpha1" + providerconfigv1 "sigs.k8s.io/cluster-api-provider-aws/pkg/apis/openshiftawsproviderconfig/v1beta1" "github.com/golang/mock/gomock" mockaws "sigs.k8s.io/cluster-api-provider-aws/pkg/client/mock" diff --git a/pkg/actuators/machine/instances.go b/pkg/actuators/machine/instances.go index 2190cc7776..02204d7848 100644 --- a/pkg/actuators/machine/instances.go +++ b/pkg/actuators/machine/instances.go @@ -9,7 +9,7 @@ import ( "github.com/golang/glog" machinev1 "github.com/openshift/cluster-api/pkg/apis/machine/v1beta1" - providerconfigv1 "sigs.k8s.io/cluster-api-provider-aws/pkg/apis/awsproviderconfig/v1alpha1" + providerconfigv1 "sigs.k8s.io/cluster-api-provider-aws/pkg/apis/openshiftawsproviderconfig/v1beta1" "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/service/ec2" diff --git a/pkg/actuators/machine/stubs.go b/pkg/actuators/machine/stubs.go index aafa82b7bb..cfc04687a9 100644 --- a/pkg/actuators/machine/stubs.go +++ b/pkg/actuators/machine/stubs.go @@ -13,7 +13,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" machinev1 "github.com/openshift/cluster-api/pkg/apis/machine/v1beta1" - providerconfigv1 "sigs.k8s.io/cluster-api-provider-aws/pkg/apis/awsproviderconfig/v1alpha1" + providerconfigv1 "sigs.k8s.io/cluster-api-provider-aws/pkg/apis/openshiftawsproviderconfig/v1beta1" "sigs.k8s.io/cluster-api-provider-aws/test/utils" ) diff --git a/pkg/actuators/machine/utils.go b/pkg/actuators/machine/utils.go index a06740919c..05faa19e17 100644 --- a/pkg/actuators/machine/utils.go +++ b/pkg/actuators/machine/utils.go @@ -30,7 +30,7 @@ import ( machinev1 "github.com/openshift/cluster-api/pkg/apis/machine/v1beta1" "golang.org/x/net/context" "k8s.io/apimachinery/pkg/types" - providerconfigv1 "sigs.k8s.io/cluster-api-provider-aws/pkg/apis/awsproviderconfig/v1alpha1" + providerconfigv1 "sigs.k8s.io/cluster-api-provider-aws/pkg/apis/openshiftawsproviderconfig/v1beta1" awsclient "sigs.k8s.io/cluster-api-provider-aws/pkg/client" "sigs.k8s.io/controller-runtime/pkg/client" ) @@ -181,6 +181,7 @@ func providerConfigFromMachine(client client.Client, machine *machinev1.Machine, } var config providerconfigv1.AWSMachineProviderConfig + if err := codec.DecodeProviderSpec(&machinev1.ProviderSpec{Value: &providerSpecRawExtention}, &config); err != nil { return nil, err } diff --git a/pkg/actuators/machine/utils_test.go b/pkg/actuators/machine/utils_test.go index 960c04cb58..9856e199db 100644 --- a/pkg/actuators/machine/utils_test.go +++ b/pkg/actuators/machine/utils_test.go @@ -8,7 +8,7 @@ import ( corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/kubernetes/scheme" - providerconfigv1 "sigs.k8s.io/cluster-api-provider-aws/pkg/apis/awsproviderconfig/v1alpha1" + providerconfigv1 "sigs.k8s.io/cluster-api-provider-aws/pkg/apis/openshiftawsproviderconfig/v1beta1" "sigs.k8s.io/controller-runtime/pkg/client/fake" ) @@ -21,7 +21,7 @@ func TestProviderConfigFromMachine(t *testing.T) { providerConfig := &providerconfigv1.AWSMachineProviderConfig{ TypeMeta: metav1.TypeMeta{ - APIVersion: "awsproviderconfig.k8s.io/v1alpha1", + APIVersion: "awsproviderconfig.openshift.io/v1beta1", Kind: "AWSMachineProviderConfig", }, InstanceType: "testInstance", diff --git a/pkg/apis/addtoscheme_openshiftawsprovider_v1beta1.go b/pkg/apis/addtoscheme_openshiftawsprovider_v1beta1.go new file mode 100644 index 0000000000..a6da39e049 --- /dev/null +++ b/pkg/apis/addtoscheme_openshiftawsprovider_v1beta1.go @@ -0,0 +1,26 @@ +/* +Copyright 2018 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 apis + +import ( + "sigs.k8s.io/cluster-api-provider-aws/pkg/apis/openshiftawsproviderconfig/v1beta1" +) + +func init() { + // Register the types with the Scheme so the components can map objects to GroupVersionKinds and back + AddToSchemes = append(AddToSchemes, v1beta1.SchemeBuilder.AddToScheme) +} diff --git a/pkg/apis/apis.go b/pkg/apis/apis.go new file mode 100644 index 0000000000..e951fcc6f1 --- /dev/null +++ b/pkg/apis/apis.go @@ -0,0 +1,33 @@ +/* +Copyright 2018 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. +*/ + +// Generate deepcopy for apis +//go:generate go run ../../vendor/k8s.io/code-generator/cmd/deepcopy-gen/main.go -O zz_generated.deepcopy -i ./... -h ../../hack/boilerplate/boilerplate.go.txt + +// Package apis contains Kubernetes API groups. +package apis + +import ( + "k8s.io/apimachinery/pkg/runtime" +) + +// AddToSchemes may be used to add all resources defined in the project to a Scheme +var AddToSchemes runtime.SchemeBuilder + +// AddToScheme adds all Resources to the Scheme +func AddToScheme(s *runtime.Scheme) error { + return AddToSchemes.AddToScheme(s) +} diff --git a/pkg/apis/openshiftawsproviderconfig/group.go b/pkg/apis/openshiftawsproviderconfig/group.go new file mode 100644 index 0000000000..f25e2bb566 --- /dev/null +++ b/pkg/apis/openshiftawsproviderconfig/group.go @@ -0,0 +1,18 @@ +/* +Copyright 2018 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 openshiftawsprovider contains awsprovider API versions +package openshiftawsprovider diff --git a/pkg/apis/awsproviderconfig/v1alpha1/awsmachineproviderconfig_types.go b/pkg/apis/openshiftawsproviderconfig/v1beta1/awsmachineproviderconfig_types.go similarity index 99% rename from pkg/apis/awsproviderconfig/v1alpha1/awsmachineproviderconfig_types.go rename to pkg/apis/openshiftawsproviderconfig/v1beta1/awsmachineproviderconfig_types.go index a826bb26a4..8e8b551ca2 100644 --- a/pkg/apis/awsproviderconfig/v1alpha1/awsmachineproviderconfig_types.go +++ b/pkg/apis/openshiftawsproviderconfig/v1beta1/awsmachineproviderconfig_types.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package v1alpha1 +package v1beta1 import ( corev1 "k8s.io/api/core/v1" diff --git a/pkg/apis/awsproviderconfig/v1alpha1/doc.go b/pkg/apis/openshiftawsproviderconfig/v1beta1/doc.go similarity index 78% rename from pkg/apis/awsproviderconfig/v1alpha1/doc.go rename to pkg/apis/openshiftawsproviderconfig/v1beta1/doc.go index c391550798..b39cee6c08 100644 --- a/pkg/apis/awsproviderconfig/v1alpha1/doc.go +++ b/pkg/apis/openshiftawsproviderconfig/v1beta1/doc.go @@ -14,10 +14,10 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Package v1alpha1 contains API Schema definitions for the awsproviderconfig v1alpha1 API group +// Package v1beta1 contains API Schema definitions for the openshiftawsproviderconfig v1beta1 API group // +k8s:openapi-gen=true // +k8s:deepcopy-gen=package,register -// +k8s:conversion-gen=sigs.k8s.io/cluster-api-provider-aws/pkg/apis/awsproviderconfig +// +k8s:conversion-gen=sigs.k8s.io/cluster-api-provider-aws/pkg/apis/openshiftawsproviderconfig // +k8s:defaulter-gen=TypeMeta -// +groupName=awsproviderconfig.k8s.io -package v1alpha1 +// +groupName=awsproviderconfig.openshift.io +package v1beta1 diff --git a/pkg/apis/awsproviderconfig/v1alpha1/register.go b/pkg/apis/openshiftawsproviderconfig/v1beta1/register.go similarity index 89% rename from pkg/apis/awsproviderconfig/v1alpha1/register.go rename to pkg/apis/openshiftawsproviderconfig/v1beta1/register.go index 1217f5baa8..9e5d852201 100644 --- a/pkg/apis/awsproviderconfig/v1alpha1/register.go +++ b/pkg/apis/openshiftawsproviderconfig/v1beta1/register.go @@ -16,17 +16,18 @@ limitations under the License. // NOTE: Boilerplate only. Ignore this file. -// Package v1alpha1 contains API Schema definitions for the awsproviderconfig v1alpha1 API group +// Package v1beta1 contains API Schema definitions for the awsproviderconfig v1beta1 API group // +k8s:openapi-gen=true // +k8s:deepcopy-gen=package,register // +k8s:conversion-gen=sigs.k8s.io/cluster-api-provider-aws/pkg/apis/awsproviderconfig // +k8s:defaulter-gen=TypeMeta // +groupName=awsproviderconfig.k8s.io -package v1alpha1 +package v1beta1 import ( "bytes" "fmt" + "github.com/ghodss/yaml" machinev1 "github.com/openshift/cluster-api/pkg/apis/machine/v1beta1" "k8s.io/apimachinery/pkg/runtime" @@ -37,7 +38,7 @@ import ( var ( // SchemeGroupVersion is group version used to register these objects - SchemeGroupVersion = schema.GroupVersion{Group: "awsproviderconfig.k8s.io", Version: "v1alpha1"} + SchemeGroupVersion = schema.GroupVersion{Group: "awsproviderconfig.openshift.io", Version: "v1beta1"} // SchemeBuilder is used to add go types to the GroupVersionKind scheme SchemeBuilder = &scheme.Builder{GroupVersion: SchemeGroupVersion} @@ -107,8 +108,11 @@ func (codec *AWSProviderConfigCodec) EncodeProviderStatus(in runtime.Object) (*r // DecodeProviderStatus deserialises the provider status func (codec *AWSProviderConfigCodec) DecodeProviderStatus(providerStatus *runtime.RawExtension, out runtime.Object) error { if providerStatus != nil { - _, _, err := codec.decoder.Decode(providerStatus.Raw, nil, out) - if err != nil { + // TODO(vikasc): revert back to using `Decode` once installer and mao have started using + // awsprovider apis pivoted under openshift.io api group + //_, _, err := codec.decoder.Decode(providerStatus.Raw, nil, out) + if err := yaml.Unmarshal(providerStatus.Raw, out); err != nil { + return fmt.Errorf("decoding failure: %v", err) } } diff --git a/pkg/apis/awsproviderconfig/v1alpha1/register_test.go b/pkg/apis/openshiftawsproviderconfig/v1beta1/register_test.go similarity index 97% rename from pkg/apis/awsproviderconfig/v1alpha1/register_test.go rename to pkg/apis/openshiftawsproviderconfig/v1beta1/register_test.go index e23a94e979..c742c801e7 100644 --- a/pkg/apis/awsproviderconfig/v1alpha1/register_test.go +++ b/pkg/apis/openshiftawsproviderconfig/v1beta1/register_test.go @@ -1,4 +1,4 @@ -package v1alpha1 +package v1beta1 import ( "reflect" @@ -27,7 +27,7 @@ func TestEncodeAndDecodeProviderStatus(t *testing.T) { providerStatus := &AWSMachineProviderStatus{ TypeMeta: metav1.TypeMeta{ Kind: "AWSMachineProviderStatus", - APIVersion: "awsproviderconfig.k8s.io/v1alpha1", + APIVersion: "awsproviderconfig.openshift.io/v1beta1", }, InstanceState: &instanceState, InstanceID: &instanceID, @@ -80,7 +80,7 @@ func TestEncodeAndDecodeProviderSpec(t *testing.T) { providerConfig := &AWSMachineProviderConfig{ TypeMeta: metav1.TypeMeta{ Kind: "AWSMachineProviderConfig", - APIVersion: "awsproviderconfig.k8s.io/v1alpha1", + APIVersion: "awsproviderconfig.openshift.io/v1beta1", }, AMI: AWSResourceReference{ Filters: []Filter{ diff --git a/pkg/apis/awsproviderconfig/v1alpha1/zz_generated.deepcopy.go b/pkg/apis/openshiftawsproviderconfig/v1beta1/zz_generated.deepcopy.go similarity index 99% rename from pkg/apis/awsproviderconfig/v1alpha1/zz_generated.deepcopy.go rename to pkg/apis/openshiftawsproviderconfig/v1beta1/zz_generated.deepcopy.go index 5af190171b..eae74a6ea9 100644 --- a/pkg/apis/awsproviderconfig/v1alpha1/zz_generated.deepcopy.go +++ b/pkg/apis/openshiftawsproviderconfig/v1beta1/zz_generated.deepcopy.go @@ -1,7 +1,7 @@ // +build !ignore_autogenerated /* -Copyright 2018 The Kubernetes Authors. +Copyright 2019 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. @@ -15,9 +15,10 @@ 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 main. DO NOT EDIT. -package v1alpha1 +package v1beta1 import ( v1 "k8s.io/api/core/v1" diff --git a/test/machines/utils.go b/test/machines/utils.go index 78dfb006da..9ffd67747c 100644 --- a/test/machines/utils.go +++ b/test/machines/utils.go @@ -9,7 +9,7 @@ import ( "github.com/openshift/cluster-api-actuator-pkg/pkg/e2e/framework" - providerconfigv1 "sigs.k8s.io/cluster-api-provider-aws/pkg/apis/awsproviderconfig/v1alpha1" + providerconfigv1 "sigs.k8s.io/cluster-api-provider-aws/pkg/apis/openshiftawsproviderconfig/v1beta1" ) func createSecretAndWait(f *framework.Framework, secret *apiv1.Secret) { diff --git a/test/utils/manifests.go b/test/utils/manifests.go index bc1fb400a9..8bc4fc5ca7 100644 --- a/test/utils/manifests.go +++ b/test/utils/manifests.go @@ -7,7 +7,7 @@ import ( machinev1beta1 "github.com/openshift/cluster-api/pkg/apis/machine/v1beta1" apiv1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - providerconfigv1 "sigs.k8s.io/cluster-api-provider-aws/pkg/apis/awsproviderconfig/v1alpha1" + providerconfigv1 "sigs.k8s.io/cluster-api-provider-aws/pkg/apis/openshiftawsproviderconfig/v1beta1" awsclient "sigs.k8s.io/cluster-api-provider-aws/pkg/client" )