mirror of
https://github.com/goharbor/harbor.git
synced 2024-12-18 14:47:38 +01:00
Merge pull request #10452 from bitsf/ecr_delete_image_master
(cherry-pick)Ecr delete image master
This commit is contained in:
commit
3b35392c1c
@ -271,3 +271,38 @@ func (a *adapter) createRepository(repository string) error {
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// DeleteManifest ...
|
||||
func (a *adapter) DeleteManifest(repository, reference string) error {
|
||||
// AWS doesn't implement standard OCI delete manifest API, so use it's sdk.
|
||||
if a.registry.Credential == nil ||
|
||||
len(a.registry.Credential.AccessKey) == 0 || len(a.registry.Credential.AccessSecret) == 0 {
|
||||
return errors.New("no credential ")
|
||||
}
|
||||
cred := credentials.NewStaticCredentials(
|
||||
a.registry.Credential.AccessKey,
|
||||
a.registry.Credential.AccessSecret,
|
||||
"")
|
||||
if a.region == "" {
|
||||
return errors.New("no region parsed")
|
||||
}
|
||||
config := &aws.Config{
|
||||
Credentials: cred,
|
||||
Region: &a.region,
|
||||
HTTPClient: &http.Client{
|
||||
Transport: registry.GetHTTPTransport(a.registry.Insecure),
|
||||
},
|
||||
}
|
||||
if a.forceEndpoint != nil {
|
||||
config.Endpoint = a.forceEndpoint
|
||||
}
|
||||
sess := session.Must(session.NewSession(config))
|
||||
|
||||
svc := awsecrapi.New(sess)
|
||||
|
||||
_, err := svc.BatchDeleteImage(&awsecrapi.BatchDeleteImageInput{
|
||||
RepositoryName: &repository,
|
||||
ImageIds: []*awsecrapi.ImageIdentifier{{ImageTag: &reference}},
|
||||
})
|
||||
return err
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user