ecrtokenrefresher/cmd/ecr-token-refresher/main.go (56 lines of code) (raw):
package main
import (
"fmt"
"os"
"time"
"github.com/aws/eks-anywhere-packages/ecrtokenrefresher/pkg/constants"
"github.com/aws/eks-anywhere-packages/ecrtokenrefresher/pkg/secrets"
"github.com/aws/eks-anywhere-packages/ecrtokenrefresher/pkg/secrets/aws"
"github.com/aws/eks-anywhere-packages/ecrtokenrefresher/pkg/secrets/common"
"github.com/aws/eks-anywhere-packages/ecrtokenrefresher/pkg/secrets/registrymirror"
"github.com/aws/eks-anywhere-packages/ecrtokenrefresher/pkg/utils"
)
func main() {
utils.InfoLogger.Println("Running at " + time.Now().UTC().String())
defaultClientSet, err := common.GetDefaultClientSet()
if err != nil {
utils.ErrorLogger.Println(err)
os.Exit(0)
}
clientSets, err := common.GetRemoteClientSets(defaultClientSet)
if err != nil {
utils.ErrorLogger.Println(err)
os.Exit(0)
}
defaultClusterName, found := os.LookupEnv(constants.DefaultClusterNameKey)
if !found {
utils.ErrorLogger.Println(fmt.Errorf("environment variable %s is required", constants.DefaultClusterNameKey))
os.Exit(0)
}
clientSets[defaultClusterName] = defaultClientSet
secrets := []secrets.Secret{
&aws.AwsSecret{},
®istrymirror.RegistryMirrorSecret{},
}
utils.InfoLogger.Println("Initialization starts...")
for _, secret := range secrets {
err := secret.Init(defaultClusterName, clientSets)
if err != nil {
utils.ErrorLogger.Println(err)
}
}
utils.InfoLogger.Println("Initialization completes...")
utils.InfoLogger.Println("Broadcasting starts...")
for _, secret := range secrets {
if secret.IsActive() {
err = secret.BroadcastCredentials()
if err != nil {
utils.ErrorLogger.Println(err)
}
} else {
utils.InfoLogger.Println(secret.GetName() + " is inactive")
}
}
utils.InfoLogger.Println("Broadcasting ends...")
utils.InfoLogger.Println("Job complete at " + time.Now().UTC().String())
}