Mirror Kubernetes schema files
Summary
In a release pipeline on dev, we encountered GitHub rate-limiting, which caused a failure. We should instead mirror the repo where we're pulling the Kubernetes schemas from and use our mirror in the pipelines.
Related: [CI] Pipeline on 'master' failed for commit 965... (#5432 - closed) • Ryan Egesdahl • 16.11
Current behavior
Intermittent pipeline failures depending on the day and time.
Expected behavior
No pipeline failures due to rate-limiting.
Relevant logs
{
"filename": "stdin",
"kind": "Job",
"name": "release-name-gitlab-upgrade-check",
"version": "batch/v1",
"status": "statusError",
"msg": "error while downloading schema at https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/v1.28.3-standalone-strict/job-batch-v1.json - received HTTP status 429"
}
Recommendation
- Mirror this repository to GitLab.com / Dev
-
GitLab.com: https://gitlab.com/gitlab-org/cloud-native/mirror/kubernetes-json-schema -
Dev: /gitlab/cloud-native/mirror/kubernetes-json-schema
-
- Configure environment for the --schema-location to
default
. Configure each CI env with location of mirror(s)Kubeconform however supports passing one, or multiple, schemas locations - HTTP(s) URLs, or local filesystem paths, in which case it will lookup for schema definitions in each of them, in order, stopping as soon as a matching file is found.
-
GitLab.com: https://gitlab.com/gitlab-org/cloud-native/mirror/kubernetes-json-schema/-/raw/master/
-
Dev: https://gitlab.com/gitlab-org/cloud-native/mirror/kubernetes-json-schema/-/raw/master/
- NOTE The project visibility is of concern, as it is not public.
-
- Consume the above environment variable in CI
- Consider publishing on GitLab Pages, in an automated fashion.
Edited by Jason Plum