portainer/api/internal/registryutils/ecr_kube_secret.go

50 lines
1.0 KiB
Go

package registryutils
import (
portainer "github.com/portainer/portainer/api"
)
func isRegistryAssignedToNamespace(registry portainer.Registry, endpointID portainer.EndpointID, namespace string) (in bool){
for _, ns := range registry.RegistryAccesses[endpointID].Namespaces {
if ns == namespace {
return true
}
}
return
}
func RefreshEcrSecret(cli portainer.KubeClient, endpoint *portainer.Endpoint, dataStore portainer.DataStore, namespace string) (err error) {
registries, err := dataStore.Registry().Registries()
if err != nil {
return
}
for _, registry := range registries {
if registry.Type != portainer.EcrRegistry {
continue
}
if !isRegistryAssignedToNamespace(registry, endpoint.ID, namespace) {
continue
}
err = EnsureRegTokenValid(dataStore, &registry)
if err != nil {
return
}
err = cli.DeleteRegistrySecret(&registry, namespace)
if err != nil {
return
}
err = cli.CreateRegistrySecret(&registry, namespace)
if err != nil {
return
}
}
return
}