Skip to content

Commit

Permalink
Merge pull request #349 from kubernetes-sigs/cprivitere/issue346
Browse files Browse the repository at this point in the history
Test cleanup does not appear to purge SSH keys
  • Loading branch information
cprivitere committed Jul 12, 2022
2 parents 0466e43 + 92f541a commit 594c2f2
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 2 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -47,3 +47,6 @@ dist
# E2E test templates
test/e2e/data/v1alpha3/cluster-template*.yaml
test/e2e/data/v1beta1/cluster-template*.yaml

#VS Code
.vscode/
33 changes: 31 additions & 2 deletions cmd/ci-clean/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -65,14 +65,13 @@ func main() {
func cleanup(metalAuthToken, metalProjectID string) error {
metalClient := packngo.NewClientWithAuth("capp-e2e", metalAuthToken, nil)
listOpts := &packngo.ListOptions{}
var errs []error

devices, _, err := metalClient.Devices.List(metalProjectID, listOpts)
if err != nil {
return fmt.Errorf("failed to list devices: %w", err)
}

var errs []error

if err := deleteDevices(metalClient, devices); err != nil {
errs = append(errs, err)
}
Expand All @@ -86,6 +85,15 @@ func cleanup(metalAuthToken, metalProjectID string) error {
errs = append(errs, err)
}

keys, _, err := metalClient.Projects.ListSSHKeys(metalProjectID, listOpts)
if err != nil {
return fmt.Errorf("failed to list ssh keys: %w", err)
}

if err := deleteKeys(metalClient, keys); err != nil {
errs = append(errs, err)
}

return kerrors.NewAggregate(errs)
}

Expand Down Expand Up @@ -137,3 +145,24 @@ func deleteIPs(metalClient *packngo.Client, ips []packngo.IPAddressReservation)

return kerrors.NewAggregate(errs)
}

func deleteKeys(metalClient *packngo.Client, keys []packngo.SSHKey) error {
var errs []error

for _, k := range keys {
created, err := time.Parse(time.RFC3339, k.Created)
if err != nil {
errs = append(errs, fmt.Errorf("failed to parse creation time for SSH Key %q: %w", k.Label, err))
continue
}
if time.Since(created) > 4*time.Hour {
fmt.Printf("Deleting SSH Key: %s\n", k.Label)
_, err := metalClient.SSHKeys.Delete(k.ID)
if err != nil {
errs = append(errs, fmt.Errorf("failed to delete SSH Key %q: %w", k.Label, err))
}
}
}

return kerrors.NewAggregate(errs)
}

0 comments on commit 594c2f2

Please sign in to comment.