Skip to content

Block plugins with a reason and an optional remedy #1066

@colindean

Description

@colindean

Description

Vela could have a configuration file that could enable blocking images/plugins.

A use case is to block old plugin versions. A conversation with a user highlighted that some folks are using ancient versions of Vela plugins. We want to think that folks have a dependency updater such as Renovate configured to get updates, but they might not.

I think Vela could have a denylist of images. That list could include a reason for each (e.g. “outdated and may not work”) and a remedy (e.g. “upgrade to a more recent version”).

Value

  • Enhance security by allowing or denying images
  • Provide a clear reason for the denial
  • Provide clear instructions for remedying a denial, such as alternative images to use or simply a nudge to use a newer version

Definition of Done

  • A configuration file populates a list of images that should be blocked along with metadata about the blockage
  • A configuration file populates a list of allowed images
  • After hydrating a pipeline configuration, the images to be retrieved are checked against these lists1.
  • If all images are allowed, proceed.
  • If any image is denied, halt the build job with an error and show the triplet (image url, reason, remedy).
  • Highlight the image URL in the pipeline config, if possible.

Effort (Optional)

Lots, potentially.

Impacted Personas (Optional)

Vela administrators would bear the brunt of the new powers, but some UX is needed for Vela users to get the information in the most actionable way.

Footnotes

  1. If allowlist is configured, if the image isn't in the list, deny it with a reason code along the lines of "not in the allowlist" and remedy of "use something else. If the denylist is configured, look up and get the reason/remedy.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/serverIndicates a change to the serverfeatureIndicates a new feature

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions