Browse Source
Update versions in README.md with pre-commit
Update versions in README.md with pre-commit
Currently, versions in README.md need to be manually updated, and we check it's done with a bash script. Add a small utility playbook to add versions in README.md from their actual default values, automatically. This is done in pre-commit, and replace the scripted check ; instead it will autofix the README.md, and fails in CI if needed. We switch markdownlint behind the local hooks to gave it the opportunity to catch a problem with the rendering.pull/11905/head
Failed to extract signature
5 changed files with 75 additions and 45 deletions
Split View
Diff Options
-
26.pre-commit-config.yaml
-
4README.md
-
35scripts/readme_versions.md.j2
-
22scripts/render_readme_version.yml
-
33tests/scripts/check_readme_versions.sh
@ -0,0 +1,35 @@ |
|||
- Core |
|||
- [kubernetes](https://github.com/kubernetes/kubernetes) {{ kube_version }} |
|||
- [etcd](https://github.com/etcd-io/etcd) {{ etcd_version }} |
|||
- [docker](https://www.docker.com/) v{{ docker_version }} |
|||
- [containerd](https://containerd.io/) v{{ containerd_version }} |
|||
- [cri-o](http://cri-o.io/) {{ crio_version }} (experimental: see [CRI-O Note](docs/CRI/cri-o.md). Only on fedora, ubuntu and centos based OS) |
|||
- Network Plugin |
|||
- [cni-plugins](https://github.com/containernetworking/plugins) {{ cni_version }} |
|||
- [calico](https://github.com/projectcalico/calico) {{ calico_version }} |
|||
- [cilium](https://github.com/cilium/cilium) {{ cilium_version }} |
|||
- [flannel](https://github.com/flannel-io/flannel) {{ flannel_version }} |
|||
- [kube-ovn](https://github.com/alauda/kube-ovn) {{ kube_ovn_version }} |
|||
- [kube-router](https://github.com/cloudnativelabs/kube-router) {{ kube_router_version }} |
|||
- [multus](https://github.com/k8snetworkplumbingwg/multus-cni) {{ multus_version }} |
|||
- [weave](https://github.com/rajch/weave) v{{ weave_version }} |
|||
- [kube-vip](https://github.com/kube-vip/kube-vip) {{ kube_vip_version }} |
|||
- Application |
|||
- [cert-manager](https://github.com/jetstack/cert-manager) {{ cert_manager_version }} |
|||
- [coredns](https://github.com/coredns/coredns) {{ coredns_version }} |
|||
- [ingress-nginx](https://github.com/kubernetes/ingress-nginx) {{ ingress_nginx_version }} |
|||
- [krew](https://github.com/kubernetes-sigs/krew) {{ krew_version }} |
|||
- [argocd](https://argoproj.github.io/) {{ argocd_version }} |
|||
- [helm](https://helm.sh/) {{ helm_version }} |
|||
- [metallb](https://metallb.universe.tf/) {{ metallb_version }} |
|||
- [registry](https://github.com/distribution/distribution) v{{ registry_version }} |
|||
- Storage Plugin |
|||
- [cephfs-provisioner](https://github.com/kubernetes-incubator/external-storage) {{ cephfs_provisioner_version }} |
|||
- [rbd-provisioner](https://github.com/kubernetes-incubator/external-storage) {{ rbd_provisioner_version }} |
|||
- [aws-ebs-csi-plugin](https://github.com/kubernetes-sigs/aws-ebs-csi-driver) {{ aws_ebs_csi_plugin_version }} |
|||
- [azure-csi-plugin](https://github.com/kubernetes-sigs/azuredisk-csi-driver) {{ azure_csi_plugin_version }} |
|||
- [cinder-csi-plugin](https://github.com/kubernetes/cloud-provider-openstack/blob/master/docs/cinder-csi-plugin/using-cinder-csi-plugin.md) {{ cinder_csi_plugin_version }} |
|||
- [gcp-pd-csi-plugin](https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver) {{ gcp_pd_csi_plugin_version }} |
|||
- [local-path-provisioner](https://github.com/rancher/local-path-provisioner) {{ local_path_provisioner_version }} |
|||
- [local-volume-provisioner](https://github.com/kubernetes-sigs/sig-storage-local-static-provisioner) {{ local_volume_provisioner_version }} |
|||
- [node-feature-discovery](https://github.com/kubernetes-sigs/node-feature-discovery) {{ node_feature_discovery_version }} |
@ -0,0 +1,22 @@ |
|||
#!/usr/bin/env ansible-playbook |
|||
--- |
|||
- name: Update README.md versions |
|||
hosts: localhost |
|||
connection: local |
|||
gather_facts: false |
|||
vars: |
|||
fallback_ip: 'bypass tasks in kubespray-defaults' |
|||
roles: |
|||
- kubespray-defaults |
|||
tasks: |
|||
- name: Include versions not in kubespray-defaults |
|||
include_vars: "{{ item }}" |
|||
loop: |
|||
- ../roles/container-engine/docker/defaults/main.yml |
|||
- ../roles/kubernetes/node/defaults/main.yml |
|||
- ../roles/kubernetes-apps/argocd/defaults/main.yml |
|||
- name: Render versions in README.md |
|||
blockinfile: |
|||
marker: '[//]: # {mark} ANSIBLE MANAGED BLOCK' |
|||
block: "\n{{ lookup('ansible.builtin.template', 'readme_versions.md.j2') }}\n\n" |
|||
path: ../README.md |
@ -1,33 +0,0 @@ |
|||
#!/bin/bash |
|||
set -e |
|||
|
|||
TARGET_COMPONENTS="containerd calico cilium flannel kube-ovn kube-router weave cert-manager krew helm metallb registry cephfs-provisioner rbd-provisioner aws-ebs-csi-plugin azure-csi-plugin cinder-csi-plugin gcp-pd-csi-plugin local-path-provisioner local-volume-provisioner kube-vip ingress-nginx node-feature-discovery" |
|||
|
|||
# cd to the root directory of kubespray |
|||
cd $(dirname $0)/../../ |
|||
|
|||
echo checking kubernetes.. |
|||
version_from_default=$(grep "^kube_version:" ./roles/kubespray-defaults/defaults/main/main.yml | awk '{print $2}' | sed s/\"//g) |
|||
version_from_readme=$(grep " \[kubernetes\]" ./README.md | awk '{print $3}') |
|||
if [ "${version_from_default}" != "${version_from_readme}" ]; then |
|||
echo "The version of kubernetes is different between main.yml(${version_from_default}) and README.md(${version_from_readme})." |
|||
echo "If the pull request updates kubernetes version, please update README.md also." |
|||
exit 1 |
|||
fi |
|||
|
|||
for component in $(echo ${TARGET_COMPONENTS}); do |
|||
echo checking ${component}.. |
|||
version_from_default=$(grep "^$(echo ${component} | sed s/"-"/"_"/g)_version:" ./roles/kubespray-defaults/defaults/main/download.yml | awk '{print $2}' | sed s/\"//g | sed s/^v//) |
|||
if [ "${version_from_default}" = "" ]; then |
|||
version_from_default=$(grep "^$(echo ${component} | sed s/"-"/"_"/g)_version:" ./roles/kubernetes/node/defaults/main.yml | awk '{print $2}' | sed s/\"//g | sed s/^v//) |
|||
fi |
|||
version_from_readme=$(grep "\[${component}\]" ./README.md | grep "https" | awk '{print $3}' | sed s/^v//) |
|||
if [ "${version_from_default}" != "${version_from_readme}" ]; then |
|||
echo "The version of ${component} is different between main.yml(${version_from_default}) and README.md(${version_from_readme})." |
|||
echo "If the pull request updates ${component} version, please update README.md also." |
|||
exit 1 |
|||
fi |
|||
done |
|||
|
|||
echo "Succeeded to check all components." |
|||
exit 0 |
Write
Preview
Loading…
Cancel
Save