/
addon.go
44 lines (37 loc) · 983 Bytes
/
addon.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package addon
import (
"github.com/awslabs/eksdemo/pkg/cmd"
"github.com/awslabs/eksdemo/pkg/eksctl"
"github.com/awslabs/eksdemo/pkg/resource"
"github.com/awslabs/eksdemo/pkg/template"
)
func NewResource() *resource.Resource {
res := &resource.Resource{
Command: cmd.Command{
Name: "addon",
Description: "EKS Managed Addon",
Aliases: []string{"addons"},
Args: []string{"NAME"},
},
Getter: &Getter{},
Manager: &eksctl.ResourceManager{
Resource: "addon",
ConfigTemplate: &template.TextTemplate{
Template: eksctl.EksctlHeader + eksctlTemplate,
},
DeleteCommand: &template.TextTemplate{
Template: deleteCommandTemplate,
},
},
}
res.Options, res.CreateFlags = NewOptions()
return res
}
const eksctlTemplate = `
addons:
- name: {{ .Name }}
{{- if .Version }}
version: {{ .Version }}
{{- end }}
`
const deleteCommandTemplate = `--name {{ .Name }} --cluster {{ .ClusterName }} --region {{ .Region }} --preserve`