Skip to content

Commit

Permalink
Add legacy endpoints to registry detection
Browse files Browse the repository at this point in the history
Add the respective legacy/old registry endpoints to the list of
endpoints of the registry detection to allow users to potentially still
use the old registry endpoints.
  • Loading branch information
HeavyWombat committed Jun 20, 2024
1 parent 61ed927 commit dce7c32
Showing 1 changed file with 15 additions and 4 deletions.
19 changes: 15 additions & 4 deletions pkg/image/delete.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,9 @@ import (
// Other registries:
// Use standard spec delete API request to delete the provided tag.
func Delete(ref name.Reference, options []remote.Option, auth authn.AuthConfig) error {
var registry = ref.Context().RegistryStr()
switch {
case strings.Contains(ref.Context().RegistryStr(), "docker.io"):
case isDockerHubEndpoint(registry):
list, err := remote.List(ref.Context(), options...)
if err != nil {
return err
Expand All @@ -70,7 +71,7 @@ func Delete(ref name.Reference, options []remote.Option, auth authn.AuthConfig)
return dockerHubRepoDelete(token, ref)

default:
log.Printf("Removing a specific image tag is not supported on %q, the respective image tag will be overwritten with an empty image.\n", ref.Context().RegistryStr())
log.Printf("Removing a specific image tag is not supported on %q, the respective image tag will be overwritten with an empty image.\n", registry)

// In case the input argument included a digest, the reference
// needs to be updated to exclude the digest for the empty image
Expand All @@ -90,8 +91,8 @@ func Delete(ref name.Reference, options []remote.Option, auth authn.AuthConfig)
)
}

case strings.Contains(ref.Context().RegistryStr(), "icr.io"):
token, accountID, err := icrLogin(ref.Context().RegistryStr(), auth.Username, auth.Password)
case isIcrEndpoint(registry):
token, accountID, err := icrLogin(registry, auth.Username, auth.Password)
if err != nil {
return err
}
Expand All @@ -112,6 +113,16 @@ func httpClient() *http.Client {
}
}

func isDockerHubEndpoint(registry string) bool {
return strings.Contains(registry, "docker.io") ||
strings.Contains(registry, "registry.hub.docker.com")
}

func isIcrEndpoint(registry string) bool {
return strings.Contains(registry, "icr.io") ||
strings.Contains(registry, "bluemix.net")
}

func dockerHubLogin(username string, password string) (string, error) {
type LoginData struct {
Username string `json:"username"`
Expand Down

0 comments on commit dce7c32

Please sign in to comment.