Skip to content

[enhancement]: Allow direct specification of release information and SHA256 hash for KubeloginInstaller task to avoid hitting Github API rate limits. #20204

Closed
@DoPaNik

Description

Task name

KubeloginInstaller

Describe your feature request here

Currently, the KubeloginInstaller task calls the getKubeloginRelease function every time it runs. This function retrieves release information via the GitHub API. This process can quickly hit the API rate limits (60 requests per hour) for selfhosted agents.

Proposed Enhancement:
Provide an option to directly specify the necessary release information and the SHA256 hash for the KubeloginInstaller task. This would bypass the need to call the GitHub API each time, allowing the task to directly download the release file based on the provided information and verify its integrity.

Benefits:

  • Prevent hitting the GitHub API rate limits, ensuring more reliable task execution
  • Reduce the overhead and latency associated with making API calls
  • Improve overall efficiency for users running multiple instances of the task within the same hour

Implementation Suggestions:

  • Add parameters to the KubeloginInstaller task for specifying the release information (e.g., version, download URL, and SHA256 hash)
  • Update the task logic to check if these parameters are provided. If they are, skip the call to getKubeloginRelease and proceed to download the release file directly, followed by verifying its SHA256 hash

Example:

- task: KubeloginInstaller
  inputs:
    kubeloginVersion: 'v0.1.4'
    kubeloginDownloadUrl: 'https://github.com/Azure/kubelogin/releases/download/v0.1.4/kubelogin-linux-amd64.zip'
    kubeloginSha256Hash: <HASH>

Thank you for considering this feature request. Implementing this enhancement will significantly improve the handling of the KubeloginInstaller task for me and hopefully a lot of other users.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions