From 92f541a91b9ab637e916be4eceebff290a591ea5 Mon Sep 17 00:00:00 2001 From: Chris Privitere <23177737+cprivitere@users.noreply.github.com> Date: Tue, 12 Jul 2022 11:30:05 -0500 Subject: [PATCH 1/2] Test cleanup does not appear to purge SSH keys Fixes #346 Signed-off-by: Chris Privitere <23177737+cprivitere@users.noreply.github.com> --- .gitignore | 3 +++ cmd/ci-clean/main.go | 33 +++++++++++++++++++++++++++++++-- 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 65c19d1fd..50bc368fa 100644 --- a/.gitignore +++ b/.gitignore @@ -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/ \ No newline at end of file diff --git a/cmd/ci-clean/main.go b/cmd/ci-clean/main.go index 38061caaa..96f1cfa26 100644 --- a/cmd/ci-clean/main.go +++ b/cmd/ci-clean/main.go @@ -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) } @@ -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) } @@ -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) +} From ee06b198e326c8ab3fbd3424677426c717e9ffd6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 12 Jul 2022 17:38:27 +0000 Subject: [PATCH 2/2] Bump docker/login-action from 1 to 2 Bumps [docker/login-action](https://github.com/docker/login-action) from 1 to 2. - [Release notes](https://github.com/docker/login-action/releases) - [Commits](https://github.com/docker/login-action/compare/v1...v2) --- updated-dependencies: - dependency-name: docker/login-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/ci.yaml | 6 +++--- .github/workflows/release.yaml | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 421501354..b7e947aaf 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -68,14 +68,14 @@ jobs: metadata_tags: ${{ env.metadata_tags }} - name: Log in to ghcr.io - uses: docker/login-action@v1 + uses: docker/login-action@v2 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: Log into DockerHub - uses: docker/login-action@v1 + uses: docker/login-action@v2 env: DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} if: ${{ env.DOCKER_USERNAME != '' }} @@ -84,7 +84,7 @@ jobs: password: ${{ secrets.DOCKER_PASSWORD }} - name: Log into quay.io - uses: docker/login-action@v1 + uses: docker/login-action@v2 env: QUAY_USERNAME: ${{ secrets.QUAY_USERNAME }} if: ${{ env.QUAY_USERNAME != '' }} diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 50fb21e18..3f0ab166f 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -35,14 +35,14 @@ jobs: metadata_tags: ${{ env.metadata_tags }} - name: Log in to ghcr.io - uses: docker/login-action@v1 + uses: docker/login-action@v2 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: Log into DockerHub - uses: docker/login-action@v1 + uses: docker/login-action@v2 env: DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} if: ${{ env.DOCKER_USERNAME != '' }} @@ -51,7 +51,7 @@ jobs: password: ${{ secrets.DOCKER_PASSWORD }} - name: Log into quay.io - uses: docker/login-action@v1 + uses: docker/login-action@v2 env: QUAY_USERNAME: ${{ secrets.QUAY_USERNAME }} if: ${{ env.QUAY_USERNAME != '' }}