Skip to content

Commit

Permalink
add: install ack-rds-controller (#240)
Browse files Browse the repository at this point in the history
  • Loading branch information
aaroniscode authored Sep 6, 2024
1 parent ea69ba1 commit 087406e
Show file tree
Hide file tree
Showing 4 changed files with 80 additions and 6 deletions.
10 changes: 6 additions & 4 deletions cmd/install/ack.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package install

import (
"github.com/awslabs/eksdemo/pkg/application"
"github.com/awslabs/eksdemo/pkg/application/ack"
"github.com/awslabs/eksdemo/pkg/application/ack/apigatewayv2_controller"
"github.com/awslabs/eksdemo/pkg/application/ack/ec2_controller"
"github.com/awslabs/eksdemo/pkg/application/ack/ecr_controller"
Expand All @@ -12,7 +13,7 @@ import (
"github.com/spf13/cobra"
)

var ack []func() *application.Application
var ackControllers []func() *application.Application

func NewInstallAckCmd() *cobra.Command {
cmd := &cobra.Command{
Expand All @@ -23,7 +24,7 @@ func NewInstallAckCmd() *cobra.Command {
// Don't show flag errors for `install ack` without a subcommand
cmd.DisableFlagParsing = true

for _, a := range ack {
for _, a := range ackControllers {
cmd.AddCommand(a().NewInstallCmd())
}

Expand All @@ -39,21 +40,22 @@ func NewUninstallAckCmd() *cobra.Command {
// Don't show flag errors for `uninstall ack` without a subcommand
cmd.DisableFlagParsing = true

for _, a := range ack {
for _, a := range ackControllers {
cmd.AddCommand(a().NewUninstallCmd())
}

return cmd
}

func init() {
ack = []func() *application.Application{
ackControllers = []func() *application.Application{
apigatewayv2_controller.NewApp,
ec2_controller.NewApp,
ecr_controller.NewApp,
eks_controller.NewApp,
iam_controller.NewApp,
prometheusservice_controller.NewApp,
ack.NewRDSController,
s3_controller.NewApp,
}
}
2 changes: 1 addition & 1 deletion cmd/install/install.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ func NewInstallCmd() *cobra.Command {
cmd.DisableFlagParsing = true

cmd.AddCommand(NewInstallAckCmd())
cmd.AddCommand(NewInstallAliasCmds(ack, "ack-")...)
cmd.AddCommand(NewInstallAliasCmds(ackControllers, "ack-")...)
cmd.AddCommand(adot_operator.NewApp().NewInstallCmd())
cmd.AddCommand(appmesh_controller.NewApp().NewInstallCmd())
cmd.AddCommand(NewInstallArgoCmd())
Expand Down
2 changes: 1 addition & 1 deletion cmd/install/uninstall.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ func NewUninstallCmd() *cobra.Command {
cmd.DisableFlagParsing = true

cmd.AddCommand(NewUninstallAckCmd())
cmd.AddCommand(NewUninstallAliasCmds(ack, "ack-")...)
cmd.AddCommand(NewUninstallAliasCmds(ackControllers, "ack-")...)
cmd.AddCommand(adot_operator.NewApp().NewUninstallCmd())
cmd.AddCommand(appmesh_controller.NewApp().NewUninstallCmd())
cmd.AddCommand(NewUninstallArgoCmd())
Expand Down
72 changes: 72 additions & 0 deletions pkg/application/ack/rds_controller.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
package ack

import (
"github.com/awslabs/eksdemo/pkg/application"
"github.com/awslabs/eksdemo/pkg/cmd"
"github.com/awslabs/eksdemo/pkg/installer"
"github.com/awslabs/eksdemo/pkg/resource"
"github.com/awslabs/eksdemo/pkg/resource/irsa"
"github.com/awslabs/eksdemo/pkg/template"
)

// Docs: https://aws-controllers-k8s.github.io/community/docs/community/overview/
// Docs: https://aws-controllers-k8s.github.io/community/reference/
// GitHub: https://github.com/aws-controllers-k8s/rds-controller
// Helm: https://github.com/aws-controllers-k8s/rds-controller/tree/main/helm
// Chart: https://gallery.ecr.aws/aws-controllers-k8s/rds-chart
// Repo: https://gallery.ecr.aws/aws-controllers-k8s/rds-controller
// Version: Latest is v1.4.4 (as of 9/6/24)

func NewRDSController() *application.Application {
return &application.Application{
Command: cmd.Command{
Parent: "ack",
Name: "rds-controller",
Description: "ACK RDS Controller",
Aliases: []string{"rds"},
},

Dependencies: []*resource.Resource{
irsa.NewResourceWithOptions(&irsa.IrsaOptions{
CommonOptions: resource.CommonOptions{
Name: "ack-rds-controller-irsa",
},
// https://github.com/aws-controllers-k8s/rds-controller/blob/main/config/iam/recommended-policy-arn
PolicyType: irsa.PolicyARNs,
Policy: []string{"arn:aws:iam::aws:policy/AmazonRDSFullAccess"},
}),
},

Options: &application.ApplicationOptions{
Namespace: "ack-system",
ServiceAccount: "ack-rds-controller",
DefaultVersion: &application.LatestPrevious{
LatestChart: "1.4.4",
Latest: "1.4.4",
PreviousChart: "1.4.4",
Previous: "1.4.4",
},
},

Installer: &installer.HelmInstaller{
ReleaseName: "ack-rds-controller",
RepositoryURL: "oci://public.ecr.aws/aws-controllers-k8s/rds-chart",
ValuesTemplate: &template.TextTemplate{
Template: valuesTemplate,
},
},
}
}

// https://github.com/aws-controllers-k8s/rds-controller/blob/main/helm/values.yaml
const valuesTemplate = `---
image:
tag: {{ .Version }}
fullnameOverride: ack-rds-controller
aws:
region: {{ .Region }}
serviceAccount:
name: {{ .ServiceAccount }}
annotations:
{{ .IrsaAnnotation }}
`

0 comments on commit 087406e

Please sign in to comment.