diff --git a/eks-cluster.cfndsl.rb b/eks-cluster.cfndsl.rb index bc80b16..bb835e7 100644 --- a/eks-cluster.cfndsl.rb +++ b/eks-cluster.cfndsl.rb @@ -208,6 +208,17 @@ LaunchTemplateData(template_data) } + add_ons = external_parameters.fetch(:add_ons, {}) + add_ons.each do | add_on, config | + safe_addon_name = add_on.dup.gsub!('-','') || add_on + EKS_Addon("#{safe_addon_name.capitalize}Addon") { + AddonName add_on + AddonVersion config['version'] + ResolveConflicts config['resolve_conflicts'] if config.has_key?('resolve_conflicts') + ClusterName Ref(:EksCluster) + Tags tags + } + end unless add_ons.empty? asg_tags = [ { Key: FnSub("k8s.io/cluster/${EksCluster}"), Value: 'owned' }, diff --git a/tests/add_ons.test.yaml b/tests/add_ons.test.yaml new file mode 100644 index 0000000..94dadc5 --- /dev/null +++ b/tests/add_ons.test.yaml @@ -0,0 +1,9 @@ +test_metadata: + type: config + name: add_ons + description: test with some basic configuration and an add on + +add_ons: + kube-proxy: + version: v1.21.2-eksbuild.2 + resolve_conflicts: OVERWRITE \ No newline at end of file