func main()

in main.go [51:98]


func main() {
	flag.StringVar(&cluster, "cluster", "", "EKS cluster name")
	flag.StringVar(&region, "region", "", "EKS cluster's region")
	flag.StringVar(&namespace, "namespace", defaultNamespace, "EKS namespace to restrict the IAM policy for")
	flag.StringVar(&serviceAccount, "service-account", "", "EKS service account")
	flag.StringVar(&role, "role", "", "IAM role to be created or updated")
	flag.Usage = func() {
		usageText(0)
	}
	flag.Parse()

	if cluster == "" {
		usageText(1)
	}
	if region == "" {
		reg, err := defaultRegion()
		if err != nil {
			log.Fatalf("Cannot identify the default region: %v", err)
		}
		region = reg
	}
	if serviceAccount == "" {
		serviceAccount = namespace
	}
	if role == "" {
		role = fmt.Sprintf("%s-%s-%s-%s-%s",
			defaultIAMRole, region, cluster, namespace, serviceAccount)
	}

	cfg := &aws.Config{}
	if region != "" {
		cfg.Region = aws.String(region)
	}

	sess, err := session.NewSessionWithOptions(session.Options{
		SharedConfigState:       session.SharedConfigEnable,
		AssumeRoleTokenProvider: stscreds.StdinTokenProvider,
		Config:                  *cfg,
	})
	if err != nil {
		log.Fatalf("Cannot create session: %v", err)
	}

	if err := createRole(sess); err != nil {
		log.Fatalf("Cannot create IAM role: %v", err)
	}
	log.Printf("Role %q is created.", role)
}