Skip to content

Commit

Permalink
Merge pull request #3757 from cnmcavoy/cnmcavoy/cloud-init
Browse files Browse the repository at this point in the history
Enhance the EKSConfigTemplate and add configuration for files, mounts, users, ntp, etc for CAPI feature parity
  • Loading branch information
k8s-ci-robot committed Oct 27, 2022
2 parents 7440d3e + 9b8b5af commit ad1231a
Show file tree
Hide file tree
Showing 18 changed files with 1,777 additions and 52 deletions.
76 changes: 72 additions & 4 deletions bootstrap/eks/api/v1beta1/conversion.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,10 @@ limitations under the License.
package v1beta1

import (
"sigs.k8s.io/controller-runtime/pkg/conversion"

apiconversion "k8s.io/apimachinery/pkg/conversion"
"sigs.k8s.io/cluster-api-provider-aws/v2/bootstrap/eks/api/v1beta2"
utilconversion "sigs.k8s.io/cluster-api/util/conversion"
"sigs.k8s.io/controller-runtime/pkg/conversion"
)

// ConvertTo converts the v1beta1 EKSConfig receiver to a v1beta2 EKSConfig.
Expand All @@ -30,6 +31,37 @@ func (r *EKSConfig) ConvertTo(dstRaw conversion.Hub) error {
return err
}

// Manually restore data.
restored := &v1beta2.EKSConfig{}
if ok, err := utilconversion.UnmarshalData(r, restored); err != nil || !ok {
return err
}

if restored.Spec.PreBootstrapCommands != nil {
dst.Spec.PreBootstrapCommands = restored.Spec.PreBootstrapCommands
}
if restored.Spec.PostBootstrapCommands != nil {
dst.Spec.PostBootstrapCommands = restored.Spec.PostBootstrapCommands
}
if restored.Spec.BootstrapCommandOverride != nil {
dst.Spec.BootstrapCommandOverride = restored.Spec.BootstrapCommandOverride
}
if restored.Spec.Files != nil {
dst.Spec.Files = restored.Spec.Files
}
if restored.Spec.DiskSetup != nil {
dst.Spec.DiskSetup = restored.Spec.DiskSetup
}
if restored.Spec.Mounts != nil {
dst.Spec.Mounts = restored.Spec.Mounts
}
if restored.Spec.Users != nil {
dst.Spec.Users = restored.Spec.Users
}
if restored.Spec.NTP != nil {
dst.Spec.NTP = restored.Spec.NTP
}

return nil
}

Expand All @@ -41,7 +73,7 @@ func (r *EKSConfig) ConvertFrom(srcRaw conversion.Hub) error {
return err
}

return nil
return utilconversion.MarshalData(src, r)
}

// ConvertTo converts the v1beta1 EKSConfigList receiver to a v1beta2 EKSConfigList.
Expand All @@ -66,6 +98,37 @@ func (r *EKSConfigTemplate) ConvertTo(dstRaw conversion.Hub) error {
return err
}

// Manually restore data.
restored := &v1beta2.EKSConfigTemplate{}
if ok, err := utilconversion.UnmarshalData(r, restored); err != nil || !ok {
return err
}

if restored.Spec.Template.Spec.PreBootstrapCommands != nil {
dst.Spec.Template.Spec.PreBootstrapCommands = restored.Spec.Template.Spec.PreBootstrapCommands
}
if restored.Spec.Template.Spec.PostBootstrapCommands != nil {
dst.Spec.Template.Spec.PostBootstrapCommands = restored.Spec.Template.Spec.PostBootstrapCommands
}
if restored.Spec.Template.Spec.BootstrapCommandOverride != nil {
dst.Spec.Template.Spec.BootstrapCommandOverride = restored.Spec.Template.Spec.BootstrapCommandOverride
}
if restored.Spec.Template.Spec.Files != nil {
dst.Spec.Template.Spec.Files = restored.Spec.Template.Spec.Files
}
if restored.Spec.Template.Spec.DiskSetup != nil {
dst.Spec.Template.Spec.DiskSetup = restored.Spec.Template.Spec.DiskSetup
}
if restored.Spec.Template.Spec.Mounts != nil {
dst.Spec.Template.Spec.Mounts = restored.Spec.Template.Spec.Mounts
}
if restored.Spec.Template.Spec.Users != nil {
dst.Spec.Template.Spec.Users = restored.Spec.Template.Spec.Users
}
if restored.Spec.Template.Spec.NTP != nil {
dst.Spec.Template.Spec.NTP = restored.Spec.Template.Spec.NTP
}

return nil
}

Expand All @@ -77,7 +140,7 @@ func (r *EKSConfigTemplate) ConvertFrom(srcRaw conversion.Hub) error {
return err
}

return nil
return utilconversion.MarshalData(src, r)
}

// ConvertTo converts the v1beta1 EKSConfigTemplateList receiver to a v1beta2 EKSConfigTemplateList.
Expand All @@ -93,3 +156,8 @@ func (r *EKSConfigTemplateList) ConvertFrom(srcRaw conversion.Hub) error {

return Convert_v1beta2_EKSConfigTemplateList_To_v1beta1_EKSConfigTemplateList(src, r, nil)
}

// Convert_v1beta2_EKSConfigSpec_To_v1beta1_EKSConfigSpec converts a v1beta2 EKSConfigSpec receiver to a v1beta1 EKSConfigSpec.
func Convert_v1beta2_EKSConfigSpec_To_v1beta1_EKSConfigSpec(in *v1beta2.EKSConfigSpec, out *EKSConfigSpec, s apiconversion.Scope) error {
return autoConvert_v1beta2_EKSConfigSpec_To_v1beta1_EKSConfigSpec(in, out, s)
}
71 changes: 57 additions & 14 deletions bootstrap/eks/api/v1beta1/zz_generated.conversion.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit ad1231a

Please sign in to comment.