Skip to content

Commit

Permalink
aws API calls
Browse files Browse the repository at this point in the history
Signed-off-by: Eytan Avisror <[email protected]>
  • Loading branch information
Eytan Avisror committed Jan 13, 2021
1 parent 41bd571 commit 335fb4f
Show file tree
Hide file tree
Showing 6 changed files with 42 additions and 16 deletions.
16 changes: 15 additions & 1 deletion controllers/providers/aws/autoscaling.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,18 @@ limitations under the License.

package aws

// TODO: Autoscaling API Calls
import (
"github.com/aws/aws-sdk-go/service/autoscaling"
)

func (a *AmazonClientSet) DescribeScalingGroups() ([]*autoscaling.Group, error) {
scalingGroups := []*autoscaling.Group{}
err := a.AsgClient.DescribeAutoScalingGroupsPages(&autoscaling.DescribeAutoScalingGroupsInput{}, func(page *autoscaling.DescribeAutoScalingGroupsOutput, lastPage bool) bool {
scalingGroups = append(scalingGroups, page.AutoScalingGroups...)
return page.NextToken != nil
})
if err != nil {
return scalingGroups, err
}
return scalingGroups, nil
}
16 changes: 15 additions & 1 deletion controllers/providers/aws/ec2.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,18 @@ limitations under the License.

package aws

// TODO: EC2 API Calls
import (
"github.com/aws/aws-sdk-go/service/ec2"
)

func (a *AmazonClientSet) DescribeLaunchTemplates() ([]*ec2.LaunchTemplate, error) {
launchTemplates := []*ec2.LaunchTemplate{}
err := a.Ec2Client.DescribeLaunchTemplatesPages(&ec2.DescribeLaunchTemplatesInput{}, func(page *ec2.DescribeLaunchTemplatesOutput, lastPage bool) bool {
launchTemplates = append(launchTemplates, page.LaunchTemplates...)
return page.NextToken != nil
})
if err != nil {
return launchTemplates, err
}
return launchTemplates, nil
}
11 changes: 5 additions & 6 deletions controllers/providers/kubernetes/events.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,18 +27,17 @@ import (
"github.com/keikoproj/upgrade-manager/api/v1alpha1"
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/kubernetes"
)

type EventWriter struct {
kubernetes.Interface
*KubernetesClientSet
logr.Logger
}

func NewEventWriter(k kubernetes.Interface, logger logr.Logger) *EventWriter {
func NewEventWriter(k *KubernetesClientSet, logger logr.Logger) *EventWriter {
return &EventWriter{
Interface: k,
Logger: logger,
KubernetesClientSet: k,
Logger: logger,
}
}

Expand Down Expand Up @@ -91,7 +90,7 @@ func (w *EventWriter) CreateEvent(rollingUpgrade *v1alpha1.RollingUpgrade, reaso
}

w.V(1).Info("publishing event", "event", event)
_, err := w.CoreV1().Events(rollingUpgrade.GetNamespace()).Create(context.Background(), event, metav1.CreateOptions{})
_, err := w.Kubernetes.CoreV1().Events(rollingUpgrade.GetNamespace()).Create(context.Background(), event, metav1.CreateOptions{})
if err != nil {
w.Error(err, "failed to publish event")
}
Expand Down
5 changes: 2 additions & 3 deletions controllers/providers/kubernetes/nodes.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,12 @@ import (

corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/kubernetes"
)

// ListClusterNodes gets a list of all nodes in the cluster
func ListClusterNodes(k kubernetes.Interface) (*corev1.NodeList, error) {
func (k *KubernetesClientSet) ListClusterNodes() (*corev1.NodeList, error) {
var nodes *corev1.NodeList
nodes, err := k.CoreV1().Nodes().List(context.Background(), metav1.ListOptions{})
nodes, err := k.Kubernetes.CoreV1().Nodes().List(context.Background(), metav1.ListOptions{})
if err != nil {
return nodes, err
}
Expand Down
4 changes: 2 additions & 2 deletions controllers/rollingupgrade_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,8 @@ type RollingUpgradeReconciler struct {
}

type RollingUpgradeAuthenticator struct {
awsprovider.AmazonClientSet
kubeprovider.KubernetesClientSet
*awsprovider.AmazonClientSet
*kubeprovider.KubernetesClientSet
}

// +kubebuilder:rbac:groups=upgrademgr.keikoproj.io,resources=rollingupgrades,verbs=get;list;watch;create;update;patch;delete
Expand Down
6 changes: 3 additions & 3 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -168,12 +168,12 @@ func main() {
os.Exit(1)
}

awsClient := awsprovider.AmazonClientSet{
awsClient := &awsprovider.AmazonClientSet{
Ec2Client: ec2.New(sess),
AsgClient: autoscaling.New(sess),
}

kubeClient := kubeprovider.KubernetesClientSet{
kubeClient := &kubeprovider.KubernetesClientSet{
Kubernetes: kube,
}

Expand All @@ -188,7 +188,7 @@ func main() {
AmazonClientSet: awsClient,
KubernetesClientSet: kubeClient,
},
EventWriter: kubeprovider.NewEventWriter(kubeClient.Kubernetes, logger),
EventWriter: kubeprovider.NewEventWriter(kubeClient, logger),
}

reconciler.SetMaxParallel(maxParallel)
Expand Down

0 comments on commit 335fb4f

Please sign in to comment.