func HandleRequest()

in vpc/main.go [15:63]


func HandleRequest(_ context.Context, event resource.Event) (*resource.IamAuthMap, error) {
	eventJson, err := json.Marshal(event)
	if err != nil {
		log.Println(err)
	}
	log.Println("event: " + string(eventJson))
	sess, err := session.NewSession(&aws.Config{})
	if err != nil {
		return nil, err
	}
	token, err := resource.GetToken(sess, event.ClusterName)
	if err != nil {
		return nil, err
	}
	cs, err := resource.CreateKubeClientFromToken(*event.Endpoint, *token, event.CaData)
	if err != nil {
		return nil, err
	}
	auth := &resource.IamAuthMap{}
	if event.AwsAuth != nil {
		copier.Copy(auth, event.AwsAuth)
	}
	switch event.Action {
	case resource.CreateAction:
		fmt.Println("Create event")
		err := event.AwsAuth.PushConfigMap(cs)
		if err != nil {
			return nil, err
		}
	case resource.ReadAction:
		fmt.Println("Read event")
		awsAuth, err := event.AwsAuth.GetFromCluster(cs)
		if err != nil {
			return nil, err
		}
		event.AwsAuth = awsAuth
	case resource.UpdateAction:
		fmt.Println("Update event")
		err := event.AwsAuth.PushConfigMap(cs)
		if err != nil {
			return nil, err
		}
	case resource.DeleteAction:
		fmt.Println("Delete event")
	case resource.ListAction:
		fmt.Println("List event")
	}
	return auth, nil
}