Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Scarf Proposal #6667

Merged
merged 3 commits into from
Feb 9, 2024
Merged

Scarf Proposal #6667

merged 3 commits into from
Feb 9, 2024

Conversation

davidnoyes
Copy link
Contributor

A proposal to use Scarf as a gateway for binary and container image downloads.

@jetstack-bot
Copy link
Contributor

Adding the "do-not-merge/release-note-label-needed" label because no release-note block was detected, please follow our release note process to remove it.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@jetstack-bot jetstack-bot added dco-signoff: no Indicates that at least one commit in this pull request is missing the DCO sign-off message. do-not-merge/release-note-label-needed Indicates that a PR should not merge because it's missing one of the release note labels. needs-kind Indicates a PR lacks a `kind/foo` label and requires one. size/M Denotes a PR that changes 30-99 lines, ignoring generated files. kind/design Categorizes issue or PR as related to design. and removed needs-kind Indicates a PR lacks a `kind/foo` label and requires one. labels Jan 26, 2024
Scarf proposal

Signed-off-by: David Noyes <david.noyes@venafi.com>
@jetstack-bot jetstack-bot added dco-signoff: yes Indicates that all commits in the pull request have the valid DCO sign-off message. and removed dco-signoff: no Indicates that at least one commit in this pull request is missing the DCO sign-off message. labels Jan 26, 2024

## Summary

With our focus on CNCF graduation, CNCF aims for its projects to become vendor-neutral wherever possible. The cert-manager project should uphold this aim. In doing so, it will need to take a further step to move on from its proud Jetstack legacy with a change to remove Jetstack from the container image repository name. Recently partnered with the Linux Foundation, Scarf is a service designed for open-source projects that will allow us to perform this migration seamlessly. In addition, Scarf will provide the benefit of not being tied to a single container image/binary repository vendor, giving us the freedom to change vendors and continue to provide container images seamlessly while still maintaining observability of how the project is downloaded.
Copy link
Member

@inteon inteon Jan 29, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Extra improvement: Additional to removing the jetstack name, we will also remove the quay.io name and switch to a more neutral domain (eg. cert-manager.io).

@inteon
Copy link
Member

inteon commented Jan 29, 2024

👍 LGTM

@maelvls
Copy link
Member

maelvls commented Jan 29, 2024

After reading the document, my takeways are:

  • The vendor neutrality required by the CNCF (proof, link?) requires the cert-manager project to "mask" any vendor mentions such as Jetstack or Venafi in things like image names and Helm chart repo URLs.
  • The official cert-manager images contain the word "jetstack", such as quay.io/jetstack/cert-manager-controller, and Scarf would allow us to change that to something like img.cert-manager.io/cert-manager-controller.
  • Scarf wouldn't host or deal with the high network traffic due to the image pulls since the images would stay in quay.io.
  • The canonical images would still be quay.io/jetstack/cert-manager-controller and such.
  • On top of fixing this vendor-neutrality problem, the cert-manager project would also be useful to the maintainer team in two aspects:
    • As a marketing tool, maintainers would be able to communicate on how many image pulls are done every month. We haven't been able to do that with Quay since pulling the download logs crashes their servers, and we have been stuck with "approximately 1 million pulls per day" in all of our project updates...
    • As a decision tool, maintainers would be able to know the rate of adoption of the new releases and decide whether the release frequency matches the adoption rate, or whether a majority of users lags behind.

I have a few questions:

  • An easy solution to the original problem could be to relocate (or rather duplicate) images to quay.io/cert-manager-org/cert-manager (the cert-manager is apparently taken). Has this been explored? Is there any other alternative to Scarf?
  • Who will pay for this, is the CNCF going to pay?
  • Has any other CNCF project adopted this tool, what do they think about adopting this tool?
  • If Scarf is free, what's their business model, are they somehow reselling some acquired data to third parties?
  • What about Helm charts? The name "jetstack" appears too when adding the repo:
    helm repo add jetstack https://charts.jetstack.io
    
  • How exactly does the "path" problem affect us? Would it prevent us from removing the /jetstack path from the image names?
  • I'd like to know what the new image names would look like. Would it be something like:
    img.cert-manager.io/cert-manager-controller
    

Signed-off-by: David Noyes <david.noyes@venafi.com>
Signed-off-by: David Noyes <david.noyes@venafi.com>
@davidnoyes
Copy link
Contributor Author

  • Extra improvement: Additional to removing the jetstack name, we will also remove the quay.io name and switch to a more neutral domain (eg. cert-manager.io).
  • An easy solution to the original problem could be to relocate (or rather duplicate) images to quay.io/cert-manager-org/cert-manager (the cert-manager is apparently taken). Has this been explored? Is there any other alternative to Scarf?
    • This does not fully solve the problem as it leaves a dependency upon the quay.io service
    • Further detail added in ad2e24d
  • Who will pay for this, is the CNCF going to pay?
    • A free tier account for OSS projects will be created (clarified in e7f3ff6). The free tier will address the goals listed in the proposal (further discussion to be had around the "path" problem).
    • Higher tiered (basic/premium) accounts are available at cost, pricing based on the number of monthly tracked companies and the number of seats for access. For transparency, Venafi may contribute towards this cost later but has yet to commit to doing so at the moment of writing.
  • Has any other CNCF project adopted this tool, what do they think about adopting this tool?
  • If Scarf is free, what's their business model, are they somehow reselling some acquired data to third parties?
    • "Basic" & "Premium" tiers are available at cost, providing more significant insights, support and SLAs. See Scarf's pricing model. Scarf will generate revenue from these account types.
  • What about Helm charts?
    • These should also be addressed, and Scarf may be an appropriate solution; however, Helm chart hosting is currently out of the scope of this proposal.
    • Default container image locations should be updated within existing Helm charts to reflect the newly chosen location.
  • How exactly does the "path" problem affect us? Would it prevent us from removing the /jetstack path from the image names?
    • The cert-manager images are currently located at quay.io/jetstack/cert-manager-controller. Current Scarf functionality allows for domain changes to a custom domain such as img.cert-manager.io (using @maelvls example). This would result in the new location being img.cert-manager.io/jetstack/cert-manager-controller, which continues to use "jetstack" in the path.
    • As described in the proposal, a workaround is being investigated by Scarf to allow for a custom path. There is also an alternative approach with the use of an additional hosting location such as ghcr.io/cert-manager/cert-manager-controller
  • I'd like to know what the new image names would look like
    • The chosen custom domain and image hosting location are topics to be discussed by the maintainers, and discussion from the community would also be welcome.

@arjundevarajan
Copy link

Hi, just wanted to leave a quick note here as well are just pointing out a couple of other CNCF projects that are utilizing Scarf:

Also, that Scarf is building a formal partnership with the Linux Foundation (and all of its subsidiary organizations, like the CNCF), and is now listed on this list of partners here: https://www.linuxfoundation.org/projects/partnerships

@inteon
Copy link
Member

inteon commented Feb 9, 2024

We discussed this proposal during the bi-weekly development meeting: https://docs.google.com/document/d/1Tc5t6ylY9dhXAan1OjOoldeaoys1Yh4Ir710ATfBa5U/edit#bookmark=id.cn5lnyf8y3oh

I think that the PR can be merged based on that conversation.
/approve
/lgtm

@jetstack-bot jetstack-bot added the lgtm Indicates that a PR is ready to be merged. label Feb 9, 2024
@jetstack-bot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: inteon

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@jetstack-bot jetstack-bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Feb 9, 2024
@jetstack-bot jetstack-bot merged commit 886e874 into cert-manager:master Feb 9, 2024
7 checks passed

With our focus on CNCF graduation, CNCF aims for its projects to become [vendor-neutral](https://contribute.cncf.io/maintainers/community/vendor-neutrality/) wherever possible. The cert-manager project should uphold this aim. In doing so, it will need to take a further step to move on from its proud Jetstack legacy with a change to remove Jetstack from the container image repository name.

In addition, Quay.io, the current container image registry for cert-manager, has limitations on the amount of analytic data it can provide due to the high volume of downloads that cert-manager receives. The cert-manager maintainers have also found that Quay has had several outages during 2023, and they want to manage that situation quickly in the future if required.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

scarf.sh also seems to have had several outages during 2023
image

But there's no record of these on their uptime history page AFAICS:

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @wallrj , just chiming in here, the Scarf team is working to backfill those incidents and they should be up shortly. We will comment again to update when finished.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks Melanie. I should also have linked to this issue:

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@wallrj scarf-sh/gateway#26 has been updated. We've officially switched over our status page provider and backfilled the incident reports for the Gateway.


With our focus on CNCF graduation, CNCF aims for its projects to become [vendor-neutral](https://contribute.cncf.io/maintainers/community/vendor-neutrality/) wherever possible. The cert-manager project should uphold this aim. In doing so, it will need to take a further step to move on from its proud Jetstack legacy with a change to remove Jetstack from the container image repository name.

In addition, Quay.io, the current container image registry for cert-manager, has limitations on the amount of analytic data it can provide due to the high volume of downloads that cert-manager receives. The cert-manager maintainers have also found that Quay has had several outages during 2023, and they want to manage that situation quickly in the future if required.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are there any limitations to the analytic data provided by Scarf?
For example, their documentation says that data export is only available if you are on a paid plan:

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Currently, the ability to export data is only available in Scarf's paid subscriptions. Otherwise, you will have access to software downloads by location, operating system, version, cloud provider, container runtimes, and referral source. As well as, documentation views by company, location, and pages that are most visited using our super lightweight pixel that has no cookies or javascript.

Any users downloading from secure environments with limited internet connections through firewall restrictions will need to add "allowed" rules for the Scarf gateway domain in addition to any existing rules for the image repository, such as quay.io. These should be clearly documented.

### Known issues/limitations
- Currently, the Scarf service only allows for custom domains and doesn't include custom paths. When speaking with members of the Scarf organisation, this is due to a technical limitation as the path is used in the image identification/verification process. Scarf is investigating a workaround; however, we may need to consider an additional hosting location/service to allow us to remove "jetstack" from the download path. An additional hosting location will increase existing maintenance and deployment process overheads.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.


## Summary

With our focus on CNCF graduation, CNCF aims for its projects to become [vendor-neutral](https://contribute.cncf.io/maintainers/community/vendor-neutrality/) wherever possible. The cert-manager project should uphold this aim. In doing so, it will need to take a further step to move on from its proud Jetstack legacy with a change to remove Jetstack from the container image repository name.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Scarf.sh does not solve this problem, as explained in the "known issues/limitations" section below.

Currently, the Scarf service only allows for custom domains and doesn't include custom paths.

The word Jetstack is in the path, not the domain: quay.io/jetstack/cert-manager-controller.

The simplest solution to this problem is to publish the images to quay.io/cert-manager/cert-manager-controller,
which we now have the ability to do.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree. The design reads like the number one benefit is to "become vendor neutral", but we have established that Scarf isn't required for that. I suggest that we don't mention this benefit in the design document at all.

The number one benefit that would justify Scarf's adoption, to me, being able for maintainers to know each version's adoption... and also being able to show a daily number of downloads at events like KubeCon.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. dco-signoff: yes Indicates that all commits in the pull request have the valid DCO sign-off message. do-not-merge/release-note-label-needed Indicates that a PR should not merge because it's missing one of the release note labels. kind/design Categorizes issue or PR as related to design. lgtm Indicates that a PR is ready to be merged. size/M Denotes a PR that changes 30-99 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

8 participants