diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index d73053503..c0c3cd923 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -20,12 +20,6 @@ repos: - id: yamllint args: [--strict] - - repo: https://github.com/markdownlint/markdownlint - rev: v0.12.0 - hooks: - - id: markdownlint - exclude: "^.github|(^docs/_sidebar\\.md$)" - - repo: https://github.com/shellcheck-py/shellcheck-py rev: v0.10.0.1 hooks: @@ -51,12 +45,6 @@ repos: - repo: local hooks: - - id: check-readme-versions - name: check-readme-versions - entry: tests/scripts/check_readme_versions.sh - language: script - pass_filenames: false - - id: collection-build-install name: Build and install kubernetes-sigs.kubespray Ansible collection language: python @@ -90,3 +78,17 @@ repos: - jinja additional_dependencies: - jinja2 + + - id: render-readme-versions + name: Update versions in README.md to match their defaults values + language: python + additional_dependencies: + - ansible-core>=2.16.4 + entry: scripts/render_readme_version.yml + pass_filenames: false + + - repo: https://github.com/markdownlint/markdownlint + rev: v0.12.0 + hooks: + - id: markdownlint + exclude: "^.github|(^docs/_sidebar\\.md$)" diff --git a/README.md b/README.md index 93087679d..e08d47742 100644 --- a/README.md +++ b/README.md @@ -96,6 +96,8 @@ Note: ## Supported Components +[//]: # BEGIN ANSIBLE MANAGED BLOCK + - Core - [kubernetes](https://github.com/kubernetes/kubernetes) v1.32.0 - [etcd](https://github.com/etcd-io/etcd) v3.5.16 @@ -132,6 +134,8 @@ Note: - [local-volume-provisioner](https://github.com/kubernetes-sigs/sig-storage-local-static-provisioner) v2.5.0 - [node-feature-discovery](https://github.com/kubernetes-sigs/node-feature-discovery) v0.16.4 +[//]: # END ANSIBLE MANAGED BLOCK + ## Container Runtime Notes - The cri-o version should be aligned with the respective kubernetes version (i.e. kube_version=1.20.x, crio_version=1.20) diff --git a/scripts/readme_versions.md.j2 b/scripts/readme_versions.md.j2 new file mode 100644 index 000000000..4960bd530 --- /dev/null +++ b/scripts/readme_versions.md.j2 @@ -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 }} diff --git a/scripts/render_readme_version.yml b/scripts/render_readme_version.yml new file mode 100755 index 000000000..9bd756c9a --- /dev/null +++ b/scripts/render_readme_version.yml @@ -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 diff --git a/tests/scripts/check_readme_versions.sh b/tests/scripts/check_readme_versions.sh deleted file mode 100755 index 594391e89..000000000 --- a/tests/scripts/check_readme_versions.sh +++ /dev/null @@ -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