cleaning up some code

This commit is contained in:
2024-08-02 14:43:55 -04:00
parent 0f37b2806b
commit 4792d6502a
4 changed files with 111 additions and 53 deletions

60
main.go
View File

@@ -1,31 +1,19 @@
package main
import (
"context"
"encoding/base64"
helper "git.s.int/rrise/aws-iam-anywhere-refresher/aws_signing_helper"
"git.s.int/rrise/aws-iam-anywhere-refresher/cmd"
appConfig "git.s.int/rrise/aws-iam-anywhere-refresher/config"
v1k "k8s.io/api/core/v1"
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/kubernetes"
"k8s.io/client-go/rest"
"git.s.int/rrise/aws-iam-anywhere-refresher/kube_client"
"log"
"os"
"time"
)
func main() {
println("Starting credentials refresh")
config, err := rest.InClusterConfig()
if err != nil {
println("Are you running in a cluster?")
panic(err)
}
client, err := kubernetes.NewForConfig(config)
client, err := kube_client.NewKubeClient()
if err != nil {
panic(err)
}
@@ -60,65 +48,35 @@ func main() {
println("Got new credentials")
secret := &v1k.Secret{
ObjectMeta: v1.ObjectMeta{
Name: c.Secret(),
Labels: map[string]string{
"managed-by": "aws-iam-anywhere-refresher",
},
},
StringData: map[string]string{
"AWS_ACCESS_KEY_ID": credentials.AccessKeyId,
"AWS_SECRET_ACCESS_KEY": credentials.SecretAccessKey,
"AWS_SESSION_TOKEN": credentials.SessionToken,
},
}
_, err = client.CoreV1().Secrets(c.Namespace()).Get(context.TODO(), c.Secret(), v1.GetOptions{})
_, err = client.GetSecret(c.Namespace(), c.Secret())
if err != nil {
println(err.Error())
println("secret doesn't exist, trying to create")
create, err := client.CoreV1().Secrets(c.Namespace()).Create(context.Background(), secret, v1.CreateOptions{})
create, err := client.CreateSecret(c.Namespace(), credentials.ToSecret(c.Secret()))
if err != nil {
panic(err)
}
println("secret created")
println(create.CreationTimestamp.String())
} else {
update, err := client.CoreV1().Secrets(c.Namespace()).Update(context.TODO(), secret, v1.UpdateOptions{})
update, err := client.UpdateSecret(c.Namespace(), credentials.ToSecret(c.Secret()))
if err != nil {
panic(err)
}
println("secret updated")
println(update.CreationTimestamp.String())
}
if c.RestartDeployments() {
println("Restarting deployments...")
deployments, err := client.AppsV1().Deployments(c.Namespace()).List(context.TODO(), v1.ListOptions{
LabelSelector: "iam-role-type=aws-iam-anywhere",
})
deployments, err := client.ListDeployments(c.Namespace())
if err != nil {
panic(err)
}
for _, deployment := range deployments.Items {
println("Restarting deployment", deployment.Name)
if deployment.Spec.Template.ObjectMeta.Annotations == nil {
deployment.Spec.Template.ObjectMeta.Annotations = make(map[string]string)
}
deployment.Spec.Template.ObjectMeta.Annotations["kubectl.kubernetes.io/restartedAt"] = time.Now().Format(time.RFC3339)
_, err = client.AppsV1().Deployments(c.Namespace()).Update(context.TODO(), &deployment, v1.UpdateOptions{})
if err != nil {
println(err.Error())
}
err = client.RestartDeployments(c.Namespace(), deployments)
if err != nil {
panic(err)
}
}