Skip to content

Lightsail SSH certificate expires during longer deployments #138

Description

@phindmarsh

I have been testing this action to implement preview environments for a client of ours. This particular client has a reasonably large docker footprint, with a dozen or so containers (backend, frontend, and integration apps) from what used to be a microservice style deployment. This contributes to a relatively long time required to provision the instance and download/setup the containers.

PullPreview fetches Lightsail access details once when provisioning or connecting to an instance. AWS returns a temporary SSH certificate with an expiresAt timestamp; certificates observed during testing were valid for roughly ten minutes.

I noticed that when docker compose tries to open additional SSH connections after about 10mins they start failing with Permission denied (publickey) and Certificate invalid: expired errors.

Docker reports this as a remote context failure with SSH exit status 255.

I forked the repo and added a workaround for the moment (hellpizza/pullpreview-action:codex/refresh-lightsail-ssh-access), which refreshes the certificate before doing the compose actions which allowed the deployment to completed. I'm not really knowledgable in Go (this workaround was implemeted with Codex), and I don't think its a great solution so I wanted to get some input on what other options might exist to resolve the issue.

Thoughts?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions